1 : C DFNFRF SOURCE GOUNAND 06/08/04 21:15:30 5520
2 : SUBROUTINE DFNFRF(DFFPG,JMIJAC,SSFACT,NBELEF,
3 : $ JDFFPG,
4 : $ IMPR,IRET)
5 : IMPLICIT REAL*8 (A-H,O-Z)
6 : IMPLICIT INTEGER (I-N)
7 : C***********************************************************************
8 : C NOM : DFNFRF
9 : C DESCRIPTION : Calcul des dérivées premières des fonctions de forme aux
10 : C points de Gauss sur l'élément réel.
11 : C
12 : C \partial_x = [j] \partial_{\xi}
13 : C
14 : C où \partial_x = trans( \frac{\partial}{\partial_x}
15 : C \frac{\partial}{\partial_y}
16 : C \frac{\partial}{\partial_z} )
17 : C
18 : C \partial_{\xi} = trans( \frac{\partial}{\partial_{\xi}}
19 : C \frac{\partial}{\partial_{\eta}}
20 : C \frac{\partial}{\partial_{\zeta}})
21 : C
22 : C [j] est l'inverse de la matrice jacobienne
23 : C
24 : C cf. Dhatt et Touzot p.52
25 : C
26 : C LANGAGE : ESOPE
27 : C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
28 : C mél : gounand@semt2.smts.cea.fr
29 : C***********************************************************************
30 : C APPELES : RSET8 (copie de tableaux de CHARACTER*8)
31 : C PRCHVA (impression d'un segment de type MCHEVA)
32 : C DFNFRF1 (calcul des dérivées premières des fonctions
33 : C de forme aux points de Gauss sur l'élément
34 : C réel (fortran 77))
35 : C APPELE PAR : NLAP, NCVN
36 : C***********************************************************************
37 : C ENTREES : * DFFPG (type MCHEVA) : valeurs des dérivées
38 : C premières des fonctions d'interpolation aux
39 : C points de gauss sur l'élément de référence.
40 : C Structure (cf.include SMCHAEL) :
41 : C (1, nb. ddl, 1, dim.esp.réf, nb. poi. gauss, 1)
42 : C * JMIJAC (type MCHEVA) : valeurs de l'inverse de
43 : C la matrice jacobienne aux points de Gauss sur
44 : C le maillage élémentaire.
45 : C Structure (cf.include SMCHAEL) :
46 : C (1, 1, dim. esp. référence, dim. esp. réel,
47 : C nb. poi. gauss, nb. éléments)
48 : C ENTREES/SORTIES : -
49 : C SORTIES : * JDFFPG (type MCHEVA) : valeurs des dérivées
50 : C premières des fonctions d'interpolation
51 : C aux points de gauss sur l'élément réel.
52 : C Structure (cf.include SMCHAEL) :
53 : C (1, nb. ddl, 1, 1, nb. poi. gauss, nb. élém.)
54 : C TRAVAIL : * NDDL (type entier) : nombre de ddl (par
55 : C élément) de la transformation géométrique.
56 : C * IESREF (type entier) : dimension de l'espace de
57 : C référence.
58 : C * IESREL (type entier) : dimension de l'espace
59 : C réel (i.e. géométrique).
60 : C * NBPOGO (type entier) : nombre de points
61 : C d'intégration.
62 : C * NDELEM (type entier) : nombre d'éléments du
63 : C maillage élémentaire courant.
64 : C***********************************************************************
65 : C VERSION : v2, 03/10/03, refonte complète (modif SMPOUET)
66 : C VERSION : v1, 19/05/00, version initiale
67 : C HISTORIQUE : v1, 19/05/00, création
68 : C HISTORIQUE :
69 : C HISTORIQUE :
70 : C***********************************************************************
71 : C Prière de PRENDRE LE TEMPS de compléter les commentaires
72 : C en cas de modification de ce sous-programme afin de faciliter
73 : C la maintenance !
74 : C***********************************************************************
75 : -INC CCOPTIO
76 : CBEGININCLUDE SFACTIV
77 : SEGMENT FACTIV
78 : POINTEUR IFACTI(NBSOUV).SFACTI
79 : ENDSEGMENT
80 : SEGMENT SFACTI
81 : POINTEUR ISFACT(NBSOFV).SSFACT
82 : ENDSEGMENT
83 : SEGMENT SSFACT
84 : LOGICAL LFACTI(NBELFV,NBELEV)
85 : ENDSEGMENT
86 : CENDINCLUDE SFACTIV
87 : CBEGININCLUDE SMCHAEL
88 : SEGMENT MCHAEL
89 : POINTEUR IMACHE(N1).MELEME
90 : POINTEUR ICHEVA(N1).MCHEVA
91 : ENDSEGMENT
92 : SEGMENT MCHEVA
93 : REAL*8 VELCHE(NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM)
94 : ENDSEGMENT
95 : SEGMENT LCHEVA
96 : POINTEUR LISCHE(NBCHE).MCHEVA
97 : ENDSEGMENT
98 : CENDINCLUDE SMCHAEL
99 : INTEGER NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM
100 : POINTEUR DFFPG.MCHEVA
101 : POINTEUR JMIJAC.MCHEVA
102 : POINTEUR JDFFPG.MCHEVA
103 : *
104 : INTEGER NBELEF
105 : INTEGER IMPR,IRET
106 : *
107 : INTEGER NDLIG,NDCOL,N2DLIG,NDNOEU,NBELEV,NBELFV
108 : INTEGER NDDL,IESREF,IESREL,NBPOGO,NBELEM
109 : *
110 : * Executable statements
111 : *
112 : IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans dfnfrf'
113 : SEGACT SSFACT
114 : NBELFV=SSFACT.LFACTI(/1)
115 : NBELEV=SSFACT.LFACTI(/2)
116 : IESREL=IDIM
117 : *
118 : SEGACT DFFPG
119 : NDLIG =DFFPG.VELCHE(/1)
120 : NDDL =DFFPG.VELCHE(/2)
121 : N2DLIG=DFFPG.VELCHE(/3)
122 : IESREF=DFFPG.VELCHE(/4)
123 : NBPOGO=DFFPG.VELCHE(/5)
124 : NDELEM=DFFPG.VELCHE(/6)
125 : IF (NDLIG.NE.1.OR.N2DLIG.NE.1
126 : $ .OR.(NDELEM.NE.NBELFV)) THEN
127 : WRITE(IOIMP,*) 'Erreur dims DFFPG'
128 : GOTO 9999
129 : ENDIF
130 : *
131 : SEGACT JMIJAC
132 : NDLIG =JMIJAC.VELCHE(/1)
133 : NDCOL =JMIJAC.VELCHE(/2)
134 : N2DLIG=JMIJAC.VELCHE(/3)
135 : N2DCOL=JMIJAC.VELCHE(/4)
136 : NDNOEU=JMIJAC.VELCHE(/5)
137 : NBELEM=JMIJAC.VELCHE(/6)
138 : IF (NDLIG.NE.1.OR.NDCOL.NE.1.OR.N2DLIG.NE.IESREF
139 : $ .OR.N2DCOL.NE.IESREL
140 : $ .OR.(NDNOEU.NE.1.AND.NDNOEU.NE.NBPOGO)
141 : $ .OR.NBELEM.NE.NBELEF) THEN
142 : WRITE(IOIMP,*) 'Erreur dims JMIJAC'
143 : GOTO 9999
144 : ENDIF
145 : NPJMI=NDNOEU
146 : *
147 : * Initialisations...
148 : *
149 : NBLIG=1
150 : NBCOL=NDDL
151 : N2LIG=1
152 : N2COL=IESREL
153 : NBPOI=NBPOGO
154 : NBELM=NBELEF
155 : SEGINI JDFFPG
156 : *
157 : * On effectue le calcul du coefficient aux points de Gauss
158 : *
158 : CALL DFNFF1(NDDL,IESREF,IESREL,NBPOGO,NBELEV,NBELEF,NBELFV,
159 : $ NPJMI,
160 : $ DFFPG.VELCHE,JMIJAC.VELCHE,SSFACT.LFACTI,
161 : $ JDFFPG.VELCHE,
162 : $ IMPR,IRET)
163 : IF (IRET.NE.0) GOTO 9999
164 : SEGDES JDFFPG
165 : SEGDES DFFPG
166 : SEGDES JMIJAC
167 : SEGDES SSFACT
168 : *
169 : * Normal termination
170 : *
171 : IRET=0
172 : RETURN
173 : *
174 : * Format handling
175 : *
176 : *
177 : * Error handling
178 : *
179 : 9999 CONTINUE
180 : IRET=1
181 : WRITE(IOIMP,*) 'An error was detected in subroutine dfnfrf'
182 : RETURN
183 : *
184 : * End of subroutine DFNFRF
185 : *
186 : END
187 :
188 :
© Cast3M 2003 - All rights reserved.
Disclaimer