Download pre12.eso

Back to the list

   1 : C PRE12     SOURCE    CHAT      06/08/24    21:58:46     5529           
   2 :       SUBROUTINE PRE12(ORDTEM)
   3 : C************************************************************************
   4 : C
   5 : C PROJET            :  CASTEM 2000
   6 : C
   7 : C NOM               :  PRE12
   8 : C
   9 : C DESCRIPTION       :  Voir PRE1
  10 : C
  11 : C                      Gas gaz ideal, mono espece.
  12 : C
  13 : C                      2me ordre en espace (1er ou 2me ordre en temps)
  14 : C     
  15 : C                      Creations des object MCHAML IROF, IVITF, IPF,
  16 : C                      IGAMF
  17 : C
  18 : C LANGAGE           :  FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
  19 : C      
  20 : C AUTEUR            :  A. BECCANTINI, DRN/DMT/SEMT/TTMF
  21 : C     
  22 : C************************************************************************
  23 : C
  24 : C
  25 : C APPELES (Outils)  :  LIRTAB, ACMO, LEKTAB, QUETYP, ERREUR, LIROBJ, 
  26 : C                      QUEPOI, ECROBJ
  27 : C                      
  28 : C
  29 : C APPELES (Calcul)  :  PRE121 (2D)
  30 : C     
  31 : C
  32 : C************************************************************************
  33 : C
  34 : C HISTORIQUE (Anomalies et modifications éventuelles)
  35 : C
  36 : C HISTORIQUE :  Créée le 11.6.98.
  37 : C 
  38 : C************************************************************************
  39 : C
  40 : C
  41 : C**** Variables de COOPTIO
  42 : C
  43 : C      INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  44 : C     &        ,IOTER,   IOLEC,  IOIMP,     IOCAR,  IOACQ
  45 : C     &        ,IOPER,   IOSGB,  IOGRA,     IOSAU,  IORES
  46 : C     &        ,IECHO,   IIMPI,  IOSPI
  47 : C     &        ,IDIM
  48 : C     &        ,MCOORD      
  49 : C     &        ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  50 : C     &        ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  51 : C     &        ,NORINC,NORVAL,NORIND,NORVAD
  52 : C     &        ,NUCROU, IPSAUV, IFICLE, IPREFI
  53 : C
  54 : C**** Les variables
  55 : C
  56 :       IMPLICIT INTEGER(I-N)
  57 :       INTEGER   ORDTEM, ICOND,  IRETOU, IERR0, INDIC, NBCOMP
  58 :      &          ,IDOMA, ICEN, IFACE, IFACEL, INORM
  59 :      &          ,IROC, IGRROC, IALROC
  60 :      &          ,IVITC, IGRVC, IALVC
  61 :      &          ,IPC ,IGRPC, IALPC
  62 :      &          ,IGAMC, IROF, IVITF, IPF, IGAMF, INEFMD, JGN, JGM
  63 :      &          ,MMODEL
  64 :       REAL*8 VALER, VAL1, VAL2, DELTAT
  65 :       CHARACTER*(4)  NOMTOT(9)
  66 :       CHARACTER*(8) MTYPR, TYPE
  67 :       CHARACTER*(40) MESERR
  68 :       LOGICAL LOGAN,LOGNEG, LOGBOR,LOGTEM
  69 : C
  70 : C**** Les Includes
  71 : C
  72 : -INC CCOPTIO
  73 : -INC SMLMOTS
  74 :       POINTEUR MLMVIT.MLMOTS
  75 : C
  76 : C
  77 : C**** Initialisation des parametres d'erreur
  78 : C
  79 :       LOGAN = .FALSE.
  80 :       LOGNEG  = .FALSE.
  81 :       LOGBOR  = .FALSE.
  82 :       MESERR = '                                        '
  83 :       MOTERR(1:40) = MESERR(1:40)
  84 :       VALER = 0.0D0
  85 :       VAL1 = 0.0D0
  86 :       VAL2 = 0.0D0
  87 : C
  88 : C**** Initialisation des NOMTOT
  89 : C
  90 :       NOMTOT(1) = '    '
  91 :       NOMTOT(2) = '    '
  92 :       NOMTOT(3) = '    '
  93 :       NOMTOT(4) = '    '
  94 :       NOMTOT(5) = '    '
  95 :       NOMTOT(6) = '    '
  96 :       NOMTOT(7) = '    '
  97 :       NOMTOT(8) = '    '
  98 :       NOMTOT(9) = '    '
  99 : C
 100 : C**** Lecture de l'objet MODELE
 101 : C
 102 :       ICOND = 1
 102 :       CALL QUETYP(TYPE,ICOND,IRETOU)
 103 : 
 104 :       IF(IRETOU.EQ.0.AND.TYPE.NE.'MMODEL')THEN
 105 :         WRITE(6,*)' On attend un objet MMODEL'
 106 :         RETURN
 107 :       ENDIF
 107 :       CALL LIROBJ('MMODEL',MMODEL,ICOND,IRETOU)
 108 :       IF(IERR.NE.0)GOTO 9999
 108 :       CALL LEKMOD(MMODEL,IDOMA,INEFMD)
 109 :       IF(IERR.NE.0)GOTO 9999
 110 : C
 111 : C**** Lecture du MELEME SPG des points CENTRE.
 112 : C
 113 : C
 113 : C     CALL LEKTAB(IDOMA,'CENTRE',IP)
 114 : C
 115 : C**** Probleme du LEKTAB: si IDOMA.'CENTRE' n'existe pas,
 116 : C     il crèe IDOMA.'CENTRE' sans recrèer 'FACEL'
 117 : C     -> la correspondance global des noeuds saut!      
 118 : C
 119 : C     On peut utilizer ACCTAB ou ACMO
 120 : C      
 121 :       MTYPR = 'MAILLAGE'
 121 :       CALL ACMO(IDOMA,'CENTRE',MTYPR,ICEN)
 122 :       IF(IERR.NE.0)GOTO 9999
 123 : C
 124 : C**** Lecture du MELEME 'FACE'
 125 : C
 126 :       MTYPR = 'MAILLAGE'
 126 :       CALL ACMO(IDOMA,'FACE',MTYPR,IFACE)
 127 :       IF(IERR.NE.0)GOTO 9999
 128 : C
 129 : C**** Lecture du MELEME 'FACEL'
 130 : C
 131 :       MTYPR = 'MAILLAGE'
 131 :       CALL ACMO(IDOMA,'FACEL',MTYPR,IFACEL)
 132 :       IF(IERR.NE.0)GOTO 9999
 133 : C
 134 : C**** Lecture du CHPOINT contenant les normales aux faces
 135 : C
 136 :       IF(IDIM .EQ. 2)THEN
 137 : C        Que les normales
 137 :          CALL LEKTAB(IDOMA,'XXNORMAF',INORM)
 138 :          IF(IERR .NE. 0) GOTO 9999
 139 :          JGN = 4
 140 :          JGM = 2
 141 :          SEGINI MLMVIT
 142 :          MLMVIT.MOTS(1) = 'UX  '
 143 :          MLMVIT.MOTS(2) = 'UY  '
 143 :          CALL QUEPO1(INORM, IFACE, MLMVIT)
 144 :          SEGSUP MLMVIT
 145 :       ELSE
 146 : C      Les normales et les tangentes
 147 :       MTYPR = ' '
 147 :       CALL ACMO(IDOMA,'MATROT',MTYPR,INORM)
 148 :       IF (MTYPR .NE. 'CHPOINT ') THEN         
 148 :          CALL MATRAN(IDOMA,INORM)
 149 :          IF(IERR .NE. 0) GOTO 9999
 150 :       ENDIF
 151 :          JGN = 4
 152 :          JGM = 9
 153 :          SEGINI MLMVIT
 154 :          MLMVIT.MOTS(1) = 'UX  '
 155 :          MLMVIT.MOTS(2) = 'UY  '
 156 :          MLMVIT.MOTS(3) = 'UZ  '
 157 :          MLMVIT.MOTS(4) = 'RX  '
 158 :          MLMVIT.MOTS(5) = 'RY  '
 159 :          MLMVIT.MOTS(6) = 'RZ  '
 160 :          MLMVIT.MOTS(7) = 'MX  '
 161 :          MLMVIT.MOTS(8) = 'MY  '
 162 :          MLMVIT.MOTS(9) = 'MZ  '
 162 :          CALL QUEPO1(INORM, IFACE, MLMVIT)
 163 :          SEGSUP MLMVIT
 164 :          IF(IERR .NE. 0) GOTO 9999
 165 :       ENDIF
 166 : C
 167 : C**** N.B. On veut lire les objets sequentiellement. 
 168 : C     Donc on utilise QUETYP pour controler que 
 169 : C     le type de l'objet soit le bon.
 170 : C      
 171 : C**** Lecture du CHPOINT ROC
 172 : C
 173 :       ICOND = 1
 173 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 174 :       IF(IERR .NE. 0)GOTO 9999
 175 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 176 : C
 177 : C******* Message d'erreur standard
 178 : C        37 2
 179 : C        On ne trouve pas d'objet de type %m1:8
 180 : C     
 181 :          MOTERR(1:8) = 'CHPOINT ' 
 181 :          CALL ERREUR(37)
 182 :          GOTO 9999
 183 :       ELSE
 184 :          ICOND = 1
 184 :          CALL LIROBJ(MTYPR,IROC,ICOND,IRETOU)
 185 :          IF(IERR .NE. 0)GOTO 9999
 186 :       ENDIF         
 187 : C
 188 : C**** Control du CHPOINT: QUEPOI
 189 : C      
 190 : C     INDIC = 1   -> on impose le pointeur du support geometrique (IM1)
 191 : C     INDIC = 0   -> on ne fait que verifier le support geometrique (IM1)
 192 : C
 193 : C     NBCOMP > 0 -> numero des composantes      
 194 : C
 195 : C     NOMTOT(1) = ' ' obligatoire s'on connais pas les noms des composantes
 196 : C
 197 :       INDIC = 1
 198 :       NBCOMP = 1
 199 :       NOMTOT(1) = 'SCAL'
 199 :       CALL QUEPOI(IROC, ICEN, INDIC, NBCOMP, NOMTOT)
 200 :       IF(IERR .NE. 0)THEN
 201 :          IERR0 = IERR
 202 : 
 203 : C
 204 : C******* Message d'erreur standard
 205 : C        -301 0 %m1:40
 206 : C
 207 :          MOTERR(1:40)  = 'CHPO1 = ???                             '      
 207 :          CALL ERREUR(-301)         
 208 : 
 209 :          GOTO 9999
 210 :       ENDIF
 211 : C      
 212 : C**** Lecture du CHPOINT GRADROC
 213 : C
 214 :       ICOND = 1
 214 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 215 :       IF(IERR .NE. 0)GOTO 9999
 216 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 217 : C
 218 : C******* Message d'erreur standard
 219 : C        37 2
 220 : C        On ne trouve pas d'objet de type %m1:8
 221 : C     
 222 :          MOTERR(1:8) = 'CHPOINT ' 
 222 :          CALL ERREUR(37)
 223 :          GOTO 9999
 224 :       ELSE
 225 :          ICOND = 1
 225 :          CALL LIROBJ(MTYPR,IGRROC,ICOND,IRETOU)
 226 :          IF (IERR.NE.0) GOTO 9999
 227 :       ENDIF         
 228 : C
 229 : C**** Control du CHPOINT: QUEPOI
 230 : C      
 231 : C     INDIC = 1   -> on impose le pointeur du support geometrique (IM1)
 232 : C     INDIC = 0   -> on ne fait que verifier le support geometrique (IM1)
 233 : C
 234 : C     NBCOMP = 2 -> on teste le noms des composantes      
 235 : C
 236 : C     NOMTOT(1) = ' ' obligatoire s'on connais pas les noms des composantes
 237 : C
 238 :       INDIC = 1
 239 :       NBCOMP = IDIM
 240 :       NOMTOT(1) = 'P1DX'
 241 :       NOMTOT(2) = 'P1DY'
 242 :       IF(IDIM .EQ. 3) NOMTOT(3) = 'P1DZ'
 242 :       CALL QUEPOI(IGRROC, ICEN, INDIC, NBCOMP, NOMTOT)
 243 :       IF(IERR .NE. 0)THEN
 244 :          IERR0 = IERR
 245 : 
 246 : C
 247 : C******* Message d'erreur standard
 248 : C        -301 0 %m1:40
 249 : C
 250 :          MOTERR(1:40)  = 'CHPO2 = ???                             '      
 250 :          CALL ERREUR(-301)         
 251 : 
 252 :          GOTO 9999
 253 :       ENDIF
 254 : C      
 255 : C**** Lecture du CHPOINT IALROC
 256 : C
 257 :       ICOND = 1
 257 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 258 :       IF(IERR .NE. 0)GOTO 9999
 259 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 260 : C
 261 : C******* Message d'erreur standard
 262 : C        37 2
 263 : C        On ne trouve pas d'objet de type %m1:8
 264 : C     
 265 :          MOTERR(1:8) = 'CHPOINT ' 
 265 :          CALL ERREUR(37)
 266 :          GOTO 9999
 267 :       ELSE
 268 :          ICOND = 1
 268 :          CALL LIROBJ(MTYPR,IALROC,ICOND,IRETOU)
 269 :          IF (IERR.NE.0) GOTO 9999
 270 :       ENDIF         
 271 : C
 272 : C**** Control du CHPOINT: QUEPOI
 273 : C      
 274 :       INDIC = 1
 275 :       NBCOMP = 1
 276 :       NOMTOT(1) = 'P1'
 276 :       CALL QUEPOI(IALROC, ICEN, INDIC, NBCOMP, NOMTOT)
 277 :       IF(IERR .NE. 0)THEN
 278 :          IERR0 = IERR
 279 : 
 280 : C
 281 : C******* Message d'erreur standard
 282 : C        -301 0 %m1:40
 283 : C
 284 :          MOTERR(1:40)  = 'CHPO3 = ???                             '      
 284 :          CALL ERREUR(-301)         
 285 : 
 286 :          GOTO 9999
 287 :       ENDIF
 288 : C
 289 : C      
 290 : C**** Lecture du CHPOINT VITC
 291 : C
 292 :       ICOND = 1
 292 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 293 :       IF(IERR .NE. 0)GOTO 9999
 294 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 295 : C
 296 : C******* Message d'erreur standard
 297 : C        37 2
 298 : C        On ne trouve pas d'objet de type %m1:8
 299 : C     
 300 :          MOTERR(1:8) = 'CHPOINT ' 
 300 :          CALL ERREUR(37)
 301 :          GOTO 9999
 302 :       ELSE
 303 :          ICOND = 1
 303 :          CALL LIROBJ(MTYPR,IVITC,ICOND,IRETOU)
 304 :          IF (IERR.NE.0) GOTO 9999
 305 :       ENDIF         
 306 : C
 307 : C**** Control du CHPOINT
 308 : C     
 309 :       INDIC = 1
 310 :       NBCOMP = IDIM
 311 :       NOMTOT(1) = 'UX  '
 312 :       NOMTOT(2) = 'UY  '
 313 :       IF(IDIM .EQ. 3) NOMTOT(3) = 'UZ  '
 313 :       CALL QUEPOI(IVITC, ICEN, INDIC, NBCOMP, NOMTOT)
 314 :       IF(IERR .NE. 0)THEN
 315 :          IERR0 = IERR
 316 : 
 317 : C
 318 : C******* Message d'erreur standard
 319 : C        -301 0 %m1:40
 320 : C
 321 :          MOTERR(1:40)  = 'CHPO4 = ???                             '      
 321 :          CALL ERREUR(-301)         
 322 : 
 323 :          GOTO 9999
 324 :       ENDIF  
 325 : C      
 326 : C**** Lecture du CHPOINT GRADVITC
 327 : C
 328 :       ICOND = 1
 328 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 329 :       IF(IERR .NE. 0)GOTO 9999
 330 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 331 : C
 332 : C******* Message d'erreur standard
 333 : C        37 2
 334 : C        On ne trouve pas d'objet de type %m1:8
 335 : C     
 336 :          MOTERR(1:8) = 'CHPOINT ' 
 336 :          CALL ERREUR(37)
 337 :          GOTO 9999
 338 :       ELSE
 339 :          ICOND = 1
 339 :          CALL LIROBJ(MTYPR,IGRVC,ICOND,IRETOU)
 340 :          IF (IERR.NE.0) GOTO 9999
 341 :       ENDIF         
 342 : C
 343 : C**** Control du CHPOINT: QUEPOI
 344 : C      
 345 :       INDIC = 1
 346 :       IF(IDIM .EQ.2)THEN
 347 :          NBCOMP = 4
 348 :          NOMTOT(1) = 'P1DX'
 349 :          NOMTOT(2) = 'P1DY'
 350 :          NOMTOT(3) = 'P2DX'
 351 :          NOMTOT(4) = 'P2DY'
 352 :       ELSE
 353 :          NBCOMP = 9
 354 :          NOMTOT(1) = 'P1DX'
 355 :          NOMTOT(2) = 'P1DY'
 356 :          NOMTOT(3) = 'P1DZ'
 357 :          NOMTOT(4) = 'P2DX'
 358 :          NOMTOT(5) = 'P2DY'
 359 :          NOMTOT(6) = 'P2DZ'
 360 :          NOMTOT(7) = 'P3DX'
 361 :          NOMTOT(8) = 'P3DY'
 362 :          NOMTOT(9) = 'P3DZ'
 363 :       ENDIF
 363 :       CALL QUEPOI(IGRVC, ICEN, INDIC, NBCOMP, NOMTOT)
 364 :       IF(IERR .NE. 0)THEN
 365 :          IERR0 = IERR
 366 : 
 367 : C
 368 : C******* Message d'erreur standard
 369 : C        -301 0 %m1:40
 370 : C
 371 :          MOTERR(1:40)  = 'CHPO5 = ???                             '      
 371 :          CALL ERREUR(-301)         
 372 : 
 373 :          GOTO 9999
 374 :       ENDIF
 375 : C      
 376 : C**** Lecture du CHPOINT IALVC
 377 : C
 378 :       ICOND = 1
 378 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 379 :       IF(IERR .NE. 0)GOTO 9999
 380 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 381 : C
 382 : C******* Message d'erreur standard
 383 : C        37 2
 384 : C        On ne trouve pas d'objet de type %m1:8
 385 : C     
 386 :          MOTERR(1:8) = 'CHPOINT ' 
 386 :          CALL ERREUR(37)
 387 :          GOTO 9999
 388 :       ELSE
 389 :          ICOND = 1
 389 :          CALL LIROBJ(MTYPR,IALVC,ICOND,IRETOU)
 390 :          IF (IERR.NE.0) GOTO 9999
 391 :       ENDIF         
 392 : C
 393 : C**** Control du CHPOINT: QUEPOI
 394 : C      
 395 :       INDIC = 1
 396 :       NBCOMP = IDIM
 397 :       NOMTOT(1) = 'P1'
 398 :       NOMTOT(2) = 'P2'
 399 :       IF(IDIM .EQ. 3) NOMTOT(3) = 'P3  '
 399 :       CALL QUEPOI(IALVC, ICEN, INDIC, NBCOMP, NOMTOT)
 400 :       IF(IERR .NE. 0)THEN
 401 :          IERR0 = IERR
 402 : 
 403 : C
 404 : C******* Message d'erreur standard
 405 : C        -301 0 %m1:40
 406 : C
 407 :          MOTERR(1:40)  = 'CHPO6 = ???                             '      
 407 :          CALL ERREUR(-301)         
 408 : 
 409 :          GOTO 9999
 410 :       ENDIF
 411 : C
 412 : C**** Lecture du CHPOINT PC
 413 : C
 414 :       ICOND = 1
 414 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 415 :       IF(IERR .NE. 0)GOTO 9999
 416 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 417 : C
 418 : C******* Message d'erreur standard
 419 : C        37 2
 420 : C        On ne trouve pas d'objet de type %m1:8
 421 : C     
 422 :          MOTERR(1:8) = 'CHPOINT ' 
 422 :          CALL ERREUR(37)
 423 :          GOTO 9999
 424 :       ELSE
 425 :          ICOND = 1
 425 :          CALL LIROBJ(MTYPR,IPC,ICOND,IRETOU)
 426 :          IF (IERR.NE.0) GOTO 9999
 427 :       ENDIF         
 428 : C
 429 : C**** Control du CHPOINT
 430 : C     
 431 :       INDIC = 1
 432 :       NBCOMP = 1
 433 :       NOMTOT(1) = 'SCAL'
 433 :       CALL QUEPOI(IPC, ICEN, INDIC, NBCOMP, NOMTOT)
 434 :       IF(IERR .NE. 0)THEN
 435 :          IERR0 = IERR
 436 : 
 437 : C
 438 : C******* Message d'erreur standard
 439 : C        -301 0 %m1:40
 440 : C
 441 :          MOTERR(1:40)  = 'CHPO7 = ???                             '      
 441 :          CALL ERREUR(-301)
 442 : 
 443 :          GOTO 9999
 444 :       ENDIF 
 445 : C      
 446 : C**** Lecture du CHPOINT GRADPC
 447 : C
 448 :       ICOND = 1
 448 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 449 :       IF(IERR .NE. 0)GOTO 9999
 450 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 451 : C
 452 : C******* Message d'erreur standard
 453 : C        37 2
 454 : C        On ne trouve pas d'objet de type %m1:8
 455 : C     
 456 :          MOTERR(1:8) = 'CHPOINT ' 
 456 :          CALL ERREUR(37)
 457 :          GOTO 9999
 458 :       ELSE
 459 :          ICOND = 1
 459 :          CALL LIROBJ(MTYPR,IGRPC,ICOND,IRETOU)
 460 :          IF (IERR.NE.0) GOTO 9999
 461 :       ENDIF         
 462 : C
 463 : C**** Control du CHPOINT: QUEPOI
 464 : C      
 465 : C
 466 :       INDIC = 1
 467 :       NBCOMP = IDIM
 468 :       NOMTOT(1) = 'P1DX'
 469 :       NOMTOT(2) = 'P1DY'
 470 :       IF( IDIM  .EQ. 3) NOMTOT(3) = 'P1DZ'
 470 :       CALL QUEPOI(IGRPC, ICEN, INDIC, NBCOMP, NOMTOT)
 471 :       IF(IERR .NE. 0)THEN
 472 :          IERR0 = IERR
 473 : 
 474 : C
 475 : C******* Message d'erreur standard
 476 : C        -301 0 %m1:40
 477 : C
 478 :          MOTERR(1:40)  = 'CHPO8 = ???                             '      
 478 :          CALL ERREUR(-301)         
 479 : 
 480 :          GOTO 9999
 481 :       ENDIF
 482 : C      
 483 : C**** Lecture du CHPOINT IALPC
 484 : C
 485 :       ICOND = 1
 485 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 486 :       IF(IERR .NE. 0)GOTO 9999
 487 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 488 : C
 489 : C******* Message d'erreur standard
 490 : C        37 2
 491 : C        On ne trouve pas d'objet de type %m1:8
 492 : C     
 493 :          MOTERR(1:8) = 'CHPOINT ' 
 493 :          CALL ERREUR(37)
 494 :          GOTO 9999
 495 :       ELSE
 496 :          ICOND = 1
 496 :          CALL LIROBJ(MTYPR,IALPC,ICOND,IRETOU)
 497 :          IF (IERR.NE.0) GOTO 9999
 498 :       ENDIF         
 499 : C
 500 : C**** Control du CHPOINT: QUEPOI
 501 : C      
 502 :       INDIC = 1
 503 :       NBCOMP = 1
 504 :       NOMTOT(1) = 'P1'
 504 :       CALL QUEPOI(IALPC, ICEN, INDIC, NBCOMP, NOMTOT)
 505 :       IF(IERR .NE. 0)THEN
 506 :          IERR0 = IERR
 507 : 
 508 : C
 509 : C******* Message d'erreur standard
 510 : C        -301 0 %m1:40
 511 : C
 512 :          MOTERR(1:40)  = 'CHPO9 = ???                             '      
 512 :          CALL ERREUR(-301)         
 513 : 
 514 :          GOTO 9999
 515 :       ENDIF
 516 : C
 517 : C**** Lecture du CHPOINT GAMC
 518 : C
 519 :       ICOND = 1
 519 :       CALL QUETYP(MTYPR,ICOND,IRETOU)
 520 :       IF(IERR .NE. 0)GOTO 9999
 521 :       IF(MTYPR .NE. 'CHPOINT ')THEN
 522 : C
 523 : C******* Message d'erreur standard
 524 : C        37 2
 525 : C        On ne trouve pas d'objet de type %m1:8
 526 : C     
 527 :          MOTERR(1:8) = 'CHPOINT ' 
 527 :          CALL ERREUR(37)
 528 :          GOTO 9999
 529 :       ELSE
 530 :          ICOND = 1
 530 :          CALL LIROBJ(MTYPR,IGAMC,ICOND,IRETOU)
 531 :          IF (IERR.NE.0) GOTO 9999
 532 :       ENDIF         
 533 : C
 534 : C**** Control du CHPOINT
 535 : C     
 536 :       INDIC = 1
 537 :       NBCOMP = 1
 538 :       NOMTOT(1) = 'SCAL'
 538 :       CALL QUEPOI(IGAMC, ICEN, INDIC, NBCOMP, NOMTOT)
 539 :       IF(IERR .NE. 0)THEN
 540 :          IERR0 = IERR
 541 : 
 542 : C
 543 : C******* Message d'erreur standard
 544 : C        -301 0 %m1:40
 545 : C
 546 :          MOTERR(1:40)  = 'CHPO10 = ???                            '      
 546 :          CALL ERREUR(-301)
 547 : 
 548 :          GOTO 9999
 549 :       ENDIF
 550 :       IF(ORDTEM .EQ. 1)THEN
 551 : C
 552 : C******* Deux Dimensions, Une Espece, 2er ordre en espace, 1er ordre en
 553 : C        temps
 554 : C
 555 :          LOGTEM = .FALSE.
 556 :          DELTAT = 0.0D0
 557 :       ELSE
 558 :          LOGTEM = .TRUE.
 559 :          ICOND = 1
 559 :          CALL LIRREE(DELTAT,ICOND,IRETOU)
 560 :          IF(IERR .NE. 0)GOTO 9999
 561 :       ENDIF
 562 :       IF(IDIM .EQ. 2)THEN
 563 : C
 564 : C******* Deux Dimensions, Une Espece, 1er ordre en espace, 1er ordre en
 565 : C        temps
 566 : C
 566 :       CALL PRE121(LOGTEM,
 567 :      &     ICEN,IFACE,IFACEL,INORM,
 568 :      &     IROC, IGRROC, IALROC,
 569 :      &     IVITC, IGRVC, IALVC,
 570 :      &     IPC ,IGRPC, IALPC,
 571 :      &     IGAMC,
 572 :      &     DELTAT,
 573 :      &     IROF,IVITF,IPF,IGAMF,
 574 :      &     LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2)
 575 :       ELSE
 576 : C
 577 : C******* Trois Dimensions, Une Espece, 1er ordre en espace, 1er ordre en
 578 : C        temps
 579 : C
 579 :       CALL PRE122(LOGTEM,
 580 :      &     ICEN,IFACE,IFACEL,INORM,
 581 :      &     IROC, IGRROC, IALROC,
 582 :      &     IVITC, IGRVC, IALVC,
 583 :      &     IPC ,IGRPC, IALPC,
 584 :      &     IGAMC,
 585 :      &     DELTAT,
 586 :      &     IROF,IVITF,IPF,IGAMF,
 587 :      &     LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2)
 588 :       ENDIF
 589 : C
 590 : C
 591 : C**** Messages d'erreur      
 592 : C
 593 :       IF(LOGAN)THEN
 594 : C
 595 : C******* Anomalie detectée
 596 : C
 597 : C
 598 : C******* Message d'erreur standard
 599 : C        -301 0
 600 : C        %m1:40
 601 : C
 602 :          MOTERR(1:40) =  MESERR(1:40)
 602 :          CALL ERREUR(-301)
 603 : C
 604 : C******* Message d'erreur standard
 605 : C        5 3
 606 : C        Erreur anormale.contactez votre support
 607 : C         
 607 :          CALL ERREUR(5)
 608 :          GOTO 9999
 609 : C         
 610 :       ELSEIF(LOGNEG)THEN
 611 : C
 612 : C******* Message d'erreur standard
 613 : C        41 2
 614 : C        %m1:8 = %r1 inférieur à %r2
 615 : C
 616 :          MOTERR(1:8) = MESERR(1:8)
 617 :          REAERR(1) = REAL(VALER)
 618 :          REAERR(2) = 0.0
 618 :          CALL ERREUR(41)
 619 :          GOTO 9999
 620 :       ELSEIF(LOGBOR)THEN
 621 : C
 622 : C******* Message d'erreur standard
 623 : C        42 2
 624 : C        %m1:8 = %r1 non compris entre %r2 et %r3
 625 : C
 626 :          MOTERR(1:8) = MESERR(1:8)
 627 :          REAERR(1) = REAL(VALER)
 628 :          REAERR(2) = REAL(VAL1)
 629 :          REAERR(3) = REAL(VAL2)
 629 :          CALL ERREUR(42)
 630 :          GOTO 9999
 631 :       ELSE
 632 : C
 633 : C******* Ecriture de ROF, VITF, PF
 634 : C
 635 :          MTYPR = 'MCHAML'
 635 :          CALL ECROBJ(MTYPR,IGAMF)
 635 :          CALL ECROBJ(MTYPR,IPF)
 635 :          CALL ECROBJ(MTYPR,IVITF)
 635 :          CALL ECROBJ(MTYPR,IROF)
 636 :       ENDIF  
 637 : C                  
 638 :  9999 CONTINUE
 639 : C      
 640 :       RETURN                                                                    
 641 :       END
 642 : 
 643 : 
 644 :  
 645 :  
 646 :  
 647 :  
 648 :  
 649 :  
 650 :  
 651 :  
 652 :  

© Cast3M 2003 - All rights reserved.
Disclaimer