Télécharger zcvit.eso

Retour à la liste

Numérotation des lignes :

zcvit
  1. C ZCVIT SOURCE GOUNAND 23/07/31 21:15:07 11713
  2. SUBROUTINE ZCVIT
  3. & (HR,RPG,DRR,LE,NEL,K0,NPTD,IES,NP,IAXI,
  4. & IPADL,IKOMP,IKAS,
  5. & RO,IKR,
  6. & COEFF,IK1,RGE,IKG,NELG,TN,IKT,TREF,IKREF,
  7. & AMUT,GN,UN,TK,TE,
  8. & F,GK,GE,
  9. & GK1,GE1,
  10. & DK,DE,
  11. & VOLU,COTE,NELZ,IDCEN,IMODEL,
  12. & DT,DTT1,DTT2,NUEL,DIAEL,DIAM)
  13.  
  14. IMPLICIT INTEGER(I-N)
  15. IMPLICIT REAL*8 (A-H,O-Z)
  16.  
  17. C***********************************************************************
  18. C APPELE PAR NSKE
  19. C CE SP DISCRETISE LES EQUATIONS DE NAVIER STOKES COUPLEES
  20. C AUX DEUX EQUATIONS DU MODELE K - EPSILON
  21. C EN 2D SUR LES ELEMENTS QUA4 ET TRI3 PLAN OU AXI
  22. C EN 3D SUR LES ELEMENTS CUB8 ET PRI6
  23. C LES OPERATEURS SONT "SOUS-INTEGRES"
  24. C
  25. C***
  26. C
  27. C MODELE K - EPSILON
  28. C
  29. C
  30. C CONSTANTES : CNU=0.09D0 C1=1.41D0 C2=1.92D0
  31. C SGT=0.9D0 SGK=1.D0 SGE=1.3D0
  32. C
  33. C P --> TABLEAU P
  34. C
  35. C LE NU TURBULENT EST CALCULE PAR ELEMENT
  36. C IL N EST PAS TRANSMIS EN ARGUMENT
  37. C
  38. C IPRE = 1 ON CONTROLE K ET EPSILON A CHAQUE APS DE TEMPS
  39. C
  40. C
  41. C***********************************************************************
  42.  
  43. DIMENSION UN(NPTD,IES),GN(NPTD,IES),TK(NPTD),TE(NPTD)
  44. DIMENSION AMUT(*),RO(*)
  45. DIMENSION COTE(NELZ,IES),VOLU(NELZ)
  46.  
  47. C NOMBRE DE NOEUDS MAX PAR ELEMENT NPX
  48. PARAMETER (NPX=9)
  49.  
  50. C LONGUEUR DES REGISTRES VECTORIELS DE LA MACHINE CIBLE
  51.  
  52. PARAMETER (LRV=64)
  53. C
  54. DIMENSION IPADL(*),LE(NP,*)
  55. DIMENSION HR(NEL,NP,IES),RPG(*),DRR(NP,NEL)
  56. DIMENSION QGGT(8,8),Q1(8,8),Q2(8,8),Q3(8,8)
  57. SAVE QGGT,Q1,Q2,Q3
  58.  
  59. REAL*8 F(NPTD,IES)
  60. REAL*8 GK(NPTD),GK1(NPTD),DK(NPTD)
  61. REAL*8 GE(NPTD),GE1(NPTD),DE(NPTD)
  62.  
  63. -INC CCVQUA4
  64. -INC CCREEL
  65. *-
  66.  
  67. -INC PPARAM
  68. -INC CCOPTIO
  69. -INC SMCOORD
  70. C* -TABLEAUX ADDITIONNELS POUR LA VECTORISATION **********************
  71. C
  72. C ---- ILS CONDUISENT A UN SURCOUT DE LRV*(59+25NPX) MOTS. AVEC NPX=9
  73. C ET LRV=128 ON OBTIENT 37KMOTS (0.3 MEGAOCTETS) ET CECI QUELLE
  74. C SOIT LA NOMBRE TOTAL D'ELEMENTS DU MAILLAGE
  75. C ------------------------------------------------------------------
  76. DIMENSION AIRE(LRV),COEF(LRV),AL(LRV),AH(LRV),AP(LRV)
  77. DIMENSION XMB(LRV),XMH (LRV)
  78. DIMENSION CFM(LRV)
  79. C DIMENSION CF1(LRV),CF2(LRV),CF3(LRV)
  80. C
  81. DIMENSION DR(LRV,NPX)
  82. DIMENSION UIX(LRV,NPX),UIY(LRV,NPX),UIZ(LRV,NPX)
  83. DIMENSION GIX(LRV,NPX),GIY(LRV,NPX),GIZ(LRV,NPX)
  84. DIMENSION AK(LRV,NPX),AE(LRV,NPX)
  85. C
  86. DIMENSION UM(LRV),UMI(LRV,3),AKM(LRV),AEM(LRV),ARO(LRV)
  87. DIMENSION P(LRV),PG(LRV),ANUT(LRV),
  88. ; DUDX(LRV),DUDY(LRV),DUDZ(LRV),DVDX(LRV),DVDY(LRV),
  89. ; DVDZ(LRV),DWDX(LRV),DWDY(LRV),DWDZ(LRV),
  90. ; DTDX(LRV),DTDY(LRV),DTDZ(LRV)
  91. C
  92. DIMENSION C1P(LRV),C1G(LRV),COEFT(LRV),COEFK(LRV),COEFE(LRV)
  93. C
  94. DIMENSION BE1(LRV,NPX)
  95. C
  96. C
  97. C ---- TABLEAUX POUR L'OPTION RAPIDE -------------------------------
  98. C DANS LA TRIPLE BOUCLE SUR K,I,J ON PEUT SORTIR UN MAXIMUM
  99. C D'OPERATIONS DE LA BOUCLES LA PLUS INTERNE. LES TABLEAUX CI-
  100. C DESSOUS PERMETTENT DE STOCKER LES VALEURS CALCULEES
  101. C ------------------------------------------------------------------
  102. C***
  103. DIMENSION COEFF(*),RGE(NELG,IES)
  104. DIMENSION TN(*),TREF(*)
  105.  
  106. DIMENSION RGX(LRV),RGY(LRV),RGZ(LRV)
  107. DIMENSION SAF1(LRV,9),SAF2(LRV,9),SAF3(LRV,9)
  108. DIMENSION SAFK(LRV,9),SAFE(LRV,9)
  109. DIMENSION AL2(LRV),AH2(LRV),AP2(LRV)
  110. DIMENSION GRADGX(LRV,3),GRADGY(LRV,3),GRADGZ(LRV,3)
  111. DIMENSION GRADK (LRV,3),GRADE (LRV,3)
  112. DIMENSION UPGX(LRV),UPIGX(LRV,3),UPGY(LRV),UPIGY(LRV,3)
  113. DIMENSION UPGZ(LRV),UPIGZ(LRV,3)
  114. DIMENSION UPK (LRV),UPIK (LRV,3),UPE (LRV),UPIE (LRV,3)
  115. DIMENSION BM(LRV),BPGX(LRV),BPGY(LRV),BPGZ(LRV)
  116. DIMENSION BPK (LRV),BPE (LRV)
  117. DIMENSION GXCXT(LRV),GXCYT(LRV),GXCZT(LRV)
  118. DIMENSION GXCXY(LRV),GXCXZ(LRV),GXCYZ(LRV)
  119. DIMENSION GYCXT(LRV),GYCYT(LRV),GYCZT(LRV)
  120. DIMENSION GYCXY(LRV),GYCXZ(LRV),GYCYZ(LRV)
  121. DIMENSION GZCXT(LRV),GZCYT(LRV),GZCZT(LRV)
  122. DIMENSION GZCXY(LRV),GZCXZ(LRV),GZCYZ(LRV)
  123. DIMENSION GKCXT(LRV),GKCYT(LRV),GKCZT(LRV)
  124. DIMENSION GKCXY(LRV),GKCXZ(LRV),GKCYZ(LRV)
  125. DIMENSION GECXT(LRV),GECYT(LRV),GECZT(LRV)
  126. DIMENSION GECXY(LRV),GECXZ(LRV),GECYZ(LRV)
  127.  
  128. DIMENSION CONST(2,7)
  129.  
  130. SAVE IPAS
  131. DATA IPAS/0/
  132.  
  133. C Constantes du modèle RNG
  134. C DATA CNU,C1,C2,C3/0.0845D0,1.42D0,1.68D0,0.8D0/
  135. C DATA SGT,SGK,SGE /0.9D0,0.7179D0,0.7179D0/
  136. C
  137. C Modèle standard
  138. C DATA CNU,C1,C2,C3,SGT,SGE/0.09D0,1.41D0,1.92D0,0.8D0,0.9D0,1.3D0/
  139. C
  140. C IMODEL=1 modele Standard IMODEL=2 modele RNG
  141. C
  142. C
  143. C*** Variation des constantes en fonction du modèle
  144. DATA (CONST(1,j),j=1,4) /0.09D0,1.41D0,1.92D0,0.8D0/
  145. DATA (CONST(1,j),j=5,7) /0.9D0,1.D0,1.3D0/
  146. DATA (CONST(2,j),j=1,4) /0.0845D0,1.42D0,1.68D0,0.8D0/
  147. DATA (CONST(2,j),j=5,7) /0.9D0,0.7179D0,0.7179D0/
  148. C***
  149. C
  150. CDIR$ VECTOR
  151. CDIR$ IVDEP
  152.  
  153. C WRITE(IOIMP,*)' Debut YCVIT'
  154. C WRITE(IOIMP,*)' NELZ,ies=',nelz,ies
  155. C WRITE(IOIMP,1002)cote
  156. C WRITE(IOIMP,*)' Avt precaution ies=',ies
  157. C
  158. C INITIALISATIONS DIVERSES
  159. C
  160. C zxzini = sqrt(xpetit)
  161. C un peu plus grand sinon on underflow dans les calculs de normes
  162. zxzini = xpetit**0.33D0
  163. DTM1=0.D0
  164. IPRE=0
  165.  
  166. C IF(IPAS.EQ.0)CALL CALHRG(QGGT,IES)
  167. IF(IPAS.EQ.0)CALL CALHRH(QGGT,Q1,Q2,Q3,IES)
  168. NK=K0
  169. C ********
  170. C * 2D *
  171. C ********
  172. C
  173. C IMODEL=3
  174. C Suite de la definition des constantes
  175. C IF(IMODEL.EQ.3) THEN
  176. C IMO=2
  177. C ELSE
  178. C IMO=1
  179. C ENDIF
  180. C
  181. C (IMODEL=1 modèle Standard ; IMODEL=2 modèle RNG)
  182. CNU=CONST(IMODEL,1)
  183. C1=CONST(IMODEL,2)
  184. C2=CONST(IMODEL,3)
  185. C3=CONST(IMODEL,4)
  186. SGT=CONST(IMODEL,5)
  187. SGK=CONST(IMODEL,6)
  188. SGE=CONST(IMODEL,7)
  189. C
  190. IF(IES.EQ.3)GO TO 10
  191. C
  192. C PRECAUTIONS
  193. C
  194. C WRITE(IOIMP,*)' juste Avt precaution K0=',K0
  195.  
  196. IF(K0.GT.0)GO TO 52
  197. IF(IPRE.EQ.0)GO TO 52
  198. DT3=0.D0
  199. ECHLM=DIAM
  200. C WRITE(IOIMP,*)' echlm=',echlm,' nptd=',nptd
  201.  
  202. DO 51 I=1,NPTD
  203. C. IF(DK(I).LT.XPETIT)GOTO 51
  204. C. IF(DE(I).LT.XPETIT)GOTO 51
  205. UMP=UN(I,1)*UN(I,1)+UN(I,2)*UN(I,2)
  206. UMP=SQRT(UMP)
  207. C AKMAX=4.D0*UMP*UMP+zxzini
  208. TK(I)=ABS(TK(I))+zxzini
  209. TE(I)=ABS(TE(I))+zxzini
  210. ECHL=(TK(I)+zxzini)**1.5D0/(TE(I)+zxzini)
  211. C IF(TK(I).LT.AKMAX.AND.ECHL.LT.ECHLM)GO TO 51
  212. IF(ECHL.LT.ECHLM)GO TO 51
  213. C REM=UMP*DIAM/COEFF(1)
  214. DT3=DT3+1.D0
  215. C TEMAX=AKMAX**1.5D0/ECHLM
  216. CP IF(TK(I).GT.AKMAX)TK(I)=((TK(I)-AKMAX)*AKMAX/(TK(I)+AKMAX))+AKMAX
  217. IF(ECHL.GT.ECHLM)TE(I)=TK(I)**1.5D0/
  218. & (((ECHL-ECHLM)*ECHLM/(ECHL+ECHLM))+ECHLM)
  219. C IF(REM.LT.1.D0)TE(I)=CNU*TK(I)**2.D0*10.D0/COEFF(1)
  220. 51 CONTINUE
  221. 52 CONTINUE
  222. C WRITE(IOIMP,*)' Apr precaution '
  223.  
  224. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  225.  
  226. C DIFFERENCES TRIANGLE / QUADRANGLE
  227. QUA4=0.D0
  228. IF(NP.EQ.4)QUA4=1.D0
  229.  
  230. C
  231. C K EST LE NUMERO DE L'ELEMENT
  232. C KP PERMET DE SE SITUER A L'INTERIEUR DES TABLEAUX DE LRV ELEMENTS
  233. C --- CALCUL DU NOMBRE DE PAQUETS DE LRV ELEMENTS ---
  234. NNN=MOD(NEL,LRV)
  235. IF(NNN.EQ.0) NPACK=NEL/LRV
  236. IF(NNN.NE.0) NPACK=1+(NEL-NNN)/LRV
  237. KPACKD=1
  238. KPACKF=NPACK
  239. C
  240. C*** BOUCLE SUR LES PAQUETS D'ELEMENTS ***
  241. C
  242. DO 70001 KPACK=KPACKD,KPACKF
  243. C
  244. C --- POUR CHAQUE PAQUET DE LRV ELEMENTS
  245. KDEB=1+(KPACK-1)*LRV
  246. KFIN=MIN(NEL,KDEB+LRV-1)
  247. C WRITE(IOIMP,*)' KPACK=',KPACK
  248. C
  249. DO 70002 K=KDEB,KFIN
  250. KP=K-KDEB+1
  251. NK=K+K0
  252. K1=1+(1-IK1)*(NK-1)
  253. AIRE(KP)=VOLU(NK)
  254. COEF(KP)=COEFF(K1)
  255. AL(KP)=COTE(NK,1)
  256. AH(KP)=COTE(NK,2)
  257. AL2(KP)=1.D0/AL(KP)/AL(KP)
  258. AH2(KP)=1.D0/AH(KP)/AH(KP)
  259. XMB (KP)=(AL(KP)+AH(KP))*0.5D0
  260. 70002 CONTINUE
  261. C WRITE(IOIMP,*)' Apr bcl 70002,,,,,,,,,,,,,,,,,,,,,,,, '
  262.  
  263. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  264. C Initialisation des UMI,UMIT avant accumulation
  265. DO 7005 K=KDEB,KFIN
  266. KP=K-KDEB+1
  267. UMI(KP,1)=zxzini
  268. UMI(KP,2)=zxzini
  269. GRADGX(KP,1)=zxzini
  270. GRADGX(KP,2)=zxzini
  271. GRADGY(KP,1)=zxzini
  272. GRADGY(KP,2)=zxzini
  273. AKM(KP)=zxzini
  274. AEM(KP)=zxzini
  275. UPIK(KP,1)=zxzini
  276. UPIK(KP,2)=zxzini
  277. UPIE(KP,1)=zxzini
  278. UPIE(KP,2)=zxzini
  279. GRADK(KP,1)=zxzini
  280. GRADK(KP,2)=zxzini
  281. GRADE(KP,1)=zxzini
  282. GRADE(KP,2)=zxzini
  283. DUDX(KP)=0.D0
  284. DUDY(KP)=0.D0
  285. DVDX(KP)=0.D0
  286. DVDY(KP)=0.D0
  287. DTDX(KP)=0.D0
  288. DTDY(KP)=0.D0
  289. C1P(KP)=C1
  290. C1G(KP)=0.D0
  291. PG(KP)=0.D0
  292. 7005 CONTINUE
  293.  
  294. DO 7006 I=1,NP
  295. DO 6006 K=KDEB,KFIN
  296. KP=K-KDEB+1
  297. NF=IPADL(LE(I,K))
  298. DR(KP,I)=DRR(I,K)
  299. UMI(KP,1)=UMI(KP,1)+UN(NF,1)*DR(KP,I)
  300. UMI(KP,2)=UMI(KP,2)+UN(NF,2)*DR(KP,I)
  301. UIX(KP,I)=UN(NF,1)
  302. UIY(KP,I)=UN(NF,2)
  303. GIX(KP,I)=GN(NF,1)
  304. GIY(KP,I)=GN(NF,2)
  305. AK(KP,I)=TK(NF)
  306. AE(KP,I)=TE(NF)
  307. GRADGX(KP,1)=GRADGX(KP,1)+HR(K,I,1)*GIX(KP,I)
  308. GRADGX(KP,2)=GRADGX(KP,2)+HR(K,I,2)*GIX(KP,I)
  309. GRADGY(KP,1)=GRADGY(KP,1)+HR(K,I,1)*GIY(KP,I)
  310. GRADGY(KP,2)=GRADGY(KP,2)+HR(K,I,2)*GIY(KP,I)
  311. AKM(KP)=AKM(KP)+TK(NF)*DR(KP,I)
  312. AEM(KP)=AEM(KP)+TE(NF)*DR(KP,I)
  313. GRADK(KP,1)=GRADK(KP,1)+HR(K,I,1)*AK(KP,I)
  314. GRADK(KP,2)=GRADK(KP,2)+HR(K,I,2)*AK(KP,I)
  315. GRADE(KP,1)=GRADE(KP,1)+HR(K,I,1)*AE(KP,I)
  316. GRADE(KP,2)=GRADE(KP,2)+HR(K,I,2)*AE(KP,I)
  317. C *** CALCUL DU TERME DE PRODUCTION ****************************
  318. DUDX(KP) = DUDX(KP)+HR(K,I,1)*UN(NF,1)
  319. DUDY(KP) = DUDY(KP)+HR(K,I,2)*UN(NF,1)
  320. DVDX(KP) = DVDX(KP)+HR(K,I,1)*UN(NF,2)
  321. DVDY(KP) = DVDY(KP)+HR(K,I,2)*UN(NF,2)
  322. 6006 CONTINUE
  323. 7006 CONTINUE
  324.  
  325. C WRITE(IOIMP,*)'Initialisation SAF1,SAF2,SBF '
  326. C
  327. C Initialisation des variables d'accumulation SAF1,SAF2,SBF
  328. C
  329. IF(IKOMP.EQ.0)THEN
  330.  
  331. DO 70060 K=KDEB,KFIN
  332. KP=K-KDEB+1
  333. ARO(KP)=1.D0
  334. 70060 CONTINUE
  335.  
  336. IF(IKAS.EQ.2)THEN
  337. DO 70061 I=1,NP
  338. DO 60061 K=KDEB,KFIN
  339. KP=K-KDEB+1
  340. SAF1(KP,I)=0.D0
  341. SAF2(KP,I)=0.D0
  342. SAFK(KP,I)=0.D0
  343. SAFE(KP,I)=0.D0
  344. 60061 CONTINUE
  345. 70061 CONTINUE
  346. ELSEIF(IKAS.EQ.3)THEN
  347. DO 70021 K=KDEB,KFIN
  348. KP=K-KDEB+1
  349. NK=K+K0
  350. NKG=1+(1-IKG)*(NK-1)
  351. RGX(KP)=RGE(NKG,1)
  352. RGY(KP)=RGE(NKG,2)
  353. 70021 CONTINUE
  354. DO 70062 I=1,NP
  355. DO 60062 K=KDEB,KFIN
  356. KP=K-KDEB+1
  357. SAF1(KP,I)=(-RGX(KP))*DR(KP,I)
  358. SAF2(KP,I)=(-RGY(KP))*DR(KP,I)
  359. SAFK(KP,I)=0.D0
  360. SAFE(KP,I)=0.D0
  361. NKG=1+(1-IKG)*(NK-1)
  362. DTDX(KP)=DTDX(KP)+HR(K,I,1)*RGE(NKG,1)
  363. DTDY(KP)=DTDY(KP)+HR(K,I,2)*RGE(NKG,2)
  364. 60062 CONTINUE
  365. 70062 CONTINUE
  366. ELSEIF(IKAS.EQ.5)THEN
  367. DO 70022 K=KDEB,KFIN
  368. KP=K-KDEB+1
  369. NK=K+K0
  370. NKG=1+(1-IKG)*(NK-1)
  371. RGX(KP)=RGE(NKG,1)
  372. RGY(KP)=RGE(NKG,2)
  373. 70022 CONTINUE
  374. DO 70063 I=1,NP
  375. DO 60063 K=KDEB,KFIN
  376. KP=K-KDEB+1
  377. NF=1+(1-IKT)*(IPADL(LE(I,K))-1)
  378. NFR=1+(1-IKREF)*(IPADL(LE(I,K))-1)
  379. SAF1(KP,I)=(-RGX(KP)*(TREF(NFR)-TN(NF)))*DR(KP,I)
  380. SAF2(KP,I)=(-RGY(KP)*(TREF(NFR)-TN(NF)))*DR(KP,I)
  381. SAFK(KP,I)=0.D0
  382. SAFE(KP,I)=0.D0
  383. DTDX(KP)=DTDX(KP)+HR(K,I,1)*TN(NF)
  384. DTDY(KP)=DTDY(KP)+HR(K,I,2)*TN(NF)
  385. 60063 CONTINUE
  386. 70063 CONTINUE
  387. ENDIF
  388.  
  389. ELSEIF(IKOMP.EQ.1)THEN
  390.  
  391. DO 70020 K=KDEB,KFIN
  392. KP=K-KDEB+1
  393. NK=K+K0
  394. NKR=1+(1-IKR)*(NK-1)
  395. ARO(KP)=RO(NKR)
  396. 70020 CONTINUE
  397.  
  398. IF(IKAS.EQ.4)THEN
  399. DO 70064 I=1,NP
  400. DO 60064 K=KDEB,KFIN
  401. KP=K-KDEB+1
  402. SAF1(KP,I)=0.D0
  403. SAF2(KP,I)=0.D0
  404. SAFK(KP,I)=0.D0
  405. SAFE(KP,I)=0.D0
  406. 60064 CONTINUE
  407. 70064 CONTINUE
  408. ELSEIF(IKAS.EQ.5)THEN
  409. DO 70024 K=KDEB,KFIN
  410. KP=K-KDEB+1
  411. NK=K+K0
  412. NKG=1+(1-IKG)*(NK-1)
  413. RGX(KP)=RGE(NKG,1)
  414. RGY(KP)=RGE(NKG,2)
  415. 70024 CONTINUE
  416. DO 70065 I=1,NP
  417. DO 60065 K=KDEB,KFIN
  418. KP=K-KDEB+1
  419. SAF1(KP,I)=-RGX(KP)*DR(KP,I)
  420. SAF2(KP,I)=-RGY(KP)*DR(KP,I)
  421. SAFK(KP,I)=0.D0
  422. SAFE(KP,I)=0.D0
  423. 60065 CONTINUE
  424. 70065 CONTINUE
  425. ENDIF
  426. ENDIF
  427.  
  428. DO 7007 K=KDEB,KFIN
  429. KP=K-KDEB+1
  430. NK=K+K0
  431. AKM(KP)=ABS(AKM(KP))/AIRE(KP)+zxzini
  432. AEM(KP)=ABS(AEM(KP))/AIRE(KP)+zxzini
  433. UMI(KP,1)=UMI(KP,1)/AIRE(KP)
  434. UMI(KP,2)=UMI(KP,2)/AIRE(KP)
  435. UM(KP)=UMI(KP,1)*UMI(KP,1)+UMI(KP,2)*UMI(KP,2)
  436. UM(KP)=SQRT(UM(KP))
  437. AX=GRADGX(KP,1)*GRADGX(KP,1)+GRADGX(KP,2)*GRADGX(KP,2)
  438. AX=SQRT(AX)+zxzini
  439. GRADGX(KP,1)=GRADGX(KP,1)/AX
  440. GRADGX(KP,2)=GRADGX(KP,2)/AX
  441. AY=GRADGY(KP,1)*GRADGY(KP,1)+GRADGY(KP,2)*GRADGY(KP,2)
  442. AY=SQRT(AY)+zxzini
  443. GRADGY(KP,1)=GRADGY(KP,1)/AY
  444. GRADGY(KP,2)=GRADGY(KP,2)/AY
  445. UPGX(KP)=GRADGX(KP,1)*UMI(KP,1)+GRADGX(KP,2)*UMI(KP,2)
  446. UPIGX(KP,1)=UPGX(KP)*GRADGX(KP,1)
  447. UPIGX(KP,2)=UPGX(KP)*GRADGX(KP,2)
  448. UPGY(KP)=GRADGY(KP,1)*UMI(KP,1)+GRADGY(KP,2)*UMI(KP,2)
  449. UPIGY(KP,1)=UPGY(KP)*GRADGY(KP,1)
  450. UPIGY(KP,2)=UPGY(KP)*GRADGY(KP,2)
  451.  
  452. AX=GRADK(KP,1)*GRADK(KP,1)+GRADK(KP,2)*GRADK(KP,2)
  453. AX=SQRT(AX)+zxzini
  454. GRADK(KP,1)=GRADK(KP,1)/AX
  455. GRADK(KP,2)=GRADK(KP,2)/AX
  456. UPK(KP)=GRADK(KP,1)*UMI(KP,1)+GRADK(KP,2)*UMI(KP,2)
  457. UPIK(KP,1)=UPK(KP)*GRADK(KP,1)
  458. UPIK(KP,2)=UPK(KP)*GRADK(KP,2)
  459.  
  460. AX=GRADE(KP,1)*GRADE(KP,1)+GRADE(KP,2)*GRADE(KP,2)
  461. AX=SQRT(AX)+zxzini
  462. GRADE(KP,1)=GRADE(KP,1)/AX
  463. GRADE(KP,2)=GRADE(KP,2)/AX
  464. UPE(KP)=GRADE(KP,1)*UMI(KP,1)+GRADE(KP,2)*UMI(KP,2)
  465. UPIE(KP,1)=UPE(KP)*GRADE(KP,1)
  466. UPIE(KP,2)=UPE(KP)*GRADE(KP,2)
  467.  
  468. ANUT(KP)=CNU*AKM(KP)*AKM(KP)/AEM(KP)
  469. AMUT(NK)=ARO(KP)*ANUT(KP)
  470. COEFT(KP)=COEF(KP)+AMUT(NK)
  471. COEFK(KP)=COEF(KP)+ANUT(KP)/SGK
  472. COEFE(KP)=COEF(KP)+ANUT(KP)/SGE
  473. C --- 2. CALCUL DU TERME DE PRODUCTION PROPREMENT DIT ----------
  474. PTEMP=( (DUDY(KP)+DVDX(KP))**2
  475. $ + 2.D0*(DUDX(KP)**2+DVDY(KP)**2) )
  476. P(KP)=PTEMP
  477. 7007 CONTINUE
  478. C------------ANCIENNE VERSION--------------------
  479. C IF(IAXI.NE.0) THEN
  480. C DO 70012 K=KDEB,KFIN
  481. C KP=K+1-KDEB
  482. C P(KP)=P(KP)+2.D0*(UMI(KP,1)*UMI(KP,1))/(RPG(K)*RPG(K))
  483. C70012 CONTINUE
  484. C END IF
  485. C
  486. C IF(IKAS.EQ.5.AND.IKOMP.EQ.0)THEN
  487. C IF(IMODEL.EQ.1)THEN
  488. C DO 70113 K=KDEB,KFIN
  489. C KP=K+1-KDEB
  490. C PG(KP)=(RGX(KP)*DTDX(KP)+RGY(KP)*DTDY(KP))/SGT
  491. C IF(PG(KP).GT.0.D0)C1G(KP)=C1
  492. C70113 CONTINUE
  493. C ELSEIF(IMODEL.EQ.2)THEN
  494. C DO 70213 K=KDEB,KFIN
  495. C KP=K+1-KDEB
  496. C PG(KP)=(RGX(KP)*DTDX(KP)+RGY(KP)*DTDY(KP))/SGT
  497. C RF =-PG(KP)/(P(KP)+PG(KP)+zxzini)
  498. C IF(PG(KP).GT.0.D0)RF=0.D0
  499. C C1G(KP)=C1*(1.D0+C3*RF)
  500. C C1P(KP)=C1*(1.D0+C3*RF)
  501. C70213 CONTINUE
  502. C ENDIF
  503. C ELSEIF(IKAS.EQ.2.AND.IKOMP.EQ.0)THEN
  504. C IF(IMODEL.EQ.1)THEN
  505. C DO 70114 K=KDEB,KFIN
  506. C KP=K+1-KDEB
  507. C PG(KP)=(DTDX(KP)+DTDY(KP))/SGT
  508. C IF(PG(KP).GT.0.D0)C1G(KP)=C1
  509. C70114 CONTINUE
  510. C ELSEIF(IMODEL.EQ.2)THEN
  511. C DO 70214 K=KDEB,KFIN
  512. C KP=K+1-KDEB
  513. C PG(KP)=(DTDX(KP)+DTDY(KP))/SGT
  514. C RF =-PG(KP)/(P(KP)+PG(KP)+zxzini)
  515. C IF(PG(KP).GT.0.D0)RF=0.D0
  516. C C1G(KP)=C1*(1.D0+C3*RF )
  517. C C1P(KP)=C1*(1.D0+C3*RF )
  518. C70214 CONTINUE
  519. C END IF
  520. C END IF
  521. C-------------VERSION POUR RNG---------------
  522. IF(IKAS.EQ.5.AND.IKOMP.EQ.0)THEN
  523. DO 70213 K=KDEB,KFIN
  524. KP=K+1-KDEB
  525. PG(KP)=(RGX(KP)*DTDX(KP)+RGY(KP)*DTDY(KP))/SGT
  526. RF =-PG(KP)/(P(KP)+PG(KP)+zxzini)
  527. IF(PG(KP).GT.0.D0)RF=0.D0
  528. C1G(KP)=C1*(1.D0+C3*RF)
  529. C1P(KP)=C1*(1.D0+C3*RF)
  530. 70213 CONTINUE
  531. ELSEIF(IKAS.EQ.2.AND.IKOMP.EQ.0)THEN
  532. DO 70214 K=KDEB,KFIN
  533. KP=K+1-KDEB
  534. PG(KP)=(DTDX(KP)+DTDY(KP))/SGT
  535. RF =-PG(KP)/(P(KP)+PG(KP)+zxzini)
  536. IF(PG(KP).GT.0.D0)RF=0.D0
  537. C1G(KP)=C1*(1.D0+C3*RF )
  538. C1P(KP)=C1*(1.D0+C3*RF )
  539. 70214 CONTINUE
  540. END IF
  541.  
  542. IF(IMODEL.EQ.2) THEN
  543. ETA0=4.377D0
  544. BETA0=0.012D0
  545. ETA=(P(KP)**0.5D0)*AKM(KP)/AEM(KP)
  546. RETA= ETA*(1.D0-(ETA/ETA0))/(1.D0+BETA0*(ETA**3.D0))
  547. C1P(KP)=C1P(KP)-RETA
  548. END IF
  549. C --------------------------------------------------------------
  550. C *** FIN DU CALCUL DU TERME DE PRODUCTION *********************
  551.  
  552. DO 70074 K=KDEB,KFIN
  553. KP=K-KDEB+1
  554. BMX=UMI(KP,1)/AL(KP)
  555. BMY=UMI(KP,2)/AH(KP)
  556. BM(KP)=BMX*BMX+BMY*BMY
  557. BM(KP)=SQRT(BM(KP))+zxzini
  558. BPGXX=UPIGX(KP,1)/AL(KP)
  559. BPGXY=UPIGX(KP,2)/AH(KP)
  560. BPGX(KP)=BPGXX*BPGXX+BPGXY*BPGXY
  561. BPGX(KP)=SQRT(BPGX(KP))+zxzini
  562. BPGYX=UPIGY(KP,1)/AL(KP)
  563. BPGYY=UPIGY(KP,2)/AH(KP)
  564. BPGY(KP)=BPGYX*BPGYX+BPGYY*BPGYY
  565. BPGY(KP)=SQRT(BPGY(KP))+zxzini
  566. BPKX=UPIK(KP,1)/AL(KP)
  567. BPKY=UPIK(KP,2)/AH(KP)
  568. BPK(KP)=BPKX*BPKX+BPKY*BPKY
  569. BPK(KP)=SQRT(BPK(KP))+zxzini
  570. BPEX=UPIE(KP,1)/AL(KP)
  571. BPEY=UPIE(KP,2)/AH(KP)
  572. BPE(KP)=BPEX*BPEX+BPEY*BPEY
  573. BPE(KP)=SQRT(BPE(KP))+zxzini
  574. 70074 CONTINUE
  575. C
  576. C AVANT DECENTREMENT
  577. C
  578. C ALFA,AKSI,CCU utilisées seulement dans la boucle 7008
  579. IF(IDCEN.EQ.1)THEN
  580. DO 70081 K=KDEB,KFIN
  581. KP=K-KDEB+1
  582. GXCXT(KP)=0.D0
  583. GXCYT(KP)=0.D0
  584. GXCXY(KP)=0.D0
  585. GYCXT(KP)=0.D0
  586. GYCYT(KP)=0.D0
  587. GYCXY(KP)=0.D0
  588. GKCXT(KP)=0.D0
  589. GKCYT(KP)=0.D0
  590. GKCXY(KP)=0.D0
  591. GECXT(KP)=0.D0
  592. GECYT(KP)=0.D0
  593. GECXY(KP)=0.D0
  594. 70081 CONTINUE
  595.  
  596. ELSEIF(IDCEN.EQ.2)THEN
  597. DO 7008 K=KDEB,KFIN
  598. KP=K-KDEB+1
  599. HMK=2.D0*UM(KP)/BM(KP)
  600. XMB(KP)=HMK
  601. ALFA=UM(KP)*HMK/COEFT(KP)/2.D0
  602. AKSI=ALFA/3.D0
  603. IF(ALFA.GT.3.D0)AKSI=1.D0
  604. CCT=AKSI/BM(KP)
  605.  
  606. HPK=2.D0*UPGX(KP)/BPGX(KP)
  607. ALFA=UPGX(KP)*HPK/COEFT(KP)/2.D0
  608. AKSI=ALFA/3.D0
  609. IF(ALFA.GT.3.D0)AKSI=1.D0
  610. CCP=AKSI/BPGX(KP)
  611. CPT=CCP-CCT
  612. CC2X=0.D0
  613. IF(CPT.GE.0.D0)CC2X=CPT
  614.  
  615. HPK=2.D0*UPGY(KP)/BPGY(KP)
  616. ALFA=UPGY(KP)*HPK/COEFT(KP)/2.D0
  617. AKSI=ALFA/3.D0
  618. IF(ALFA.GT.3.D0)AKSI=1.D0
  619. CCP=AKSI/BPGY(KP)
  620. CPT=CCP-CCT
  621. CC2Y=0.D0
  622. IF(CPT.GE.0.D0)CC2Y=CPT
  623.  
  624. HPK=2.D0*UPK(KP)/BPK(KP)
  625. ALFA=UPK(KP)*HPK/COEFK(KP)/2.D0
  626. AKSI=ALFA/3.D0
  627. IF(ALFA.GT.3.D0)AKSI=1.D0
  628. CCP=AKSI/BPK(KP)
  629. CPT=CCP-CCT
  630. CC2K=0.D0
  631. IF(CPT.GE.0.D0)CC2K=CPT
  632.  
  633. HPK=2.D0*UPE(KP)/BPE(KP)
  634. ALFA=UPE(KP)*HPK/COEFE(KP)/2.D0
  635. AKSI=ALFA/3.D0
  636. IF(ALFA.GT.3.D0)AKSI=1.D0
  637. CCP=AKSI/BPE(KP)
  638. CPT=CCP-CCT
  639. CC2E=0.D0
  640. IF(CPT.GE.0.D0)CC2E=CPT
  641.  
  642. GXCXT(KP)=(UMI(KP,1)*UMI(KP,1)*CCT
  643. $ +UPIGX(KP,1)*UPIGX(KP,1)*CC2X)
  644. GXCYT(KP)=(UMI(KP,2)*UMI(KP,2)*CCT
  645. $ +UPIGX(KP,2)*UPIGX(KP,2)*CC2X)
  646. GXCXY(KP)=(UMI(KP,1)*UMI(KP,2)*CCT
  647. $ +UPIGX(KP,1)*UPIGX(KP,2)*CC2X)
  648.  
  649. GYCXT(KP)=(UMI(KP,1)*UMI(KP,1)*CCT
  650. $ +UPIGY(KP,1)*UPIGY(KP,1)*CC2Y)
  651. GYCYT(KP)=(UMI(KP,2)*UMI(KP,2)*CCT
  652. $ +UPIGY(KP,2)*UPIGY(KP,2)*CC2Y)
  653. GYCXY(KP)=(UMI(KP,1)*UMI(KP,2)*CCT
  654. $ +UPIGY(KP,1)*UPIGY(KP,2)*CC2Y)
  655.  
  656. GKCXT(KP)=(UMI(KP,1)*UMI(KP,1)*CCT
  657. $ +UPIK(KP,1)*UPIK(KP,1)*CC2K)
  658. GKCYT(KP)=(UMI(KP,2)*UMI(KP,2)*CCT
  659. $ +UPIK(KP,2)*UPIK(KP,2)*CC2K)
  660. GKCXY(KP)=(UMI(KP,1)*UMI(KP,2)*CCT
  661. $ +UPIK(KP,1)*UPIK(KP,2)*CC2K)
  662.  
  663. GECXT(KP)=(UMI(KP,1)*UMI(KP,1)*CCT
  664. $ +UPIE(KP,1)*UPIE(KP,1)*CC2E)
  665. GECYT(KP)=(UMI(KP,2)*UMI(KP,2)*CCT
  666. $ +UPIE(KP,2)*UPIE(KP,2)*CC2E)
  667. GECXY(KP)=(UMI(KP,1)*UMI(KP,2)*CCT
  668. $ +UPIE(KP,1)*UPIE(KP,2)*CC2E)
  669.  
  670. 7008 CONTINUE
  671.  
  672. ELSEIF(IDCEN.EQ.3)THEN
  673. DO 7018 K=KDEB,KFIN
  674. KP=K-KDEB+1
  675. HMK=2.D0*UM(KP)/BM(KP)
  676. XMB(KP)=HMK
  677. ALFA=UM(KP)*HMK/COEFT(KP)/2.D0
  678. AKSI=ALFA/3.D0
  679. IF(ALFA.GT.3.D0)AKSI=1.D0
  680. CCT=AKSI/BM(KP)
  681.  
  682. GXCXT(KP)=UMI(KP,1)*UMI(KP,1)*CCT
  683. GXCYT(KP)=UMI(KP,2)*UMI(KP,2)*CCT
  684. GXCXY(KP)=UMI(KP,1)*UMI(KP,2)*CCT
  685.  
  686. GYCXT(KP)=UMI(KP,1)*UMI(KP,1)*CCT
  687. GYCYT(KP)=UMI(KP,2)*UMI(KP,2)*CCT
  688. GYCXY(KP)=UMI(KP,1)*UMI(KP,2)*CCT
  689.  
  690. GKCXT(KP)=UMI(KP,1)*UMI(KP,1)*CCT
  691. GKCYT(KP)=UMI(KP,2)*UMI(KP,2)*CCT
  692. GKCXY(KP)=UMI(KP,1)*UMI(KP,2)*CCT
  693.  
  694. GECXT(KP)=UMI(KP,1)*UMI(KP,1)*CCT
  695. GECYT(KP)=UMI(KP,2)*UMI(KP,2)*CCT
  696. GECXY(KP)=UMI(KP,1)*UMI(KP,2)*CCT
  697.  
  698. 7018 CONTINUE
  699.  
  700. ELSEIF(IDCEN.EQ.4)THEN
  701. DT19=DTM1*0.5D0
  702. DO 7009 K=KDEB,KFIN
  703. KP=K-KDEB+1
  704. XMB(KP)=(AL(KP)+AH(KP))/2.D0
  705. GXCXT(KP)=UMI(KP,1)*UMI(KP,1)*DT19
  706. GXCYT(KP)=UMI(KP,2)*UMI(KP,2)*DT19
  707. GXCXY(KP)=UMI(KP,1)*UMI(KP,2)*DT19
  708. GYCXT(KP)=UMI(KP,1)*UMI(KP,1)*DT19
  709. GYCYT(KP)=UMI(KP,2)*UMI(KP,2)*DT19
  710. GYCXY(KP)=UMI(KP,1)*UMI(KP,2)*DT19
  711. GKCXT(KP)=UMI(KP,1)*UMI(KP,1)*DT19
  712. GKCYT(KP)=UMI(KP,2)*UMI(KP,2)*DT19
  713. GKCXY(KP)=UMI(KP,1)*UMI(KP,2)*DT19
  714. GECXT(KP)=UMI(KP,1)*UMI(KP,1)*DT19
  715. GECYT(KP)=UMI(KP,2)*UMI(KP,2)*DT19
  716. GECXY(KP)=UMI(KP,1)*UMI(KP,2)*DT19
  717. 7009 CONTINUE
  718.  
  719. ENDIF
  720.  
  721. C WRITE(IOIMP,*)' Avt Calcul DT'
  722. C
  723. C AVANT CALCUL DT
  724. C
  725. DO 7010 K=KDEB,KFIN
  726. KP=K-KDEB+1
  727. DT0=DT
  728. DT1X=2.D0/
  729. & (UMI(KP,1)*UMI(KP,1)/(GXCXT(KP)+COEFT(KP))
  730. & +UMI(KP,2)*UMI(KP,2)/(GXCYT(KP)+COEFT(KP)))
  731.  
  732. DT1Y=2.D0/
  733. & (UMI(KP,1)*UMI(KP,1)/(GYCXT(KP)+COEFT(KP))
  734. & +UMI(KP,2)*UMI(KP,2)/(GYCYT(KP)+COEFT(KP)))
  735. DT2X=0.5D0/
  736. & ((GXCXT(KP)+COEFT(KP))*AL2(KP)
  737. & +(GXCYT(KP)+COEFT(KP))*AH2(KP))
  738. DT2Y=0.5D0/
  739. & ((GYCXT(KP)+COEFT(KP))*AL2(KP)
  740. & +(GYCYT(KP)+COEFT(KP))*AH2(KP))
  741. IF(DT1X.LT.DT)DT=DT1X
  742. IF(DT1Y.LT.DT)DT=DT1Y
  743. IF(DT2X.LT.DT)DT=DT2X
  744. IF(DT2Y.LT.DT)DT=DT2Y
  745. C IF(DT3.LT.DT)DT=DT3
  746. IF(DT.NE.DT0) THEN
  747. DTT1=MIN(DT1X,DT1Y)
  748. DTT2=MIN(DT2X,DT2Y)
  749. C DTT3=DT3
  750. DIAEL=XMB(KP)
  751. NUEL=K
  752. END IF
  753. 7010 CONTINUE
  754.  
  755. C WRITE(IOIMP,*)' le coeur du calcul '
  756. C Le coeur du calcul ...
  757.  
  758. IF(IKOMP.EQ.0)THEN
  759.  
  760. DO 7014 I=1,NP
  761. DO 70141 J=1,NP
  762. DO 70142 K=KDEB,KFIN
  763. KP=K-KDEB+1
  764. ZVGGX=AIRE(KP)*(
  765. & HR(K,I,1)*HR(K,J,1)*GXCXT(KP)
  766. & + HR(K,I,1)*HR(K,J,2)*GXCXY(KP)
  767. & + HR(K,I,2)*HR(K,J,1)*GXCXY(KP)
  768. & + HR(K,I,2)*HR(K,J,2)*GXCYT(KP)
  769. & + (GXCXT(KP)*AL2(KP)+GXCYT(KP)*AH2(KP))
  770. $ /12.D0*VGGT(J,I)*QUA4 )
  771.  
  772. ZVGGY=AIRE(KP)*(
  773. & HR(K,I,1)*HR(K,J,1)*GYCXT(KP)
  774. & + HR(K,I,1)*HR(K,J,2)*GYCXY(KP)
  775. & + HR(K,I,2)*HR(K,J,1)*GYCXY(KP)
  776. & + HR(K,I,2)*HR(K,J,2)*GYCYT(KP)
  777. & + (GYCXT(KP)*AL2(KP)+GYCYT(KP)*AH2(KP))/12
  778. $ .D0*VGGT(J,I)*QUA4 )
  779.  
  780. ZVGK =AIRE(KP)*(
  781. & HR(K,I,1)*HR(K,J,1)*GKCXT(KP)
  782. & + HR(K,I,1)*HR(K,J,2)*GKCXY(KP)
  783. & + HR(K,I,2)*HR(K,J,1)*GKCXY(KP)
  784. & + HR(K,I,2)*HR(K,J,2)*GKCYT(KP)
  785. & + (GKCXT(KP)*AL2(KP)+GKCYT(KP)*AH2(KP))/12
  786. $ .D0*VGGT(J,I)*QUA4 )
  787.  
  788. ZVGE =AIRE(KP)*(
  789. & HR(K,I,1)*HR(K,J,1)*GECXT(KP)
  790. & + HR(K,I,1)*HR(K,J,2)*GECXY(KP)
  791. & + HR(K,I,2)*HR(K,J,1)*GECXY(KP)
  792. & + HR(K,I,2)*HR(K,J,2)*GECYT(KP)
  793. & + (GECXT(KP)*AL2(KP)+GECYT(KP)*AH2(KP))/12
  794. $ .D0*VGGT(J,I)*QUA4 )
  795.  
  796. ZVGD=AIRE(KP)*(
  797. & HR(K,I,1)*HR(K,J,1)*COEFT(KP)
  798. & + HR(K,I,2)*HR(K,J,2)*COEFT(KP)
  799. & + (COEFT(KP)*AL2(KP)+COEFT(KP)*AH2(KP))/12
  800. $ .D0*VGGT(J,I)*QUA4 )
  801.  
  802. ZVGDK=AIRE(KP)*(
  803. & HR(K,I,1)*HR(K,J,1)*COEFK(KP)
  804. & + HR(K,I,2)*HR(K,J,2)*COEFK(KP)
  805. & + (COEFK(KP)*AL2(KP)+COEFK(KP)*AH2(KP))/12
  806. $ .D0*VGGT(J,I)*QUA4 )
  807.  
  808. ZVGDE=AIRE(KP)*(
  809. & HR(K,I,1)*HR(K,J,1)*COEFE(KP)
  810. & + HR(K,I,2)*HR(K,J,2)*COEFE(KP)
  811. & + (COEFE(KP)*AL2(KP)+COEFE(KP)*AH2(KP))/12
  812. $ .D0*VGGT(J,I)*QUA4 )
  813.  
  814. Cnon V2=(UIX(KP,I)*HR(K,J,1)+UIY(KP,I)*HR(K,J,2))*DR(KP,I)
  815.  
  816. V2=UMI(KP,1)*DR(KP,I)*HR(K,J,1)+UMI(KP,2)*DR(KP,I)
  817. $ *HR(K,J,2)
  818.  
  819. SAF1(KP,I)=SAF1(KP,I)+(V2+ZVGGX)*GIX(KP,J)+ZVGD
  820. $ *UIX(KP,J)
  821. SAF2(KP,I)=SAF2(KP,I)+(V2+ZVGGY)*GIY(KP,J)+ZVGD
  822. $ *UIY(KP,J)
  823.  
  824. SAFK(KP,I)=SAFK(KP,I)+(V2+ZVGK)*AK(KP,J)+ZVGDK
  825. $ *AK(KP,J)
  826. SAFE(KP,I)=SAFE(KP,I)+(V2+ZVGE)*AE(KP,J)+ZVGDE
  827. $ *AE(KP,J)
  828.  
  829. 70142 CONTINUE
  830. 70141 CONTINUE
  831. 7014 CONTINUE
  832.  
  833. ELSEIF(IKOMP.EQ.1)THEN
  834.  
  835. DO 7015 I=1,NP
  836. DO 70151 J=1,NP
  837. DO 70152 K=KDEB,KFIN
  838. KP=K-KDEB+1
  839. ZVGGX=AIRE(KP)*(
  840. & HR(K,I,1)*HR(K,J,1)*GXCXT(KP)
  841. & + HR(K,I,1)*HR(K,J,2)*GXCXY(KP)
  842. & + HR(K,I,2)*HR(K,J,1)*GXCXY(KP)
  843. & + HR(K,I,2)*HR(K,J,2)*GXCYT(KP)
  844. & + (GXCXT(KP)*AL2(KP)+GXCYT(KP)*AH2(KP))/12
  845. $ .D0*VGGT(J,I)*QUA4 )
  846.  
  847. ZVGGY=AIRE(KP)*(
  848. & HR(K,I,1)*HR(K,J,1)*GYCXT(KP)
  849. & + HR(K,I,1)*HR(K,J,2)*GYCXY(KP)
  850. & + HR(K,I,2)*HR(K,J,1)*GYCXY(KP)
  851. & + HR(K,I,2)*HR(K,J,2)*GYCYT(KP)
  852. & + (GYCXT(KP)*AL2(KP)+GYCYT(KP)*AH2(KP))/12
  853. $ .D0*VGGT(J,I)*QUA4 )
  854.  
  855. ZVGK =AIRE(KP)*(
  856. & HR(K,I,1)*HR(K,J,1)*GKCXT(KP)
  857. & + HR(K,I,1)*HR(K,J,2)*GKCXY(KP)
  858. & + HR(K,I,2)*HR(K,J,1)*GKCXY(KP)
  859. & + HR(K,I,2)*HR(K,J,2)*GKCYT(KP)
  860. & + (GKCXT(KP)*AL2(KP)+GKCYT(KP)*AH2(KP))/12
  861. $ .D0*VGGT(J,I)*QUA4 )
  862.  
  863. ZVGE =AIRE(KP)*(
  864. & HR(K,I,1)*HR(K,J,1)*GECXT(KP)
  865. & + HR(K,I,1)*HR(K,J,2)*GECXY(KP)
  866. & + HR(K,I,2)*HR(K,J,1)*GECXY(KP)
  867. & + HR(K,I,2)*HR(K,J,2)*GECYT(KP)
  868. & + (GECXT(KP)*AL2(KP)+GECYT(KP)*AH2(KP))/12
  869. $ .D0*VGGT(J,I)*QUA4 )
  870.  
  871. ZVGD=AIRE(KP)*(
  872. & HR(K,I,1)*HR(K,J,1)*COEFT(KP)
  873. & + HR(K,I,2)*HR(K,J,2)*COEFT(KP)
  874. & + (COEFT(KP)*AL2(KP)+COEFT(KP)*AH2(KP))/12
  875. $ .D0*VGGT(J,I)*QUA4 )
  876.  
  877. ZVGDK=AIRE(KP)*(
  878. & HR(K,I,1)*HR(K,J,1)*COEFK(KP)
  879. & + HR(K,I,2)*HR(K,J,2)*COEFK(KP)
  880. & + (COEFK(KP)*AL2(KP)+COEFK(KP)*AH2(KP))/12
  881. $ .D0*VGGT(J,I)*QUA4 )
  882.  
  883. ZVGDE=AIRE(KP)*(
  884. & HR(K,I,1)*HR(K,J,1)*COEFE(KP)
  885. & + HR(K,I,2)*HR(K,J,2)*COEFE(KP)
  886. & + (COEFE(KP)*AL2(KP)+COEFE(KP)*AH2(KP))/12
  887. $ .D0*VGGT(J,I)*QUA4 )
  888.  
  889. COEFT3=COEFT(KP)/3.D0
  890. ZVGUU=AIRE(KP)*( HR(K,I,1)*HR(K,J,1)
  891. & + AL2(KP)/12.D0*VGGT(J,I)*QUA4 )*COEFT3
  892. $ *UIX(KP,J)
  893. ZVGUV=AIRE(KP)*( HR(K,I,1)*HR(K,J,2))*COEFT3*UIY(KP
  894. $ ,J)
  895. ZVGVU=AIRE(KP)*( HR(K,I,2)*HR(K,J,1))*COEFT3*UIX(KP
  896. $ ,J)
  897. ZVGVV=AIRE(KP)*( HR(K,I,2)*HR(K,J,2)
  898. & + AH2(KP)/12.D0*VGGT(J,I)*QUA4 )*COEFT3
  899. $ *UIY(KP,J)
  900.  
  901. V2=(UIX(KP,J)*HR(K,J,1)+UIY(KP,J)*HR(K,J,2))*DR(KP
  902. $ ,I)
  903.  
  904. SAF1(KP,I)=SAF1(KP,I)+(V2+ZVGGX)*GIX(KP,J)+ZVGD
  905. $ *UIX(KP,J)+ ZVGUU + ZVGUV
  906. SAF2(KP,I)=SAF2(KP,I)+(V2+ZVGGY)*GIY(KP,J)+ZVGD
  907. $ *UIY(KP,J)+ ZVGVU + ZVGVV
  908.  
  909. SAFK(KP,I)=SAFK(KP,I)+(V2+ZVGK)*AK(KP,J)+ZVGDK
  910. $ *AK(KP,J)
  911. SAFE(KP,I)=SAFE(KP,I)+(V2+ZVGE)*AE(KP,J)+ZVGDE
  912. $ *AE(KP,J)
  913.  
  914. 70152 CONTINUE
  915. 70151 CONTINUE
  916. 7015 CONTINUE
  917.  
  918. ENDIF
  919.  
  920. IF(IAXI.NE.0) THEN
  921. DO 7016 I=1,NP
  922. DO 70161 J=1,NP
  923. DO 70162 K=KDEB,KFIN
  924. KP=K-KDEB+1
  925. C IP=LE(I,K)
  926. C XG=XCOOR((IP-1)*(IDIM+1) +1)+zxzini
  927. C R2=1.D0/XG/XG*DR(KP,I)
  928.  
  929. R2=1.D0/RPG(K)/RPG(K)*DR(KP,I)
  930. AX=(GXCXT(KP)+GXCYT(KP))*0.5D0
  931. SAF1(KP,I)=SAF1(KP,I)+R2*(COEFT(KP)*UIX(KP,J)+AX
  932. $ *GIX(KP,J))
  933.  
  934. 70162 CONTINUE
  935. 70161 CONTINUE
  936. 7016 CONTINUE
  937.  
  938. IF(IKOMP.EQ.1)THEN
  939.  
  940. DO 7118 I=1,NP
  941. DO 71181 K=KDEB,KFIN
  942. KP=K-KDEB+1
  943.  
  944. R1=1.D0/RPG(K)*DR(KP,I)
  945. SAF1(KP,I)=SAF1(KP,I)+R1*UMI(KP,1)*GIX(KP,I)
  946. SAF2(KP,I)=SAF2(KP,I)+R1*UMI(KP,1)*GIY(KP,I)
  947.  
  948. 71181 CONTINUE
  949. 7118 CONTINUE
  950.  
  951. ENDIF
  952.  
  953. ENDIF
  954. C
  955. C --------------------------------------------------------------
  956. C
  957. C
  958. DO 7017 I=1,NP
  959. DO 70171 K=KDEB,KFIN
  960. KP=K-KDEB+1
  961. TSK =(ANUT(KP)*(P(KP)+PG(KP))-AEM(KP))*DR(KP,I)
  962. SAFK(KP,I)=SAFK(KP,I)-TSK
  963.  
  964. TSE =(CNU*(C1P(KP)*P(KP)+C1G(KP)*PG(KP))*AKM(KP))
  965. $ *DR(KP,I)
  966. SAFE(KP,I)=SAFE(KP,I)-TSE
  967.  
  968. TSE1 =C2*AEM(KP)/AKM(KP)*DR(KP,I)
  969. BE1(KP,I) =TSE1
  970. 70171 CONTINUE
  971. 7017 CONTINUE
  972.  
  973. C
  974. C
  975. C --- ECRITURE DANS LES TABLEAUX F(1,*),F(2,*),G,GK,GE,GE1 (SCALAIRE)
  976. DO 70019 I=1,NP
  977. DO 60019 K=KDEB,KFIN
  978. KP=K+1-KDEB
  979. NF=IPADL(LE(I,K))
  980. F(NF,1)=F(NF,1)+SAF1(KP,I)
  981. F(NF,2)=F(NF,2)+SAF2(KP,I)
  982. GK(NF) =GK(NF) +SAFK(KP,I)
  983. GE1(NF)=GE1(NF)+BE1(KP,I)
  984. GE(NF) =GE (NF)+SAFE(KP,I)
  985. 60019 CONTINUE
  986. 70019 CONTINUE
  987. 70001 CONTINUE
  988. C
  989. C *** FIN DE LA BOUCLE SUR LES PAQUETS D'ELEMENTS ***
  990. C
  991. C WRITE(IOIMP,*)' FIN YCVIT GK='
  992. C WRITE(IOIMP,1002)(GK(i),i=1,nptd)
  993.  
  994. IPAS=1
  995. RETURN
  996.  
  997. C ********
  998. C * 3D *
  999. C ********
  1000.  
  1001. 10 CONTINUE
  1002. C
  1003. C PRECAUTIONS
  1004. C
  1005. IF(K0.GT.0)GO TO 62
  1006. IF(IPRE.EQ.0)GO TO 62
  1007. DT3=0.D0
  1008. ECHLM=DIAM
  1009. DO 61 I=1,NPTD
  1010. IF(DK(I).LT.XPETIT)GOTO 61
  1011. IF(DE(I).LT.XPETIT)GOTO 61
  1012. UMP=UN(I,1)*UN(I,1)+UN(I,2)*UN(I,2)+UN(I,3)*UN(I,3)
  1013. UMP=SQRT(UMP)
  1014. C AKMAX=4.D0*UMP*UMP+zxzini
  1015. TK(I)=ABS(TK(I))+zxzini
  1016. TE(I)=ABS(TE(I))+zxzini
  1017. ECHL=(TK(I)+zxzini)**1.5D0/(TE(I)+zxzini)
  1018. C IF(TK(I).LT.AKMAX.AND.ECHL.LT.ECHLM)GO TO 61
  1019. IF(ECHL.LT.ECHLM)GO TO 61
  1020. C REM=UMP*DIAM/COEFF(1)
  1021. DT3=DT3+1.D0
  1022. C TEMAX=AKMAX**1.5D0/ECHLM
  1023. CP IF(TK(I).GT.AKMAX)TK(I)=((TK(I)-AKMAX)*AKMAX/(TK(I)+AKMAX))+AKMAX
  1024. IF(ECHL.GT.ECHLM)TE(I)=TK(I)**1.5D0/
  1025. & (((ECHL-ECHLM)*ECHLM/(ECHL+ECHLM))+ECHLM)
  1026. C IF(REM.LT.1.D0)TE(I)=CNU*TK(I)**2.D0*10.D0/COEFF(1)
  1027. 61 CONTINUE
  1028. 62 CONTINUE
  1029.  
  1030. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  1031.  
  1032. C DIFFERENCES HEXAHEDRES / AUTRES ELEMENTS
  1033. CUB8=0.D0
  1034. IF(NP.EQ.8)CUB8=1.D0
  1035.  
  1036. C
  1037. C K EST LE NUMERO DE L'ELEMENT
  1038. C KP PERMET DE SE SITUER A L'INTERIEUR DES TABLEAUX DE LRV ELEMENTS
  1039. C --- CALCUL DU NOMBRE DE PAQUETS DE LRV ELEMENTS ---
  1040. NNN=MOD(NEL,LRV)
  1041. IF(NNN.EQ.0) NPACK=NEL/LRV
  1042. IF(NNN.NE.0) NPACK=1+(NEL-NNN)/LRV
  1043. KPACKD=1
  1044. KPACKF=NPACK
  1045. C
  1046. C*** BOUCLE SUR LES PAQUETS D'ELEMENTS ***
  1047. C
  1048. DO 80001 KPACK=KPACKD,KPACKF
  1049. C
  1050. C --- POUR CHAQUE PAQUET DE LRV ELEMENTS
  1051. KDEB=1+(KPACK-1)*LRV
  1052. KFIN=MIN(NEL,KDEB+LRV-1)
  1053. C WRITE(IOIMP,*)' KPACK=',KPACK
  1054. C
  1055. DO 80002 K=KDEB,KFIN
  1056. KP=K-KDEB+1
  1057. NK=K+K0
  1058. K1=1+(1-IK1)*(NK-1)
  1059. AIRE(KP)=VOLU(NK)
  1060. COEF(KP)=COEFF(K1)
  1061. AL(KP)=COTE(NK,1)
  1062. AH(KP)=COTE(NK,2)
  1063. AP(KP)=COTE(NK,3)
  1064. AL2(KP)=1.D0/AL(KP)/AL(KP)
  1065. AH2(KP)=1.D0/AH(KP)/AH(KP)
  1066. AP2(KP)=1.D0/AP(KP)/AP(KP)
  1067. CFM(KP)=AL(KP)*AH(KP)/AP(KP)+AL(KP)*AP(KP)/AH(KP)+
  1068. & AP(KP)*AH(KP)/AL(KP)
  1069. C CF1(KP)=AL(KP)*AH(KP)/AP(KP)
  1070. C CF2(KP)=AL(KP)*AP(KP)/AH(KP)
  1071. C CF3(KP)=AP(KP)*AH(KP)/AL(KP)
  1072. XMH (KP)=(AL(KP)+AH(KP)+AP(KP))/3.D0
  1073. XMB (KP)=XMH (KP)
  1074. 80002 CONTINUE
  1075. C WRITE(IOIMP,*)' Apr bcl 80002,,,,,,,,,,,,,,,,,,,,,,,, '
  1076.  
  1077. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  1078. C Initialisation des UMI,UMIT avant accumulation
  1079. DO 8005 K=KDEB,KFIN
  1080. KP=K-KDEB+1
  1081. UMI(KP,1)=zxzini
  1082. UMI(KP,2)=zxzini
  1083. UMI(KP,3)=zxzini
  1084. GRADGX(KP,1)=zxzini
  1085. GRADGX(KP,2)=zxzini
  1086. GRADGX(KP,3)=zxzini
  1087. GRADGY(KP,1)=zxzini
  1088. GRADGY(KP,2)=zxzini
  1089. GRADGY(KP,3)=zxzini
  1090. GRADGZ(KP,1)=zxzini
  1091. GRADGZ(KP,2)=zxzini
  1092. GRADGZ(KP,3)=zxzini
  1093. AKM(KP)=zxzini
  1094. AEM(KP)=zxzini
  1095. UPIK(KP,1)=zxzini
  1096. UPIK(KP,2)=zxzini
  1097. UPIK(KP,3)=zxzini
  1098. UPIE(KP,1)=zxzini
  1099. UPIE(KP,2)=zxzini
  1100. UPIE(KP,3)=zxzini
  1101. GRADK(KP,1)=zxzini
  1102. GRADK(KP,2)=zxzini
  1103. GRADK(KP,3)=zxzini
  1104. GRADE(KP,1)=zxzini
  1105. GRADE(KP,2)=zxzini
  1106. GRADE(KP,3)=zxzini
  1107. DUDX(KP)=0.D0
  1108. DUDY(KP)=0.D0
  1109. DUDZ(KP)=0.D0
  1110. DVDX(KP)=0.D0
  1111. DVDY(KP)=0.D0
  1112. DVDZ(KP)=0.D0
  1113. DWDX(KP)=0.D0
  1114. DWDY(KP)=0.D0
  1115. DWDZ(KP)=0.D0
  1116. DTDX(KP)=0.D0
  1117. DTDY(KP)=0.D0
  1118. DTDZ(KP)=0.D0
  1119. C1P(KP)=C1
  1120. C1G(KP)=0.D0
  1121. PG(KP)=0.D0
  1122. 8005 CONTINUE
  1123.  
  1124. DO 8006 I=1,NP
  1125. DO 5006 K=KDEB,KFIN
  1126. KP=K-KDEB+1
  1127. NF=IPADL(LE(I,K))
  1128. DR(KP,I)=DRR(I,K)
  1129. UMI(KP,1)=UMI(KP,1)+UN(NF,1)*DR(KP,I)
  1130. UMI(KP,2)=UMI(KP,2)+UN(NF,2)*DR(KP,I)
  1131. UMI(KP,3)=UMI(KP,3)+UN(NF,3)*DR(KP,I)
  1132. UIX(KP,I)=UN(NF,1)
  1133. UIY(KP,I)=UN(NF,2)
  1134. UIZ(KP,I)=UN(NF,3)
  1135. GIX(KP,I)=GN(NF,1)
  1136. GIY(KP,I)=GN(NF,2)
  1137. GIZ(KP,I)=GN(NF,3)
  1138. AK(KP,I)=TK(NF)
  1139. AE(KP,I)=TE(NF)
  1140. GRADGX(KP,1)=GRADGX(KP,1)+HR(K,I,1)*GIX(KP,I)
  1141. GRADGX(KP,2)=GRADGX(KP,2)+HR(K,I,2)*GIX(KP,I)
  1142. GRADGX(KP,3)=GRADGX(KP,3)+HR(K,I,3)*GIX(KP,I)
  1143. GRADGY(KP,1)=GRADGY(KP,1)+HR(K,I,1)*GIY(KP,I)
  1144. GRADGY(KP,2)=GRADGY(KP,2)+HR(K,I,2)*GIY(KP,I)
  1145. GRADGY(KP,3)=GRADGY(KP,3)+HR(K,I,3)*GIY(KP,I)
  1146. GRADGZ(KP,1)=GRADGZ(KP,1)+HR(K,I,1)*GIZ(KP,I)
  1147. GRADGZ(KP,2)=GRADGZ(KP,2)+HR(K,I,2)*GIZ(KP,I)
  1148. GRADGZ(KP,3)=GRADGZ(KP,3)+HR(K,I,3)*GIZ(KP,I)
  1149. AKM(KP)=AKM(KP)+TK(NF)*DR(KP,I)
  1150. AEM(KP)=AEM(KP)+TE(NF)*DR(KP,I)
  1151. GRADK(KP,1)=GRADK(KP,1)+HR(K,I,1)*AK(KP,I)
  1152. GRADK(KP,2)=GRADK(KP,2)+HR(K,I,2)*AK(KP,I)
  1153. GRADK(KP,3)=GRADK(KP,3)+HR(K,I,3)*AK(KP,I)
  1154. GRADE(KP,1)=GRADE(KP,1)+HR(K,I,1)*AE(KP,I)
  1155. GRADE(KP,2)=GRADE(KP,2)+HR(K,I,2)*AE(KP,I)
  1156. GRADE(KP,3)=GRADE(KP,3)+HR(K,I,3)*AE(KP,I)
  1157. C *** CALCUL DU TERME DE PRODUCTION ****************************
  1158. DUDX(KP) = DUDX(KP)+HR(K,I,1)*UN(NF,1)
  1159. DUDY(KP) = DUDY(KP)+HR(K,I,2)*UN(NF,1)
  1160. DUDZ(KP) = DUDZ(KP)+HR(K,I,3)*UN(NF,1)
  1161. DVDX(KP) = DVDX(KP)+HR(K,I,1)*UN(NF,2)
  1162. DVDY(KP) = DVDY(KP)+HR(K,I,2)*UN(NF,2)
  1163. DVDZ(KP) = DVDZ(KP)+HR(K,I,3)*UN(NF,2)
  1164. DWDX(KP) = DWDX(KP)+HR(K,I,1)*UN(NF,3)
  1165. DWDY(KP) = DWDY(KP)+HR(K,I,2)*UN(NF,3)
  1166. DWDZ(KP) = DWDZ(KP)+HR(K,I,3)*UN(NF,3)
  1167. 5006 CONTINUE
  1168. 8006 CONTINUE
  1169.  
  1170. C WRITE(IOIMP,*)'Initialisation SAF1,SAF2,SBF '
  1171. C
  1172. C Initialisation des variables d'accumulation SAF1,SAF2,SBF
  1173. C
  1174. IF(IKOMP.EQ.0)THEN
  1175.  
  1176. DO 80060 K=KDEB,KFIN
  1177. KP=K-KDEB+1
  1178. ARO(KP)=1.D0
  1179. 80060 CONTINUE
  1180.  
  1181. IF(IKAS.EQ.2)THEN
  1182. DO 80061 I=1,NP
  1183. DO 50061 K=KDEB,KFIN
  1184. KP=K-KDEB+1
  1185. SAF1(KP,I)=0.D0
  1186. SAF2(KP,I)=0.D0
  1187. SAF3(KP,I)=0.D0
  1188. SAFK(KP,I)=0.D0
  1189. SAFE(KP,I)=0.D0
  1190. 50061 CONTINUE
  1191. 80061 CONTINUE
  1192. ELSEIF(IKAS.EQ.3)THEN
  1193. DO 80021 K=KDEB,KFIN
  1194. KP=K-KDEB+1
  1195. NK=K+K0
  1196. NKG=1+(1-IKG)*(NK-1)
  1197. RGX(KP)=RGE(NKG,1)
  1198. RGY(KP)=RGE(NKG,2)
  1199. RGZ(KP)=RGE(NKG,3)
  1200. 80021 CONTINUE
  1201. DO 80062 I=1,NP
  1202. DO 50062 K=KDEB,KFIN
  1203. KP=K-KDEB+1
  1204. SAF1(KP,I)=(-RGX(KP))*DR(KP,I)
  1205. SAF2(KP,I)=(-RGY(KP))*DR(KP,I)
  1206. SAF3(KP,I)=(-RGZ(KP))*DR(KP,I)
  1207. SAFK(KP,I)=0.D0
  1208. SAFE(KP,I)=0.D0
  1209. NKG=1+(1-IKG)*(NK-1)
  1210. DTDX(KP)=DTDX(KP)+HR(K,I,1)*RGE(NKG,1)
  1211. DTDY(KP)=DTDY(KP)+HR(K,I,2)*RGE(NKG,2)
  1212. DTDZ(KP)=DTDZ(KP)+HR(K,I,3)*RGE(NKG,3)
  1213. 50062 CONTINUE
  1214. 80062 CONTINUE
  1215. ELSEIF(IKAS.EQ.5)THEN
  1216. DO 80022 K=KDEB,KFIN
  1217. KP=K-KDEB+1
  1218. NK=K+K0
  1219. NKG=1+(1-IKG)*(NK-1)
  1220. RGX(KP)=RGE(NKG,1)
  1221. RGY(KP)=RGE(NKG,2)
  1222. RGZ(KP)=RGE(NKG,3)
  1223. 80022 CONTINUE
  1224. DO 80063 I=1,NP
  1225. DO 50063 K=KDEB,KFIN
  1226. KP=K-KDEB+1
  1227. NF=1+(1-IKT)*(IPADL(LE(I,K))-1)
  1228. NFR=1+(1-IKREF)*(IPADL(LE(I,K))-1)
  1229. SAF1(KP,I)=(-RGX(KP)*(TREF(NFR)-TN(NF)))*DR(KP,I)
  1230. SAF2(KP,I)=(-RGY(KP)*(TREF(NFR)-TN(NF)))*DR(KP,I)
  1231. SAF3(KP,I)=(-RGZ(KP)*(TREF(NFR)-TN(NF)))*DR(KP,I)
  1232. SAFK(KP,I)=0.D0
  1233. SAFE(KP,I)=0.D0
  1234. DTDX(KP)=DTDX(KP)+HR(K,I,1)*TN(NF)
  1235. DTDY(KP)=DTDY(KP)+HR(K,I,2)*TN(NF)
  1236. DTDZ(KP)=DTDZ(KP)+HR(K,I,3)*TN(NF)
  1237. 50063 CONTINUE
  1238. 80063 CONTINUE
  1239. ENDIF
  1240.  
  1241. ELSEIF(IKOMP.EQ.1)THEN
  1242.  
  1243. DO 80020 K=KDEB,KFIN
  1244. KP=K-KDEB+1
  1245. NK=K+K0
  1246. NKR=1+(1-IKR)*(NK-1)
  1247. ARO(KP)=RO(NKR)
  1248. 80020 CONTINUE
  1249.  
  1250. IF(IKAS.EQ.4)THEN
  1251. DO 80064 I=1,NP
  1252. DO 50064 K=KDEB,KFIN
  1253. KP=K-KDEB+1
  1254. SAF1(KP,I)=0.D0
  1255. SAF2(KP,I)=0.D0
  1256. SAF3(KP,I)=0.D0
  1257. SAFK(KP,I)=0.D0
  1258. SAFE(KP,I)=0.D0
  1259. 50064 CONTINUE
  1260. 80064 CONTINUE
  1261. ELSEIF(IKAS.EQ.5)THEN
  1262. DO 80024 K=KDEB,KFIN
  1263. KP=K-KDEB+1
  1264. NK=K+K0
  1265. NKG=1+(1-IKG)*(NK-1)
  1266. RGX(KP)=RGE(NKG,1)
  1267. RGY(KP)=RGE(NKG,2)
  1268. RGZ(KP)=RGE(NKG,3)
  1269. 80024 CONTINUE
  1270. DO 80065 I=1,NP
  1271. DO 50065 K=KDEB,KFIN
  1272. KP=K-KDEB+1
  1273. SAF1(KP,I)=-RGX(KP)*DR(KP,I)
  1274. SAF2(KP,I)=-RGY(KP)*DR(KP,I)
  1275. SAF3(KP,I)=-RGZ(KP)*DR(KP,I)
  1276. SAFK(KP,I)=0.D0
  1277. SAFE(KP,I)=0.D0
  1278. 50065 CONTINUE
  1279. 80065 CONTINUE
  1280. ENDIF
  1281. ENDIF
  1282.  
  1283. DO 8007 K=KDEB,KFIN
  1284. KP=K-KDEB+1
  1285. NK=K+K0
  1286. AKM(KP)=ABS(AKM(KP))/AIRE(KP)+zxzini
  1287. AEM(KP)=ABS(AEM(KP))/AIRE(KP)+zxzini
  1288. UMI(KP,1)=UMI(KP,1)/AIRE(KP)
  1289. UMI(KP,2)=UMI(KP,2)/AIRE(KP)
  1290. UMI(KP,3)=UMI(KP,3)/AIRE(KP)
  1291. UM(KP)=UMI(KP,1)*UMI(KP,1)+UMI(KP,2)*UMI(KP,2)
  1292. & +UMI(KP,3)*UMI(KP,3)
  1293. UM(KP)=SQRT(UM(KP))
  1294. AX=GRADGX(KP,1)*GRADGX(KP,1)+GRADGX(KP,2)*GRADGX(KP,2)
  1295. & +GRADGX(KP,3)*GRADGX(KP,3)
  1296. AX=SQRT(AX)+zxzini
  1297. GRADGX(KP,1)=GRADGX(KP,1)/AX
  1298. GRADGX(KP,2)=GRADGX(KP,2)/AX
  1299. GRADGX(KP,3)=GRADGX(KP,3)/AX
  1300. AY=GRADGY(KP,1)*GRADGY(KP,1)+GRADGY(KP,2)*GRADGY(KP,2)
  1301. & +GRADGY(KP,3)*GRADGY(KP,3)
  1302. AY=SQRT(AY)+zxzini
  1303. GRADGY(KP,1)=GRADGY(KP,1)/AY
  1304. GRADGY(KP,2)=GRADGY(KP,2)/AY
  1305. GRADGY(KP,3)=GRADGY(KP,3)/AY
  1306. AZ=GRADGZ(KP,1)*GRADGZ(KP,1)+GRADGZ(KP,2)*GRADGZ(KP,2)
  1307. & +GRADGZ(KP,3)*GRADGZ(KP,3)
  1308. AZ=SQRT(AZ)+zxzini
  1309. GRADGZ(KP,1)=GRADGZ(KP,1)/AZ
  1310. GRADGZ(KP,2)=GRADGZ(KP,2)/AZ
  1311. GRADGZ(KP,3)=GRADGZ(KP,3)/AZ
  1312.  
  1313. UPGX(KP)=GRADGX(KP,1)*UMI(KP,1)+GRADGX(KP,2)*UMI(KP,2)
  1314. & +GRADGX(KP,3)*UMI(KP,3)
  1315. UPIGX(KP,1)=UPGX(KP)*GRADGX(KP,1)
  1316. UPIGX(KP,2)=UPGX(KP)*GRADGX(KP,2)
  1317. UPIGX(KP,3)=UPGX(KP)*GRADGX(KP,3)
  1318. UPGY(KP)=GRADGY(KP,1)*UMI(KP,1)+GRADGY(KP,2)*UMI(KP,2)
  1319. & +GRADGY(KP,3)*UMI(KP,3)
  1320. UPIGY(KP,1)=UPGY(KP)*GRADGY(KP,1)
  1321. UPIGY(KP,2)=UPGY(KP)*GRADGY(KP,2)
  1322. UPIGY(KP,3)=UPGY(KP)*GRADGY(KP,3)
  1323. UPGZ(KP)=GRADGZ(KP,1)*UMI(KP,1)+GRADGZ(KP,2)*UMI(KP,2)
  1324. & +GRADGZ(KP,3)*UMI(KP,3)
  1325. UPIGZ(KP,1)=UPGZ(KP)*GRADGZ(KP,1)
  1326. UPIGZ(KP,2)=UPGZ(KP)*GRADGZ(KP,2)
  1327. UPIGZ(KP,3)=UPGZ(KP)*GRADGZ(KP,3)
  1328.  
  1329. AX=GRADK(KP,1)*GRADK(KP,1)+GRADK(KP,2)*GRADK(KP,2)
  1330. & +GRADK(KP,3)*GRADK(KP,3)
  1331. AX=SQRT(AX)+zxzini
  1332. GRADK(KP,1)=GRADK(KP,1)/AX
  1333. GRADK(KP,2)=GRADK(KP,2)/AX
  1334. GRADK(KP,3)=GRADK(KP,3)/AX
  1335. UPK(KP)=GRADK(KP,1)*UMI(KP,1)+GRADK(KP,2)*UMI(KP,2)
  1336. & +GRADK(KP,3)*UMI(KP,3)
  1337. UPIK(KP,1)=UPK(KP)*GRADK(KP,1)
  1338. UPIK(KP,2)=UPK(KP)*GRADK(KP,2)
  1339. UPIK(KP,3)=UPK(KP)*GRADK(KP,3)
  1340.  
  1341. AX=GRADE(KP,1)*GRADE(KP,1)+GRADE(KP,2)*GRADE(KP,2)
  1342. & +GRADE(KP,3)*GRADE(KP,3)
  1343. AX=SQRT(AX)+zxzini
  1344. GRADE(KP,1)=GRADE(KP,1)/AX
  1345. GRADE(KP,2)=GRADE(KP,2)/AX
  1346. GRADE(KP,3)=GRADE(KP,3)/AX
  1347. UPE(KP)=GRADE(KP,1)*UMI(KP,1)+GRADE(KP,2)*UMI(KP,2)
  1348. & +GRADE(KP,3)*UMI(KP,3)
  1349. UPIE(KP,1)=UPE(KP)*GRADE(KP,1)
  1350. UPIE(KP,2)=UPE(KP)*GRADE(KP,2)
  1351. UPIE(KP,3)=UPE(KP)*GRADE(KP,3)
  1352.  
  1353. ANUT(KP)=CNU*AKM(KP)*AKM(KP)/AEM(KP)
  1354. AMUT(NK)=ARO(KP)*ANUT(KP)
  1355. COEFT(KP)=COEF(KP)+AMUT(NK)
  1356. COEFK(KP)=COEF(KP)+ANUT(KP)
  1357. COEFE(KP)=COEF(KP)+ANUT(KP)/SGE
  1358. C --- 2.D0 CALCUL DU TERME DE PRODUCTION PROPREMENT DIT ----------
  1359. PTEMP=( (DUDY(KP)+DVDX(KP))**2 + (DUDZ(KP)+DWDX(KP))**2
  1360. & + (DVDZ(KP)+DWDY(KP))**2
  1361. & + 2.D0*(DUDX(KP)**2+DVDY(KP)**2+DWDZ(KP)**2) )
  1362. P(KP)=PTEMP
  1363. 8007 CONTINUE
  1364.  
  1365. IF(IKAS.EQ.5.AND.IKOMP.EQ.0)THEN
  1366. IF(IMODEL.EQ.1)THEN
  1367. DO 80113 K=KDEB,KFIN
  1368. KP=K+1-KDEB
  1369. PG(KP)=(RGX(KP)*DTDX(KP)+RGY(KP)*DTDY(KP)
  1370. & +RGZ(KP)*DTDZ(KP) )/SGT
  1371. IF(PG(KP).GT.0.D0)C1G(KP)=C1
  1372. 80113 CONTINUE
  1373. ELSEIF(IMODEL.EQ.2)THEN
  1374. DO 80213 K=KDEB,KFIN
  1375. KP=K+1-KDEB
  1376. PG(KP)=(RGX(KP)*DTDX(KP)+RGY(KP)*DTDY(KP)
  1377. & +RGZ(KP)*DTDZ(KP) )/SGT
  1378. RF =-PG(KP)/(P(KP)+PG(KP)+zxzini)
  1379. IF(PG(KP).GT.0.D0)RF=0.D0
  1380. C1G(KP)=C1*(1.D0+C3*RF)
  1381. C1P(KP)=C1*(1.D0+C3*RF)
  1382. 80213 CONTINUE
  1383. ENDIF
  1384. ELSEIF(IKAS.EQ.2.AND.IKOMP.EQ.0)THEN
  1385. IF(IMODEL.EQ.1)THEN
  1386. DO 80114 K=KDEB,KFIN
  1387. KP=K+1-KDEB
  1388. PG(KP)=(DTDX(KP)+DTDY(KP)+DTDZ(KP))/SGT
  1389. IF(PG(KP).GT.0.D0)C1G(KP)=C1
  1390. 80114 CONTINUE
  1391. ELSEIF(IMODEL.EQ.2)THEN
  1392. DO 80214 K=KDEB,KFIN
  1393. KP=K+1-KDEB
  1394. PG(KP)=(DTDX(KP)+DTDY(KP)+DTDZ(KP))/SGT
  1395. RF =-PG(KP)/(P(KP)+PG(KP)+zxzini)
  1396. IF(PG(KP).GT.0.D0)RF=0.D0
  1397. C1G(KP)=C1*(1.D0+C3*RF )
  1398. C1P(KP)=C1*(1.D0+C3*RF )
  1399. 80214 CONTINUE
  1400. END IF
  1401. END IF
  1402.  
  1403. C --------------------------------------------------------------
  1404. C *** FIN DU CALCUL DU TERME DE PRODUCTION *********************
  1405.  
  1406. DO 80074 K=KDEB,KFIN
  1407. KP=K-KDEB+1
  1408. BMX=UMI(KP,1)/AL(KP)
  1409. BMY=UMI(KP,2)/AH(KP)
  1410. BMZ=UMI(KP,3)/AP(KP)
  1411. BM(KP)=BMX*BMX+BMY*BMY+BMZ*BMZ
  1412. BM(KP)=SQRT(BM(KP))+zxzini
  1413.  
  1414. BPGXX=UPIGX(KP,1)/AL(KP)
  1415. BPGXY=UPIGX(KP,2)/AH(KP)
  1416. BPGXZ=UPIGX(KP,3)/AP(KP)
  1417. BPGX(KP)=BPGXX*BPGXX+BPGXY*BPGXY+BPGXZ*BPGXZ
  1418. BPGX(KP)=SQRT(BPGX(KP))+zxzini
  1419. BPGYX=UPIGY(KP,1)/AL(KP)
  1420. BPGYY=UPIGY(KP,2)/AH(KP)
  1421. BPGYZ=UPIGY(KP,3)/AP(KP)
  1422. BPGY(KP)=BPGYX*BPGYX+BPGYY*BPGYY+BPGYZ*BPGYZ
  1423. BPGY(KP)=SQRT(BPGY(KP))+zxzini
  1424. BPGZX=UPIGZ(KP,1)/AL(KP)
  1425. BPGZY=UPIGZ(KP,2)/AH(KP)
  1426. BPGZZ=UPIGZ(KP,3)/AP(KP)
  1427. BPGZ(KP)=BPGZX*BPGZX+BPGZY*BPGZY+BPGZZ*BPGZZ
  1428. BPGZ(KP)=SQRT(BPGZ(KP))+zxzini
  1429.  
  1430. BPKX=UPIK(KP,1)/AL(KP)
  1431. BPKY=UPIK(KP,2)/AH(KP)
  1432. BPKZ=UPIK(KP,3)/AP(KP)
  1433. BPK(KP)=BPKX*BPKX+BPKY*BPKY+BPKZ*BPKZ
  1434. BPK(KP)=SQRT(BPK(KP))+zxzini
  1435. BPEX=UPIE(KP,1)/AL(KP)
  1436. BPEY=UPIE(KP,2)/AH(KP)
  1437. BPEZ=UPIE(KP,3)/AP(KP)
  1438. BPE(KP)=BPEX*BPEX+BPEY*BPEY+BPEZ*BPEZ
  1439. BPE(KP)=SQRT(BPE(KP))+zxzini
  1440. 80074 CONTINUE
  1441. C
  1442. C AVANT DECENTREMENT
  1443. C
  1444. C ALFA,AKSI,CCU utilisées seulement dans la boucle 7008
  1445. IF(IDCEN.EQ.1)THEN
  1446. DO 80081 K=KDEB,KFIN
  1447. KP=K-KDEB+1
  1448. GXCXT(KP)=0.D0
  1449. GXCYT(KP)=0.D0
  1450. GXCZT(KP)=0.D0
  1451. GXCXY(KP)=0.D0
  1452. GXCXZ(KP)=0.D0
  1453. GXCYZ(KP)=0.D0
  1454. GYCXT(KP)=0.D0
  1455. GYCYT(KP)=0.D0
  1456. GYCZT(KP)=0.D0
  1457. GYCXY(KP)=0.D0
  1458. GYCXZ(KP)=0.D0
  1459. GYCYZ(KP)=0.D0
  1460. GZCXT(KP)=0.D0
  1461. GZCYT(KP)=0.D0
  1462. GZCZT(KP)=0.D0
  1463. GZCXY(KP)=0.D0
  1464. GZCXZ(KP)=0.D0
  1465. GZCYZ(KP)=0.D0
  1466. GKCXT(KP)=0.D0
  1467. GKCYT(KP)=0.D0
  1468. GKCZT(KP)=0.D0
  1469. GKCXY(KP)=0.D0
  1470. GKCXZ(KP)=0.D0
  1471. GKCYZ(KP)=0.D0
  1472. GECXT(KP)=0.D0
  1473. GECYT(KP)=0.D0
  1474. GECZT(KP)=0.D0
  1475. GECXY(KP)=0.D0
  1476. GECXZ(KP)=0.D0
  1477. GECYZ(KP)=0.D0
  1478. 80081 CONTINUE
  1479.  
  1480. ELSEIF(IDCEN.EQ.2)THEN
  1481. DO 8008 K=KDEB,KFIN
  1482. KP=K-KDEB+1
  1483. HMK=2.D0*UM(KP)/BM(KP)
  1484. XMB(KP)=HMK
  1485. ALFA=UM(KP)*HMK/COEFT(KP)/2.D0
  1486. AKSI=ALFA/3.D0
  1487. IF(ALFA.GT.3.D0)AKSI=1.D0
  1488. CCT=AKSI/BM(KP)
  1489.  
  1490. HPK=2.D0*UPGX(KP)/BPGX(KP)
  1491. ALFA=UPGX(KP)*HPK/COEFT(KP)/2.D0
  1492. AKSI=ALFA/3.D0
  1493. IF(ALFA.GT.3.D0)AKSI=1.D0
  1494. CCP=AKSI/BPGX(KP)
  1495. CPT=CCP-CCT
  1496. CC2X=0.D0
  1497. IF(CPT.GE.0.D0)CC2X=CPT
  1498.  
  1499. HPK=2.D0*UPGY(KP)/BPGY(KP)
  1500. ALFA=UPGY(KP)*HPK/COEFT(KP)/2.D0
  1501. AKSI=ALFA/3.D0
  1502. IF(ALFA.GT.3.D0)AKSI=1.D0
  1503. CCP=AKSI/BPGY(KP)
  1504. CPT=CCP-CCT
  1505. CC2Y=0.D0
  1506. IF(CPT.GE.0.D0)CC2Y=CPT
  1507.  
  1508. HPK=2.D0*UPGZ(KP)/BPGZ(KP)
  1509. ALFA=UPGZ(KP)*HPK/COEFT(KP)/2.D0
  1510. AKSI=ALFA/3.D0
  1511. IF(ALFA.GT.3.D0)AKSI=1.D0
  1512. CCP=AKSI/BPGZ(KP)
  1513. CPT=CCP-CCT
  1514. CC2Z=0.D0
  1515. IF(CPT.GE.0.D0)CC2Z=CPT
  1516.  
  1517. HPK=2.D0*UPK(KP)/BPK(KP)
  1518. ALFA=UPK(KP)*HPK/COEFK(KP)/2.D0
  1519. AKSI=ALFA/3.D0
  1520. IF(ALFA.GT.3.D0)AKSI=1.D0
  1521. CCP=AKSI/BPK(KP)
  1522. CPT=CCP-CCT
  1523. CC2K=0.D0
  1524. IF(CPT.GE.0.D0)CC2K=CPT
  1525.  
  1526. HPK=2.D0*UPE(KP)/BPE(KP)
  1527. ALFA=UPE(KP)*HPK/COEFE(KP)/2.D0
  1528. AKSI=ALFA/3.D0
  1529. IF(ALFA.GT.3.D0)AKSI=1.D0
  1530. CCP=AKSI/BPE(KP)
  1531. CPT=CCP-CCT
  1532. CC2E=0.D0
  1533. IF(CPT.GE.0.D0)CC2E=CPT
  1534.  
  1535. GXCXT(KP)=(UMI(KP,1)*UMI(KP,1)*CCT+UPIGX(KP,1)*UPIGX(KP,1
  1536. $ )*CC2X)
  1537. GXCYT(KP)=(UMI(KP,2)*UMI(KP,2)*CCT+UPIGX(KP,2)*UPIGX(KP,2
  1538. $ )*CC2X)
  1539. GXCZT(KP)=(UMI(KP,3)*UMI(KP,3)*CCT+UPIGX(KP,3)*UPIGX(KP,3
  1540. $ )*CC2X)
  1541. GXCXY(KP)=(UMI(KP,1)*UMI(KP,2)*CCT+UPIGX(KP,1)*UPIGX(KP,2
  1542. $ )*CC2X)
  1543. GXCXZ(KP)=(UMI(KP,1)*UMI(KP,3)*CCT+UPIGX(KP,1)*UPIGX(KP,3
  1544. $ )*CC2X)
  1545. GXCYZ(KP)=(UMI(KP,2)*UMI(KP,3)*CCT+UPIGX(KP,2)*UPIGX(KP,3
  1546. $ )*CC2X)
  1547.  
  1548. GYCXT(KP)=(UMI(KP,1)*UMI(KP,1)*CCT+UPIGY(KP,1)*UPIGY(KP,1
  1549. $ )*CC2Y)
  1550. GYCYT(KP)=(UMI(KP,2)*UMI(KP,2)*CCT+UPIGY(KP,2)*UPIGY(KP,2
  1551. $ )*CC2Y)
  1552. GYCZT(KP)=(UMI(KP,3)*UMI(KP,3)*CCT+UPIGY(KP,3)*UPIGY(KP,3
  1553. $ )*CC2Y)
  1554. GYCXY(KP)=(UMI(KP,1)*UMI(KP,2)*CCT+UPIGY(KP,1)*UPIGY(KP,2
  1555. $ )*CC2Y)
  1556. GYCXZ(KP)=(UMI(KP,1)*UMI(KP,3)*CCT+UPIGY(KP,1)*UPIGY(KP,3
  1557. $ )*CC2Y)
  1558. GYCYZ(KP)=(UMI(KP,2)*UMI(KP,3)*CCT+UPIGY(KP,2)*UPIGY(KP,3
  1559. $ )*CC2Y)
  1560.  
  1561. GZCXT(KP)=(UMI(KP,1)*UMI(KP,1)*CCT+UPIGZ(KP,1)*UPIGZ(KP,1
  1562. $ )*CC2Z)
  1563. GZCYT(KP)=(UMI(KP,2)*UMI(KP,2)*CCT+UPIGZ(KP,2)*UPIGZ(KP,2
  1564. $ )*CC2Z)
  1565. GZCZT(KP)=(UMI(KP,3)*UMI(KP,3)*CCT+UPIGZ(KP,3)*UPIGZ(KP,3
  1566. $ )*CC2Z)
  1567. GZCXY(KP)=(UMI(KP,1)*UMI(KP,2)*CCT+UPIGZ(KP,1)*UPIGZ(KP,2
  1568. $ )*CC2Z)
  1569. GZCXZ(KP)=(UMI(KP,1)*UMI(KP,3)*CCT+UPIGZ(KP,1)*UPIGZ(KP,3
  1570. $ )*CC2Z)
  1571. GZCYZ(KP)=(UMI(KP,2)*UMI(KP,3)*CCT+UPIGZ(KP,2)*UPIGZ(KP,3
  1572. $ )*CC2Z)
  1573.  
  1574. GKCXT(KP)=(UMI(KP,1)*UMI(KP,1)*CCT+UPIK(KP,1)*UPIK(KP,1)
  1575. $ *CC2K)
  1576. GKCYT(KP)=(UMI(KP,2)*UMI(KP,2)*CCT+UPIK(KP,2)*UPIK(KP,2)
  1577. $ *CC2K)
  1578. GKCZT(KP)=(UMI(KP,3)*UMI(KP,3)*CCT+UPIK(KP,3)*UPIK(KP,3)
  1579. $ *CC2K)
  1580. GKCXY(KP)=(UMI(KP,1)*UMI(KP,2)*CCT+UPIK(KP,1)*UPIK(KP,2)
  1581. $ *CC2K)
  1582. GKCXZ(KP)=(UMI(KP,1)*UMI(KP,3)*CCT+UPIK(KP,1)*UPIK(KP,3)
  1583. $ *CC2K)
  1584. GKCYZ(KP)=(UMI(KP,2)*UMI(KP,3)*CCT+UPIK(KP,2)*UPIK(KP,3)
  1585. $ *CC2K)
  1586.  
  1587. GECXT(KP)=(UMI(KP,1)*UMI(KP,1)*CCT+UPIE(KP,1)*UPIE(KP,1)
  1588. $ *CC2E)
  1589. GECYT(KP)=(UMI(KP,2)*UMI(KP,2)*CCT+UPIE(KP,2)*UPIE(KP,2)
  1590. $ *CC2E)
  1591. GECZT(KP)=(UMI(KP,3)*UMI(KP,3)*CCT+UPIE(KP,3)*UPIE(KP,3)
  1592. $ *CC2E)
  1593. GECXY(KP)=(UMI(KP,1)*UMI(KP,2)*CCT+UPIE(KP,1)*UPIE(KP,2)
  1594. $ *CC2E)
  1595. GECXZ(KP)=(UMI(KP,1)*UMI(KP,3)*CCT+UPIE(KP,1)*UPIE(KP,3)
  1596. $ *CC2E)
  1597. GECYZ(KP)=(UMI(KP,2)*UMI(KP,3)*CCT+UPIE(KP,2)*UPIE(KP,3)
  1598. $ *CC2E)
  1599.  
  1600. 8008 CONTINUE
  1601.  
  1602. ELSEIF(IDCEN.EQ.3)THEN
  1603. DO 8018 K=KDEB,KFIN
  1604. KP=K-KDEB+1
  1605. HMK=2.D0*UM(KP)/BM(KP)
  1606. XMB(KP)=HMK
  1607. ALFA=UM(KP)*HMK/COEFT(KP)/2.D0
  1608. AKSI=ALFA/3.D0
  1609. IF(ALFA.GT.3.D0)AKSI=1.D0
  1610. CCT=AKSI/BM(KP)
  1611.  
  1612. GXCXT(KP)=UMI(KP,1)*UMI(KP,1)*CCT
  1613. GXCYT(KP)=UMI(KP,2)*UMI(KP,2)*CCT
  1614. GXCZT(KP)=UMI(KP,3)*UMI(KP,3)*CCT
  1615. GXCXY(KP)=UMI(KP,1)*UMI(KP,2)*CCT
  1616. GXCXZ(KP)=UMI(KP,1)*UMI(KP,3)*CCT
  1617. GXCYZ(KP)=UMI(KP,2)*UMI(KP,3)*CCT
  1618.  
  1619. GYCXT(KP)=UMI(KP,1)*UMI(KP,1)*CCT
  1620. GYCYT(KP)=UMI(KP,2)*UMI(KP,2)*CCT
  1621. GYCZT(KP)=UMI(KP,3)*UMI(KP,3)*CCT
  1622. GYCXY(KP)=UMI(KP,1)*UMI(KP,2)*CCT
  1623. GYCXZ(KP)=UMI(KP,1)*UMI(KP,3)*CCT
  1624. GYCYZ(KP)=UMI(KP,2)*UMI(KP,3)*CCT
  1625.  
  1626. GZCXT(KP)=UMI(KP,1)*UMI(KP,1)*CCT
  1627. GZCYT(KP)=UMI(KP,2)*UMI(KP,2)*CCT
  1628. GZCZT(KP)=UMI(KP,3)*UMI(KP,3)*CCT
  1629. GZCXY(KP)=UMI(KP,1)*UMI(KP,2)*CCT
  1630. GZCXZ(KP)=UMI(KP,1)*UMI(KP,3)*CCT
  1631. GZCYZ(KP)=UMI(KP,2)*UMI(KP,3)*CCT
  1632.  
  1633. GKCXT(KP)=UMI(KP,1)*UMI(KP,1)*CCT
  1634. GKCYT(KP)=UMI(KP,2)*UMI(KP,2)*CCT
  1635. GKCZT(KP)=UMI(KP,3)*UMI(KP,3)*CCT
  1636. GKCXY(KP)=UMI(KP,1)*UMI(KP,2)*CCT
  1637. GKCXZ(KP)=UMI(KP,1)*UMI(KP,3)*CCT
  1638. GKCYZ(KP)=UMI(KP,2)*UMI(KP,3)*CCT
  1639.  
  1640. GECXT(KP)=UMI(KP,1)*UMI(KP,1)*CCT
  1641. GECYT(KP)=UMI(KP,2)*UMI(KP,2)*CCT
  1642. GECZT(KP)=UMI(KP,3)*UMI(KP,3)*CCT
  1643. GECXY(KP)=UMI(KP,1)*UMI(KP,2)*CCT
  1644. GECXZ(KP)=UMI(KP,1)*UMI(KP,3)*CCT
  1645. GECYZ(KP)=UMI(KP,2)*UMI(KP,3)*CCT
  1646.  
  1647. 8018 CONTINUE
  1648.  
  1649. ELSEIF(IDCEN.EQ.4)THEN
  1650. DT19=DTM1*0.5D0
  1651. DO 8009 K=KDEB,KFIN
  1652. KP=K-KDEB+1
  1653. XMB(KP)=(AL(KP)+AH(KP))/2.D0
  1654.  
  1655. GXCXT(KP)=UMI(KP,1)*UMI(KP,1)*DT19
  1656. GXCYT(KP)=UMI(KP,2)*UMI(KP,2)*DT19
  1657. GXCZT(KP)=UMI(KP,3)*UMI(KP,3)*DT19
  1658. GXCXY(KP)=UMI(KP,1)*UMI(KP,2)*DT19
  1659. GXCXZ(KP)=UMI(KP,1)*UMI(KP,3)*DT19
  1660. GXCYZ(KP)=UMI(KP,2)*UMI(KP,3)*DT19
  1661.  
  1662. GYCXT(KP)=UMI(KP,1)*UMI(KP,1)*DT19
  1663. GYCYT(KP)=UMI(KP,2)*UMI(KP,2)*DT19
  1664. GYCZT(KP)=UMI(KP,3)*UMI(KP,3)*DT19
  1665. GYCXY(KP)=UMI(KP,1)*UMI(KP,2)*DT19
  1666. GYCXZ(KP)=UMI(KP,1)*UMI(KP,3)*DT19
  1667. GYCYZ(KP)=UMI(KP,2)*UMI(KP,3)*DT19
  1668.  
  1669. GZCXT(KP)=UMI(KP,1)*UMI(KP,1)*DT19
  1670. GZCYT(KP)=UMI(KP,2)*UMI(KP,2)*DT19
  1671. GZCZT(KP)=UMI(KP,3)*UMI(KP,3)*DT19
  1672. GZCXY(KP)=UMI(KP,1)*UMI(KP,2)*DT19
  1673. GZCXZ(KP)=UMI(KP,1)*UMI(KP,3)*DT19
  1674. GZCYZ(KP)=UMI(KP,2)*UMI(KP,3)*DT19
  1675.  
  1676. GKCXT(KP)=UMI(KP,1)*UMI(KP,1)*DT19
  1677. GKCYT(KP)=UMI(KP,2)*UMI(KP,2)*DT19
  1678. GKCZT(KP)=UMI(KP,3)*UMI(KP,3)*DT19
  1679. GKCXY(KP)=UMI(KP,1)*UMI(KP,2)*DT19
  1680. GKCXZ(KP)=UMI(KP,1)*UMI(KP,3)*DT19
  1681. GKCYZ(KP)=UMI(KP,2)*UMI(KP,3)*DT19
  1682.  
  1683. GECXT(KP)=UMI(KP,1)*UMI(KP,1)*DT19
  1684. GECYT(KP)=UMI(KP,2)*UMI(KP,2)*DT19
  1685. GECZT(KP)=UMI(KP,3)*UMI(KP,3)*DT19
  1686. GECXY(KP)=UMI(KP,1)*UMI(KP,2)*DT19
  1687. GECXZ(KP)=UMI(KP,1)*UMI(KP,3)*DT19
  1688. GECYZ(KP)=UMI(KP,2)*UMI(KP,3)*DT19
  1689.  
  1690. 8009 CONTINUE
  1691.  
  1692. ENDIF
  1693.  
  1694. C WRITE(IOIMP,*)' Avt Calcul DT'
  1695. C
  1696. C AVANT CALCUL DT
  1697. C
  1698. DO 8010 K=KDEB,KFIN
  1699. KP=K-KDEB+1
  1700. DT0=DT
  1701. DT1X=2.D0/
  1702. & (UMI(KP,1)*UMI(KP,1)/(GXCXT(KP)+COEFT(KP))
  1703. & +UMI(KP,2)*UMI(KP,2)/(GXCYT(KP)+COEFT(KP))
  1704. & +UMI(KP,3)*UMI(KP,3)/(GXCZT(KP)+COEFT(KP)))
  1705. DT1Y=2.D0/
  1706. & (UMI(KP,1)*UMI(KP,1)/(GYCXT(KP)+COEFT(KP))
  1707. & +UMI(KP,2)*UMI(KP,2)/(GYCYT(KP)+COEFT(KP))
  1708. & +UMI(KP,3)*UMI(KP,3)/(GYCZT(KP)+COEFT(KP)))
  1709. DT1Z=2.D0/
  1710. & (UMI(KP,1)*UMI(KP,1)/(GZCXT(KP)+COEFT(KP))
  1711. & +UMI(KP,2)*UMI(KP,2)/(GZCYT(KP)+COEFT(KP))
  1712. & +UMI(KP,3)*UMI(KP,3)/(GZCZT(KP)+COEFT(KP)))
  1713. DT2X=0.5D0/
  1714. & ((GXCXT(KP)+COEFT(KP))*AL2(KP)
  1715. & +(GXCYT(KP)+COEFT(KP))*AH2(KP)
  1716. & +(GXCZT(KP)+COEFT(KP))*AP2(KP))
  1717. DT2Y=0.5D0/
  1718. & ((GYCXT(KP)+COEFT(KP))*AL2(KP)
  1719. & +(GYCYT(KP)+COEFT(KP))*AH2(KP)
  1720. & +(GYCZT(KP)+COEFT(KP))*AP2(KP))
  1721. DT2Z=0.5D0/
  1722. & ((GZCXT(KP)+COEFT(KP))*AL2(KP)
  1723. & +(GZCYT(KP)+COEFT(KP))*AH2(KP)
  1724. & +(GZCZT(KP)+COEFT(KP))*AP2(KP))
  1725. IF(DT1X.LT.DT)DT=DT1X
  1726. IF(DT1Y.LT.DT)DT=DT1Y
  1727. IF(DT1Z.LT.DT)DT=DT1Z
  1728. IF(DT2X.LT.DT)DT=DT2X
  1729. IF(DT2Y.LT.DT)DT=DT2Y
  1730. IF(DT2Z.LT.DT)DT=DT2Z
  1731. C IF(DT3.LT.DT)DT=DT3
  1732. IF(DT.NE.DT0) THEN
  1733. DTT1=MIN(DT1X,DT1Y,DT1Z)
  1734. DTT2=MIN(DT2X,DT2Y,DT2Z)
  1735. C DTT3=DT3
  1736. DIAEL=XMB(KP)
  1737. NUEL=K
  1738. END IF
  1739. 8010 CONTINUE
  1740.  
  1741. C WRITE(IOIMP,*)' le coeur du calcul '
  1742. C Le coeur du calcul ...
  1743.  
  1744. IF(IKOMP.EQ.0)THEN
  1745.  
  1746. DO 8014 I=1,NP
  1747. DO 80141 J=1,NP
  1748. DO 80142 K=KDEB,KFIN
  1749. KP=K-KDEB+1
  1750. C GEO1=(CF1(KP)*Q1(J,I)+CF2(KP)*Q2(J,I)+CF3(KP)*Q3(J,I))*CUB8
  1751. GEO1=CFM(KP)*QGGT(J,I)*CUB8
  1752. ZVGGX=AIRE(KP)*(
  1753. & HR(K,I,1)*HR(K,J,1)*GXCXT(KP)
  1754. & + HR(K,I,2)*HR(K,J,2)*GXCYT(KP)
  1755. & + HR(K,I,3)*HR(K,J,3)*GXCZT(KP)
  1756. & + HR(K,I,1)*HR(K,J,2)*GXCXY(KP)
  1757. & + HR(K,I,2)*HR(K,J,1)*GXCXY(KP)
  1758. & + HR(K,I,1)*HR(K,J,3)*GXCXZ(KP)
  1759. & + HR(K,I,3)*HR(K,J,1)*GXCXZ(KP)
  1760. & + HR(K,I,2)*HR(K,J,3)*GXCYZ(KP)
  1761. & + HR(K,I,3)*HR(K,J,2)*GXCYZ(KP) )
  1762. & + (GXCXT(KP)+GXCYT(KP)+GXCZT(KP))/3.D0*GEO1
  1763. C &+ (GXCXT(KP)+GXCYT(KP)+GXCZT(KP))/3.D0*XMH(KP)*QGGT(J,I)*CUB8
  1764.  
  1765. ZVGGY=AIRE(KP)*(
  1766. & HR(K,I,1)*HR(K,J,1)*GYCXT(KP)
  1767. & + HR(K,I,2)*HR(K,J,2)*GYCYT(KP)
  1768. & + HR(K,I,3)*HR(K,J,3)*GYCZT(KP)
  1769. & + HR(K,I,1)*HR(K,J,2)*GYCXY(KP)
  1770. & + HR(K,I,2)*HR(K,J,1)*GYCXY(KP)
  1771. & + HR(K,I,1)*HR(K,J,3)*GYCXZ(KP)
  1772. & + HR(K,I,3)*HR(K,J,1)*GYCXZ(KP)
  1773. & + HR(K,I,2)*HR(K,J,3)*GYCYZ(KP)
  1774. & + HR(K,I,3)*HR(K,J,2)*GYCYZ(KP) )
  1775. & + (GYCXT(KP)+GYCYT(KP)+GYCZT(KP))/3.D0*GEO1
  1776. C &+ (GYCXT(KP)+GYCYT(KP)+GYCZT(KP))/3.D0*XMH(KP)*QGGT(J,I)*CUB8
  1777.  
  1778. ZVGGZ=AIRE(KP)*(
  1779. & HR(K,I,1)*HR(K,J,1)*GZCXT(KP)
  1780. & + HR(K,I,2)*HR(K,J,2)*GZCYT(KP)
  1781. & + HR(K,I,3)*HR(K,J,3)*GZCZT(KP)
  1782. & + HR(K,I,1)*HR(K,J,2)*GZCXY(KP)
  1783. & + HR(K,I,2)*HR(K,J,1)*GZCXY(KP)
  1784. & + HR(K,I,1)*HR(K,J,3)*GZCXZ(KP)
  1785. & + HR(K,I,3)*HR(K,J,1)*GZCXZ(KP)
  1786. & + HR(K,I,2)*HR(K,J,3)*GZCYZ(KP)
  1787. & + HR(K,I,3)*HR(K,J,2)*GZCYZ(KP) )
  1788. & + (GZCXT(KP)+GZCYT(KP)+GZCZT(KP))/3.D0*GEO1
  1789. C &+ (GZCXT(KP)+GZCYT(KP)+GZCZT(KP))/3.D0*XMH(KP)*QGGT(J,I)*CUB8
  1790.  
  1791. ZVGD=AIRE(KP)*(
  1792. & HR(K,I,1)*HR(K,J,1)*COEFT(KP)
  1793. & + HR(K,I,2)*HR(K,J,2)*COEFT(KP)
  1794. & + HR(K,I,3)*HR(K,J,3)*COEFT(KP) )
  1795. & + COEFT(KP)*XMH(KP)*GEO1
  1796. C &+ COEFT(KP)*XMH(KP)*QGGT(J,I)*CUB8
  1797.  
  1798. ZVGK =AIRE(KP)*(
  1799. & HR(K,I,1)*HR(K,J,1)*GKCXT(KP)
  1800. & + HR(K,I,2)*HR(K,J,2)*GKCYT(KP)
  1801. & + HR(K,I,3)*HR(K,J,3)*GKCZT(KP)
  1802. & + HR(K,I,1)*HR(K,J,2)*GKCXY(KP)
  1803. & + HR(K,I,2)*HR(K,J,1)*GKCXY(KP)
  1804. & + HR(K,I,1)*HR(K,J,3)*GKCXZ(KP)
  1805. & + HR(K,I,3)*HR(K,J,1)*GKCXZ(KP)
  1806. & + HR(K,I,2)*HR(K,J,3)*GKCYZ(KP)
  1807. & + HR(K,I,3)*HR(K,J,2)*GKCYZ(KP) )
  1808. & + (GKCXT(KP)+GKCYT(KP)+GKCZT(KP))/3.D0*GEO1
  1809. C &+ (GKCXT(KP)+GKCYT(KP)+GKCZT(KP))/3.D0*XMH(KP)*QGGT(J,I)*CUB8
  1810.  
  1811. ZVGE =AIRE(KP)*(
  1812. & HR(K,I,1)*HR(K,J,1)*GECXT(KP)
  1813. & + HR(K,I,2)*HR(K,J,2)*GECYT(KP)
  1814. & + HR(K,I,3)*HR(K,J,3)*GECZT(KP)
  1815. & + HR(K,I,1)*HR(K,J,2)*GECXY(KP)
  1816. & + HR(K,I,2)*HR(K,J,1)*GECXY(KP)
  1817. & + HR(K,I,1)*HR(K,J,3)*GECXZ(KP)
  1818. & + HR(K,I,3)*HR(K,J,1)*GECXZ(KP)
  1819. & + HR(K,I,2)*HR(K,J,3)*GECYZ(KP)
  1820. & + HR(K,I,3)*HR(K,J,2)*GECYZ(KP) )
  1821. & + (GECXT(KP)+GECYT(KP)+GECZT(KP))/3.D0*GEO1
  1822. C &+ (GECXT(KP)+GECYT(KP)+GECZT(KP))/3.D0*XMH(KP)*QGGT(J,I)*CUB8
  1823.  
  1824. ZVGDK=AIRE(KP)*(
  1825. & HR(K,I,1)*HR(K,J,1)*COEFK(KP)
  1826. & + HR(K,I,2)*HR(K,J,2)*COEFK(KP)
  1827. & + HR(K,I,3)*HR(K,J,3)*COEFK(KP) )
  1828. & + COEFK(KP)*XMH(KP)*GEO1
  1829. C &+ COEFK(KP)*XMH(KP)*QGGT(J,I)*CUB8
  1830.  
  1831. ZVGDE=AIRE(KP)*(
  1832. & HR(K,I,1)*HR(K,J,1)*COEFE(KP)
  1833. & + HR(K,I,2)*HR(K,J,2)*COEFE(KP)
  1834. & + HR(K,I,3)*HR(K,J,3)*COEFE(KP) )
  1835. & + COEFE(KP)*XMH(KP)*GEO1
  1836. C &+ COEFE(KP)*XMH(KP)*QGGT(J,I)*CUB8
  1837.  
  1838. Cnon V2=(UIX(KP,I)*HR(K,J,1)+UIY(KP,I)*HR(K,J,2)+UIZ(KP,I)*HR(K,J,3))
  1839. C & *DR(KP,I)
  1840.  
  1841. V2=UMI(KP,1)*DR(KP,I)*HR(K,J,1)+UMI(KP,2)*DR(KP,I)
  1842. $ *HR(K,J,2)+UMI(KP,3)*DR(KP,I)*HR(K,J,3)
  1843.  
  1844. SAF1(KP,I)=SAF1(KP,I)+(V2+ZVGGX)*GIX(KP,J)+ZVGD
  1845. $ *UIX(KP,J)
  1846. SAF2(KP,I)=SAF2(KP,I)+(V2+ZVGGY)*GIY(KP,J)+ZVGD
  1847. $ *UIY(KP,J)
  1848. SAF3(KP,I)=SAF3(KP,I)+(V2+ZVGGZ)*GIZ(KP,J)+ZVGD
  1849. $ *UIZ(KP,J)
  1850.  
  1851. SAFK(KP,I)=SAFK(KP,I)+(V2+ZVGK)*AK(KP,J)+ZVGDK
  1852. $ *AK(KP,J)
  1853. SAFE(KP,I)=SAFE(KP,I)+(V2+ZVGE)*AE(KP,J)+ZVGDE
  1854. $ *AE(KP,J)
  1855.  
  1856. 80142 CONTINUE
  1857. 80141 CONTINUE
  1858. 8014 CONTINUE
  1859.  
  1860. ELSEIF(IKOMP.EQ.1)THEN
  1861. C->
  1862.  
  1863. DO 8015 I=1,NP
  1864. DO 80151 J=1,NP
  1865. DO 80152 K=KDEB,KFIN
  1866. KP=K-KDEB+1
  1867. C GEO1=(CF1(KP)*Q1(J,I)+CF2(KP)*Q2(J,I)+CF3(KP)*Q3(J,I))*CUB8
  1868. GEO1=CFM(KP)*QGGT(J,I)*CUB8
  1869. ZVGGX=AIRE(KP)*(
  1870. & HR(K,I,1)*HR(K,J,1)*GXCXT(KP)
  1871. & + HR(K,I,2)*HR(K,J,2)*GXCYT(KP)
  1872. & + HR(K,I,3)*HR(K,J,3)*GXCZT(KP)
  1873. & + HR(K,I,1)*HR(K,J,2)*GXCXY(KP)
  1874. & + HR(K,I,2)*HR(K,J,1)*GXCXY(KP)
  1875. & + HR(K,I,1)*HR(K,J,3)*GXCXZ(KP)
  1876. & + HR(K,I,3)*HR(K,J,1)*GXCXZ(KP)
  1877. & + HR(K,I,2)*HR(K,J,3)*GXCYZ(KP)
  1878. & + HR(K,I,3)*HR(K,J,2)*GXCYZ(KP) )
  1879. & + (GXCXT(KP)+GXCYT(KP)+GXCZT(KP))/3.D0*GEO1
  1880. C &+ (GXCXT(KP)+GXCYT(KP)+GXCZT(KP))/3.D0*XMH(KP)*QGGT(J,I)*CUB8
  1881.  
  1882. ZVGGY=AIRE(KP)*(
  1883. & HR(K,I,1)*HR(K,J,1)*GYCXT(KP)
  1884. & + HR(K,I,2)*HR(K,J,2)*GYCYT(KP)
  1885. & + HR(K,I,3)*HR(K,J,3)*GYCZT(KP)
  1886. & + HR(K,I,1)*HR(K,J,2)*GYCXY(KP)
  1887. & + HR(K,I,2)*HR(K,J,1)*GYCXY(KP)
  1888. & + HR(K,I,1)*HR(K,J,3)*GYCXZ(KP)
  1889. & + HR(K,I,3)*HR(K,J,1)*GYCXZ(KP)
  1890. & + HR(K,I,2)*HR(K,J,3)*GYCYZ(KP)
  1891. & + HR(K,I,3)*HR(K,J,2)*GYCYZ(KP) )
  1892. & + (GYCXT(KP)+GYCYT(KP)+GYCZT(KP))/3.D0*GEO1
  1893. C &+ (GYCXT(KP)+GYCYT(KP)+GYCZT(KP))/3.D0*XMH(KP)*QGGT(J,I)*CUB8
  1894.  
  1895. ZVGGZ=AIRE(KP)*(
  1896. & HR(K,I,1)*HR(K,J,1)*GZCXT(KP)
  1897. & + HR(K,I,2)*HR(K,J,2)*GZCYT(KP)
  1898. & + HR(K,I,3)*HR(K,J,3)*GZCZT(KP)
  1899. & + HR(K,I,1)*HR(K,J,2)*GZCXY(KP)
  1900. & + HR(K,I,2)*HR(K,J,1)*GZCXY(KP)
  1901. & + HR(K,I,1)*HR(K,J,3)*GZCXZ(KP)
  1902. & + HR(K,I,3)*HR(K,J,1)*GZCXZ(KP)
  1903. & + HR(K,I,2)*HR(K,J,3)*GZCYZ(KP)
  1904. & + HR(K,I,3)*HR(K,J,2)*GZCYZ(KP) )
  1905. & + (GZCXT(KP)+GZCYT(KP)+GZCZT(KP))/3.D0*GEO1
  1906. C &+ (GZCXT(KP)+GZCYT(KP)+GZCZT(KP))/3.D0*XMH(KP)*QGGT(J,I)*CUB8
  1907.  
  1908. ZVGD=AIRE(KP)*(
  1909. & HR(K,I,1)*HR(K,J,1)*COEFT(KP)
  1910. & + HR(K,I,2)*HR(K,J,2)*COEFT(KP)
  1911. & + HR(K,I,3)*HR(K,J,3)*COEFT(KP) )
  1912. & + COEFT(KP)*GEO1
  1913. C &+ COEFT(KP)*XMH(KP)*GEO1
  1914. C &+ COEFT(KP)*XMH(KP)*QGGT(J,I)*CUB8
  1915.  
  1916. ZVGK =AIRE(KP)*(
  1917. & HR(K,I,1)*HR(K,J,1)*GKCXT(KP)
  1918. & + HR(K,I,2)*HR(K,J,2)*GKCYT(KP)
  1919. & + HR(K,I,3)*HR(K,J,3)*GKCZT(KP)
  1920. & + HR(K,I,1)*HR(K,J,2)*GKCXY(KP)
  1921. & + HR(K,I,2)*HR(K,J,1)*GKCXY(KP)
  1922. & + HR(K,I,1)*HR(K,J,3)*GKCXZ(KP)
  1923. & + HR(K,I,3)*HR(K,J,1)*GKCXZ(KP)
  1924. & + HR(K,I,2)*HR(K,J,3)*GKCYZ(KP)
  1925. & + HR(K,I,3)*HR(K,J,2)*GKCYZ(KP) )
  1926. & + (GKCXT(KP)+GKCYT(KP)+GKCZT(KP))/3.D0*GEO1
  1927. C &+ (GKCXT(KP)+GKCYT(KP)+GKCZT(KP))/3.D0*XMH(KP)*QGGT(J,I)*CUB8
  1928.  
  1929. ZVGE =AIRE(KP)*(
  1930. & HR(K,I,1)*HR(K,J,1)*GECXT(KP)
  1931. & + HR(K,I,2)*HR(K,J,2)*GECYT(KP)
  1932. & + HR(K,I,3)*HR(K,J,3)*GECZT(KP)
  1933. & + HR(K,I,1)*HR(K,J,2)*GECXY(KP)
  1934. & + HR(K,I,2)*HR(K,J,1)*GECXY(KP)
  1935. & + HR(K,I,1)*HR(K,J,3)*GECXZ(KP)
  1936. & + HR(K,I,3)*HR(K,J,1)*GECXZ(KP)
  1937. & + HR(K,I,2)*HR(K,J,3)*GECYZ(KP)
  1938. & + HR(K,I,3)*HR(K,J,2)*GECYZ(KP) )
  1939. & + (GECXT(KP)+GECYT(KP)+GECZT(KP))/3.D0*GEO1
  1940. C &+ (GECXT(KP)+GECYT(KP)+GECZT(KP))/3.D0*XMH(KP)*QGGT(J,I)*CUB8
  1941.  
  1942. ZVGDK=AIRE(KP)*(
  1943. & HR(K,I,1)*HR(K,J,1)*COEFK(KP)
  1944. & + HR(K,I,2)*HR(K,J,2)*COEFK(KP)
  1945. & + HR(K,I,3)*HR(K,J,3)*COEFK(KP) )
  1946. & + COEFK(KP)*GEO1
  1947.  
  1948. ZVGDE=AIRE(KP)*(
  1949. & HR(K,I,1)*HR(K,J,1)*COEFE(KP)
  1950. & + HR(K,I,2)*HR(K,J,2)*COEFE(KP)
  1951. & + HR(K,I,3)*HR(K,J,3)*COEFE(KP) )
  1952. & + COEFE(KP)*GEO1
  1953. C &+ COEFE(KP)*XMH(KP)*QGGT(J,I)*CUB8
  1954.  
  1955. COEFT3=COEFT(KP)/3.D0
  1956. ZVGUU=(AIRE(KP)*(HR(K,I,1)*HR(K,J,1))+GEO1)*COEFT3
  1957. $ *UIX(KP,J)
  1958. ZVGUV=AIRE(KP)*( HR(K,I,1)*HR(K,J,2))*COEFT3*UIY(KP
  1959. $ ,J)
  1960. ZVGUW=AIRE(KP)*( HR(K,I,1)*HR(K,J,3))*COEFT3*UIZ(KP
  1961. $ ,J)
  1962. ZVGVU=AIRE(KP)*( HR(K,I,2)*HR(K,J,1))*COEFT3*UIX(KP
  1963. $ ,J)
  1964. ZVGVV=(AIRE(KP)*(HR(K,I,2)*HR(K,J,2))+GEO1)*COEFT3
  1965. $ *UIY(KP,J)
  1966. ZVGVW=AIRE(KP)*( HR(K,I,2)*HR(K,J,3))*COEFT3*UIZ(KP
  1967. $ ,J)
  1968. ZVGWU=AIRE(KP)*( HR(K,I,3)*HR(K,J,1))*COEFT3*UIX(KP
  1969. $ ,J)
  1970. ZVGWV=AIRE(KP)*( HR(K,I,3)*HR(K,J,2))*COEFT3*UIY(KP
  1971. $ ,J)
  1972. ZVGWW=(AIRE(KP)*(HR(K,I,3)*HR(K,J,3))+GEO1)*COEFT3
  1973. $ *UIZ(KP,J)
  1974.  
  1975. V2=(UIX(KP,J)*HR(K,J,1)+UIY(KP,J)*HR(K,J,2)+UIZ(KP
  1976. $ ,J)*HR(K,J,3))*DR(KP,I)
  1977.  
  1978. C V2=UMI(KP,1)*DR(KP,I)*HR(K,J,1)+UMI(KP,2)*DR(KP,I)*HR(K,J,2)
  1979.  
  1980. SAF1(KP,I)=SAF1(KP,I)+(V2+ZVGGX)*GIX(KP,J)+ZVGD
  1981. $ *UIX(KP,J)+ ZVGUU + ZVGUV + ZVGUW
  1982. SAF2(KP,I)=SAF2(KP,I)+(V2+ZVGGY)*GIY(KP,J)+ZVGD
  1983. $ *UIY(KP,J)+ ZVGVU + ZVGUV + ZVGVW
  1984. SAF3(KP,I)=SAF3(KP,I)+(V2+ZVGGZ)*GIZ(KP,J)+ZVGD
  1985. $ *UIZ(KP,J)+ ZVGWU + ZVGWV + ZVGWW
  1986.  
  1987. SAFK(KP,I)=SAFK(KP,I)+(V2+ZVGK)*AK(KP,J)+ZVGDK
  1988. $ *AK(KP,J)
  1989. SAFE(KP,I)=SAFE(KP,I)+(V2+ZVGE)*AE(KP,J)+ZVGDE
  1990. $ *AE(KP,J)
  1991.  
  1992. 80152 CONTINUE
  1993. 80151 CONTINUE
  1994. 8015 CONTINUE
  1995.  
  1996. ENDIF
  1997.  
  1998. C
  1999. C --------------------------------------------------------------
  2000. C
  2001. C
  2002. DO 8017 I=1,NP
  2003. DO 80171 K=KDEB,KFIN
  2004. KP=K-KDEB+1
  2005. TSK =(ANUT(KP)*(P(KP)+PG(KP))-AEM(KP))*DR(KP,I)
  2006. SAFK(KP,I)=SAFK(KP,I)-TSK
  2007.  
  2008. TSE =(CNU*(C1P(KP)*P(KP)+C1G(KP)*PG(KP))*AKM(KP))
  2009. $ *DR(KP,I)
  2010. SAFE(KP,I)=SAFE(KP,I)-TSE
  2011.  
  2012. TSE1 =C2*AEM(KP)/AKM(KP)*DR(KP,I)
  2013. BE1(KP,I) =TSE1
  2014. 80171 CONTINUE
  2015. 8017 CONTINUE
  2016.  
  2017. C
  2018. C
  2019. C --- ECRITURE DANS LES TABLEAUX F(1,*),F(2,*),G,GK,GE,GE1 (SCALAIRE)
  2020. DO 80019 I=1,NP
  2021. DO 50019 K=KDEB,KFIN
  2022. KP=K+1-KDEB
  2023. NF=IPADL(LE(I,K))
  2024. F(NF,1)=F(NF,1)+SAF1(KP,I)
  2025. F(NF,2)=F(NF,2)+SAF2(KP,I)
  2026. F(NF,3)=F(NF,3)+SAF3(KP,I)
  2027. GK(NF) =GK(NF) +SAFK(KP,I)
  2028. GE1(NF)=GE1(NF)+BE1(KP,I)
  2029. GE(NF) =GE (NF)+SAFE(KP,I)
  2030. 50019 CONTINUE
  2031. 80019 CONTINUE
  2032. 80001 CONTINUE
  2033. C
  2034. C *** FIN DE LA BOUCLE SUR LES PAQUETS D'ELEMENTS ***
  2035. C
  2036. C WRITE(IOIMP,*)' FIN YCVIT GK='
  2037. C WRITE(IOIMP,1002)(GK(i),i=1,nptd)
  2038.  
  2039. IPAS=1
  2040. RETURN
  2041.  
  2042. 1002 FORMAT(10(1X,1PE11.4))
  2043. END
  2044.  
  2045.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales