Télécharger cndo3d.eso

Retour à la liste

Numérotation des lignes :

cndo3d
  1. C CNDO3D SOURCE PV090527 24/02/09 21:15:02 11835
  2. c A.Sellier avril jeu. 09 sept. 2010 11:55:47 CEST
  3. SUBROUTINE cndo3d(WRK52,WRK53,WRK54,MWRKXE,WR14,
  4. # nbnb,idimb,teta13d,teta23d,nvarib,nstrsb,ifourb,dtb,trefb)
  5.  
  6. C WRK52,53,54 segments déclarés dans le common DECHE
  7.  
  8. C XMAT(NCOMAT) = COMPOSANTES DE MATERIAU
  9. C IVAL(NCOMAT) = INDICE DES COMPOSANTES DE MATERIAU
  10. C NCOMAT = NOMBRE DE COMPOSANTES DE MATERIAU
  11. C XCAR(ICARA) = CARACTERISTIQUES
  12. C MFR = NUMERO DE LA FORMULATION DE L'ELEMENT FINI
  13. C = 1 MASSIF
  14. C = 3 COQUE MINCE ( COQ2 , COQ3 ET DKT )
  15. C = 5 COQUE EPAISSE ( COQ6 , COQ8 )
  16. C = 7 POUTRE
  17. C = 9 COQUE MINCE AVEC CISAILLEMENT TRANSVERSE ( COQ4 ET DST )
  18. C = 11 LIQUIDE
  19. C = 13 TUYAU
  20. C = 15 LINESPRING
  21. C = 17 TUYAU FISSURE
  22. C = 19 RACCORD MASSIF
  23. C = 21 RACCORD COQUE
  24. C = 23 SURFACE LIBRE
  25. C = 25 MEMBRANE
  26. C = 27 UNIAXIALE
  27. C = 29 THERMIQUE
  28. C = 31 INCOMPRESSIBLES
  29. C = 33 POREUX
  30. C = 35 JOINT
  31. C = 37 HOMOGENEISE
  32. C = 39 TUYO
  33. C = 41 TUYAU ACOUSTIQUE PURE
  34. C = 43 RACCORD TUYAU FLUIDE
  35. c* DDAUX = MATRICE DE HOOKE ELASTIQUE
  36. c* NSTRS = NBRE DE COMPOSANTES DES DEFORMATIONS
  37. c* CMATE = NOM DU MATERIAU
  38. c* VALMAT= TABLEAU DE CARACTERISTIQUES DU MATERIAU
  39. c* VALCAR= TABLEAU DE CARACTERISTIQUES GEOMETRIQUES
  40. c* N2EL = NBRE D ELEMENTS DANS SEGMENT DE HOOKE
  41. c* N2PTEL= NBRE DE POINTS DANS SEGMENT DE HOOKE
  42. c* MFR = NUMERO DE LA FORMULATION
  43. c* IFOU = type de formulation
  44. c* IB = NUMERO DE L ELEMENT COURANT
  45. c* IGAU = NUMERO DU POINT COURANT
  46. c* EPAIST= EPAISSEUR
  47. c* NBPGAU= NBRE DE POINTS DE GAUSS
  48. c* MELE = NUMERO DE L ELEMENT FINI
  49. c* NPINT = NBRE DE POINTS D INTEGRATION
  50. c* NBGMAT= NBRE DE POINTS DANS SEGMENT DE CARACTERISTIQUES
  51. c* NELMAT= NBRE D ELEMENTS DANS SEGMENT DE CARACTERISTIQUES
  52. c* SECT = SECTION
  53. c* LHOOK = TAILLE DE LA MATRICE DE HOOKE
  54. c* TXR,XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI = TABLEAUX UTILISES
  55. c* POUR LE CALCUL DE LA MATRICE DE HOOKE
  56. C-----------------------------------------------------------------------
  57. C VARIABLES PASSEES PAR LES COMMONS COPTIO , ECOU ET NECOU
  58. C
  59. C IFOUR INDICE DU TYPE DE PROBLEME
  60. C -3 DEFORMATIONS PLANES GENERALISEES
  61. C -2 CONTRAINTES PLANES
  62. C -1 DEFORMATIONS PLANES
  63. C 0 AXISYMETRIQUE
  64. C 1 SERIE DE FOURIER
  65. C 2 TRIDIMENSIONNEL
  66. C ITYP TYPE DE FORMULATION MECANIQUE
  67. C --------------- ATTENTION ---------------
  68. C IL EST ACTIF APRES L APPEL DE VISAVI
  69. C -----------------------------------------
  70. C ITYP=1 CAS DES ELEMENTS MASSIFS
  71. C ITYP=2 CAS DES COQUES
  72. C ITYP=3 CAS DES MEMBRANES
  73. C ITYP=4 CAS DES CABLES ET DES BARRES
  74. C ITYP=5 CAS QUELCONQUE
  75. C ITYP=6 CAS DES CONTRAINTES PLANES
  76. C ITYP=7 CAS DES COQUES A NU=0. OU CONTRAINTES PLANES
  77. C ITYP=8 CAS DES MEMBRANES A NU=0. OU CONTRAINTES PLANES
  78. C ITYP=9 CAS DES COQUES EPAISSES
  79. C ITYP=10 CAS DES JOINTS
  80. C ITYP=11 CAS DES POUTRES
  81. C ITYP=12 CAS DES TUYAUX
  82. C ITYP=13 CAS DES COQUES AVEC CISAILLEMENT TRANSVERSE
  83. C
  84. C ISTEP flag utilise pour separer les etapes dans un calcul non local
  85. C ISTEP=0 -----> calcul local
  86. C ISTEP=1 -----> calcul non local etape 1 on calcule les seuils
  87. C ISTEP=2 -----> calcul non local etape 2 on continue le calcul
  88. C a partir des seuils moyennes
  89. C ISTEP est défini par DEFINI.ESO
  90. C
  91. C EPIN0 déformations inélastiques initiales
  92. C EPINF déformations inélastiques finales
  93. C epst0 déformation totale initiale
  94. C EPSTF déformation totale finale
  95. C
  96. C-----------------------------------------------------------------------
  97. C SORTIES
  98. C SIGF(NSTRS) = CONTRAINTES FINALES
  99. C VARF(NVARI) = VARIABLES INTERNES FINALES
  100. C DEFP = DEFORMATIONS PLASTIQUES
  101. C KERRE = 0 TOUT OK
  102.  
  103.  
  104. IMPLICIT INTEGER(I-N)
  105. IMPLICIT REAL*8(A-H,O-Z)
  106. -INC PPARAM
  107. -INC CCOPTIO
  108. -INC DECHE
  109. *
  110. SEGMENT IECOU
  111. * COMMON/IECOU/NYOG,NYNU,NYALFA,NYSMAX,NYN,NYM,NYKK,
  112. INTEGER icow1,icow2,icow3,icow4,icow5,icow6,icow7,
  113. C INTEGER NYOG, NYNU, NYALFA,NYSMAX,NYN, NYM, NYKK,
  114. 1 icow8,icow9,icow10,icow11,icow12,icow13,icow14,icow15,icow16,
  115. C . NYALF1,NYBET1,NYR, NYA, NYRHO,NSIGY, NNKX, NYKX, IND,
  116. 2 icow17,icow18,icow19,icow20,icow21,icow22,icow23,icow24,
  117. C . NSOM, NINV, NINCMA,NCOMP, JELEM, LEGAUS,INAT, NCXMAT,
  118. 3 icow25,icow26,icow27,icow28,icow29,icow30,ICARA,
  119. C . LTRAC, MFR, IELE, NHRM, NBNN, NBELEM,ICARA,
  120. 4 icow32,icow33,NSTRS1,MFR1,icow36,icow37,icow38,
  121. C . LW2, NDEF, NSTRSS,MFR1, NBGMAT,NELMAT,MSOUPA,
  122. 5 icow39,icow40,icow41,icow42,icow43,icow44
  123. C . NUMAT1,LENDO, NBBB, NNVARI,KERR1, MELEME
  124. INTEGER icow45,icow46,icow47,icow48,icow49,icow50,
  125. . icow51,icow52,icow53,icow54,icow55,icow56
  126. . icow57,icow58
  127. ENDSEGMENT
  128. SEGMENT XECOU
  129. * COMMON/XECOU/DTOPTI,TSOM,TCAR,DTT,DT,TREFA,TEMP00
  130. REAL*8 xcow1, xcow2,xcow3,xcow4,DT,xcow6, xcow7
  131. C REAL*8 DTOPTI,TSOM, TCAR, DTT, DT,TREFA,TEMP00
  132. ENDSEGMENT
  133.  
  134. c segment de coordonnees des noeuds de l element
  135. integer nbnb,insb,idimb
  136. SEGMENT MWRKXE
  137. REAL*8 XE(3,nbnb)
  138. ENDSEGMENT
  139.  
  140. *
  141. * sellier 04 04 2020
  142. *
  143. SEGMENT WR14
  144. INTEGER INLVIA(NBVIA)
  145. ENDSEGMENT
  146.  
  147. **fin sellier
  148.  
  149. c temperatures debut et fin de pas , moyenne, pas de temps, volume rgi
  150. real*8 teta13d,teta23d,temp3d,dt3d
  151. c variables de transfert de donnees ( a declarer suivant idvar4 et idvisc)
  152. integer nstrs3d,NVARI3D,ierr1,mfr11
  153. c variable pour passer le numero de l etape non locale
  154. integer istep3d ,nvarib,nstrsb,ifourb
  155.  
  156.  
  157. c ******** dimension des tableaux parametres materiau **************
  158.  
  159. c nombre de parametres materiau du modele (cf coherence avec idvisc)
  160. integer NBELAS3D,NBRFLU3D,NBRTAIL3D,NBRENF3D,NBPARR3D,NBSUPP3D
  161. c nmat1 nombre de parametres materiau sans la taille NMAT3D-nbrtail3d
  162. integer NMAT1,NMAT3D,NRENF00,NMATNL3
  163. c nombre de longueur non locales maxi dans les parametres materiaux
  164. integer NBNLOC3D
  165. c variables non locales cf reglage nombre de variables iso et un dans IDMATR
  166. integer NBNLISO,NBNLUNI,NBPARISO,NBPARUNI
  167. c nombre de variables non locales ISO et UNI (cf idmatr et idvar4 et les .h associes)
  168. * parameter (NBNLISO=0,NBNLUNI=0)
  169. parameter (NBNLISO=1,NBNLUNI=1)
  170.  
  171. c nombre de parametre par variable iso et par variable uni (cf idmatr et idvar4 et les .h associes)
  172. parameter (NBPARISO=1,NBPARUNI=4)
  173. c nombre maxi de variables non locales
  174. parameter(NBNLOC3D=NBNLISO+NBNLUNI )
  175.  
  176. c nombre de parametres materiaux et nbre de variables internes NBRENF3D (cf idvisc)
  177. parameter (NBELAS3D=4,NBRFLU3D=28,NBRENF3D=0,NBPARR3D=25)
  178. c parametres materiaux supplementaires pour options
  179. parameter (NBSUPP3D=0)
  180. c parametres materiaux pour inclure les paprametres de l operateur tail
  181. parameter (NBRTAIL3D=1)
  182. c nbre de parametres materiaux sans les tailles des elements ni les
  183. c variables pour le non local (vari, long, vect)
  184. parameter (NMAT1=NBELAS3D+NBRFLU3D+NBSUPP3D+NBRENF3D*NBPARR3D)
  185. c nombre de parametres obligatoires (avec RHO TREF TALP a la fin)
  186. parameter (NMAT2=NMAT1+NBRTAIL3D+1)
  187. c nombre total de parametres non locaux
  188. parameter (NMATNL3=NBNLISO*NBPARISO+NBNLUNI*NBPARUNI)
  189. c nombre total de parametres conserves pour fluendo3d
  190. parameter (NMAT3D=NMAT2+NMATNL3+2)
  191. c dimension maxi du tableau des parametres
  192. real*8 XMAT3D(NMAT3D)
  193. c pointeur des parametres materiaux
  194. integer IVALMAT3D(NMAT3D)
  195.  
  196. c ******** dimension des tableaux variables internes ***************
  197.  
  198. c nombre de variables internes
  199. integer NVARFLU3D,NVARSUP3D,NVARENF3D,NBNMAX3D,NBVIA3D
  200. integer NBVSCAL,NBVTENS,NBVPTENS
  201. c nombre de variable de base dans idvar4
  202. parameter (NBVSCAL=15,NBVTENS=7,NBVPTENS=6)
  203. parameter (NVARFLU3D=NBVSCAL+NBVTENS*NBVPTENS)
  204. c nombre de variables supplementaire pour gerer les options (cf idvar4)
  205. parameter (NVARSUP3D=0)
  206. c nombre de variables internes par renfort repartis (cf idvar4)
  207. parameter (NVARENF3D=25)
  208. c ********variables pour le non local*******************************
  209. integer NBVARNL3D,NBVARISO,NBVARUNI
  210. c nombre de vari par vari ISO (cf idvar4)
  211. parameter (NBVARISO=2)
  212. c nombre de vari par vari UNI (cf idvar4) (UNI + 9 YUI= 10 VARI/UNI)
  213. parameter (NBVARUNI=10)
  214. c nombre de vari pour le non local
  215. parameter (NBVARNL3D=NBNLISO*NBVARISO+NBNLUNI*NBVARUNI)
  216. c nombre total de variables internes
  217. parameter (NVARI3D=NVARFLU3D+NVARSUP3D+
  218. # (NBRENF3D*NVARENF3D)+NBVARNL3D)
  219. c tableau local des variables internes
  220. real*8 VAR03D(NVARI3D),VARF3D(NVARI3D)
  221.  
  222.  
  223. c ******* tableau des numeros des variables non locales actives ****
  224. integer INLVIA3D(NBNLOC3D)
  225. c controle de la methode de calcul de la taille pour les non locales
  226. logical METHODNL(NBNLOC3D)
  227. c longueur non locale a prendre en compte
  228. real*8 DHI(NBNLISO),DHU(NBNLUNI),VU(NBNLUNI,3)
  229.  
  230. c ******* tableau local des coordonnees des noeuds de lEF **********
  231. c nbr de noeuds maxi par element
  232. parameter (NBNMAX3D=20)
  233. c tableau des coordonnees des noeuds
  234. real*8 XE3D(3,NBNMAX3D)
  235.  
  236. c ******** taille du pseudo vecteur des contraintes ***************
  237. c tjrs 6 en raison de son utilisation dans as3d
  238. parameter (nstrs3d=6)
  239. real*8 sig03d(nstrs3d),sigf3d(nstrs3d)
  240. real*8 epst03d(nstrs3d),epstf3d(nstrs3d)
  241. real*8 depst3d(nstrs3d)
  242. real*8 dtb,tref3d,alpha
  243.  
  244. c variable logique : isotropie initiale
  245. c fluage, endommagement
  246. logical iso1
  247.  
  248. c nombre de parametres de tailles suivant la formulation
  249. integer ifou11,ntail3d
  250.  
  251. c dimension de l espace de travail
  252. integer idimb3d
  253.  
  254. c variable a vrai si il est effectivement prevu de passer
  255.  
  256. c***********************************************************************
  257. c remarque : parametres elastiques en formulation poreux massif (mfr=33)
  258. c en debut de xmat :
  259. c 'YOUN' : module d'Young
  260. c 'NU ' : coefficient de poisson
  261. c 'RHO ' : masse volumique (a la fin en non poreux)
  262. c 'ALPH' : coefficient de dilatation thermique (a la fin aussi en non poreux)
  263. c à la fin de xmat :
  264. c 'TREF' : temperature de reference du chargement thermique
  265. c 'TALP' : temperature de reference des dilations thermiques
  266. c 'MOB ' : module de Biot
  267. c 'COB ' : coefficient de Biot
  268. c 'PERM' : perméabilité intrinsèque
  269. c 'VISC' : viscosité dynamique du fluide
  270. c 'ALPM' : coefficient de couplage pression - température
  271. c L ORDRE N EST PAS LE MEME SI LE MATERIAU EST ORTHOTROPE
  272. c cf deche.inc pour recuperer les noms exacts des variables
  273. c transfert des variables dans les tableaux du modele
  274. c***********************************************************************
  275.  
  276. c ***** valeur de ntail3d en fonction de la formulation ************
  277. if(ifourb.eq.2) then
  278. c formulation massive
  279. ntail3d=0
  280. else if (ifourb.eq.0) then
  281. c formulation axisym
  282. ntail3d=1
  283. else if (ifourb.eq.-1) then
  284. c formulation defo plane
  285. ntail3d=1
  286. else
  287. kerre=1
  288. print*,'pb cas imprevu ds tail3d ds cndo3d'
  289. return
  290. end if
  291.  
  292. c***********************************************************************
  293. c transfert des parametres materiaux dans le tableau pour fluendo3d
  294. C print*,'Dans cflu3d',nmat1,nmat2,nmat3d,nmatt
  295. C do i=1,nmatt
  296. C print*,'xmat(',i,')=',xmat(i)
  297. C enddo
  298. C read*
  299. c suivant la formulation
  300. if(mfr.ne.33) then
  301. c ****** formulation non poreuse *********************************
  302. c print*,'ds cflu3d istep=',istep
  303. if(istep.eq.0) then
  304. c ***** formulation locale***************************************
  305. if ((NMAT2+2-NBRTAIL3D+ntail3d).ne.nmatt) then
  306. print*,'pb dimension de xmat dans cflu3d'
  307. print*,'nmatt',nmatt,'NMAT2',NMAT2
  308. print*,'NBRTAIL3D',NBRTAIL3D,'ntail3d',ntail3d
  309. do i=1,nmatt
  310. print*,'xmat(',i,')=',xmat(i)
  311. enddo
  312. read*
  313. kerre=1
  314. return
  315. else
  316. do i=1,nmatt
  317. XMAT3D(i)=xmat(i)
  318. enddo
  319. end if
  320. else
  321. c **** formulation non local ************************************
  322. c ces parametres facultatifs sont definies dans IDMATR
  323. if((NMAT3D-NBRTAIL3D+ntail3d).ne.nmatt) then
  324. print*,'pb dimension de xmat dans cflu3d'
  325. print*,'nmatt',nmatt,'NMAT3D',NMAT3D,'nmat1',NMAT1
  326. print*,'NMATNL3',NMATNL3,'NMAT2',NMAT2
  327. print*,'NBRTAIL3D',NBRTAIL3D,'ntail3d',ntail3d
  328. do i=1,nmatt
  329. print*,'xmat(',i,')=',xmat(i)
  330. enddo
  331. read*
  332. kerre=1
  333. return
  334. else
  335. do i=1,nmatt
  336. XMAT3D(i)=xmat(i)
  337. enddo
  338. end if
  339. end if
  340. else
  341. c *****formulation poreux ****************************************
  342. print*,'on est en poreux dans cflu3d'
  343. print*,'Pb affectation des caracteristiques dans cas3d'
  344. do i=1,nmatt
  345. print*,'xmat(',i,')=',xmat(i)
  346. end do
  347. print*,'voir idmatr pour la position des parametres'
  348. kerre=1
  349. return
  350. end if
  351.  
  352. c********** recuperation des variables internes debut de pas ***********
  353. if(NVARI3D.ne.nvarib) then
  354. print*,'Pb dimension de var0 dans cnd3d'
  355. print*,'Verifier dimension table des variables internes'
  356. print*,'et compatibilite entre idvar4 et endo3d.'
  357. read*
  358. kerre=1
  359. return
  360. end if
  361. c transfert vers le tableau de fldo3d
  362. do i=1,NVARI3D
  363. c if(var0(1).ne.1.) then
  364. c var0(i)=0.d0
  365. c end if
  366. VAR03D(i)=var0(i)
  367. end do
  368.  
  369. c*********** recuperation des contraintes totales debut de pas *********
  370. if(mfr.ne.33) then
  371. c on est pas en poreux
  372. if(nstrsb.lt.nstrs3d) then
  373. do i=1,nstrsb
  374. sig03d(i)=sig0(i)
  375. sigf3d(i)=sigf(i)
  376. c ATTENTION les depst 3-6 doivent etre des gamas
  377. depst3d(i)=depst(i)
  378. epst03d(i)=epst0(i)
  379. epstf3d(i)=epstf(i)
  380. end do
  381. do i=nstrsb+1,nstrs3d
  382. sig03d(i)=0.d0
  383. sigf3d(i)=0.d0
  384. c ATTENTION les depst 3-6 doivent etre des gamas
  385. depst3d(i)=0.d0
  386. epst03d(i)=0.d0
  387. epstf3d(i)=0.d0
  388. end do
  389. else
  390. do i=1,nstrs3d
  391. sig03d(i)=sig0(i)
  392. sigf3d(i)=sigf(i)
  393. c ATTENTION les depst 3-6 doivent etre des gamas
  394. depst3d(i)=depst(i)
  395. epst03d(i)=epst0(i)
  396. epstf3d(i)=epstf(i)
  397. end do
  398. end if
  399. else
  400. print*,'on est en poreux'
  401. print*,'Pb affectation des contraintes dans cflu3d'
  402. print*,'a terminer'
  403. do i=1,nstrsb
  404. print*,'sig(',i,')=',sig0(i)
  405. end do
  406. kerre=1
  407. return
  408. end if
  409.  
  410.  
  411. c************** autres parametres a renseigner ***********************
  412.  
  413. c initialisation indicateur d erreur
  414. ierr1=0
  415. c indicateur isostropie elastique et de resistance
  416. iso1=.true.
  417. c numero de la formulation (33 pour poreux)
  418. mfr11=mfr
  419. c type de formulation
  420. ifour11=ifourb
  421. c pas de temps
  422. dt3d=dtb
  423. c numero pour le traitement non local eventuel
  424. istep3d=istep
  425.  
  426. c ******* recuperation des coordonnees de noeuds ******************
  427.  
  428. c boucle sur les noeuds
  429. if(nbnb.le.NBNMAX3D) then
  430. NBNB3D=nbnb
  431. if(idimb.le.3) then
  432. idimb3d=idimb
  433. else
  434. print*,'pb table de coord des neouds ds cflu3d'
  435. kerre=1
  436. return
  437. end if
  438. else
  439. print*,'Element avec + de noeuds que capacite de cflu3d'
  440. kerre=1
  441. return
  442. end if
  443. c chargement des coordonnees des noeuds
  444. do insb=1,NBNB3D
  445. do j=1,idimb3d
  446. c print*,'xe(',j,insb,')=',xe(j,insb)
  447. XE3D(j,insb)=xe(j,insb)
  448. end do
  449. if (idimb.lt.3) then
  450. do j=idimb+1,3
  451. XE3D(j,insb)=0.d0
  452. end do
  453. end if
  454. end do
  455. c on double les noeuds si le probleme est 2D
  456. if ((ifourb.eq.0).or.(ifourb.eq.-1)) then
  457. c on double les neouds avec dimension 3 recupere en xmat(nmat1+8)
  458. dimension3=XMAT3D(nmat1+1)
  459. NBNB3D=2*nbnb
  460. do insb=nbnb+1,NBNB3D
  461. do j=1,2
  462. c print*,'xe(',j,insb,')=',xe(j,insb)
  463. XE3D(j,insb)=XE3D(j,(insb-nbnb))
  464. end do
  465. XE3D(3,insb)=dimension3
  466. end do
  467. end if
  468.  
  469. c ****** recuperation de la temperature de reference **************
  470. tref3d=trefb
  471. c print*,'verif temperature de reference fluendo3d',trefb
  472.  
  473. c * intialisation des variables de sortie a leur valeur initiale *
  474. c en cas de 1ere etape non locale
  475. if(istep.eq.1) then
  476. do i=1,nvari3d
  477. varf3d(i)=var03d(i)
  478. end do
  479. end if
  480. c****************** fin du transferts des donnees **********************
  481.  
  482.  
  483. c*************recuperation des numeros des variables Helmholtz *********
  484. if(WR14.EQ.0) then
  485. NBVIA = 0
  486. else
  487. NBVIA=INLVIA(/1)
  488. c print*,'NBVIA = ',NBVIA
  489. c do i=1,NBVIA
  490. c print*, 'I' ,i, 'INLVIA ' ,INLVIA(i)
  491. c end do
  492. endif
  493. c transfert dans un tableau de fldo3d dimensionne au max des
  494. c facultative helmholtz de IDMATR (actuellement 10)
  495. if(NBVIA.GT.NBNLOC3D) then
  496. print*,'Pb de dimensionnement avec les variables de Helmholtz'
  497. print*,'dans cflu3d:',NBVIA,' > ',NBNLOC3D
  498. print*,'Verifier CMPATBLTCR NBNLOC3D et nbr de non locales'
  499. print*,'declarees dans IDMATR.ESO'
  500. else
  501. c transfert vers les variables locales
  502. if (NBVIA.gt.0) then
  503. NBVIA3D=NBVIA
  504. do i=1,NBNLOC3D
  505. if(i.le.NBVIA3D) then
  506. INLVIA3D(i)=INLVIA(i)
  507. else
  508. INLVIA3D(i)=0
  509. end if
  510. end do
  511. else
  512. NBVIA3D=NBVIA
  513. do i=1,NBNLOC3D
  514. INLVIA3D(i)=0
  515. end do
  516. end if
  517. end if
  518. c************* fin de recuperation des numeros des variables Helmholtz *
  519.  
  520.  
  521.  
  522. c**************** appel a endo3d****************************************
  523.  
  524. call endo3d(XMAT3D,NMAT3D,sig03d,sigf3d,depst3d,nstrs3d,
  525. # VAR03D,VARF3D,NVARI3D,nbelas3d,teta13d,teta23d,dt3d,ierr1,
  526. # iso1,mfr11,ifour11,istep3d,epst03d,epstf3d,NBRFLU3D,NBSUPP3D,
  527. c # NBRENF3D,NBPARR3D,
  528. #NMAT1,NMAT2,NVARFLU3D, NVARSUP3D,NBVSCAL,NBVTENS,NBVPTENS,
  529. c NVARENF3D,
  530. # NBNMAX3D,NBNB3D,idimb3d,XE3D,tref3d)
  531. C # NBNLOC3D,INLVIA3D,NBVIA3D,
  532. C # NBNLISO,NBNLUNI,NBPARISO,NBPARUNI,NBVARNL3D,NBVARISO,NBVARUNI,
  533. C # METHODNL,DHI,DHU,VU,IVALMAT3D)
  534.  
  535. c************ re-affectation des tableaux de variables internes ********
  536. do i=1,nvarib
  537. varf(i)=VARF3D(i)
  538. c print*,'cas3d f(',i,')=',varf(i),' i',var0(i)
  539. end do
  540. c read*
  541. c ecriture des contraintes totales fin de pas
  542. do i=1,nstrsb
  543. sigf(i)=sigf3d(i)
  544. end do
  545.  
  546. c***********************************************************************
  547. c traitement de l erreur d ecoulement
  548. if(ierr1.eq.0)then
  549. kerre=0
  550. else
  551. kerre=1
  552. end if
  553. 1000 return
  554. end
  555.  
  556. c***********************************************************************
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  

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