zfpu
C ZFPU SOURCE CB215821 20/11/25 13:44:53 10792 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C*********************************************************************** C C SYNTAXE : C C FPU NU UET YP <,VPAROI> C C 1------2 C (R1,AL1) LEF FLUIDE NOEUDS 1 2 C C C ANU VISCOSITE CINEMATIQUE C UET U* C YP DISTANCE A LA PAROI C VPAROI VITESSE DE LA PAROI (PAR DEFAUT 0.) C C CAS TRIDIMENSIONNEL C 4 ________ 3 C / FLUIDE / C 1 /________/2 C C C*********************************************************************** -INC CCVQUA4 -INC PPARAM -INC CCOPTIO -INC SMCOORD -INC SMLENTI -INC SMELEME POINTEUR MELEM1.MELEME -INC SMCHPOI POINTEUR IZG1.MCHPOI, IZGG1.MPOVAL POINTEUR IZD2.MCHPOI, IZDD2.MPOVAL POINTEUR IZD3.MCHPOI, IZDD3.MPOVAL POINTEUR IZTU1.MPOVAL,IZTU2.MPOVAL,IZTU3.MPOVAL POINTEUR MZNU.MPOVAL,MZUE.MPOVAL,MZYP.MPOVAL POINTEUR IZVOL.MPOVAL -INC SMTABLE POINTEUR MTABZ.MTABLE,MTABD.MTABLE -INC SMLMOTS POINTEUR LINCO.MLMOTS CHARACTER*8 NOMZ,NOMI,NOMA,TYPE,CHAI,TYPC LOGICAL LOGI PARAMETER (NTB=1) CHARACTER*8 LTAB(NTB) DIMENSION KTAB(NTB),IXV(3) DATA LTAB/'KIZX '/ C***************************************************************************** CFPU C write(6,*)' debut FPU ' IF(KINC.EQ.0)THEN WRITE(6,*)' Opérateur NSKE :' WRITE(6,*)' Il n''y a pas de table INCO ? ?.' RETURN ENDIF C***************************************************************************** C OPTIONS C CES PARAMETRES SONT INITIALISES POUR ETRE EN DECENTRE IKOMP=0 IAXI=0 IF(IFOMOD.EQ.0)IAXI=2 C CALL LEKTAB(MTABX,'KOPT',OPTI) KOPTI=0 TYPE=' ' IF(TYPE.EQ.'TABLE')KOPTI=IENT IF(KOPTI.NE.0)THEN TYPE=' ' TYPE=' ' ENDIF C***************************************************************************** IF(MTABZ.EQ.0)THEN WRITE(6,*)' On ne trouve pas l''indice DOMZ ? ' GO TO 90 ENDIF SEGACT MTABZ IF(MELEME.EQ.0)GO TO 90 SEGACT MELEME IF(MELEMC.EQ.0)GO TO 90 IF(MCHPOI.EQ.0)GO TO 90 C*** TYPE='LISTMOTS' SEGACT LINCO IKOMP=0 C--Cas incompréssible IF(IKOMP.EQ.0)THEN C 1er coefficient : nu IXV(1)=MELEMC IXV(2)=1 IXV(3)=0 IRET =0 & MTABX,KINC,1,IXV,MNU,MZNU,NPT1,NC1,IK1,IRET) IF(IRET.EQ.0)RETURN C 2ème coefficient : uet IXV(1)=MELEMC IXV(2)=0 IXV(3)=0 IRET =0 & MTABX,KINC,2,IXV,MUE,MZUE,NPT2,NC2,IK2,IRET) IF(IRET.EQ.0)RETURN C 3ème coefficient : yp IXV(1)=0 IXV(2)=1 IXV(3)=0 IRET =0 & MTABX,KINC,3,IXV,MYP,MZYP,NPT3,NC3,IK3,IRET) IF(IRET.EQ.0)RETURN C--Cas compréssible ELSEIF(IKOMP.EQ.1)THEN C 1er coefficient : mu IXV(1)=MELEMC IXV(2)=1 IXV(3)=0 & MTABX,KINC,1,IXV,MNU,MZNU,NPT1,NC1,IK1,IRET) IF(IRET.EQ.0)RETURN C 2ème coefficient : uet IXV(1)=MELEMC IXV(2)=0 IXV(3)=0 & MTABX,KINC,2,IXV,MUE,MZUE,NPT2,NC2,IK2,IRET) IF(IRET.EQ.0)RETURN ENDIF IF(MTAB1.EQ.0)THEN WRITE(6,*)' On ne trouve pas l''indice EQEX ? ' GO TO 90 ENDIF SEGACT MTAB1 IF(MTABD.EQ.0)THEN WRITE(6,*)' On ne trouve pas l''indice DOMAINE ?' GO TO 90 ENDIF SEGACT MTABD IF(MELEM1.EQ.0)THEN WRITE(6,*)' On ne trouve pas l''indice SOMMET ?' GO TO 90 ENDIF WRITE(6,*)'Il n''y a pas de table INCO ' RETURN ENDIF SEGACT INCO IF(KIZD.EQ.0)THEN WRITE(6,*)'Il n''y a pas de table KIZD ' RETURN ENDIF SEGACT KIZD C***************************************************************************** IF(KIZG.EQ.0)THEN ELSE SEGACT KIZG ENDIF C VERIFICATIONS SUR LES INCONNUES RETURN ENDIF C --> 1 ere Inconnue TYPE=' ' IF(TYPE.NE.'CHPOINT ')THEN WRITE(6,*)' L objet CHPOINT ',NOMI,' n existe pas dans la table' RETURN ELSE ENDIF TYPE=' ' IF(TYPE.NE.'CHPOINT ')THEN NC=IZTU1.VPOCHA(/2) TYPE='SOMMET' ENDIF C --> 2 eme Inconnue TYPE=' ' IF(TYPE.NE.'CHPOINT ')THEN WRITE(6,*)' L objet CHPOINT ',NOMI,' n existe pas dans la table' RETURN ELSE ENDIF TYPE=' ' IF(TYPE.NE.'CHPOINT ')THEN WRITE(6,*)' Il n''y a pas de diagonale associee a ',NOMI RETURN ENDIF C --> 3 eme Inconnue TYPE=' ' IF(TYPE.NE.'CHPOINT ')THEN WRITE(6,*)' L objet CHPOINT ',NOMI,' n existe pas dans la table' RETURN ELSE ENDIF TYPE=' ' IF(TYPE.NE.'CHPOINT ')THEN WRITE(6,*)' Il n''y a pas de diagonale associee a ',NOMI RETURN ENDIF SEGACT MELEME NBSOUS=LISOUS(/1) IF(NBSOUS.EQ.0)NBSOUS=1 NUTOEL=0 NPTD=IZTU1.VPOCHA(/1) IES=IDIM DO 1 L=1,NBSOUS IPT1=MELEME IF(NBSOUS.NE.1)IPT1=LISOUS(L) SEGACT IPT1 NP =IPT1.NUM(/1) C SUBROUTINE XCVFPU(NEL,K0,NP,IES,IAXI,IPADL, C & LEF,XYZ, ----> IPT1,COOR C & VOLF, ----> IZVOL.T, C & UN,TK,TE, ----> IZTU1.T,IZTU2.T,IZTU3.T, C & F, ----> IZG1, C & DK,DE, ----> IZD2,IZD3 C & ANU,IKC,UET,YP, ----> IZTG1.T,IK1,IZTG2.T,IZTG3.T, C & VPAROI,IKV, IZTG4.T,IK4, C & PORO,NPR,IPOR) ----> IZPORO,NPOR,IOP7 C write(6,*)' Appel YCVFPU ' & IPT1.NUM,XCOOR, & IZVOL.VPOCHA, & IZTU1.VPOCHA,IZTU2.VPOCHA,IZTU3.VPOCHA, & IZGG1.VPOCHA, & IZDD2.VPOCHA,IZDD3.VPOCHA, & MZNU.VPOCHA,IK1,MZUE.VPOCHA,MZYP.VPOCHA) SEGDES IPT1 1 CONTINUE SEGDES IZTU1,IZTU2,IZTU3 SEGDES IZG1,IZGG1 SEGDES IZD2,IZDD2 SEGDES IZD3,IZDD3 SEGDES IZVOL SEGDES LINCO SEGDES MTABX,MTAB1,INCO,KIZG,KIZD SEGSUP MLENTI RETURN 90 CONTINUE WRITE(6,*)' Interuption anormale de FPU ' RETURN 1002 FORMAT(10(1X,1PE11.4)) END
© Cast3M 2003 - Tous droits réservés.
Mentions légales