Télécharger cflui3d.eso

Retour à la liste

Numérotation des lignes :

cflui3d
  1. C CFLUI3D SOURCE OF166741 25/11/04 21:15:18 12349
  2. C CFLU3D SOURCE PV090527 23/02/07 11:58:34 11592
  3. c A.Sellier nov 2023
  4. SUBROUTINE cflui3d(WRK52,WRK53,WRK54,MWRKXE,WR14,
  5. # nbnb,idimb,teta13d,teta23d,nvarib,nstrsb,ifourb,dtb,trefb)
  6.  
  7. C WRK52,53,54 segments déclarés dans le common DECHE
  8.  
  9. C XMAT(NCOMAT) = COMPOSANTES DE MATERIAU
  10. C IVAL(NCOMAT) = INDICE DES COMPOSANTES DE MATERIAU
  11. C NCOMAT = NOMBRE DE COMPOSANTES DE MATERIAU
  12. C XCAR(ICARA) = CARACTERISTIQUES
  13. C MFR = NUMERO DE LA FORMULATION DE L'ELEMENT FINI
  14. C = 1 MASSIF
  15. C = 3 COQUE MINCE ( COQ2 , COQ3 ET DKT )
  16. C = 5 COQUE EPAISSE ( COQ6 , COQ8 )
  17. C = 7 POUTRE
  18. C = 9 COQUE MINCE AVEC CISAILLEMENT TRANSVERSE ( COQ4 ET DST )
  19. C = 11 LIQUIDE
  20. C = 13 TUYAU
  21. C = 15 LINESPRING
  22. C = 17 TUYAU FISSURE
  23. C = 19 RACCORD MASSIF
  24. C = 21 RACCORD COQUE
  25. C = 23 SURFACE LIBRE
  26. C = 25 MEMBRANE
  27. C = 27 UNIAXIALE
  28. C = 29 THERMIQUE
  29. C = 31 INCOMPRESSIBLES
  30. C = 33 POREUX
  31. C = 35 JOINT
  32. C = 37 HOMOGENEISE
  33. C = 39 TUYO
  34. C = 41 TUYAU ACOUSTIQUE PURE
  35. C = 43 RACCORD TUYAU FLUIDE
  36. c* DDAUX = MATRICE DE HOOKE ELASTIQUE
  37. c* NSTRS = NBRE DE COMPOSANTES DES DEFORMATIONS
  38. c* CMATE = NOM DU MATERIAU
  39. c* VALMAT= TABLEAU DE CARACTERISTIQUES DU MATERIAU
  40. c* VALCAR= TABLEAU DE CARACTERISTIQUES GEOMETRIQUES
  41. c* N2EL = NBRE D ELEMENTS DANS SEGMENT DE HOOKE
  42. c* N2PTEL= NBRE DE POINTS DANS SEGMENT DE HOOKE
  43. c* MFR = NUMERO DE LA FORMULATION
  44. c* IFOU = type de formulation
  45. c* IB = NUMERO DE L ELEMENT COURANT
  46. c* IGAU = NUMERO DU POINT COURANT
  47. c* EPAIST= EPAISSEUR
  48. c* NBPGAU= NBRE DE POINTS DE GAUSS
  49. c* MELE = NUMERO DE L ELEMENT FINI
  50. c* NPINT = NBRE DE POINTS D INTEGRATION
  51. c* NBGMAT= NBRE DE POINTS DANS SEGMENT DE CARACTERISTIQUES
  52. c* NELMAT= NBRE D ELEMENTS DANS SEGMENT DE CARACTERISTIQUES
  53. c* SECT = SECTION
  54. c* LHOOK = TAILLE DE LA MATRICE DE HOOKE
  55. c* TXR,XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI = TABLEAUX UTILISES
  56. c* POUR LE CALCUL DE LA MATRICE DE HOOKE
  57. c* matrice de Hoocke DDHOOK(LHOOK,LHOOK)
  58. C-----------------------------------------------------------------------
  59. C VARIABLES PASSEES PAR LES COMMONS COPTIO , ECOU ET NECOU
  60. C
  61. C IFOUR INDICE DU TYPE DE PROBLEME
  62. C -3 DEFORMATIONS PLANES GENERALISEES
  63. C -2 CONTRAINTES PLANES
  64. C -1 DEFORMATIONS PLANES
  65. C 0 AXISYMETRIQUE
  66. C 1 SERIE DE FOURIER
  67. C 2 TRIDIMENSIONNEL
  68. C ITYP TYPE DE FORMULATION MECANIQUE
  69. C --------------- ATTENTION ---------------
  70. C IL EST ACTIF APRES L APPEL DE VISAVI
  71. C -----------------------------------------
  72. C ITYP=1 CAS DES ELEMENTS MASSIFS
  73. C ITYP=2 CAS DES COQUES
  74. C ITYP=3 CAS DES MEMBRANES
  75. C ITYP=4 CAS DES CABLES ET DES BARRES
  76. C ITYP=5 CAS QUELCONQUE
  77. C ITYP=6 CAS DES CONTRAINTES PLANES
  78. C ITYP=7 CAS DES COQUES A NU=0. OU CONTRAINTES PLANES
  79. C ITYP=8 CAS DES MEMBRANES A NU=0. OU CONTRAINTES PLANES
  80. C ITYP=9 CAS DES COQUES EPAISSES
  81. C ITYP=10 CAS DES JOINTS
  82. C ITYP=11 CAS DES POUTRES
  83. C ITYP=12 CAS DES TUYAUX
  84. C ITYP=13 CAS DES COQUES AVEC CISAILLEMENT TRANSVERSE
  85. C
  86. C ISTEP flag utilise pour separer les etapes dans un calcul non local
  87. C ISTEP=0 -----> calcul local
  88. C ISTEP=1 -----> calcul non local etape 1 on calcule les seuils
  89. C ISTEP=2 -----> calcul non local etape 2 on continue le calcul
  90. C a partir des seuils moyennes
  91. C ISTEP=3 ----->sous iteration de Helmholtz
  92. C ISTEP est défini par DEFINI.ESO
  93. C
  94. C EPIN0 déformations inélastiques initiales
  95. C EPINF déformations inélastiques finales
  96. C epst0 déformation totale initiale
  97. C EPSTF déformation totale finale
  98. C
  99. C-----------------------------------------------------------------------
  100. C SORTIES
  101. C SIGF(NSTRS) = CONTRAINTES FINALES
  102. C VARF(NVARI) = VARIABLES INTERNES FINALES
  103. C DEFP = DEFORMATIONS PLASTIQUES
  104. C KERRE = 0 TOUT OK
  105. C-----------------------------------------------------------------------
  106.  
  107. IMPLICIT INTEGER(I-N)
  108. IMPLICIT REAL*8(A-H,O-Z)
  109. c ajout sellier 2022
  110. -INC PPARAM
  111. c fin ajout sellier 2022
  112. -INC CCOPTIO
  113. -INC DECHE
  114.  
  115. c segment de coordonnees des noeuds de l element
  116. integer nbnb,insb,idimb
  117. SEGMENT MWRKXE
  118. REAL*8 XE(3,nbnb)
  119. ENDSEGMENT
  120.  
  121. * sellier/millard segment pour les Helmholtz 04 04 2020
  122. integer NBVIA
  123. SEGMENT WR14
  124. INTEGER INLVIA(NBVIA)
  125. ENDSEGMENT
  126.  
  127. c-----------------------------------------------------------------------
  128. c nombre de noeuds max et table locale des coordonnees des
  129. c noeuds de l element fini
  130. -INC HNBRNEU
  131. c --rappel du contenu de HNBRNEU ---------------------------------
  132. C c ******* tableau local des coordonnees des noeuds de lEF ********
  133. C integer NBNMAX3D
  134. C c nbr de noeuds maxi par element
  135. C parameter (NBNMAX3D=20)
  136. C c tableau des coordonnees des noeuds
  137. C real*8 XE3D(3,NBNMAX3D)
  138. c ----------------------------------------------------------------
  139. c ******************************************************************
  140.  
  141. c ******** taille du pseudo vecteur des contraintes ***************
  142. c tjrs 6 en raison de son utilisation dans as3d
  143. integer nstrs3d
  144. parameter (nstrs3d=6)
  145. real*8 sig03d(nstrs3d),sigf3d(nstrs3d)
  146. real*8 epst03d(nstrs3d),epstf3d(nstrs3d)
  147. real*8 depst3d(nstrs3d)
  148. real*8 dtb,tref3d,alpha
  149.  
  150. c variable logique : elasticite initialement isotrope
  151. logical iso1
  152.  
  153. c nombre de parametres de tailles suivant la formulation
  154. integer ifou11,ntail3d
  155.  
  156. c dimension de l espace de travail
  157. integer idimb3d
  158. c temperatures debut et fin de pas , moyenne, pas de temps, volume rgi
  159. real*8 teta13d,teta23d,temp3d,dt3d
  160. c variables de transfert de donnees ( a declarer suivant idvar4 et idvisc)
  161. integer ierr1,mfr11
  162. c variable pour passer le numero de l etape non locale
  163. integer istep3d,nvarib,nstrsb,ifourb
  164.  
  165. c-----------------------------------------------------------------------
  166.  
  167. c ******************************************************************
  168. c * dimension des tableaux parametres materiau *
  169. c ******************************************************************
  170.  
  171. c *****nombre de renforts et de parametres par renfort**************
  172. c NB_RENF
  173. c NB_PARA_PAR_RENF
  174. c NB_PARA_RENF
  175. c NB_VARI_PAR_RENF
  176. c NB_VARI_RENF
  177. c-INC HNBRREN
  178. c adapte pour mc3d
  179. parameter(NB_RENF=0)
  180. parameter(NB_PARA_PAR_RENF=0)
  181. parameter(NB_PARA_RENF=0)
  182. parameter(NB_VARI_PAR_RENF=0)
  183. parameter(NB_VARI_RENF=0)
  184. c ******************************************************************
  185.  
  186. c ********Nombre de parametres pour variables non locales***********
  187. c NB_HELM: Nombre de variable d etat principales
  188. c NB_PARA_PAR_HELM: Nombre de parametres par variable d etat
  189. c NB_VARI_PAR_HELM: Nombre de variable internes par variables d etat
  190. c NB_PARA_HELM: nombre de parametre total resultant
  191. c NB_VARI_HELM: nombre de variables internes totales resultantes
  192. c INLVIA3D(NB_HELM):copie du pointeur sur les numeros des vari traitee par helmholtz
  193. c NBVIA3D: recuperation du nombre de Helmholtz actives
  194. -INC HNBRHEL
  195. C c ------- Rappel du contenur de HNBRHEL ----------------------------
  196. C c Declaration commune pour les varibales de Helmholtz
  197. C c Nombre de variable détat principales
  198. C integer NB_HELM
  199. C c Nombre de parametres par variable d etat
  200. C integer NB_PARA_PAR_HELM
  201. C c Nombre de variable internes par avriables d etat
  202. C integer NB_VARI_PAR_HELM
  203. C c nombre de variables non locales ISO et UNI
  204. C parameter (NB_HELM=8)
  205. C c nombre de parametre par variable iso et par variable uni
  206. C parameter (NB_PARA_PAR_HELM=17)
  207. C c nombre de vari par vari ISO (cf idvar4) (99 maxi)
  208. C parameter (NB_VARI_PAR_HELM=10)
  209. C c calcul du nombre maximum de variables de helmholtz
  210. C integer NB_PARA_HELM,NB_VARI_HELM
  211. C c nombre total de parametres non locaux (cf idmatr.eso)
  212. C parameter (NB_PARA_HELM=NB_HELM*NB_PARA_PAR_HELM)
  213. C c nombre de vari pour le non local
  214. C parameter (NB_VARI_HELM=NB_HELM*NB_VARI_PAR_HELM)
  215. C c tableau des numeros des variables internes non locales actives par Helmholtz
  216. C integer INLVIA3D(NB_HELM)
  217. C c nombre de Helmholtz actives
  218. C integer NBVIA3D
  219. c ------------------------------------------------------------------
  220. c ******************************************************************
  221.  
  222. c parametres commun aux modele mecaniques elastiques isotropes
  223. integer NBELAS3D,NB_DECAL,NMAT3D
  224. c en isotrope le nombre de parametre de base est 4 = YOUN NU ALP RHO
  225. parameter (NBELAS3D=4)
  226. c decalage entre les parametres obligatoires (le modele)
  227. c et les parametres facultatifs (les parametres pour Helmholtz)
  228. parameter (NB_DECAL=3)
  229. c nombre de parametre ajoute par idmatr en fin de tableau des facultative
  230. parameter (NB_FIN=0)
  231.  
  232. c Nombre de parametres partie non lineaire de la loi de comportement
  233. c NB_PARA_FLUENDO3D
  234. c NB_VARI_FLUENDO3D
  235. c NB_PARA_SUPP_FLUENDO3D
  236. c NB_VARI_SUPP_FLUENDO3D
  237. c-INC HNBRF3D
  238. c adapte pour mc3d apartir de idvis pour les parametres et idvar4 pour les vari
  239. c pas de fibre pour l instant dans mc3d
  240. parameter(NB_PARA_SUPP_FLUENDO3D=0)
  241. parameter(NB_VARI_SUPP_FLUENDO3D=0)
  242. parameter(NB_PARA_FIBRE_U=0)
  243. c ---cf affichage dans idvisc au lancement du modele mc3d ----------
  244. parameter(NB_PARA_FLUENDO3D=52)
  245. c ---cf affichage dans idvar4 au lancement du modele mc3d ----------
  246. parameter(NB_VARI_FLUENDO3D=137)
  247.  
  248. c ***calcul des zones memoires pour les types de modeles ***********
  249. integer NMAT0,NMAT1,NMAT2,NMAT3,NMAT4
  250. c nombre de parametres propre au modele sans les renforts ni le non local
  251. parameter (NMAT0=NBELAS3D)
  252. parameter (NMAT1=NMAT0+NB_PARA_FLUENDO3D)
  253. parameter (NMAT2=NMAT1+NB_PARA_SUPP_FLUENDO3D)
  254. parameter (NMAT3=NMAT2+NB_PARA_RENF+NB_DECAL)
  255. parameter (NMAT3D=NMAT3+NB_PARA_HELM+NB_FIN)
  256.  
  257. c ******************************************************************
  258. c dimension maxi du tableau des parametres y compris non local
  259. real*8 XMAT3D(NMAT3D)
  260. c ******************************************************************
  261. c
  262.  
  263. c ******************************************************************
  264. c * dimension des tableaux variables internes *
  265. c ******************************************************************
  266.  
  267. c **** nombre de variables internes loi de comportement non lineaire
  268.  
  269.  
  270. c nbr de variables pour la loi de comportement non lineaire
  271. integer NVAR0,NVAR1,NVAR2,NVAR3,NVARI3D
  272. parameter (NVAR0=0)
  273. parameter (NVAR1=NVAR0+NB_VARI_FLUENDO3D)
  274. parameter (NVAR2=NVAR1+NB_VARI_SUPP_FLUENDO3D)
  275. parameter (NVAR3=NVAR2+NB_VARI_RENF)
  276. parameter (NVARI3D=NVAR3+NB_VARI_HELM)
  277. c ******************************************************************
  278.  
  279. c **** nombre total de variables internes **************************
  280. c tableau local des variables internes
  281. real*8 VAR03D(NVARI3D),VARF3D(NVARI3D)
  282. c ******************************************************************
  283.  
  284. c-----------------------------------------------------------------------
  285.  
  286. c***********************************************************************
  287. c remarque : parametres elastiques en formulation poreux massif (mfr=33)
  288. c cas isotrope
  289. c en debut de xmat :
  290. c 'YOUN' : module d'Young
  291. c 'NU ' : coefficient de poisson
  292. c 'RHO ' : masse volumique (a la fin en non poreux)
  293. c 'ALPH' : coefficient de dilatation thermique
  294. c à la fin de xmat :
  295. c 'MOB ' : module de Biot
  296. c 'COB ' : coefficient de Biot
  297. c 'PERM' : perméabilité intrinsèque
  298. c 'VISC' : viscosité dynamique du fluide
  299. c 'ALPM' : coefficient de couplage pression - température
  300. c attention L ORDRE N EST PAS LE MEME SI LE MATERIAU EST ORTHOTROPE
  301. c cf deche.inc pour recuperer les noms exacts des variables
  302. c transfert des variables dans les tableaux du modele
  303. c***********************************************************************
  304.  
  305.  
  306. c*****debut du transfert des donnees vers les modeles (sellier 2022)****
  307.  
  308. c ** on verifie si on a du non local via Helmholtz ****************
  309. c le decalage est RHO ALPH VISQ avant les parmetres non locaux si
  310. c il y a des non locales, alors qu'il est de 1 si on est en local
  311. if(WR14.EQ.0) then
  312. NBVIA = 0
  313. else
  314. NBVIA=INLVIA(/1)
  315. c print*,'NBVIA = ',NBVIA
  316. c do i=1,NBVIA
  317. c print*, 'I' ,i, 'INLVIA ' ,INLVIA(i)
  318. c end do
  319. endif
  320.  
  321. c suivant la formulation
  322. if(mfr.ne.33) then
  323. c ****** formulation non poreux **********************************
  324. c print*,'ds cflui3d istep=',istep
  325. if(istep.eq.0) then
  326. c ***** formulation locale***********************************
  327. if ((NMAT3D-NB_PARA_HELM).ne.nmatt) then
  328. print*,'pb dimension de xmat cflui3d local'
  329. print*,'NBELAS3D',NBELAS3D
  330. print*,'NMAT0',NMAT0
  331. print*,'NB_PARA_FLUENDO3D',NB_PARA_FLUENDO3D
  332. print*,'NMAT1',NMAT1
  333. print*,'NB_PARA_SUPP_FLUENDO3D',NB_PARA_SUPP_FLUENDO3D
  334. print*,'NMAT2',NMAT2
  335. print*,'NB_DECAL',NB_DECAL
  336. print*,'NB_PARA_RENF',NB_PARA_RENF
  337. print*,'NMAT3',NMAT3
  338. print*,'NB_PARA_HELM',NB_PARA_HELM
  339. print*,'NB_FIN',NB_FIN
  340. print*,'NMAT3D-NB_PARA_HELM',NMAT3D-NB_PARA_HELM
  341. print*,'NMATT',NMATT
  342. do i=1,nmatt
  343. print*,'xmat(',i,')=',xmat(i)
  344. enddo
  345. read*
  346. kerre=1
  347. return
  348. else
  349. do i=1,(NMAT3D-NB_PARA_HELM)
  350. XMAT3D(i)=xmat(i)
  351. enddo
  352. c on met a zero les Helmholtz
  353. do i=(NMAT3D-NB_PARA_HELM+1), nmatt
  354. XMAT3D(i)=0.
  355. enddo
  356. end if
  357. else
  358. c **** formulation non locale *******************************
  359. c ces parametres facultatifs sont definies dans IDMATR
  360. if(NMAT3D.ne.nmatt) then
  361. print*,'pb dimension de xmat cflui3d local'
  362. print*,'NBELAS3D',NBELAS3D
  363. print*,'NMAT0',NMAT0
  364. print*,'NB_PARA_FLUENDO3D',NB_PARA_FLUENDO3D
  365. print*,'NMAT1',NMAT1
  366. print*,'NB_PARA_SUPP_FLUENDO3D',NB_PARA_SUPP_FLUENDO3D
  367. print*,'NMAT2',NMAT2
  368. print*,'NB_DECAL',NB_DECAL
  369. print*,'NB_PARA_RENF',NB_PARA_RENF
  370. print*,'NMAT3',NMAT3
  371. print*,'NB_PARA_HELM',NB_PARA_HELM
  372. print*,'NB_FIN',NB_FIN
  373. print*,'NMAT3D',NMAT3D
  374. print*,'NMATT',NMATT
  375. do i=1,nmatt
  376. print*,'xmat(',i,')=',xmat(i)
  377. enddo
  378. read*
  379. kerre=1
  380. return
  381. else
  382. do i=1,nmatt
  383. XMAT3D(i)=xmat(i)
  384. enddo
  385. end if
  386. end if
  387. else
  388. c *****formulation poreux ****************************************
  389. print*,'on est en poreux dans cflui3d'
  390. print*,'Pb affectation des caracteristiques dans cas3d'
  391. do i=1,nmatt
  392. print*,'xmat(',i,')=',xmat(i)
  393. end do
  394. print*,'voir idmatr et deche.inc pour parametres en poreux'
  395. kerre=1
  396. return
  397. end if
  398.  
  399. c********** recuperation des variables internes debut de pas ***********
  400. if(NVARI3D.ne.nvarib) then
  401. print*,'Pb dimension de var0 dans cas3d'
  402. print*,'Verifier dimension table des variables internes'
  403. print*,'et CMPATBLTCR avec idvar4 et as3d'
  404. read*
  405. kerre=1
  406. return
  407. end if
  408. c transfert vers le tableau de fluendo3d
  409. do i=1,NVARI3D
  410. VAR03D(i)=var0(i)
  411. end do
  412.  
  413. c*********** recuperation des contraintes totales debut de pas *********
  414. if(mfr.ne.33) then
  415. c on est pas en poreux
  416. if(nstrsb.lt.nstrs3d) then
  417. do i=1,nstrsb
  418. sig03d(i)=sig0(i)
  419. sigf3d(i)=sigf(i)
  420. c ATTENTION les depst 3-6 doivent etre des gamas
  421. depst3d(i)=depst(i)
  422. epst03d(i)=epst0(i)
  423. epstf3d(i)=epstf(i)
  424. end do
  425. do i=nstrsb+1,nstrs3d
  426. sig03d(i)=0.d0
  427. sigf3d(i)=0.d0
  428. c ATTENTION les depst 3-6 doivent etre des gamas
  429. depst3d(i)=0.d0
  430. epst03d(i)=0.d0
  431. epstf3d(i)=0.d0
  432. end do
  433. else
  434. do i=1,nstrs3d
  435. sig03d(i)=sig0(i)
  436. sigf3d(i)=sigf(i)
  437. c ATTENTION les depst 3-6 doivent etre des gamas
  438. depst3d(i)=depst(i)
  439. epst03d(i)=epst0(i)
  440. epstf3d(i)=epstf(i)
  441. end do
  442. end if
  443. else
  444. print*,'on est en poreux'
  445. print*,'Pb affectation des contraintes dans cflui3d'
  446. print*,'a terminer'
  447. do i=1,nstrsb
  448. print*,'sig(',i,')=',sig0(i)
  449. end do
  450. kerre=1
  451. return
  452. end if
  453.  
  454.  
  455. c************** autres parametres a renseigner ***********************
  456.  
  457. c initialisation indicateur d erreur
  458. ierr1=0
  459. c indicateur isostropie elastique et de resistance
  460. iso1=.true.
  461. c numero de la formulation (33 pour poreux)
  462. mfr11=mfr
  463. c type de formulation
  464. ifour11=ifourb
  465. c pas de temps
  466. dt3d=dtb
  467. c numero pour le traitement non local eventuel
  468. istep3d=istep
  469.  
  470. c************* recuperation des coordonnees de noeuds ******************
  471. c boucle sur les noeuds
  472. if(nbnb.le.NBNMAX3D) then
  473. NBNB3D=nbnb
  474. if(idimb.le.3) then
  475. idimb3d=idimb
  476. else
  477. print*,'pb table de coord des neouds ds cflui3d'
  478. kerre=1
  479. return
  480. end if
  481. else
  482. print*,'Element avec + de noeuds que capacite de cflui3d'
  483. kerre=1
  484. return
  485. end if
  486. c chargement des coordonnees des noeuds
  487. do insb=1,NBNB3D
  488. do j=1,idimb3d
  489. c print*,'xe(',j,insb,')=',xe(j,insb)
  490. XE3D(j,insb)=xe(j,insb)
  491. end do
  492. if (idimb.lt.3) then
  493. do j=idimb+1,3
  494. XE3D(j,insb)=0.d0
  495. end do
  496. end if
  497. end do
  498. c on double les neouds si le probleme est 2D
  499. if ((ifourb.eq.0).or.(ifourb.eq.-1)) then
  500. c on double les noeuds avec dimension 3 recuperee ds xmat(1er param perso pour mc3d)
  501. dimension3=XMAT3D(NBELAS3D+1)
  502. NBNB3D=2*nbnb
  503. do insb=nbnb+1,NBNB3D
  504. do j=1,2
  505. c print*,'xe(',j,insb,')=',xe(j,insb)
  506. XE3D(j,insb)=XE3D(j,(insb-nbnb))
  507. end do
  508. XE3D(3,insb)=dimension3
  509. end do
  510. end if
  511.  
  512. c ****** recuperation de la temperature de reference **************
  513. tref3d=trefb
  514. c print*,'verif temperature de reference fluendo3d',trefb
  515.  
  516. c * intialisation des variables de sortie a leur valeur initiale *
  517. c en cas de 1ere etape non locale
  518. if(istep.eq.1) then
  519. do i=1,nvari3d
  520. varf3d(i)=var03d(i)
  521. end do
  522. else
  523. do i=1,nvari3d
  524. varf3d(i)=0.d0
  525. end do
  526. endif
  527. c****************** fin du transferts des donnees **********************
  528.  
  529. c*************recuperation des numeros des variables Helmholtz *********
  530.  
  531. c transfert dans un tableau de fluendo3d dimensionne au max des
  532. c facultative helmholtz de IDMATR (actuellement 10)
  533. if(NBVIA.GT.NB_HELM) then
  534. print*,'Pb de dimensionnement avec les variables de Helmholtz'
  535. print*,'dans cflui3d:',NBVIA,' > ',NB_HELM
  536. print*,'Verifier NB_HELM et nbr de non locales'
  537. print*,'declarees nombre_helmholtz.h (NBRHEL.INC)'
  538. else
  539. c transfert vers les variables locales
  540. if (NBVIA.gt.0) then
  541. NBVIA3D=NBVIA
  542. do i=1,NB_HELM
  543. if(i.le.NBVIA3D) then
  544. INLVIA3D(i)=INLVIA(i)
  545. else
  546. INLVIA3D(i)=0
  547. end if
  548. end do
  549. else
  550. NBVIA3D=NBVIA
  551. do i=1,NB_HELM
  552. INLVIA3D(i)=0
  553. end do
  554. end if
  555. end if
  556. c************* fin de recuperation des numeros des variables Helmholtz *
  557.  
  558. c************* appel au modele fluendo3d*******************************
  559.  
  560. call flui3d(XMAT3D,NMAT3D,sig03d,sigf3d,depst3d,nstrs3d,
  561. #VAR03D,VARF3D,NVARI3D,teta13d,teta23d,dt3d,ierr1,iso1,mfr11,
  562. #ifour11,istep3d,epst03d,epstf3d,tref3d,NBELAS3D,NB_PARA_FLUENDO3D,
  563. #NB_PARA_SUPP_FLUENDO3D,NB_VARI_FLUENDO3D,NB_VARI_SUPP_FLUENDO3D,
  564. #NB_DECAL,NBNMAX3D,NBNB3D,IDIMB3D,XE3D,NBVIA3D,INLVIA3D,
  565. #NMAT0,NMAT1,NMAT2,NMAT3,NVAR0,NVAR1,NVAR2,NVAR3,NB_PARA_FIBRE_U)
  566.  
  567.  
  568. c************ re-affectation des tableaux de variables internes ********
  569. do i=1,nvarib
  570. varf(i)=VARF3D(i)
  571. * print*,'cas3d f(',i,')=',varf(i),' i',var0(i)
  572. end do
  573. c read*
  574. c ecriture des contraintes totales fin de pas
  575. do i=1,nstrsb
  576. sigf(i)=sigf3d(i)
  577. end do
  578.  
  579. c***********************************************************************
  580. c traitement de l erreur d ecoulement
  581. if(ierr1.eq.0)then
  582. kerre=0
  583. else
  584. kerre=1
  585. end if
  586. return
  587. end
  588. c***********************************************************************
  589.  
  590.  
  591.  

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