!------------------------------------------------------------------------------- ! 20070320 Adaptación al compilador gfortran de GNU !------------------------------------------------------------------------------- El archivo modsys_pcg_cp.for contiene las subrutinas diseñadas para los compiladores Digital Fortran 77 (OpenVMS) y Compaq Fortran 90 (True64Unix) (y otros compatibles con los anteriores). Se crea el archivo modsys_pcg_cp.f, adaptado al compilador GFortran de GNU. El compilador GFortran de GNU no contempla todavía la opción D_LINES. Por estos motivos: 1) en el archivo modsys_pcg_cp.f se prescinde de la opción D_LINES (con lo que las subrutinas sólo pueden funcionar en precisión doble). !------------------------------------------------------------------------------- ! 20011128 Prevencion de una posible division por cero !------------------------------------------------------------------------------- En la subrutina SLE$Solver_PCG_CP_() las instrucciones call SLE$ProductoEscalar(ntotv,zvect,svect,sas) sas=-sas han sido sustuidas por call SLE$ProductoEscalar(ntotv,zvect,svect,sas) if (sas.eq.cero) sas=uno sas=-sas De esta forma se previene la posibilidad de que la variable SAS sea nula. Cuando este caso se produce, el metodo ha convergido a la solucion exacta. Puede comprobarse que esta cautela no altera el resultado e impide una posible division por cero. !------------------------------------------------------------------------------- !------------------------------------------------------------------------------- !-------------------------------------------------------------------------------