pre12f
C PRE12F SOURCE CB215821 19/07/31 21:16:18 10277 C************************************************************************ C C PROJET : CASTEM 2000 C C NOM : PRE12F C C DESCRIPTION : Voir PRE2F C C 1st order in space and 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 C APPELES (Outils) : LIRTAB, ACMO, LEKTAB, QUETYP, ERREUR, LIROBJ, C QUEPOI, ECROBJ C C APPELES (Calcul) : PRE22F (2D), PRE32F (3D) C C C************************************************************************ C C HISTORIQUE (Anomalies et modifications éventuelles) C C HISTORIQUE : Créée le 21/02/2002. C C************************************************************************ C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C C**** Les variables C & IDOMA, ICEN, IFACE, IFACEL, INORM, & IALPH, IUVC, IULC, IPC, ITVC, ITLC, IRVC, IRLC, & IALPHF, IUVF, IULF, IPF, ITVF, ITLF, IRVF, IRLF REAL*8 VALER, VAL1, VAL2 CHARACTER*(4) NOMTOT(3) CHARACTER*(8) MTYPR CHARACTER*(40) MESERR LOGICAL LOGAN,LOGNEG, LOGBOR C C**** Les Includes C -INC PPARAM -INC CCOPTIO 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) = ' ' C C**** Lecture de la TABLE domaine (IDOMA) C ICOND = 1 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' IF(IERR.NE.0)GOTO 9999 C C**** Lecture du MELEME 'FACE' C MTYPR = 'MAILLAGE' IF(IERR.NE.0)GOTO 9999 C C**** Lecture du MELEME 'FACEL' C MTYPR = 'MAILLAGE' 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 IF(IERR .NE. 0) GOTO 9999 ELSE C Les normales et les tangentes MTYPR = ' ' IF (MTYPR .NE. 'CHPOINT ') THEN IF(IERR .NE. 0) GOTO 9999 ENDIF C ENDIF C C C**** Lecture du CHPOINT IALPH, VOID FRACTION C ICOND = 1 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 ' GOTO 9999 ELSE ICOND = 1 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 NOMTOT(1) = 'SCAL' IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO1 = ??? ' GOTO 9999 ENDIF C C**** Lecture du CHPOINT IUVC, VAPOUR VELOCITY C ICOND = 1 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 ' GOTO 9999 ELSE ICOND = 1 IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT C NBCOMP = IDIM NOMTOT(1) = 'UVX' NOMTOT(2) = 'UVY' IF(IDIM .EQ. 3) NOMTOT(3) = 'UVZ' IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO2 = ??? ' GOTO 9999 ENDIF C C**** Lecture du CHPOINT IULC, LIQUID VELOCITY C ICOND = 1 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 ' GOTO 9999 ELSE ICOND = 1 IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT C NBCOMP = IDIM NOMTOT(1) = 'ULX' NOMTOT(2) = 'ULY' IF(IDIM .EQ. 3) NOMTOT(3) = 'ULZ' IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO3 = ??? ' GOTO 9999 ENDIF C C**** Lecture du CHPOINT IPC, PRESSURE C ICOND = 1 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 ' GOTO 9999 ELSE ICOND = 1 IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT C NOMTOT(1) = 'SCAL' IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO4 = ??? ' GOTO 9999 ENDIF C C**** Lecture du CHPOINT ITVC, VAPOUR TEMPERATURE C ICOND = 1 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 ' GOTO 9999 ELSE ICOND = 1 IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT C NOMTOT(1) = 'SCAL' IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO5 = ??? ' GOTO 9999 ENDIF C C**** Lecture du CHPOINT ITLC, LIQUID TEMPERATURE C ICOND = 1 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 ' GOTO 9999 ELSE ICOND = 1 IF (IERR.NE.0) GOTO 9999 ENDIF C C**** Control du CHPOINT C NOMTOT(1) = 'SCAL' IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO6 = ??? ' GOTO 9999 ENDIF C C**** Lecture du CHPOINT IRVC, VAPOUR DENSITY C ICOND = 1 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 ' GOTO 9999 ELSE ICOND = 1 IF (IERR.NE.0) GOTO 9999 ENDIF NOMTOT(1) = 'SCAL' IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO7 = ??? ' GOTO 9999 ENDIF C C**** Lecture du CHPOINT IRLC, LIQUID DENSITY C ICOND = 1 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 ' GOTO 9999 ELSE ICOND = 1 IF (IERR.NE.0) GOTO 9999 ENDIF NOMTOT(1) = 'SCAL' IF(IERR .NE. 0)THEN IERR0 = IERR C C******* Message d'erreur standard C -301 0 %m1:40 C MOTERR(1:40) = 'CHPO8 = ??? ' IERR = IERR0 GOTO 9999 ENDIF C C**** Centre -> Face C IF(IDIM .EQ. 2)THEN C C******* Two Dimensions, 1st order in time and space C & IALPH, IUVC, IULC, IPC, ITVC, ITLC, IRVC, IRLC, & IALPHF, IUVF, IULF, IPF, ITVF, ITLF, & IRVF, IRLF, & LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2) ELSE C C******* Three dimensions, 1st order in time and space C & IALPH, IUVC, IULC, IPC, ITVC, ITLC, IRVC, IRLC, & IALPHF, IUVF, IULF, IPF, ITVF, ITLF, & IRVF, IRLF, & LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2) ENDIF 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) C C******* Message d'erreur standard C 5 3 C Erreur anormale.contactez votre support C 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 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) GOTO 9999 ELSE C C******* Ecriture de ROF, VITF, PF C MTYPR = 'MCHAML ' ENDIF C 9999 CONTINUE END
© Cast3M 2003 - Tous droits réservés.
Mentions légales