Download ccgahu.eso

Back to the list

   1 : C CCGAHU    SOURCE    GOUNAND   07/07/05    21:15:08     5784           
   2 :       SUBROUTINE CCGAHU(LCOF,NOMLOI,
   3 :      $     FC,
   4 :      $     IMPR,IRET)
   5 :       IMPLICIT REAL*8 (A-H,O-Z)
   6 :       IMPLICIT INTEGER (I-N)
   7 : C***********************************************************************
   8 : C NOM         : CCGAHU
   9 : C DESCRIPTION : Calcul de la loi de comportement aux points de Gauss :
  10 : C               DEDU ADAP avec metrique
  11 : C               On implémente ici la première partie de la fonctionnelle
  12 : C               de Huang
  13 : C     
  14 : C LANGAGE     : ESOPE
  15 : C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  16 : C               mél : gounand@semt2.smts.cea.fr
  17 : C***********************************************************************
  18 : C APPELES          :
  19 : C APPELE PAR       :
  20 : C***********************************************************************
  21 : C ENTREES            :
  22 : C ENTREES/SORTIES    :
  23 : C SORTIES            : -
  24 : C TRAVAIL            :
  25 : C***********************************************************************
  26 : C VERSION    : v1, 30/04/07, version initiale
  27 : C HISTORIQUE : v1, 30/04/07, création
  28 : C HISTORIQUE :
  29 : C***********************************************************************
  30 : C Prière de PRENDRE LE TEMPS de compléter les commentaires
  31 : C en cas de modification de ce sous-programme afin de faciliter
  32 : C la maintenance !
  33 : C***********************************************************************
  34 : -INC CCOPTIO
  35 : -INC CCREEL
  36 : CBEGININCLUDE SMCHAEL
  37 :       SEGMENT MCHAEL
  38 :       POINTEUR IMACHE(N1).MELEME
  39 :       POINTEUR ICHEVA(N1).MCHEVA
  40 :       ENDSEGMENT
  41 :       SEGMENT MCHEVA
  42 :       REAL*8 VELCHE(NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM)
  43 :       ENDSEGMENT
  44 :       SEGMENT LCHEVA
  45 :       POINTEUR LISCHE(NBCHE).MCHEVA
  46 :       ENDSEGMENT
  47 : CENDINCLUDE SMCHAEL
  48 :       INTEGER NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM,N1
  49 :       POINTEUR FC.MCHEVA
  50 :       POINTEUR LCOF.LCHEVA
  51 :       POINTEUR JMAJAC.MCHEVA
  52 :       POINTEUR JMIJAC.MCHEVA
  53 :       POINTEUR JDTJAC.MCHEVA
  54 :       POINTEUR JMAREG.MCHEVA
  55 :       POINTEUR JMET.MCHEVA
  56 :       POINTEUR JTHE.MCHEVA
  57 :       POINTEUR JGAM.MCHEVA
  58 :       CHARACTER*8 NOMLOI
  59 :       INTEGER ICOF
  60 : *     
  61 : -INC TMXMAT
  62 : * Objets temporaires
  63 :       POINTEUR JAC.MXMAT,JT.MXMAT
  64 :       POINTEUR G.MXMAT,IG.MXMAT,H.MXMAT,HIG.MXMAT,HM1.MXMAT
  65 :       POINTEUR MM1.MXMAT,JTM.MXMAT,MJ.MXMAT
  66 : * Objets à préconditionner (éventuellement)
  67 :       POINTEUR A.MXMAT,B.MXMAT,C.MXMAT,D.MXMAT,F.MXMAT,M.MXMAT
  68 : *     
  69 :       SEGMENT MCOF
  70 :       POINTEUR COEF(IDIM,IDIM).MCHEVA
  71 :       ENDSEGMENT
  72 :       POINTEUR MET.MCOF
  73 : *     
  74 :       LOGICAL LBID,LFIRST
  75 :       INTEGER LAXSP
  76 :       REAL*8 DEUPI,XR
  77 :       REAL*8 XL,XM,XH
  78 : *     
  79 :       INTEGER IMPR,IRET
  80 : *     
  81 : * Executable statements
  82 : *     
  83 :       IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans ccgahu'
  84 : C      IF (.NOT.(IDIM.EQ.1)) THEN
  85 : C         WRITE(IOIMP,*) 'IDIM=',IDIM,' ?'
  86 : C         GOTO 9999
  87 : C      ENDIF
  88 :       NLFC=FC.VELCHE(/6)
  89 :       NPFC=FC.VELCHE(/5)
  90 :       ICOF=0 
  91 : *     
  92 : *     Récupération des coefficients de la metrique
  93 : *     
  94 :       SEGINI MET
  95 :       DO IIDIM=1,IDIM
  96 :          ICOF=ICOF+1
  97 :          JMET=LCOF.LISCHE(ICOF)
  98 :          IF (ICOF.EQ.1) THEN 
  99 :             NLJM=JMET.VELCHE(/6)
 100 :             NPJM=JMET.VELCHE(/5)
 101 :          ELSE
 102 :             NLJM2=JMET.VELCHE(/6)
 103 :             NPJM2=JMET.VELCHE(/5)
 104 :             IF (NLJM2.NE.NLJM.OR.NPJM2.NE.NPJM) THEN 
 105 :                WRITE(IOIMP,*) 'Erreur grave dims JMET'
 106 :                GOTO 9999
 107 :             ENDIF
 108 :          ENDIF
 109 :          MET.COEF(IIDIM,IIDIM)=JMET
 110 :       ENDDO
 111 :       DO IIDIM=1,IDIM
 112 :          NJ=IDIM-IIDIM
 113 :          IF (NJ.GE.1) THEN
 114 :             DO JIDIM=IIDIM+1,IDIM
 115 :                ICOF=ICOF+1
 116 :                JMET=LCOF.LISCHE(ICOF)
 117 :                NLJM2=JMET.VELCHE(/6)
 118 :                NPJM2=JMET.VELCHE(/5)
 119 :                IF (NLJM2.NE.NLJM.OR.NPJM2.NE.NPJM) THEN 
 120 :                   WRITE(IOIMP,*) 'Erreur grave dims JMET2'
 121 :                   GOTO 9999
 122 :                ENDIF
 123 :                MET.COEF(IIDIM,JIDIM)=JMET
 124 :             ENDDO
 125 :          ENDIF
 126 :       ENDDO
 127 : *     
 128 :       ICOF=ICOF+1
 129 :       JTHE=LCOF.LISCHE(ICOF)
 130 :       NLJT=JTHE.VELCHE(/6)
 131 :       NPJT=JTHE.VELCHE(/5)
 132 :       I1  =JTHE.VELCHE(/4)
 133 :       I2  =JTHE.VELCHE(/3)
 134 :       IF ((I1.NE.1).OR.(I2.NE.1))
 135 :      $     THEN
 136 :          WRITE(IOIMP,*) 'Erreur dims JTHE'
 137 :          GOTO 9999
 138 :       ENDIF
 139 : *     
 140 :       ICOF=ICOF+1
 141 :       JGAM=LCOF.LISCHE(ICOF)
 142 :       NLJG=JTHE.VELCHE(/6)
 143 :       NPJG=JTHE.VELCHE(/5)
 144 :       I1  =JTHE.VELCHE(/4)
 145 :       I2  =JTHE.VELCHE(/3)
 146 :       IF ((I1.NE.1).OR.(I2.NE.1))
 147 :      $     THEN
 148 :          WRITE(IOIMP,*) 'Erreur dims JGAM'
 149 :          GOTO 9999
 150 :       ENDIF
 151 : *     
 152 :       ICOF=ICOF+1
 153 :       JMAJAC=LCOF.LISCHE(ICOF)
 154 :       NLJA=JMAJAC.VELCHE(/6)
 155 :       NPJA=JMAJAC.VELCHE(/5)
 156 :       IREF=JMAJAC.VELCHE(/4)
 157 :       IREL=JMAJAC.VELCHE(/3)
 158 : *     
 159 :       IF (IREL.NE.IDIM) THEN
 160 :          WRITE(IOIMP,*) 'Erreur dims JMAJAC'
 161 :          GOTO 9999
 162 :       ENDIF
 163 : *     
 164 :       ICOF=ICOF+1
 165 :       ICOF=ICOF+1
 166 :       ICOF=ICOF+1
 167 :       JMAREG=LCOF.LISCHE(ICOF)
 168 :       NLJR=JMAREG.VELCHE(/6)
 169 :       NPJR=JMAREG.VELCHE(/5)
 170 :       I1  =JMAREG.VELCHE(/4)
 171 :       I2  =JMAREG.VELCHE(/3)
 172 :       IF ((NLJR.NE.1).OR.(NPJR.NE.1).OR.(I1.NE.IREF).OR.(I2.NE.IREF))
 173 :      $     THEN
 174 :          WRITE(IOIMP,*) 'Erreur dims JMAREG'
 175 :          GOTO 9999
 176 :       ENDIF
 177 : *     
 178 : * Objets temporaires et à préconditionner
 179 : *     
 180 :       LDIM1=IREL
 181 :       LDIM2=IREF
 182 :       SEGINI,JAC
 183 :       SEGINI,MJ
 184 :       SEGINI,A
 185 :       SEGINI,B
 186 :       LDIM1=IREF
 187 :       LDIM2=IREL
 188 :       SEGINI,JT
 189 :       SEGINI,JTM
 190 :       LDIM1=IREF
 191 :       LDIM2=IREF
 192 :       SEGINI,G
 193 :       SEGINI,IG
 194 :       SEGINI,H
 195 :       SEGINI,HM1
 196 :       SEGINI,HIG
 197 :       SEGINI,C
 198 :       LDIM1=IREL
 199 :       LDIM2=IREL
 200 :       SEGINI,M
 201 :       SEGINI,MM1
 202 :       SEGINI,D
 203 :       SEGINI,F
 204 : *     
 205 : * Calcul de la métrique des éléments réguliers
 206 : *     
 206 :       CALL MAMA(JMAREG.VELCHE,IREF,IREF,
 207 :      $     'JTJ     ',H.XMAT,IREF,IREF,
 208 :      $     IMPR,IRET)
 209 :       IF (IRET.NE.0) GOTO 9999
 210 : *      SEGPRT,H
 211 :       LBID=.FALSE.
 211 :       CALL GEOLI2(IREF,1,1,H.XMAT,HM1.XMAT,DETH,LBID,IMPR,IRET)
 212 :       IF (IRET.NE.0) GOTO 9999
 213 : *!!!      XH=1.0D0
 214 :       XH=1.D0/(SQRT(DETH))
 215 : *!!      XH=1.D0/(DETH)
 216 : *     
 217 :       LFIRST = .FALSE.
 218 :       DO ILFC=1,NLFC
 219 :          IF (NLJM.EQ.1) THEN
 220 :             ILJM=1
 221 :          ELSE
 222 :             ILJM=ILFC
 223 :          ENDIF
 224 :          IF (NLJA.EQ.1) THEN
 225 :             ILJA=1
 226 :          ELSE
 227 :             ILJA=ILFC
 228 :          ENDIF
 229 :          IF (NLJT.EQ.1) THEN
 230 :             ILJT=1
 231 :          ELSE
 232 :             ILJT=ILFC
 233 :          ENDIF
 234 :          IF (NLJG.EQ.1) THEN
 235 :             ILJG=1
 236 :          ELSE
 237 :             ILJG=ILFC
 238 :          ENDIF
 239 :          DO IPFC=1,NPFC
 240 :             IF (NPJM.EQ.1) THEN
 241 :                IPJM=1
 242 :             ELSE
 243 :                IPJM=IPFC
 244 :             ENDIF
 245 :             IF (NPJA.EQ.1) THEN
 246 :                IPJA=1
 247 :             ELSE
 248 :                IPJA=IPFC
 249 :             ENDIF
 250 :             IF (NPJT.EQ.1) THEN
 251 :                IPJT=1
 252 :             ELSE
 253 :                IPJT=IPFC
 254 :             ENDIF
 255 :             IF (NPJG.EQ.1) THEN
 256 :                IPJG=1
 257 :             ELSE
 258 :                IPJG=IPFC
 259 :             ENDIF
 260 : *
 261 : * Récupération de l'exposant multiplié par 2
 262 : * On suppose que c'est un entier
 263 : *
 264 :             XTHE=JTHE.VELCHE(1,1,1,1,IPJT,ILJT)
 265 :             XGAM=JGAM.VELCHE(1,1,1,1,IPJG,ILJG)
 266 :             XCO1=XTHE*0.5D0
 267 :             IXP1=NINT(IREF*XGAM)
 268 :             XCO2=(1.D0-XTHE)*((SQRT(DBLE(IREF)))**IXP1)
 269 : *!!!
 270 : *!!!         XCO2=1.D0 
 271 :             IXP2=NINT(1-XGAM)
 272 :             IF (LFIRST) THEN
 273 :                WRITE(IOIMP,*) 'XTHE=',XTHE
 274 :                WRITE(IOIMP,*) 'XGAM=',XGAM
 275 :                WRITE(IOIMP,*) 'XCO1=',XCO1
 276 :                WRITE(IOIMP,*) 'XCO2=',XCO2
 277 :                WRITE(IOIMP,*) 'IXP1=',IXP1,'/2'
 278 :                WRITE(IOIMP,*) 'IXP2=',IXP2
 279 :                LFIRST=.FALSE.
 280 :             ENDIF
 281 : *     
 282 : * Copie des coefficients de la métrique
 283 : *     
 284 :             DO IIDIM=1,IDIM
 285 :                JMET=MET.COEF(IIDIM,IIDIM)
 286 :                M.XMAT(IIDIM,IIDIM)=JMET.VELCHE(1,1,1,1,IPJM,ILJM)
 287 :             ENDDO
 288 :             DO IIDIM=1,IIDIM
 289 :                NJ=IDIM-IIDIM
 290 :                IF (NJ.GE.1) THEN
 291 :                   DO JIDIM=IIDIM+1,IDIM
 292 :                      JMET=MET.COEF(IIDIM,JIDIM)
 293 :                      M.XMAT(IIDIM,JIDIM)=JMET.VELCHE(1,1,1,1,IPJM,ILJM)
 294 :                      M.XMAT(JIDIM,IIDIM)=JMET.VELCHE(1,1,1,1,IPJM,ILJM)
 295 :                   ENDDO
 296 :                ENDIF
 297 :             ENDDO
 298 : *            SEGPRT,M
 299 : * Calcul de l'inverse
 300 : *     
 301 :            LBID=.FALSE.
 301 :            CALL GEOLI2(IREL,1,1,M.XMAT,MM1.XMAT,DETM,LBID,IMPR,IRET)
 302 :            IF (IRET.NE.0) GOTO 9999
 303 :            XDM=1.D0/(SQRT(DETM))
 304 : *1           XDM=1.D0
 305 : ******           XDM=SQRT(DETM)
 306 : *     
 307 : * Copie du jacobien
 308 : *     
 308 :             CALL MAMA(JMAJAC.VELCHE(1,1,1,1,IPJA,ILJA),IREL,IREF,
 309 :      $           'COPIE   ',
 310 :      $           JAC.XMAT,IREL,IREF,
 311 :      $           IMPR,IRET)
 312 :             IF (IRET.NE.0) GOTO 9999
 313 : *            SEGPRT,JAC
 314 : *     
 315 : * Calcul de la métrique G
 316 : *     
 317 : *     Calcul de Jt
 317 :             CALL MAMA(JAC.XMAT,IREL,IREF,
 318 :      $           'TRANSPOS',JT.XMAT,IREF,IREL,
 319 :      $           IMPR,IRET)
 320 :             IF (IRET.NE.0) GOTO 9999
 321 : *     Calcul de MJ
 321 :             CALL MAMAMA(M.XMAT,IREL,IREL,JAC.XMAT,IREL,IREF,
 322 :      $           'FOIS    ',MJ.XMAT,IREL,IREF,
 323 :      $           IMPR,IRET)
 324 :             IF (IRET.NE.0) GOTO 9999
 325 : *     Calcul de JTM
 325 :             CALL MAMA(MJ.XMAT,IREL,IREF,
 326 :      $           'TRANSPOS',JTM.XMAT,IREF,IREL,
 327 :      $           IMPR,IRET)
 328 :             IF (IRET.NE.0) GOTO 9999
 329 : *     Calcul de G=JtMJ
 329 :             CALL MAMAMA(JT.XMAT,IREF,IREL,MJ.XMAT,IREL,IREF,
 330 :      $           'FOIS    ',G.XMAT,IREF,IREF,
 331 :      $           IMPR,IRET)
 332 :             IF (IRET.NE.0) GOTO 9999
 333 : * Calcul de l'inverse, du déterminant et trace de l'inverse de g
 334 :             LBID=.FALSE.
 334 :             CALL GEOLI2(IREF,1,1,G.XMAT,IG.XMAT,DETG,LBID,IMPR,IRET)
 335 :             IF (IRET.NE.0) GOTO 9999
 336 :             XM=SQRT(DETG)
 337 : *!            WRITE(IOIMP,*) 'XM=',XM
 338 : * Calcul de hg-1 et de sa trace
 338 :             CALL MAMAMA(H.XMAT,IREF,IREF,IG.XMAT,IREF,IREF,
 339 :      $           'FOIS    ',HIG.XMAT,IREF,IREF,IMPR,IRET)
 340 :             IF (IRET.NE.0) GOTO 9999
 340 :             CALL MARE(HIG.XMAT,IREF,IREF,'TRACE   ',
 341 :      $           XL,IMPR,IRET)
 342 :             IF (IRET.NE.0) GOTO 9999
 343 : * Calcul de A = (J+)t = MJg-1 (pseudo-inverse)
 343 :             CALL MAMAMA(MJ.XMAT,IREL,IREF,IG.XMAT,IREF,IREF,
 344 :      $           'FOIS    ',A.XMAT,IREL,IREF,IMPR,IRET)
 345 :             IF (IRET.NE.0) GOTO 9999
 346 : * Calcul de B = (J+)t hg-1 = MJg-1hg-1
 346 :             CALL MAMAMA(A.XMAT,IREL,IREF,HIG.XMAT,IREF,IREF,
 347 :      $           'FOIS    ',B.XMAT,IREL,IREF,IMPR,IRET)
 348 :             IF (IRET.NE.0) GOTO 9999
 349 : * Calcul de C = g-1hg-1
 349 :             CALL MAMAMA(IG.XMAT,IREF,IREF,HIG.XMAT,IREF,IREF,
 350 :      $           'FOIS    ',C.XMAT,IREF,IREF,IMPR,IRET)
 351 :             IF (IRET.NE.0) GOTO 9999
 352 : * Calcul de D = MJ g-1hg-1 JtM = B JtM
 352 :             CALL MAMAMA(B.XMAT,IREL,IREF,JTM.XMAT,IREF,IREL,
 353 :      $           'FOIS    ',D.XMAT,IREL,IREL,IMPR,IRET)
 354 :             IF (IRET.NE.0) GOTO 9999
 355 : * Calcul de F = MJ g-1 JtM = A JtM
 355 :             CALL MAMAMA(A.XMAT,IREL,IREF,JTM.XMAT,IREF,IREL,
 356 :      $           'FOIS    ',F.XMAT,IREL,IREL,IMPR,IRET)
 357 :             IF (IRET.NE.0) GOTO 9999
 358 : *     
 359 : * Calcul de la fonctionnelle
 360 : *     
 361 :             IF (NOMLOI.EQ.'AHUF    ') THEN
 362 :                XL1=SQRT(XL)**IXP1
 363 :                FONC1=XL1*XM
 364 : *
 365 :                XM1=XM**IXP2
 366 :                FONC2=XM1
 367 : *
 368 :                CONTRI=(XCO1*FONC1)+(XCO2*FONC2*(XH**(IXP2-1)))
 369 : *!!!!
 370 :                CONTRI=CONTRI*XDM
 371 : *     
 372 : * Calcul du résidu
 373 : *     
 374 :             ELSEIF (NOMLOI(1:4).EQ.'AHUR') THEN
 374 :                CALL CH2INT(NOMLOI(5:5),IDIM1,IMPR,IRET)
 375 :                IF (IRET.NE.0) GOTO 9999
 375 :                CALL CH2INT(NOMLOI(6:6),IDIM2,IMPR,IRET)
 376 :                IF (IRET.NE.0) GOTO 9999
 377 :                K=IDIM1
 378 :                L=IDIM2
 379 :                XL1=SQRT(XL)**IXP1
 380 :                XL2=IXP1*(SQRT(XL)**(IXP1-2))
 381 :                AKL1=XL1*XM*A.XMAT(K,L)
 382 :                AKL2=-1.D0*XL2*XM*B.XMAT(K,L)
 383 :                AKL=AKL1+AKL2
 384 : *
 385 :                XM2=IXP2*(XM**IXP2)
 386 :                CKL=XM2*A.XMAT(K,L)
 387 : *
 388 :                CONTRI=(XCO1*AKL)+(XCO2*CKL*(XH**(IXP2-1)))
 389 : *!!!!
 390 :                CONTRI=CONTRI*XDM
 391 : *     
 392 : * Calcul du jacobien
 393 : *     
 394 :             ELSEIF (NOMLOI(1:4).EQ.'AHUJ') THEN
 394 :                CALL CH2INT(NOMLOI(5:5),IDIM1,IMPR,IRET)
 395 :                IF (IRET.NE.0) GOTO 9999
 395 :                CALL CH2INT(NOMLOI(6:6),IDIM2,IMPR,IRET)
 396 :                IF (IRET.NE.0) GOTO 9999
 396 :                CALL CH2INT(NOMLOI(7:7),IDIM3,IMPR,IRET)
 397 :                IF (IRET.NE.0) GOTO 9999
 397 :                CALL CH2INT(NOMLOI(8:8),IDIM4,IMPR,IRET)
 398 :                IF (IRET.NE.0) GOTO 9999
 399 :                I=IDIM1
 400 :                J=IDIM2
 401 :                K=IDIM3
 402 :                L=IDIM4
 403 :                XL1=SQRT(XL)**IXP1
 404 :                XL2=IXP1*(SQRT(XL)**(IXP1-2))
 405 :                XL3=IXP1*(IXP1-2)*(SQRT(XL)**(IXP1-4))
 406 :                B11=XM*XL1*A.XMAT(I,J)*A.XMAT(K,L)
 407 :                B12=-1.D0*XL2*XM*B.XMAT(I,J)*A.XMAT(K,L)
 408 :                B13=XM*XL1*M.XMAT(K,I)*IG.XMAT(J,L)
 409 :                B14=-1.D0*XM*XL1*F.XMAT(K,I)*IG.XMAT(J,L)
 410 :                B15=-1.D0*XM*XL1*A.XMAT(K,J)*A.XMAT(I,L)
 411 :                BIJKL1=B11+B12+B13+B14+B15
 412 :                B20=+1.D0*XL3*XM*B.XMAT(I,J)*B.XMAT(K,L)
 413 :                B21=-1.D0*XL2*XM*A.XMAT(I,J)*B.XMAT(K,L)
 414 :                B22=-1.D0*XL2*XM*M.XMAT(K,I)*C.XMAT(J,L)
 415 :                B23=+1.D0*XL2*XM*F.XMAT(K,I)*C.XMAT(J,L)
 416 :                B24=+1.D0*XL2*XM*A.XMAT(K,J)*B.XMAT(I,L)
 417 :                B25=+1.D0*XL2*XM*D.XMAT(K,I)*IG.XMAT(J,L)
 418 :                B26=+1.D0*XL2*XM*B.XMAT(K,J)*A.XMAT(I,L)
 419 :                BIJKL2=B20+B21+B22+B23+B24+B25+B26
 420 :                BIJKL=BIJKL1+BIJKL2
 421 : *
 422 :                XM2=IXP2*(XM**IXP2)
 423 :                XM3=IXP2*IXP2*(XM**IXP2)
 424 :                D1=XM3*A.XMAT(I,J)*A.XMAT(K,L)
 425 :                D2=XM2*M.XMAT(K,I)*IG.XMAT(J,L)
 426 :                D3=-1.D0*XM2*F.XMAT(K,I)*IG.XMAT(J,L)
 427 :                D4=-1.D0*XM2*A.XMAT(K,J)*A.XMAT(I,L)
 428 :                DIJKL=D1+D2+D3+D4
 429 : *
 430 :                CONTRI=(XCO1*BIJKL)+(XCO2*DIJKL*(XH**(IXP2-1)))
 431 : *!!!!
 432 :                CONTRI=CONTRI*XDM
 433 : *!               WRITE(IOIMP,*) 'CONTRI=',CONTRI
 434 :             ELSE
 435 :                WRITE(IOIMP,*) 'Erreur grave'
 436 :                GOTO 9999
 437 :             ENDIF
 438 :             FC.VELCHE(1,1,1,1,IPFC,ILFC)=
 439 :      $           FC.VELCHE(1,1,1,1,IPFC,ILFC)+
 440 :      $           CONTRI
 441 :          ENDDO
 442 :       ENDDO
 443 :       SEGSUP,F
 444 :       SEGSUP,D
 445 :       SEGSUP,MM1
 446 :       SEGSUP,M
 447 :       SEGSUP,C
 448 :       SEGSUP,HIG
 449 :       SEGSUP,HM1
 450 :       SEGSUP,H
 451 :       SEGSUP,IG
 452 :       SEGSUP,G
 453 :       SEGSUP,JTM
 454 :       SEGSUP,JT
 455 :       SEGSUP,B
 456 :       SEGSUP,A
 457 :       SEGSUP,MJ
 458 :       SEGSUP,JAC
 459 :       SEGSUP,MET
 460 : *     
 461 : * Normal termination
 462 : *     
 463 :       IRET=0
 464 :       RETURN
 465 : *     
 466 : * Format handling
 467 : *     
 468 : *     
 469 : * Error handling
 470 : *     
 471 :  9999 CONTINUE
 472 :       IRET=1
 473 :       WRITE(IOIMP,*) 'An error was detected in subroutine ccgahu'
 474 :       RETURN
 475 : *     
 476 : * End of subroutine CCGAHU
 477 : *     
 478 :       END
 479 : 
 480 :  
 481 :  
 482 :  
 483 :  

© Cast3M 2003 - All rights reserved.
Disclaimer