1 : C VARI SOURCE CHAT 06/08/24 22:12:43 5529 2 : SUBROUTINE VARI 3 : *_______________________________________________________________________ 4 : * 5 : * Calcul d'un champ variable 6 : * ( MCHAML, CHPOINT ) 7 : * 8 : * 9 : * 1 ère Possibilité 10 : * °°°°°°°°°°°°°°°°° 11 : * 12 : * Variation d'un champ en fonction d'une loi de variation 13 : * 14 : * CHEL2 = VARI ! MODL1 CHEL1 EVOL1 ! (MOT1) ; 15 : * ! MODL1 CHPO1 EVOL1 ! 16 : * ou 17 : * CHPO2 = VARI CHPO1 EVOL1 (MOT2); 18 : * 19 : * CHEL1 Champ donne, type MCHAML 20 : * CHPO1 Champ donne, type CHPOINT 21 : * EVOL1 Objet definissant la loi de variation, type EVOLUTION 22 : * MODL1 Modele de calcul, type MMODEL 23 : * MOT1 Objet de type MOT precisant le support du champ scalaire 24 : * MOT2 Nom a donner a la composante du CHPOINT resultat 25 : * 26 : * 27 : * 2 eme Possibilité 28 : * °°°°°°°°°°°°°°°°° 29 : * 30 : * Variation d'un champ/element ayant un ou des composante(s) 31 : * de type EVOLUTION ou NUAGE en fonction d'un champ/point 32 : * ou d'un champ/element. Ce champ/point ou champ/element 33 : * ne doit avoir qu'une seul composante de nom quelconque. 34 : * (Exemple d'application : variation des caracteristiques 35 : * de matériaux en fonction de la température). 36 : * 37 : * CHEL2 = VARI 'NUAG' MODL1 CHEL1 CHEP1 (MOT1) ; 38 : * 39 : * CHEL1 Champ donne, type MCHAML 40 : * CHEP1 Champ donne, type CHPOINT ou MCHAML 41 : * MODL1 Modele de calcul, type MMODEL 42 : * MOT1 Objet de type MOT precisant le support du champ. 43 : * Si il est absent, le support du champ CHEL2 44 : * sera le support RIGIDITE 45 : * 46 : *______________________________________________________________________ 47 : * 48 : IMPLICIT INTEGER(I-N) 49 : IMPLICIT REAL*8 (A-H,O-Z) 50 : -INC CCOPTIO 51 : -INC SMCOORD 52 : * 53 : CHARACTER*8 MOCHAM(5),MOFLUI(21) 54 : CHARACTER*(4) MOT2 55 : CHARACTER*4 MONUAG(1) 56 : CHARACTER*72 CHAR 57 : DATA MOFLUI/'CPLIQ ','HLS ','HVS ','LATENT ', 58 : & 'PSATT ','PVAP ','ROLIQ ','ROVAP ', 59 : & 'TLIQUID ','TSATP ','ZVAP ','TODIFF ', 60 : C!! & 'TOCOND '/ 61 : & 'TOCOND ','DHVDT ','DHVDP ','DHLDP ', 62 : & 'DPSAT ','DZVDP ','DZVDT ','DRVDP ', 63 : & 'DRVDT '/ 64 : DATA MONUAG/'NUAG'/ 65 : DATA MOCHAM/'NOEUD ','GRAVITE ','RIGIDITE','MASSE ', 66 : & 'STRESSES'/ 67 : * 68 : INUAGE = 0 69 : IFLUI = 0 70 : MICHE = 1 71 : IPCHA1 = 0 72 : IPMODL = 0 73 : * 74 : * On cherche une des entrées des tables de l'eau 75 : * 75 : CALL LIRMOT(MOFLUI,21,IFLUI,0) 76 : IF (IERR.NE.0) GOTO 666 77 : IF (IFLUI.NE.0) THEN 77 : CALL VARIO(IFLUI) 78 : ELSE 79 : * 80 : * On cherche la présence du mot clé NUAG 81 : * 81 : CALL LIRMOT(MONUAG,1,INUAGE,0) 82 : IF (IERR.NE.0) GOTO 666 83 : * 84 : * Lecture d'un premier objet (CHPOINT, MMODEL) 85 : * 85 : CALL LIROBJ('MMODEL',IPMODL,INUAGE,IRETM) 86 : IF(IERR.NE.0) RETURN 87 : IF(IRETM.EQ.0) GOTO 110 87 : CALL LIROBJ('MCHAML ',IRET,INUAGE,IPOLI1) 88 : IF(IERR.NE.0) RETURN 89 : IF(IPOLI1.EQ.0) GOTO 110 90 : MICHE=0 91 : IF(INUAGE.EQ.1) GOTO 300 92 : GO TO 200 93 : * 93 : 110 CALL LIROBJ('CHPOINT ',IRET,0,IPOLI1) 94 : IF(IPOLI1.EQ.0) GOTO 120 95 : GO TO 200 96 : C 97 : C PAS D OPERANDE CORRECTE TROUVE 98 : C 98 : 120 CALL QUETYP(MOTERR(1:8),0,IRETOU) 99 : IF(IRETOU.NE.0) THEN 99 : CALL ERREUR (39) 100 : ELSE 100 : CALL ERREUR(533) 101 : ENDIF 102 : RETURN 103 : * 104 : 200 IRE1=IRET 105 : * 106 : * Lecture d'un objet EVOLUTION 107 : * 107 : CALL LIROBJ('EVOLUTIO',IRET,1,IPOLI2) 108 : IF(IERR.NE.0) RETURN 109 : IRE2=IRET 110 : GOTO 310 111 : * 112 : 300 IRE1=IRET 113 : * 114 : * Lecture d'un objet CHPOINT ou MCHAML (variation NUAGE) 115 : * 115 : CALL LIROBJ('MCHAML ',IRET,0,IPOLI2) 116 : IF(IERR.NE.0) RETURN 117 : IF(IPOLI2.NE.0) THEN 118 : MICHE2=0 119 : IRE2=IRET 120 : GOTO 320 121 : ENDIF 121 : CALL LIROBJ('CHPOINT ',IRET,1,IPOLI2) 122 : IF(IERR.NE.0) RETURN 123 : MICHE2=1 124 : IRE2=IRET 125 : GOTO 320 126 : * 127 : 310 CONTINUE 128 : IF (MICHE.EQ.1.AND.IPMODL.EQ.0) THEN 129 : * 130 : * Le resultat est un CHPOINT 131 : * Lecture optionnelle d'un mot (nom de composante) 132 : * 132 : CALL LIRCHA(MOT2,0,IRETOU) 133 : IF(IERR.NE.0) RETURN 133 : CALL VARIPO(IRE1,IRE2,MOT2,IRET) 133 : IF(IRET.NE.0) CALL ECROBJ('CHPOINT ',IRET) 134 : RETURN 135 : ENDIF 136 : * 137 : * Lecture optionnelle d'un nom de support 138 : * 139 : 320 JEMIL=0 139 : CALL LIRMOT(MOCHAM,5,JEMIL,0) 140 : IF(JEMIL.EQ.0.) JEMIL=3 141 : * 142 : * Lecture optionnelle d'un sous-type 143 : * 143 : CALL LIRCHA(CHAR,0,IRETOU) 144 : IF(IERR.NE.0) RETURN 145 : IF (IRETOU.EQ.0) CHAR=' ' 146 : * 147 : * Le resultat sera un MCHAML 148 : * 149 : IF(INUAGE.EQ.0) THEN 149 : CALL VARICA(IRE1,IRE2,IPMODL,IRET,MICHE,JEMIL) 150 : ELSE 150 : CALL VARINU(IRE1,IRE2,IPMODL,IRET,MICHE2,JEMIL,CHAR) 151 : ENDIF 152 : IF(IRET.NE.0) THEN 152 : CALL ECROBJ('MCHAML',IRET) 153 : ENDIF 154 : ENDIF 155 : 666 CONTINUE 156 : RETURN 157 : END 158 : 159 : 160 : 161 :
© Cast3M 2003 - All rights reserved.
Disclaimer