C PRE42F SOURCE CHAT 06/03/29 21:30:02 5360 SUBROUTINE PRE42F(ORDTEM) C************************************************************************ C C PROJET : CASTEM 2000 C C NOM : PRE42F C C DESCRIPTION : Voir PRE2F C C Two Fluid flow C C 2nd order in space 1st or 2nd order in time C C Creation of the objects MCHAML IALPHF, IUVF, IULF, C IPF, ITVF, ITLF, IRVF, IRLF C C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI) C C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/TTMF C Modified for two-fluid flow by C Jose R. Garcia-Cascales C C************************************************************************ C C APPELES (Outils) : LIRTAB, ACMO, LEKTAB, QUETYP, ERREUR, LIROBJ, C QUEPOI, ECROBJ C C C APPELES (Calcul) : PRE52F (2D) PRE62F (3D) C C************************************************************************ C C HISTORIQUE (Anomalies et modifications éventuelles) C C HISTORIQUE : Créée le 26/04/2002. C C************************************************************************ C C C**** Variables de COOPTIO C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ & ,IOPER, IOSGB, IOGRA, IOSAU, IORES & ,IECHO, IIMPI, IOSPI & ,IDIM, IFICLE, IPREFI & ,MCOORD & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU & ,NORINC,NORVAL,NORIND,NORVAD & ,NUCROU, IPSAUV C C**** Les variables C INTEGER ORDTEM, ICOND, IRETOU, IERR0, INDIC, NBCOMP, & IDOMA, ICEN, IFACE, IFACEL, INORM, & IALPH, IGRALP, IALALP, & IUVC, IGRUVC, IALUVC, & IULC, IGRULC, IALULC, & IPC, IGRPC, IALPC, & ITVC, IGRTVC, IALTVC, & ITLC, IGRTLC, IALTLC, & IRVC, IRLC, & IALPHF, IUVF, IULF, IPF, ITVF, ITLF, IRVF, IRLF REAL*8 VALER, VAL1, VAL2, DELTAT CHARACTER*(4) NOMTOT(9) CHARACTER*(8) MTYPR CHARACTER*(40) MESERR LOGICAL LOGAN,LOGNEG, LOGBOR,LOGTEM C C**** Les Includes C -INC CCOPTIO C C C**** Initialisation des parametres d'erreur C LOGAN = .FALSE. LOGNEG = .FALSE. LOGBOR = .FALSE. MESERR = ' ' MOTERR(1:40) = MESERR(1:40) VALER = 0.0D0 VAL1 = 0.0D0 VAL2 = 0.0D0 C C**** Initialisation des NOMTOT C NOMTOT(1) = ' ' NOMTOT(2) = ' ' NOMTOT(3) = ' ' NOMTOT(4) = ' ' NOMTOT(5) = ' ' NOMTOT(6) = ' ' NOMTOT(7) = ' ' NOMTOT(8) = ' ' NOMTOT(9) = ' ' C C**** Lecture de la TABLE domaine (IDOMA) C ICOND = 1 CALL LIRTAB('DOMAINE',IDOMA,ICOND,IRETOU) IF (IERR .NE. 0) GOTO 9999 C C**** Lecture du MELEME SPG des points CENTRE. C C C CALL LEKTAB(IDOMA,'CENTRE',IP) C C**** Probleme du LEKTAB: si IDOMA.'CENTRE' n'existe pas, C il crèe IDOMA.'CENTRE' sans recrèer 'FACEL' C -> la correspondance global des noeuds saut! C C On peut utilizer ACCTAB ou ACMO C MTYPR = 'MAILLAGE' CALL ACMO(IDOMA,'CENTRE',MTYPR,ICEN) IF(IERR.NE.0)GOTO 9999 C C**** Lecture du MELEME 'FACE' C MTYPR = 'MAILLAGE' CALL ACMO(IDOMA,'FACE',MTYPR,IFACE) IF(IERR.NE.0)GOTO 9999 C C**** Lecture du MELEME 'FACEL' C MTYPR = 'MAILLAGE' CALL ACMO(IDOMA,'FACEL',MTYPR,IFACEL) IF(IERR.NE.0)GOTO 9999 C C**** Lecture du CHPOINT contenant les normales aux faces C IF(IDIM .EQ. 2)THEN C Que les normales CALL LEKTAB(IDOMA,'XXNORMAF',INORM) IF(IERR .NE. 0) GOTO 9999 ELSE C Les normales et les tangentes MTYPR = ' ' CALL ACMO(IDOMA,'MATROT',MTYPR,INORM) IF (MTYPR .NE. 'CHPOINT ') THEN CALL MATRAN(IDOMA,INORM) IF(IERR .NE. 0) GOTO 9999 ENDIF C ENDIF C C**** N.B. On veut lire les objets sequentiellement. C Donc on utilise QUETYP pour controler que C le type de l'objet soit le bon. C C**** Lecture du CHPOINT IALPH, VOID FRACTION C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IALPH,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT: QUEPOI C C INDIC = 1 -> on impose le pointeur du support geometrique (IM1) C INDIC = 0 -> on ne fait que verifier le support geometrique (IM1) C C NBCOMP > 0 -> numero des composantes C C NOMTOT(1) = ' ' obligatoire s'on connais pas les noms des composantes C INDIC = 1 NBCOMP = 1 NOMTOT(1) = 'SCAL' CALL QUEPOI(IALPH, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO1 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT GRADALP, void fraction gradient C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IGRALP,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT: QUEPOI C C INDIC = 1 -> on impose le pointeur du support geometrique (IM1) C INDIC = 0 -> on ne fait que verifier le support geometrique (IM1) C C NBCOMP = 2 -> on teste le noms des composantes C C NOMTOT(1) = ' ' obligatoire s'on connais pas les noms des composantes C INDIC = 1 NBCOMP = IDIM NOMTOT(1) = 'P1DX' NOMTOT(2) = 'P1DY' IF(IDIM .EQ. 3) NOMTOT(3) = 'P1DZ' CALL QUEPOI(IGRALP, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO2 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT IALALP, limited void fraction gradient C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IALALP,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT: QUEPOI C INDIC = 1 NBCOMP = 1 NOMTOT(1) = 'P1' CALL QUEPOI(IALALP, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO3 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT IUVC, VAPOUR VELOCITY C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IUVC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT C INDIC = 1 NBCOMP = IDIM NOMTOT(1) = 'UVX ' NOMTOT(2) = 'UVY ' IF(IDIM .EQ. 3) NOMTOT(3) = 'UVZ ' CALL QUEPOI(IUVC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO4 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT GRADUVC, vapour velocity gradient C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IGRUVC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT: QUEPOI C INDIC = 1 IF(IDIM .EQ.2)THEN NBCOMP = 4 NOMTOT(1) = 'P1DX' NOMTOT(2) = 'P1DY' NOMTOT(3) = 'P2DX' NOMTOT(4) = 'P2DY' ELSE NBCOMP = 9 NOMTOT(1) = 'P1DX' NOMTOT(2) = 'P1DY' NOMTOT(3) = 'P1DZ' NOMTOT(4) = 'P2DX' NOMTOT(5) = 'P2DY' NOMTOT(6) = 'P2DZ' NOMTOT(7) = 'P3DX' NOMTOT(8) = 'P3DY' NOMTOT(9) = 'P3DZ' ENDIF CALL QUEPOI(IGRUVC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO5 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT IALUVC, limited vapour velocity C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IALUVC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT: QUEPOI C INDIC = 1 NBCOMP = IDIM NOMTOT(1) = 'P1' NOMTOT(2) = 'P2' IF(IDIM .EQ. 3) NOMTOT(3) = 'P3 ' CALL QUEPOI(IALUVC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO6 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT IULC, LIQUID VELOCITY C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IULC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT C INDIC = 1 NBCOMP = IDIM NOMTOT(1) = 'ULX ' NOMTOT(2) = 'ULY ' IF(IDIM .EQ. 3) NOMTOT(3) = 'ULZ ' CALL QUEPOI(IULC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO4 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT GRADULC, liquid velocity gradient C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IGRULC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT: QUEPOI C INDIC = 1 IF(IDIM .EQ.2)THEN NBCOMP = 4 NOMTOT(1) = 'P1DX' NOMTOT(2) = 'P1DY' NOMTOT(3) = 'P2DX' NOMTOT(4) = 'P2DY' ELSE NBCOMP = 9 NOMTOT(1) = 'P1DX' NOMTOT(2) = 'P1DY' NOMTOT(3) = 'P1DZ' NOMTOT(4) = 'P2DX' NOMTOT(5) = 'P2DY' NOMTOT(6) = 'P2DZ' NOMTOT(7) = 'P3DX' NOMTOT(8) = 'P3DY' NOMTOT(9) = 'P3DZ' ENDIF CALL QUEPOI(IGRULC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO5 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT IALULC, limited vapour velocity C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IALULC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT: QUEPOI C INDIC = 1 NBCOMP = IDIM NOMTOT(1) = 'P1' NOMTOT(2) = 'P2' IF(IDIM .EQ. 3) NOMTOT(3) = 'P3 ' CALL QUEPOI(IALULC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO6 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT IPC, PRESSURE C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IPC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT C INDIC = 1 NBCOMP = 1 NOMTOT(1) = 'SCAL' CALL QUEPOI(IPC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO7 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT IGRPC, pressure gradient C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IGRPC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT: QUEPOI C C INDIC = 1 NBCOMP = IDIM NOMTOT(1) = 'P1DX' NOMTOT(2) = 'P1DY' IF( IDIM .EQ. 3) NOMTOT(3) = 'P1DZ' CALL QUEPOI(IGRPC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO8 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT IALPC, limited pressure gradient C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IALPC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT: QUEPOI C INDIC = 1 NBCOMP = 1 NOMTOT(1) = 'P1' CALL QUEPOI(IALPC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO9 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT ITVC, VAPOUR TEMPERATURE C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,ITVC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT C INDIC = 1 NBCOMP = 1 NOMTOT(1) = 'SCAL' CALL QUEPOI(ITVC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO10 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT IGRTVC, vapour temprerature gradient C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IGRTVC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT: QUEPOI C C INDIC = 1 NBCOMP = IDIM NOMTOT(1) = 'P1DX' NOMTOT(2) = 'P1DY' IF( IDIM .EQ. 3) NOMTOT(3) = 'P1DZ' CALL QUEPOI(IGRTVC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO11 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT IALTVC, limited vapour temperature gradient C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IALTVC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT: QUEPOI C INDIC = 1 NBCOMP = 1 NOMTOT(1) = 'P1' CALL QUEPOI(IALTVC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO12 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT ITLC, LIQUID TEMPERATURE C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,ITLC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT C INDIC = 1 NBCOMP = 1 NOMTOT(1) = 'SCAL' CALL QUEPOI(ITLC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO10 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT IGRTLC, liquid temprerature gradient C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IGRTLC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT: QUEPOI C C INDIC = 1 NBCOMP = IDIM NOMTOT(1) = 'P1DX' NOMTOT(2) = 'P1DY' IF( IDIM .EQ. 3) NOMTOT(3) = 'P1DZ' CALL QUEPOI(IGRTLC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO13 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT IALTLC, limited liquid temperature gradient C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IALTLC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT: QUEPOI C INDIC = 1 NBCOMP = 1 NOMTOT(1) = 'P1' CALL QUEPOI(IALTLC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO14 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT IRVC, VAPOUR DENSITY C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IRVC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF INDIC = 1 NBCOMP = 1 NOMTOT(1) = 'SCAL' CALL QUEPOI(IRVC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO15 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF C C**** Lecture du CHPOINT IRLC, LIQUID DENSITY C ICOND = 1 CALL QUETYP(MTYPR,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 IF(MTYPR .NE. 'CHPOINT ')THEN C C******* Message d'erreur standard C 37 2 C On ne trouve pas d'objet de type %m1:8 C MOTERR(1:8) = 'CHPOINT ' CALL ERREUR(37) GOTO 9999 ELSE ICOND = 1 CALL LIROBJ(MTYPR,IRLC,ICOND,IRETOU) IF (IERR.NE.0) GOTO 9999 ENDIF INDIC = 1 NBCOMP = 1 NOMTOT(1) = 'SCAL' CALL QUEPOI(IRLC, ICEN, INDIC, NBCOMP, NOMTOT) IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO16 = ??? ' CALL ERREUR(-301) GOTO 9999 ENDIF IF(ORDTEM .EQ. 1)THEN C C******* Deux Dimensions, Une Espece, 2er ordre en espace, 1er ordre en C temps C LOGTEM = .FALSE. DELTAT = 0.0D0 ELSE LOGTEM = .TRUE. ICOND = 1 CALL LIRREE(DELTAT,ICOND,IRETOU) IF(IERR .NE. 0)GOTO 9999 ENDIF IF(IDIM .EQ. 2)THEN C C******* Deux Dimensions, Une Espece, 1er ordre en espace, 1er ordre en C temps C CALL PRE52F(LOGTEM, & ICEN,IFACE,IFACEL,INORM, & IALPH, IGRALP, IALALP, & IUVC, IGRUVC, IALUVC, & IULC, IGRULC, IALULC, & IPC, IGRPC, IALPC, & ITVC, IGRTVC, IALTVC, & ITLC, IGRTLC, IALTLC, & IRVC, IRLC, & DELTAT, & IALPHF, IUVF, IULF, IPF, ITVF, ITLF, & IRVF, IRLF, & LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2) ELSE C C******* Trois Dimensions, Une Espece, 1er ordre en espace, 1er ordre en C temps C CALL PRE62F(LOGTEM, & ICEN,IFACE,IFACEL,INORM, & IALPH, IGRALP, IALALP, & IUVC, IGRUVC, IALUVC, & IULC, IGRULC, IALULC, & IPC, IGRPC, IALPC, & ITVC, IGRTVC, IALTVC, & ITLC, IGRTLC, IALTLC, & IRVC, IRLC, & DELTAT, & IALPHF, IUVF, IULF, IPF, ITVF, ITLF, & IRVF, IRLF, & LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2) ENDIF C C C**** Messages d'erreur C IF(LOGAN)THEN C C******* Anomalie detectée C C C******* Message d'erreur standard C -301 0 C %m1:40 C MOTERR(1:40) = MESERR(1:40) CALL ERREUR(-301) C C******* Message d'erreur standard C 5 3 C Erreur anormale.contactez votre support C CALL ERREUR(5) GOTO 9999 C ELSEIF(LOGNEG)THEN C C******* Message d'erreur standard C 41 2 C %m1:8 = %r1 inférieur à %r2 C MOTERR(1:8) = MESERR(1:8) REAERR(1) = REAL(VALER) REAERR(2) = 0.0 CALL ERREUR(41) GOTO 9999 ELSEIF(LOGBOR)THEN C C******* Message d'erreur standard C 42 2 C %m1:8 = %r1 non compris entre %r2 et %r3 C MOTERR(1:8) = MESERR(1:8) REAERR(1) = REAL(VALER) REAERR(2) = REAL(VAL1) REAERR(3) = REAL(VAL2) CALL ERREUR(42) GOTO 9999 ELSE C C******* Ecriture de IALPHF, IUVF, IULF, IPF, C ITVF, ITLF, IRVF, IRLF MTYPR = 'MCHAML' CALL ECROBJ(MTYPR, IALPHF) CALL ECROBJ(MTYPR, IUVF) CALL ECROBJ(MTYPR, IULF) CALL ECROBJ(MTYPR, IPF) CALL ECROBJ(MTYPR, ITVF) CALL ECROBJ(MTYPR, ITLF) CALL ECROBJ(MTYPR, IRVF) CALL ECROBJ(MTYPR, IRLF) ENDIF C 9999 CONTINUE C RETURN END