Numérotation des lignes :

C RESCGS    SOURCE    CHAT      05/01/13    02:51:23     5004      SUBROUTINE RESCGS(IZB,MTABP,IZP)CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC                                                                   CC RESOLUTION DE L'EQUATION K*P = B PAR LA METHODE DU GRADIENT       CC CONJUGUE PRECONDITIONNE. LA MATRICE EST STOCKEE.                  CC                                                                   CC MTABP EST UNE TABLE QUI CONTIENT LES INFOS NECESSAIRES POUR LE    CC CALCUL.                                                           CC                                                                   CC IZP ET IZB SONT LA SOLUTION ET LE SECOND MEMBRE DE L'EQUATION     CC                                                                   CC     ON DECODE LA TABLE MTABP.METHODE ET ON APPELLE LE SP          CC     DE LA BIBLIOTHEQUE :                                          CC                                                                   CC     CGRES  (SANS PRECONDITIONNEMENT)                              CC     CGRESD (PRECONDITIONNEMENT DIAGONAL)                          CC     CGRESI (PRECONDITIONNEMENT CHOLESKI)                          CC                                                                   CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC      IMPLICIT INTEGER(I-N)      IMPLICIT REAL*8 (A-H,O-Z)-INC SMLREEL      POINTEUR IZB.MLREEL      POINTEUR IZP.MLREEL      CHARACTER*8 TYPE       TYPE=' '      CALL ACMO(MTABP,'MATRIS',TYPE,MTAB2)      TYPE=' '      CALL ACMO(MTABP,'METHODE',TYPE,MTAB3)      CALL ECME(MTAB3,'ICOLD',0)      CALL ACME(MTAB3,'IPAT',IPAT)      CALL ECMO(MTAB3,'IZP','LISTREEL',IZP)      IF(IPAT.LE.3) THEN        IPOU=1        VPOU=100.D0        CALL ECME(MTAB3,'IPOU',IPOU)        CALL ECMF(MTAB3,'VPOU',VPOU)      ELSE        CALL ECME(MTAB3,'IPOU',0)      ENDIFCC Il faut renseigner KSTO,NL,ILG,IMAT,IPRC,IA,JA,KA,C                    **** ** *** **** **** ** ** **C                    IZB,IZP,ICOLD,NPT,NPITE,EPI,IPOU,VPOUC                    *** *** ***** *** ***** *** **** ****C                    NIMPR et IPAT !!!C                    *****    ****C      CALL ACME(MTAB3,'KSTOCK',KSTO)      CALL ACME(MTAB3,'KTYPI',KTYPI)      CALL ACME(MTAB2,'NL',NL)      CALL ACME(MTAB2,'ILG',ILG)      TYPE=' '      CALL ACMO(MTAB2,'IMAT',TYPE,IMAT)      TYPE=' '      CALL ACMO(MTAB3,'IPRC',TYPE,IPRC)      TYPE=' '      CALL ACMO(MTAB2,'IA',TYPE,IA)      TYPE=' '      CALL ACMO(MTAB2,'JA',TYPE,JA)      TYPE=' '      CALL ACMO(MTAB2,'KA',TYPE,KA)      TYPE=' '      CALL ACMO(MTAB3,'IZP',TYPE,IZP)      CALL ACME(MTAB3,'ICOLD',ICOLD)      CALL ACME(MTAB3,'NITMAX',NPT)      CALL ACME(MTAB3,'NPITE',NPITE)      CALL ACMF(MTAB3,'EPSI',EPSI)      CALL ACME(MTAB3,'IPOU',IPOU)      CALL ACMF(MTAB3,'VPOU',VPOU)      CALL ACME(MTAB3,'NFIMPR',NIMPR)      CALL ACME(MTAB3,'IPAT',IPAT)CC Il faut renseigner KSTO,NL,ILG,IMAT,(IPRC),IA,JA,KA,C                    **** ** *** ****  ****  ** ** **C                    IZB,IZP,ICOLD,NPT,NPITE,NEFF,EPI,IPOU,VPOUC                    *** *** ***** *** ***** 0000 *** **** ****C                    NIMPR et IPAT !!!C                    *****    ****C      IF(KTYPI.EQ.2) THEN      CALL CGRES(      KSTO,     1                 NL,ILG,     2                 IMAT,IA,JA,KA,     3                 IZB,IZP,ICOLD,     4                 NPT,NPITE,NEFF,ICONV,EPSI,IPOU,VPOU,     5                 NIMPR,IPAT)      ELSEIF(KTYPI.EQ.3) THEN      CALL CGRESD(     KSTO,     1                 NL,ILG,     2                 IMAT,IPRC,IA,JA,KA,     3                 IZB,IZP,ICOLD,     4                 NPT,NPITE,NEFF,ICONV,EPSI,IPOU,VPOU,     5                 NIMPR,IPAT)      ELSEIF(KTYPI.EQ.4) THEN      CALL CGRESI(     KSTO,     1                 NL,ILG,     2                 IMAT,IPRC,IA,JA,KA,     3                 IZB,IZP,ICOLD,     4                 NPT,NPITE,NEFF,ICONV,EPSI,IPOU,VPOU,     5                 NIMPR,IPAT)      ELSE      WRITE(6,*)  'RESGCS : KTYPI = ',KTYPI,' INVALIDE'      ENDIFC     SEGACT IZB,IZPC     JG=IZB.PROG(/1)C     CALL RSETD(IZB.PROG,IZP.PROG,JG)C     SEGDES IZB,IZPCC Reglage a posteriori de la frequence des tests si on a convergeC au premier test.C      IF(ICONV.EQ.1) THEN        IF(NEFF.EQ.NPITE) THEN           NPITE=MAX(NPITE/2,3)        ELSE           NPITE=MAX(NEFF/10,10)        ENDIF      ENDIF       CALL ECME(MTAB3,'NPITE',NPITE)      CALL ECMO(MTAB3,'IZP','LISTREEL',IZP)      IPAT=IPAT+1       RETURN      END

© Cast3M 2003 - Tous droits réservés.
Mentions légales