rigi2
C RIGI2 SOURCE SP204843 23/09/22 21:15:19 11746 & IVAMAT,IVACAR,CMATE,MFR,NBGMAT,NELMAT,IMAT,LHOOK,NMATT, & IPORE,NDDL,IPMATR,IIPDPG,NCAR1,MELPHA,NOER) *---------------------------------------------------------------------* * __________________________ * * | | * * | CALCUL DE LA RIGIDITE | * * |________________________| * * * * massif, liquide, 'surface libre', poreux et joints poreux, * * incompressible * * * *---------------------------------------------------------------------* * * * ENTREES : * * ________ * * * * MATE Numero du materiau * * MELE Numero de l'element fini * * IPMAIL Pointeur sur un segment MELEME * * IPMINT Pointeur sur un segment MINTE * * NBPGAU Nombre de point d'integration pour la rigidite * * LRE Nombre de ddl dans la matrice de rigidite * * NSTRS Nombre de composante de contraintes/deformations * * IVAMAT Pointeur sur un segment MPTVAL pour le materiau ou * * pour une matrice de hooke * * IVACAR Pointeur sur un segment MPTVAL de caractéristiques * * CMATE Nom du materiau * * MFR Numero de la formulation element fini * * NBGMAT Taille maxi des melval du materiau (pt de gauss) * * NELMAT Taille maxi des melval du materiau (No d'element) * * IMAT (2 il y a une matrice de HOOKE,1 non ) * * NMATT Nombre de composante de materiau (IMAT=1) * * LHOOK Dimension de la matrice de Hooke * * IPORE Nombre de fonctions de forme * * NDDL Nombre de degre de liberte * * * * SORTIES : * * ________ * * * * IPMATR pointeur sur la rigidite de la sous-zone * * * *---------------------------------------------------------------------* IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC CCREEL -INC SMCHAML -INC SMINTE -INC SMELEME -INC SMRIGID -INC SMCOORD -INC SMLREEL * SEGMENT WRK1 REAL*8 DDHOOK(LHOOK,LHOOK) ,DDHOMU(LHOOK,LHOOK) REAL*8 REL(LRE,LRE) ,RINT(LRE,LRE) , XE(3,NBBB) ENDSEGMENT * SEGMENT WRK2 ENDSEGMENT * SEGMENT WRK3 REAL*8 BPSS(3,3),XEL(3,NBBB) REAL*8 XNTH(LPP,LPP),XNTB(LPP,LPP),XNTT(LPP) ENDSEGMENT * SEGMENT WRK5 REAL*8 XGENE(NSTN,LRN) ENDSEGMENT * SEGMENT WRK55 REAL*8 YGENE(NCOT,NBNN),COBMA(LHOOK) ENDSEGMENT * SEGMENT WRK555 REAL*8 XREL(LRN,LRN),COBB(NSTN),CPBB(NSTN),KKBB(NSTN,NSTN) ENDSEGMENT * SEGMENT WRK8 REAL*8 XLOC(3,3),XGLOB(3,3),TXR(IDIM,IDIM) REAL*8 D1HO(LHOOK,LHOOK),ROTH(LHOOK,LHOOK) ENDSEGMENT * SEGMENT,MVELCH REAL*8 VALMAT(NV1) ENDSEGMENT * segment mwrk67 real*8 valcar(nca1), xatef1(3,3) endsegment * SEGMENT MPTVAL INTEGER IPOS(NS) ,NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT * DIMENSION A(4,60),BB(3,60),PP(4,4) CHARACTER*8 CMATE,celem logical drend,BDPGE * * WRITE (*,*) 'Entrée dans RIGI2.' MELEME=IPMAIL NBNN=NUM(/1) NBELEM=NUM(/2) * NV1=NMATT SEGINI,MVELCH * XMATRI=IPMATR c* NLIGRD=LRE c* NLIGRP=LRE C Introduction du point autour duquel se fait le mouvement C de la section en defo plane generalisee C IIPDPG = numero du noeud/point support si defini pour le modele IF (IIPDPG.GT.0) THEN IF (IFOUR.EQ.-3) THEN BDPGE=.TRUE. IREF=(IIPDPG-1)*(IDIM+1) XDPGE=XCOOR(IREF+1) YDPGE=XCOOR(IREF+2) ELSE IF (IFOUR.EQ. 7 .OR. IFOUR.EQ. 8 .OR. IFOUR.EQ. 9 .OR. & IFOUR.EQ.10 .OR. IFOUR.EQ.11 .OR. IFOUR.EQ.14) THEN BDPGE=.TRUE. XDPGE=XZero YDPGE=XZero else write(ioimp,*) 'RIGI2 : ERREUR DPGE' return ENDIF ELSE BDPGE=.FALSE. XDPGE=XZero YDPGE=XZero ENDIF * NHRM=NIFOUR * MINTE=IPMINT IRTD=1 IDECAP=0 C_______________________________________________________________________ C C NUMERO DES ETIQUETTES : C ETIQUETTES DE 1 A 98 POUR TRAITEMENT SPECIFIQUE A L ELEMENT C DANS LA ZONE SPECIFIQUE A CHAQUE ELEMENT COMMENCANT PAR : C 5 CONTINUE C ELEMENT 5 ETIQUETTES 1005 2005 3005 4005 ... C 44 CONTINUE C ELEMENT 44 ETIQUETTES 1044 2044 3044 4044 ... C_______________________________________________________________________ C IF(MELE.GE.1.AND.MELE.LE.100) THEN C CABL SEG2 SEG3 TRI3 TRI4 TRI6 TRI7 QUA4 QUA5 QUA8 GOTO ( 99, 99, 99, 4, 99, 4, 99, 4, 99, 4 C QUA9 RAC2 RAC3 CUB8 CU20 PRI6 PR15 LIA3 LIA4 LIA6 1 , 99, 99, 99, 4, 4, 4, 4, 99, 99, 99 C LIA8 MULT TET4 TE10 PYR5 PY13 COQ3 DKT POUT LISP 2 , 99, 99, 4, 4, 4, 4, 99, 99, 99, 99 C FAC3 FAC4 FAC6 FAC8 LTR3 LQU4 LCU8 LPR6 LTE4 LPY5 3 , 99, 99, 99, 99, 35, 35, 35, 35, 35, 35 C COQ8 TUYA TUFI COQ2 POI1 BARR RACO LSU2 COQ4 LISM 4 , 99, 99, 99, 99, 99, 99, 99, 48, 99, 99 C COF3 RES2 LSU3 LSU4 LICO COQ6 CVS2 CVS3 CVT3 CVT6 5 , 99, 99, 48, 48, 99, 99, 99, 99, 99, 99 C CVQ4 CVQ8 THP5 TH13 THP6 TH15 THC8 TH20 ICT3 ICQ4 6 , 99, 99, 99, 99, 99, 99, 99, 99, 4, 4 C ICT6 ICQ8 ICC8 ICT4 ICP6 IC20 IC10 IC15 TRIP QUAP 7 , 4, 4, 4, 4, 4, 4, 4, 4, 79, 79 C CUBP TETP PRIP TIMO JOI2 JOI3 JOT3 JOI4 JOI6 JOI8 8 , 79, 79, 79, 99, 99, 99, 99, 99, 99, 99 C LISC TRIH DST LIC4 CERC TUYO LSE2 LITU HYT3 HYQ4 9 , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99) c cccccc . ,MELE ELSEIF(MELE.GE.101.AND.MELE.LE.200) THEN C HYT4 HYP6 HYC8 TRIS QUAS POIS FOR3 JOP3 JOP6 JOP8 GOTO ( 99, 99, 99, 99, 99, 99, 99, 80, 80, 80 C POL3 POL4 POL5 POL6 POL7 POL8 POL9 PO10 PO11 PO12 1 , 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 C PO13 PO14 BAR3 BAEX LIA2 QUAH CUBH ROT3 SEF2 TRF3 2 , 4, 4, 99, 99, 99, 99, 99, 99, 99, 99 C QUF4 CUF8 PRF6 TEF4 PYF5 MSE3 MTR6 MQU9 MC27 MP18 3 , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 C MT10 MP14 SEF3 TRF7 QUF9 CF27 PF21 TF15 PF19 SEG6 4 , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 C TR21 QU36 C216 P126 TE56 PY91 TRH6 BSE2 BTR4 BQU5 5 , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 C BCU9 BPR7 BTE5 BPY6 FRO4 SEGS POJS JCT3 JCI4 JGI2 6 , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 C JGT3 JGI4 TRIQ QUAQ CUBQ TETQ PRIQ TRIR QUAR CUBR 7 , 99, 99, 173, 173, 173, 173, 173, 173, 173, 173 C TETR PRIR Q4RI Q8RI JOQ3 JOQ6 JOQ8 JOR3 JOR6 JOR8 8 , 173, 173, 4, 4, 185, 185, 185, 185, 185, 185 C T1D2 T1D3 M1D2 M1D3 LC03 LC07 LC09 LC27 LC21 LC15 9 , 99, 99, 4, 4, 99, 99, 99, 99, 99, 99) c cccccc . ,MELE-100 ELSEIF(MELE.GE.201.AND.MELE.LE.300) THEN C LC19 LS03 LS07 LS09 LS27 LS21 LS15 LS19 BS03 BS07 GOTO ( 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 C BS09 BS27 BS21 BS15 BS19 MC03 MC07 MC09 MC27 MC21 1 , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 C MC15 MC19 M103 M107 M109 M127 M121 M115 M119 MS03 2 , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 C MS07 MS09 MS27 MS21 MS15 MS19 QC03 QC07 QC09 QC27 3 , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 C QC21 QC15 QC19 Q103 Q107 Q109 Q127 Q121 Q115 Q119 4 , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 C QS03 QS07 QS09 QS27 QS21 QS15 QS19 CIFL SURE SHB8 5 , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 C CAF2 CAF3 XQ4R XC8R JOI1 ZCO2 ZCO3 ZCO4 TUY2 TUY3 6 , 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 C COS2 COA2 ICY5 IC13 CU27 PR21 TE15 PY19 C20R P15R 7 , 99, 99, 4, 4, 4, 4, 4, 4, 4, 4) c cccccc . ,MELE-200 ENDIF GOTO 99 C_______________________________________________________________________ C C SECTEUR DE CALCUL POUR LES ELEMENTS MASSIFS ET INCOMPRESSIBLES C_______________________________________________________________________ C 4 CONTINUE DIM3=1.D0 * * CAS ORTHOTROPE ( 2) ANISOTROPE ( 3) UNIDIRICTIONNEL (4) * * RECUPERATION DES FONCTIONS DE FORME ET LEURS DERIVEES AU CENTRE DE * L'ELEMENT POUR LE CALCUL DES AXES LOCAUX IPMIN2 = 0 IF ( (MATE.EQ.2.OR.MATE.EQ.3.OR.MATE.EQ.4) .AND. IMAT.EQ.1) THEN MINTE2=IPMIN2 SEGACT MINTE2 SEGINI WRK8 ENDIF NBNO=NBNN NBBB=NBNN SEGINI WRK1,WRK2 if (melpha.gt.0) melva1 = melpha * Initialisation en cas de matrice d'efficacite MWRK67 = 0 celem = ' ' IF (IVACAR.GT.0) THEN MPTVAL=IVACAR * SEGACT,MPTVAL IF (IVAL(NCAR1).GT.0 .OR. IVAL(NCAR1+1).GT.0) THEN nca1 = IVAL(/1) SEGINI,MWRK67 celem = 'MASSIF ' nstep = 2 if (ifour.eq.2) nstep = 3 drend = .false. irend = 0 if (ival(ncar1).gt.0.and.tyval(ncar1).eq.'REAL*8') then drend = .true. irend = 1 endif if (ival(ncar1).eq.0.and.tyval(ncar1+1).eq.'REAL*8') then drend = .false. irend = 2 endif ENDIF ENDIF DO 3004 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C CALCUL DES AXES LOCAUX DANS LE CAS DES MATERIAUX ORTHOTROPE , C ANISOTROPE ET UNIDIRECTIONNEL C C* IF((MATE.EQ.2.OR.MATE.EQ.3.OR.MATE.EQ.4).AND.IMAT.EQ.1)THEN IF (IPMIN2.NE.0) THEN NBSH=MINTE2.SHPTOT(/2) if (nbsh.eq.-1) then goto 9904 endif ENDIF C C C= EF InCompressibles : CALCUL DES COEFF UTILES A LA MATRICE B-BARRE IF (MFR.EQ.31) THEN & NBPGAU,POIGAU,QSIGAU,ETAGAU,DZEGAU, & NSTRS,LRE,IFOUR,NHRM,A,BB,SHPTOT,SHPWRK, & BGENE,XDPGE,YDPGE,PP) ENDIF C segact,wrk1*mod C C BOUCLE SUR LES POINTS DE GAUSS C ISDJC=0 DO 4004 IGAU=1,NBPGAU C C RECUPERATION DE L'EPAISSEUR C IF (IFOUR.EQ.-2)THEN MPTVAL=IVACAR IF (IVACAR.NE.0) THEN MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) DIM3=VELCHE(IGMN,IBMN) ELSE DIM3=1.D0 ENDIF ENDIF ENDIF * 1 MELE,MFR,NBNN,LRE,IFOUR,NSTRS,NHRM,DIM3,XE, 2 SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE) IF (DJAC.EQ.0.D0) THEN INTERR(1)=IB GOTO 9904 ENDIF IF (DJAC.LT.0.D0) ISDJC=ISDJC+1 DJAC=ABS(DJAC)*POIGAU(IGAU) C En cas d'elements incompressibles : BGENE selon la methode B-BARRE IF (MFR.EQ.31) THEN & MELE,NBNN,LRE,IFOUR,NSTRS,XE,DJAC,A,BB,BGENE) ENDIF C MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) IGMN=MIN(IGAU,IELCHE(/1)) MLREEL=IELCHE(IGMN,IBMN) SEGACT,MLREEL C SEGDES MLREEL ENDIF ELSE IF (IMAT.EQ.1) THEN DO 9004 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) if (ibmn.gt.0.and.igmn.gt.0) then VALMAT(IM)=VELCHE(IGMN,IBMN) else VALMAT(IM)=0.D0 endif ELSE VALMAT(IM)=0.D0 ENDIF 9004 CONTINUE IF(MATE.EQ.2.OR.MATE.EQ.3.OR.MATE.EQ.4)THEN IF(IGAU.LE.NBGMAT) 2 ROTH,DDHOOK,LHOOK,1,IRTD) ELSE IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) ENDIF ENDIF C C CHOIX POUR BDB/DEFO PLANE GENE --- PRODUIT MATRICIEL NORMAL C /MASSIF ------------ PRODUIT PAR BLOC C * initialise * calcul rigidite elementaire IF (BDPGE) THEN ELSE 1 IGAU,IMAT,0.D0) ENDIF * matrice d'efficacite IF (MWRK67.GT.0) THEN MPTVAL=IVACAR DO 9008 IM= 1,IVAL(/1) IF (IVAL(IM).GT.0) THEN MELVAL=IVAL(IM) IF (TYVAL(IM).EQ.'REAL*8') THEN IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) VALCAR(IM)=VELCHE(IGMN,IBMN) ELSE IBMN=MIN(IB ,IELCHE(/2)) IGMN=MIN(IGAU,IELCHE(/1)) VALCAR(IM)=IELCHE(IGMN,IBMN) ENDIF ELSE VALCAR(IM)=0.D0 ENDIF 9008 CONTINUE do i = 1,nstep do j = 1, nstep xatef1(i,j) = 0.d0 enddo enddo if (irend.eq.1) then xatef1(1,1) = valcar(ncar1) xatef1(2,2) = valcar(ncar1) if (nstep.eq.3) xatef1(3,3) = valcar(ncar1) else if (irend.eq.2) then xatef1(1,1) = valcar(ncar1+7) xatef1(2,2) = valcar(ncar1+8) if (nstep.eq.3) xatef1(3,3) = valcar(ncar1+9) endif & nstep,drend,celem) ENDIF * ponderation par la phase IF (MELPHA.GT.0) THEN IBMN=MIN(IB ,melva1.VELCHE(/2)) IGMN=MIN(IGAU,melva1.VELCHE(/1)) coe1 = melva1.velche(igmn,ibmn) ELSE coe1 = 1.D0 ENDIF * stocke do jj = 1,LRE do ii = 1,LRE rint(ii,jj) = rint(ii,jj) + rel(ii,jj)*coe1 enddo enddo * 4004 CONTINUE * IF(ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) THEN INTERR(1)=IB noer=195 GOTO 9904 ENDIF C C REMPLISSAGE DE XMATRI C c CALL REMPMT(RINT,LRE,RE) DO IBK=1,LRE DO IAK=1,LRE RE(IAK,IBK,IB)=RINT(IAK,IBK) ENDDO ENDDO * do i = 1,8 * write(6,*) re(13,3*i-2),re(13,3*i-1),re(13,3*i) * enddo * 3004 CONTINUE c IF(IRTD.EQ.0) THEN MOTERR(1:8)=CMATE MOTERR(9:16)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF 9904 CONTINUE C* IF ((MATE.EQ.2.OR.MATE.EQ.3.OR.MATE.EQ.4) .AND.IMAT.EQ.1) THEN IF (IPMIN2.NE.0) THEN SEGDES MINTE2 SEGSUP WRK8 ENDIF SEGSUP WRK1,WRK2 IF (MWRK67.NE.0) SEGSUP,MWRK67 GOTO 510 C_______________________________________________________________________ C C SECTEUR DE CALCUL POUR LES ELEMENTS LIQUIDES C_______________________________________________________________________ C 35 CONTINUE NBNO=NBNN NBBB=NBNN NSTRS=NDDL SEGINI WRK1,WRK2 c DO 3035 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C BOUCLE SUR LES POINTS DE GAUSS C ISDJC=0 DO 4035 IGAU=1,NBPGAU MPTVAL=IVAMAT DO IM=1,5 IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) VALMAT(IM)=VELCHE(IGMN,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF ENDDO C C CALCUL DES COEFFICIENTS DE NORMALISATION C RHO =VALMAT(1) C =VALMAT(2) RHOREF=VALMAT(3) CREF =VALMAT(4) RLCAR =VALMAT(5) C COEFPR=(RHOREF*CREF*CREF)/RLCAR VKL =(COEFPR*COEFPR)/(RHO*C*C) 1 SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE) IF(DJAC.LT.0.D0) ISDJC=ISDJC+1 DJAC=ABS(DJAC)*POIGAU(IGAU) 4035 CONTINUE * IF (ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) THEN INTERR(1)=IB noer=195 GOTO 9935 ENDIF C C REMPLISSAGE DE XMATRI C 3035 CONTINUE * 9935 CONTINUE SEGSUP WRK1,WRK2 GOTO 510 C_______________________________________________________________________ C C SECTEUR DE CALCUL POUR LES ELEMENTS DE SURFACE LIBRE C_______________________________________________________________________ C 48 CONTINUE NBNO=NBNN NBBB=NBNN NSTRS=NDDL SEGINI WRK1,WRK2 c DO 3048 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C MPTVAL=IVAMAT DO 9048 IM=1,6 IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) VALMAT(IM)=VELCHE(1,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9048 CONTINUE C RHO =VALMAT(1) G =VALMAT(6) VKS =RHO*G C C BOUCLE SUR LES POINTS DE GAUSS C ISDJC=0 DO 4048 IGAU=1,NBPGAU 1 SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE) IF(DJAC.LT.0.0) ISDJC=ISDJC+1 DJAC=ABS(DJAC)*POIGAU(IGAU) 4048 CONTINUE IF (ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) THEN INTERR(1)=IB noer=195 GOTO 9948 ENDIF C C REMPLISSAGE DE XMATRI C 3048 CONTINUE C 9948 CONTINUE SEGSUP WRK1,WRK2 GOTO 510 C_______________________________________________________________________ C C MILIEUX POREUX C_______________________________________________________________________ C 79 CONTINUE C C* Cas non pevus actuellement IF (IMAT.EQ.1) THEN IF (MATE.LT.1.OR.MATE.GT.4) GOTO 99 ELSE GOTO 99 ENDIF C C POUR CES ELEMENTS NBBB = NOMBRE DE NOEUDS C NBNO = NOMBRE DE FONCTIONS DE FORME C ON ENLEVE LA PRESSION POREUSE DES CONTRAINTES C DIM3=1.D0 NCOT=0 NBNO=IPORE NBBB=NBNN NSTN=1 **************** AM 08/01/01 ***** NSTMU=2 ***** IF(IFOUR.GE.0) NSTMU=3 NSTMU=3 LRN = NBNO-NBBB LRB=LRE-NBNN IF(IELE.EQ.6 ) NCOT=3 IF(IELE.EQ.10) NCOT=4 IF(IELE.EQ.15) NCOT=12 IF(IELE.EQ.17) NCOT=9 IF(IELE.EQ.24) NCOT=6 IF(NCOT.EQ.0) THEN GOTO 510 ENDIF * * CAS NON ISOTROPES * RECUPERATION DES FONCTIONS DE FORME ET LEURS DERIVEES * AU CENTRE DE L'ELEMENT POUR LE CALCUL DES AXES LOCAUX * IPMIN2 = 0 IF ( (MATE.EQ.2.OR.MATE.EQ.3.OR.MATE.EQ.4).AND.IMAT.EQ.1 ) THEN MINTE2=IPMIN2 SEGACT MINTE2 SEGINI WRK8 NSTMU=LHOOK ENDIF * SEGINI WRK1,WRK2,WRK5,WRK55 * DO 3079 IB=1,NBELEM * * ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB * * * CALCUL DES AXES LOCAUX DANS LES CAS NON ISOTROPES * C* IF((MATE.EQ.2.OR.MATE.EQ.3.OR.MATE.EQ.4) C* . .AND.IMAT.EQ.1)THEN IF (IPMIN2.NE.0) THEN NBSH=MINTE2.SHPTOT(/2) if (nbsh.eq.-1) then goto 9979 endif ENDIF * * * TRAITEMENT POUR NOEUDS MILIEUX PRESSION * FREF = 1.D6 IF(IERR.NE.0) GOTO 9979 * * DO 27895 IOI=1,NCOT * WRITE(6,28927) IOI *28927 FORMAT(2X,' MATRICE YGENE - LIGNE ',I3) * WRITE(6,28928) (YGENE(IOI,J),J=1,NBNN) *28928 FORMAT(8(1X,1PE10.3)) *27895 CONTINUE C C BOUCLE SUR LES POINTS DE GAUSS C ISDJC=0 DO 4079 IGAU=1,NBPGAU C C RECUPERATION DE L'EPAISSEUR C IF (IFOUR.EQ.-2)THEN MPTVAL=IVACAR IF (IVACAR.NE.0) THEN MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) DIM3=VELCHE(IGMN,IBMN) ELSE DIM3=1.D0 ENDIF ENDIF ENDIF C c write(6,*) 'rigi2 WRK1,lhook,nstrs=',WRK1,lhook,nstrs . DIM3,XE,SHPTOT,SHPWRK,BGENE,XGENE,DJAC,1) IF (DJAC.EQ.0.D0) THEN INTERR(1)=IB GOTO 9979 ENDIF IF (DJAC.LT.0.D0) ISDJC=ISDJC+1 DJAC=ABS(DJAC)*POIGAU(IGAU) C * IF(IGAU.EQ.1) THEN * DO 27892 IOI=1,LHOOK * WRITE(6,28920) IOI *28920 FORMAT(2X,' MATRICE BGENE - LIGNE ',I3) * WRITE(6,28921) (BGENE(IOI,J),J=1,LRE) *28921 FORMAT(8(1X,1PE10.3)) *27892 CONTINUE * DO 27893 IOI=1,NSTN * WRITE(6,28922) IOI *28922 FORMAT(2X,' MATRICE XGENE - LIGNE ',I3) * WRITE(6,28923) (XGENE(IOI,J),J=1,LRN) *28923 FORMAT(8(1X,1PE10.3)) *27893 CONTINUE * ENDIF MPTVAL=IVAMAT C*D IF(IMAT.EQ.2) THEN C*D GO TO 99 C*D ELSE IF (IMAT.EQ.1) THEN * DO 9079 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) VALMAT(IM)=VELCHE(IGMN,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9079 CONTINUE * IF(MATE.EQ.1) THEN IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) DO 4879 I=1,NSTMU COBMA(I) =VALMAT(3) 4879 CONTINUE XMOB =VALMAT(4) * ELSE IF(MATE.EQ.2.OR.MATE.EQ.3.OR.MATE.EQ.4) THEN IF(IGAU.LE.NBGMAT) . ROTH,DDHOOK,LHOOK,COBMA,XMOB,1,IRTD) C*D ELSE C*D GO TO 99 ENDIF * C*D ENDIF * . IGAU,IMAT,0.D0) EREF =1.D0 DJACER=DJAC*EREF DO I=1,LRB DO J=1,LRN JJ=J+LRB r_z = 0.D0 DO K=1,NSTMU r_z = r_z + COBMA(K)*BGENE(K,I) ENDDO r_z = r_z * DJACER * XGENE(1,J) REL(JJ,I)=REL(JJ,I) - r_z ENDDO ENDDO * IF(XMOB.EQ.0.D0) THEN UNSURM=0.D0 ELSE UNSURM=1.D0 / XMOB ENDIF COMJAC=UNSURM*DJAC*EREF*EREF DO I=1,LRN II=I+LRB r_z = COMJAC*XGENE(1,I) DO J=1,I JJ=J+LRB REL(II,JJ)=REL(II,JJ)-r_z*XGENE(1,J) ENDDO ENDDO C COMJAC=UNSURM*DJAC*FREF DO I=1,NBNN II=I+LRB DO J=1,I JJ=J+LRB r_z = 0.D0 DO K=1,NCOT r_z = r_z + YGENE(K,I)*YGENE(K,J) ENDDO REL(II,JJ)=REL(II,JJ) + (COMJAC*r_z) ENDDO ENDDO * 4079 CONTINUE IF (ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) THEN INTERR(1)=IB noer=195 GOTO 9979 ENDIF C C REMPLISSAGE DE XMATRI C * 3079 CONTINUE c IF(IRTD.EQ.0) THEN MOTERR(1:8)=CMATE MOTERR(9:16)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF 9979 CONTINUE SEGSUP WRK1,WRK2,WRK5,WRK55 C* IF ((MATE.EQ.2.OR.MATE.EQ.3.OR.MATE.EQ.4).AND.IMAT.EQ.1) THEN IF (IPMIN2.NE.0) THEN SEGDES MINTE2 SEGSUP WRK8 ENDIF GOTO 510 C_______________________________________________________________________ C C MILIEUX POREUX - SUITE C_______________________________________________________________________ C 173 CONTINUE C C CAS NON ISOTROPES NON PREVUS ACTUELLEMENT IF (IMAT.EQ.1) THEN IF (MATE.EQ.2.OR.MATE.EQ.3.OR.MATE.EQ.4) THEN GO TO 510 ENDIF ELSE C* ELSE IF (IMAT.EQ.2) THEN GO TO 99 ENDIF C C POUR CES ELEMENTS NBBB = NOMBRE DE NOEUDS C NBNO = NOMBRE DE FONCTIONS DE FORME C ON ENLEVE LA PRESSION POREUSE DES CONTRAINTES C IF(MFR.EQ.57) IDECAP=2 IF(MFR.EQ.59) IDECAP=3 * DIM3=1.D0 NCOT=0 NBNO=IPORE NBBB=NBNN NSTN=IDECAP * **************** AM 08/01/01 ***** NSTMU=2 ***** IF(IFOUR.GE.0) NSTMU=3 * NSTMU=3 LPP=NBNO-NBBB LRN = IDECAP*LPP **** LRB=LRE-LRN LRB=LRE-(IDECAP*NBBB) * IF(IELE.EQ.6 ) NCOT=3 IF(IELE.EQ.10) NCOT=4 IF(IELE.EQ.15) NCOT=12 IF(IELE.EQ.17) NCOT=9 IF(IELE.EQ.24) NCOT=6 IF(NCOT.EQ.0) THEN GO TO 510 ENDIF * SEGINI WRK1,WRK2,WRK5,WRK55,WRK555 DO 3173 IB=1,NBELEM * * ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB * * * * TRAITEMENT POUR NOEUDS MILIEUX PRESSION * FREF = 1.D6 IF(IERR.NE.0) GO TO 9973 * DO 17895 IOI=1,NCOT * WRITE(6,78927) IOI *78927 FORMAT(2X,' MATRICE YGENE - LIGNE ',I3) * WRITE(6,78928) (YGENE(IOI,J),J=1,NBNN) *78928 FORMAT(8(1X,1PE10.3)) *17895 CONTINUE C C BOUCLE SUR LES POINTS DE GAUSS C ISDJC=0 DO 4173 IGAU=1,NBPGAU C C RECUPERATION DE L'EPAISSEUR C IF (IFOUR.EQ.-2)THEN MPTVAL=IVACAR IF (IVACAR.NE.0) THEN MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) DIM3=VELCHE(IGMN,IBMN) ELSE DIM3=1.D0 ENDIF ENDIF ENDIF C NSTB=LHOOK . DIM3,XE,SHPTOT,SHPWRK,BGENE,XGENE,DJAC,IDECAP,LHOOK,1) IF(DJAC.EQ.0.D0) THEN INTERR(1)=IB GOTO 9973 ENDIF IF(DJAC.LT.0.D0) ISDJC=ISDJC+1 DJAC=ABS(DJAC)*POIGAU(IGAU) C * IF(IGAU.EQ.1) THEN * DO 17892 IOI=1,LHOOK * WRITE(6,78920) IOI *78920 FORMAT(2X,' MATRICE BGENE - LIGNE ',I3) * WRITE(6,78921) (BGENE(IOI,J),J=1,LRE) *78921 FORMAT(8(1X,1PE10.3)) *17892 CONTINUE * DO 17893 IOI=1,NSTN * WRITE(6,78922) IOI *78922 FORMAT(2X,' MATRICE XGENE - LIGNE ',I3) * WRITE(6,78923) (XGENE(IOI,J),J=1,LRN) *78923 FORMAT(8(1X,1PE10.3)) *17893 CONTINUE * ENDIF MPTVAL=IVAMAT C*D IF(IMAT.EQ.2) THEN C*D GO TO 99 C*D ELSE IF (IMAT.EQ.1) THEN * DO 9173 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) VALMAT(IM)=VELCHE(IGMN,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9173 CONTINUE * C*D IF(MATE.EQ.1) THEN IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) * C*D ELSE C*D GO TO 99 C*D ENDIF C*D ENDIF * EREF =1.D0 * IF(MFR.EQ.57) THEN COBB(1) = VALMAT(3) COBB(2) = VALMAT(4) CPBB(1) = VALMAT(5) CPBB(2) = VALMAT(6) KKBB(1,1)= VALMAT(7) KKBB(1,2)= VALMAT(8) KKBB(2,1)= VALMAT(9) KKBB(2,2)= VALMAT(10) * ELSE IF(MFR.EQ.59) THEN COBB(1) = VALMAT(3) COBB(2) = VALMAT(4) COBB(3) = VALMAT(5) CPBB(1) = VALMAT(6) CPBB(2) = VALMAT(7) CPBB(3) = VALMAT(8) KKBB(1,1)= VALMAT(9) KKBB(1,2)= VALMAT(10) KKBB(1,3)= VALMAT(11) KKBB(2,1)= VALMAT(12) KKBB(2,2)= VALMAT(13) KKBB(2,3)= VALMAT(14) KKBB(3,1)= VALMAT(15) KKBB(3,2)= VALMAT(16) KKBB(3,3)= VALMAT(17) ENDIF * DJACER=DJAC*EREF DO IPR=1,IDECAP LRBDEC=LRB + (IPR-1)*NBBB LPPDEC= (IPR-1)*LPP COMJAC=COBB(IPR)*DJACER DO I=1,LRB r_z = 0.D0 DO K=1,NSTMU r_z = r_z + BGENE(K,I) ENDDO r_z = r_z * COMJAC DO J=1,LPP JJ=J+LRBDEC JX=J+LPPDEC REL(I,JJ)=REL(I,JJ)-r_z*XGENE(IPR,JX) ENDDO ENDDO ENDDO * DO IPR=1,IDECAP LRBDEC=LRB + (IPR-1)*NBBB LPPDEC= (IPR-1)*LPP COMJAC=CPBB(IPR)*DJACER DO I=1,LRB r_z = 0.D0 DO K=1,NSTMU r_z = r_z + BGENE(K,I) ENDDO r_z = COMJAC*r_z DO J=1,LPP JJ=J+LRBDEC JX=J+LPPDEC * ici - pour bsig REL(JJ,I)=REL(JJ,I)-r_z*XGENE(IPR,JX) ENDDO ENDDO ENDDO * COMJAC=DJAC*EREF*EREF DO IPR=1,IDECAP IRBDEC=LRB + (IPR-1)*NBBB IPPDEC= (IPR-1)*LPP DO JPR=1,IDECAP JRBDEC=LRB + (JPR-1)*NBBB JPPDEC= (JPR-1)*LPP DO I=1,LPP II=I+IRBDEC IX=I+IPPDEC DO J=1,LPP JJ=J+JRBDEC JX=J+JPPDEC * IF(IGAU.EQ.1) THEN * PRINT *,'I =',I,' IX=',IX,' II=',II * PRINT *,'J =',J,' JX=',JX,' JJ=',JJ, ' XREL=',XREL(IX,JX) * ENDIF REL(II,JJ)=REL(II,JJ)-XREL(IX,JX) ENDDO ENDDO ENDDO ENDDO C DO IPR=1,IDECAP COMJAC=KKBB(IPR,IPR)*DJAC*FREF LRBDEC=LRB + (IPR-1)*NBBB DO I=1,NBNN II=I+LRBDEC DO J=1,NBNN JJ=J+LRBDEC r_z = 0.D0 DO K=1,NCOT r_z = r_z + YGENE(K,I)*YGENE(K,J) ENDDO REL(II,JJ)=REL(II,JJ) + (COMJAC * r_z) ENDDO ENDDO ENDDO * 4173 CONTINUE IF(ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) THEN INTERR(1)=IB noer=195 GOTO 9973 ENDIF C C REMPLISSAGE DE XMATRI C 3173 CONTINUE c IF(IRTD.EQ.0) THEN MOTERR(1:8)=CMATE MOTERR(9:16)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF 9973 CONTINUE SEGSUP WRK1,WRK2,WRK5,WRK55,WRK555 GOTO 510 C_______________________________________________________________________ C C JOINTS EN FORMULATION MILIEUX POREUX C_______________________________________________________________________ C 80 CONTINUE C * CAS NON PREVUS IF (IMAT.EQ.1) THEN IF (MATE.NE.1) GOTO 99 ELSE IF (IMAT.EQ.2) THEN GOTO 99 ENDIF C C POUR CES ELEMENTS NBBB = NOMBRE DE NOEUDS C NBNO = NOMBRE DE FONCTIONS DE FORME C ON ENLEVE LA PRESSION POREUSE DES CONTRAINTES C NCOT=0 NBNO=IPORE NBBB=NBNN NSTN=1 NSTMU=2 IF(IFOUR.EQ.2) NSTMU=3 LRN=(NBNO-NBBB)*3/2 LPP=LRN LRB=LRE-NBNN IF(IELE.EQ.29) NCOT=2 IF(IELE.EQ.30) NCOT=6 IF(IELE.EQ.31) NCOT=8 IF(NCOT.EQ.0) THEN GO TO 510 ENDIF * SEGINI WRK1,WRK2,WRK3,WRK5,WRK55 * DO 3080 IB=1,NBELEM * * ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB * * * CALCUL DES AXES LOCAUX ET DES COORDONNES LOCALES * * * * * TRAITEMENT POUR NOEUDS MILIEUX PRESSION * FREF = 1.D6 IF (IERR.NE.0) GOTO 9980 * * BOUCLE SUR LES POINTS DE GAUSS * ISDJC=0 DO 4080 IGAU=1,NBPGAU * . SHPTOT,SHPWRK,BPSS,BGENE,XGENE,DJAC,1) IF (DJAC.EQ.0.D0) THEN INTERR(1)=IB GOTO 9980 ENDIF IF(DJAC.LT.0.D0) ISDJC=ISDJC+1 DJAC=ABS(DJAC)*POIGAU(IGAU) * MPTVAL=IVAMAT C*D IF(IMAT.EQ.2) THEN C*D GO TO 99 C*D ELSE IF (IMAT.EQ.1) THEN * DO 9080 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) VALMAT(IM)=VELCHE(IGMN,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9080 CONTINUE * C*D IF(MATE.EQ.1) THEN IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) C*D ELSE C*D GO TO 99 C*D ENDIF C*D ENDIF * . IGAU,IMAT,0.D0) EREF =1.D0 * COBMA(NSTMU)=VALMAT(3) XMOB=VALMAT(4) * IF(XMOB.EQ.0.D0) THEN UNSURM=0.D0 ELSE UNSURM=1.D0 / XMOB ENDIF * DJACER=DJAC*EREF*COBMA(NSTMU) DO I=1,LRB r_z = DJACER*BGENE(NSTMU,I) DO J=1,LRN JJ=J+LRB REL(JJ,I)=REL(JJ,I)-r_z*XGENE(1,J)*XNTT(J) ENDDO ENDDO * COMJAC=UNSURM*DJAC*EREF*EREF DO I=1,LRN II=I+LRB r_z = COMJAC*XGENE(1,I)*XNTT(I) DO J=1,I JJ=J+LRB REL(II,JJ)=REL(II,JJ)-r_z*XGENE(1,J)*XNTT(J) ENDDO ENDDO * COMJAC=UNSURM*DJAC*FREF DO I=1,NBNN II=I+LRB DO J=1,I JJ=J+LRB r_z = 0.D0 DO K=1,NCOT r_z = r_z + YGENE(K,I)*YGENE(K,J) ENDDO REL(II,JJ)=REL(II,JJ)+COMJAC*r_z ENDDO ENDDO * 4080 CONTINUE IF (ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) THEN INTERR(1)=IB noer=195 GOTO 9980 ENDIF * * REMPLISSAGE DE XMATRI * 3080 CONTINUE IF(IRTD.EQ.0) THEN MOTERR(1:8)=CMATE MOTERR(9:16)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF 9980 CONTINUE SEGSUP WRK1,WRK2,WRK3,WRK5,WRK55 GOTO 510 * C_______________________________________________________________________ C C JOINTS EN FORMULATION MILIEUX POREUX - SUITE C_______________________________________________________________________ C 185 CONTINUE C * CAS NON ISOTROPES NON PREVUS ACTUELLEMENT IF (IMAT.EQ.1) THEN IF (MATE.NE.1) GOTO 99 ELSE GOTO 99 ENDIF C C POUR CES ELEMENTS NBBB = NOMBRE DE NOEUDS C NBNO = NOMBRE DE FONCTIONS DE FORME C ON ENLEVE LA PRESSION POREUSE DES CONTRAINTES C IF(MFR.EQ.57) IDECAP=2 IF(MFR.EQ.59) IDECAP=3 * NCOT=0 NBNO=IPORE NBBB=NBNN NSTN=IDECAP NSTMU=2 IF(IFOUR.EQ.2) NSTMU=3 LPP=(NBNO-NBBB)*3/2 LRN=IDECAP*LPP LRB=LRE-IDECAP*NBNN IF(IELE.EQ.29) NCOT=2 IF(IELE.EQ.30) NCOT=6 IF(IELE.EQ.31) NCOT=8 IF(NCOT.EQ.0) THEN GO TO 510 ENDIF * SEGINI WRK1,WRK2,WRK3,WRK5,WRK55,WRK555 * DO 3185 IB=1,NBELEM * * ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB * * * CALCUL DES AXES LOCAUX ET DES COORDONNES LOCALES * * * * * TRAITEMENT POUR NOEUDS MILIEUX PRESSION * FREF = 1.D6 IF (IERR.NE.0) GOTO 9985 * * BOUCLE SUR LES POINTS DE GAUSS * ISDJC=0 DO 4185 IGAU=1,NBPGAU * NSTB=LHOOK . SHPTOT,SHPWRK,BPSS,BGENE,XGENE,DJAC,IDECAP,NSTB,1) IF (DJAC.EQ.0.D0) THEN INTERR(1)=IB GOTO 9985 ENDIF IF(DJAC.LT.0.D0) ISDJC=ISDJC+1 DJAC=ABS(DJAC)*POIGAU(IGAU) * MPTVAL=IVAMAT C*D IF(IMAT.EQ.2) THEN C*D GO TO 99 C*D ELSE IF (IMAT.EQ.1) THEN * DO 9185 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) VALMAT(IM)=VELCHE(IGMN,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9185 CONTINUE * C*D IF(MATE.EQ.1) THEN IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) C*D ELSE C*D GO TO 99 C*D ENDIF C*D ENDIF * EREF =1.D0 * IF(MFR.EQ.57) THEN COBB(1) = VALMAT(3) COBB(2) = VALMAT(4) CPBB(1) = VALMAT(5) CPBB(2) = VALMAT(6) KKBB(1,1)= VALMAT(7) KKBB(1,2)= VALMAT(8) KKBB(2,1)= VALMAT(9) KKBB(2,2)= VALMAT(10) * ELSE IF(MFR.EQ.59) THEN COBB(1) = VALMAT(3) COBB(2) = VALMAT(4) COBB(3) = VALMAT(5) CPBB(1) = VALMAT(6) CPBB(2) = VALMAT(7) CPBB(3) = VALMAT(8) KKBB(1,1)= VALMAT(9) KKBB(1,2)= VALMAT(10) KKBB(1,3)= VALMAT(11) KKBB(2,1)= VALMAT(12) KKBB(2,2)= VALMAT(13) KKBB(2,3)= VALMAT(14) KKBB(3,1)= VALMAT(15) KKBB(3,2)= VALMAT(16) KKBB(3,3)= VALMAT(17) ENDIF * DO IPR=1,IDECAP LPPDEC= (IPR-1)*LPP DO J=1,LPP JX=J+LPPDEC XGENE(IPR,JX)= XGENE(IPR,JX)*XNTT(J) ENDDO ENDDO * DJACER=DJAC*EREF DO IPR=1,IDECAP LRBDEC=LRB + (IPR-1)*NBBB LPPDEC= (IPR-1)*LPP COMJAC=COBB(IPR)*DJACER DO I=1,LRB r_z = COMJAC*BGENE(NSTMU,I) DO J=1,LPP JJ=J+LRBDEC JX=J+LPPDEC REL(I,JJ)=REL(I,JJ)-r_z*XGENE(IPR,JX) ENDDO ENDDO ENDDO * DO IPR=1,IDECAP LRBDEC=LRB + (IPR-1)*NBBB LPPDEC= (IPR-1)*LPP COMJAC=CPBB(IPR)*DJACER DO I=1,LRB r_z = COMJAC*BGENE(NSTMU,I) DO J=1,LPP JJ=J+LRBDEC JX=J+LPPDEC REL(JJ,I)=REL(JJ,I)-r_z*XGENE(IPR,JX) ENDDO ENDDO ENDDO * COMJAC=DJAC*EREF*EREF DO IPR=1,IDECAP IRBDEC=LRB + (IPR-1)*NBBB IPPDEC= (IPR-1)*LPP DO JPR=1,IDECAP JRBDEC=LRB + (JPR-1)*NBBB JPPDEC= (JPR-1)*LPP DO I=1,LPP II=I+IRBDEC IX=I+IPPDEC DO J=1,LPP JJ=J+JRBDEC JX=J+JPPDEC * IF(IGAU.EQ.1) THEN * PRINT *,'I =',I,' IX=',IX,' II=',II * PRINT *,'J =',J,' JX=',JX,' JJ=',JJ, ' XREL=',XREL(IX,JX) * ENDIF REL(II,JJ)=REL(II,JJ)-XREL(IX,JX) ENDDO ENDDO ENDDO ENDDO * DO IPR=1,IDECAP COMJAC=KKBB(IPR,IPR)*DJAC*FREF LRBDEC=LRB + (IPR-1)*NBBB DO I=1,NBNN II=I+LRBDEC DO J=1,NBNN JJ=J+LRBDEC r_z = 0.D0 DO K=1,NCOT r_z = r_z + YGENE(K,I)*YGENE(K,J) ENDDO REL(II,JJ)=REL(II,JJ)+COMJAC*r_z ENDDO ENDDO ENDDO * 4185 CONTINUE IF (ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) THEN INTERR(1)=IB noer=195 GOTO 9980 ENDIF * * REMPLISSAGE DE XMATRI * 3185 CONTINUE IF(IRTD.EQ.0) THEN MOTERR(1:8)=CMATE MOTERR(9:16)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF 9985 CONTINUE SEGSUP WRK1,WRK2,WRK3,WRK5,WRK55,WRK555 GOTO 510 * * ERREUR : CAS NON PREVU * 99 CONTINUE MOTERR(1:4)=NOMTP(MELE) MOTERR(5:12)='RIGI2 ' * 510 CONTINUE * WRITE (*,*) 'Sortie de RIGI2.' * SEGDES,XMATRI SEGSUP,MVELCH c RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales