vari
C VARI SOURCE CB215821 20/11/25 13:41:55 10792 *_______________________________________________________________________ * * Calcul d'un champ variable * ( MCHAML, CHPOINT ) * * * 1 ere Possibilite * ----------------- * Variation d'un champ en fonction d'une loi de variation * * CHEL2 = VARI MODL1 ! CHEL1 ! EVOL1 (MOT1) ; * ! CHPO1 ! * ou * * CHPO2 = VARI CHPO1 EVOL1 (MOT2) ; * * CHEL1 Champ donne, type MCHAML * CHPO1 Champ donne, type CHPOINT * EVOL1 Objet definissant la loi de variation, type EVOLUTION * MODL1 Modele de calcul, type MMODEL * MOT1 Objet de type MOT precisant le support du champ scalaire * MOT2 Nom a donner a la composante du CHPOINT resultat * * 2 eme Possibilite * ----------------- * Variation d'un champ/element ayant un ou des composante(s) * de type EVOLUTION ou NUAGE en fonction d'un champ/point * ou d'un champ/element. Ce champ/point ou champ/element * ne doit avoir qu'une seul composante de nom quelconque. * (Exemple d'application : variation des caracteristiques * de materiaux en fonction de la temperature) * * CHEL2 = VARI 'NUAG' MODL1 CHEL1 CHEP1 (MOT1) ; * * CHEL1 Champ donne, type MCHAML * CHEP1 Champ donne, type CHPOINT ou MCHAML * MODL1 Modele de calcul, type MMODEL * MOT1 Objet de type MOT precisant le support du champ. * S'il est absent, le support du champ CHEL2 * sera le support RIGIDITE *_______________________________________________________________________ SUBROUTINE VARI IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO CHARACTER*8 MOCHAM(5),MOFLUI(23) CHARACTER*4 MONUAG(1) CHARACTER*(LOCOMP) MOT2 CHARACTER*72 CHAR DATA MOCHAM/'NOEUD ','GRAVITE ','RIGIDITE','MASSE ', & 'STRESSES'/ DATA MOFLUI/'CPLIQ ','HLS ','HVS ','LATENT ', & 'PSATT ','PVAP ','ROLIQ ','ROVAP ', & 'TLIQUID ','TSATP ','ZVAP ','TODIFF ', & 'TOCOND ','DHVDT ','DHVDP ','DHLDP ', & 'DPSAT ','DZVDP ','DZVDT ','DRVDP ', & 'DRVDT ','MULIQ ','LBDALIQ '/ DATA MONUAG/'NUAG'/ IFLUI = 0 INUAGE = 0 IPMODL = 0 IRET = 0 MICHE = 0 * ----------- * On cherche une des entrees des tables de l'eau * ----------- IF (IERR.NE.0) RETURN * =========== * SYNTAXE 3 : Appel aux tables de l'eau * =========== IF (IFLUI.NE.0) THEN RETURN ENDIF * ----------- * On cherche la presence du mot-cle NUAG * ----------- IF (IERR.NE.0) RETURN * =========== * SYNTAXE 2 : 'VARI' 'NUAGE' * =========== IF (INUAGE.EQ.1) THEN *- Lecture du modele : IF (IERR.NE.0) RETURN *- Lecture du 1er MCHAML decrivant la fonction a appliquer ("NUAGE") : IF (IERR.NE.0) RETURN IF(IERR .NE. 0) RETURN *- Lecture du 2e CHAMP (MCHAML ou CHPOINT) entree de la fonction : IF (IERR.NE.0) RETURN IF (iretou.EQ.1) THEN IF(IERR .NE. 0) RETURN ELSE IF (IERR.NE.0) RETURN MICHE = 1 ENDIF *- Lecture optionnelle du support du champ resultat : JEMIL = 0 IF (IERR.NE.0) RETURN IF (JEMIL.EQ.0) JEMIL = 3 *- Lecture optionnelle d'un sous-type pour le champ resultat : iretou = 0 CHAR = ' ' IF (IERR.NE.0) RETURN IF (iretou.EQ.0) CHAR = ' ' *- Calcul du MCHAML resultat IRET : *- Ecriture du resultat sauf en cas d'erreur : IF (IRET.NE.0) THEN ENDIF * =========== * SYNTAXE 1 : 'VARI' ... EVOL1 ; * =========== * ELSE IF (INUAGE.EQ.0) THEN ELSE *- Lecture du premier objet (MMODEL ou CHPOINT) : IF (IERR.NE.0) RETURN C- ------------- C- Syntaxe 1.1 : VARI modl1 champ1 evol1 ... ; C- ------------- * IF (IPMODL.NE.0) THEN IF (iretou.NE.0) THEN *- Lecture du champ d'entree (MCHAML ou CHPOINT) : IF (IERR.NE.0) RETURN IF (iretou.EQ.0) THEN IF (IERR.NE.0) RETURN MICHE = 1 ELSE ENDIF *- Lecture d'une EVOLUTION donnant la fonction a appliquer : IF (IERR.NE.0) RETURN *- Lecture optionnelle du support du champ resultat : JEMIL = 0 IF (IERR.NE.0) RETURN IF (JEMIL.EQ.0) JEMIL = 3 *- Calcul du MCHAML resultat IRET : *- Ecriture du resultat sauf en cas d'erreur : IF (IRET.NE.0) THEN ENDIF C- ------------- C- Syntaxe 1.2 : VARI chpo1 evol1 ... ; C- ------------- ELSE * IF (IPMODL.EQ.0) THEN *- Lecture du CHPOINT d'entree : IF (IERR.NE.0) RETURN *- Lecture d'une EVOLUTION donnant la fonction a appliquer : IF (IERR.NE.0) RETURN *- Lecture optionnelle du nom de la composante resultat MOT2 = ' ' IF (IERR.NE.0) RETURN IF (iretou.EQ.0) MOT2 = ' ' *- Calcul du CHPOINT resultat IRET : *- Ecriture du CHPOINT resultat sauf en cas d'erreur : IF (IRET.NE.0) THEN ENDIF ENDIF ENDIF END
© Cast3M 2003 - Tous droits réservés.
Mentions légales