melbou
C MELBOU SOURCE BP208322 16/11/18 21:19:10 9177 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C*********************************************************************** C C Ce Sp crée un MCHAML résultat Boussinesq C Le MCHAML en retour est jetable et est calcule aux pts d'integrations C Quel que soit le type de l'objet récupéré, l'objet retourné est un C MCHAML. C---------------------------------------------------------------------- C C C---------------------------------------------------------------------- C HISTORIQUE : 20/10/01 : Création C C HISTORIQUE : C C C--------------------------- C Paramètres Entrée/Sortie : C--------------------------- C C E/ MTABD : Objet model de la zone C---------------------------------------------------------------------- C************************************************************************ -INC SIZFFB POINTEUR IZF1.IZFFM,IZH2.IZHR,IZFD.IZFFM -INC SMCHAML -INC SMELEME -INC PPARAM -INC CCOPTIO -INC CCGEOME CHARACTER*8 NOM0 C***************************************************************************** CMELBOU C write(6,*)' DEBUT MELBOU ' XPETI=1.D-30 IAXI=0 IF(IFOMOD.EQ.0)IAXI=2 C SEGACT MELEME L1=72 N1=MAX(1,LISOUS(/1)) N2=1 N3=6 SEGINI MCHELM C------------------------------------------------------------------------- SEGACT MCHEL1,MCHEL2,MCHEL3 DO 191 L=1,MAX(1,LISOUS(/1)) IPT1=MELEME IF(LISOUS(/1).NE.0)IPT1=LISOUS(L) SEGACT IPT1 NOM0 = NOMS(IPT1.ITYPEL)//' ' SEGACT IZFFM IZHR=KZHR(1) IZF1=KTP(1) IZH2=KZHR(2) SEGACT IZHR*MOD NES=GR(/1) NPG=GR(/3) NBNN =IPT1.NUM(/1) NBELEM=IPT1.NUM(/2) SEGINI MCHAML N1PTEL=NPG*IDIM N1EL =NBELEM N2PTEL=0 N2EL=0 IMACHE(L)=IPT1 ICHAML(L)=MCHAML SEGINI MELVAL IELVAL(1)=MELVAL MCHAM1=MCHEL1.ICHAML(L) SEGACT MCHAM1 MELVA1=MCHAM1.IELVAL(1) SEGACT MELVA1 NIL1=MELVA1.VELCHE(/2) IF(NIL1.EQ.1)THEN IK1=1 ELSE IK1=0 ENDIF MCHAM2=MCHEL2.ICHAML(L) SEGACT MCHAM2 MELVA2=MCHAM2.IELVAL(1) SEGACT MELVA2 NIL2=MELVA2.VELCHE(/2) IF(NIL2.EQ.1)THEN IK2=1 ELSE IK2=0 ENDIF MCHAM3=MCHEL3.ICHAML(L) SEGACT MCHAM3 MELVA3=MCHAM3.IELVAL(1) SEGACT MELVA3 NIL3=MELVA3.VELCHE(/2) IF(NIL3.EQ.1)THEN IK3=1 ELSE IK3=0 ENDIF DO 192 K=1,N1EL NK1=K + IK1*(1 - K) NK2=K + IK2*(1 - K) NK3=K + IK3*(1 - K) DO 194 N=1,IDIM DO 194 LG=1,NPG VELCHE(LG+(N-1)*NPG,K)=MELVA1.VELCHE(LG+(N-1)*NPG,NK1)* & (MELVA3.VELCHE(LG,NK3) - MELVA2.VELCHE(LG,NK2)) 194 CONTINUE 192 CONTINUE SEGSUP MELVA1,MELVA2,MELVA3 SEGSUP MCHAM1,MCHAM2,MCHAM3 SEGDES MELVAL SEGDES IPT1,MCHAML SEGSUP IZFFM,IZHR,IZF1,IZH2 191 CONTINUE SEGDES MCHELM,MELEME SEGSUP MCHEL1,MCHEL2,MCHEL3 MCHELS=MCHELM C************************************************************************* c write(6,*)' FIN MELBOU ' RETURN 1001 FORMAT(20(1X,I5)) 1002 FORMAT(10(1X,1PE11.4)) END
© Cast3M 2003 - Tous droits réservés.
Mentions légales