1 : C NI2 SOURCE GOUNAND 06/05/09 21:15:17 5435 2 : SUBROUTINE NI2(NDIM,NBNOD,QSI,ETA,DZE, 3 : $ NBMMON,NBMON,COEMON,EXPMON,PNM,XCO1,ORDDER,VECTP 4 : $ ,SHP) 5 : IMPLICIT REAL*8 (A-H,O-Z) 6 : IMPLICIT INTEGER (I-N) 7 : C*********************************************************************** 8 : C NOM : NI2 9 : C DESCRIPTION : Calcul fonctions de forme et dérivées premières 10 : C Particularisation de ni.eso 11 : C 12 : C 13 : C LANGAGE : ESOPE 14 : C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) 15 : C mél : gounand@semt2.smts.cea.fr 16 : C*********************************************************************** 17 : C APPELES : 18 : C APPELE PAR : SHAPEQ 19 : C*********************************************************************** 20 : C ENTREES : NDIM,NBNOD,QSI,ETA,DZE,EXPMON,PNM 21 : C TRAVAIL : XCO1,ORDDER,VECTP 22 : C ENTREES/SORTIES : 23 : C SORTIES : SHP 24 : C*********************************************************************** 25 : C VERSION : v1, 04/05/2006, version initiale 26 : C HISTORIQUE : v1, 04/05/2006, création 27 : C HISTORIQUE : 28 : C HISTORIQUE : 29 : C*********************************************************************** 30 : INTEGER NBMON(NBNOD) 31 : REAL*8 COEMON(NBMMON,NBNOD) 32 : INTEGER EXPMON(NDIM,NBMMON,NBNOD) 33 : REAL*8 PNM(NBNOD,NBNOD) 34 : REAL*8 XCO1(NDIM) 35 : INTEGER ORDDER(NDIM) 36 : REAL*8 VECTP(NBNOD) 37 : REAL*8 SHP(6,NBNOD) 38 : * 39 : * Executable statements 40 : * 41 : * Calcul des fonctions de forme et des dérivées premières 42 : * au point QSI,ETA,DZE 43 : * 1) fonctions de forme 44 : * Calcul de < P (p) > = < P1(p) ... Pnbfn(p) > où p est le point 45 : * (qsi, eta, dze) 46 : XCO1(1)=QSI 47 : XCO1(2)=ETA 48 : XCO1(3)=DZE 49 : DO INOD=1,NBNOD 50 : ORDDER(1)=0 51 : ORDDER(2)=0 52 : ORDDER(3)=0 52 : CALL VALPO2(NDIM,XCO1,NBMON(INOD),COEMON(1,INOD), 53 : $ EXPMON(1,1,INOD),ORDDER, 54 : $ VECTP(INOD)) 55 : ENDDO 56 : * On calcule : < N (p) > = < P (p) > [Pn]^{-1} 57 : DO INOD=1,NBNOD 58 : SHP(1,INOD)=DDOT(NBNOD,VECTP,1,PNM(1,INOD),1) 59 : ENDDO 60 : * 2) dérivées des fonctions de forme 61 : DO IDIM=1,NDIM 62 : DO JDIM=1,NDIM 63 : IF (JDIM.EQ.IDIM) THEN 64 : ORDDER(JDIM)=1 65 : ELSE 66 : ORDDER(JDIM)=0 67 : ENDIF 68 : ENDDO 69 : DO INOD=1,NBNOD 69 : CALL VALPO2(NDIM,XCO1,NBMON(INOD),COEMON(1,INOD), 70 : $ EXPMON(1,1,INOD),ORDDER, 71 : $ VECTP(INOD)) 72 : ENDDO 73 : DO INOD=1,NBNOD 74 : SHP(1+IDIM,INOD)=DDOT(NBNOD,VECTP,1,PNM(1,INOD),1) 75 : ENDDO 76 : ENDDO 77 : C WRITE(6,*) 'On a créé SHP(1,*) :' 78 : C WRITE(6,*) (SHP(1,J),J=1,NBNOD) 79 : C SOM=0.D0 80 : C DO J=1,NBNOD 81 : C SOM=SOM+SHP(1,J) 82 : C ENDDO 83 : C WRITE(6,*) 'SOMME : ',SOM 84 : C WRITE(6,*) 'On a créé SHP(2,*) :' 85 : C WRITE(6,*) (SHP(2,J),J=1,NBNOD) 86 : C SOM=0.D0 87 : C DO J=1,NBNOD 88 : C SOM=SOM+SHP(2,J) 89 : C ENDDO 90 : C WRITE(6,*) 'SOMME : ',SOM 91 : * 92 : * Normal termination 93 : * 94 : RETURN 95 : * 96 : * End of subroutine NI2 97 : * 98 : END 99 : 100 :
© Cast3M 2003 - All rights reserved.
Disclaimer