sigmap
C SIGMAP SOURCE OF166741 24/10/07 21:15:47 12016 1 IPSTRS,IRET,inoer) C_______________________________________________________________________ C C OPERATEUR CONTRAINTES APPELE PAR SIGMA c C Entrees: C ________ C c IDERI = | 1 si deformations LINEaires c | 2 si QUADratiques c | 3 si TRUEsdell, c | 4 si JAUMann c | 5 si UTILisateur C IPMODL Pointeur sur un MMODEL C IPCHP1 Pointeur sur un CHAMPOINT deplacements C IPCHE1 Pointeur sur un MCHAML de caracteristiques C IPCHE2 Pointeur sur un MCHAML de HOOKE C IMAT Flag de HOOKE (2 si oui, 1 sinon) C C Sorties: C ________ C C IPSTRS Pointeur sur un MCHAML de CONTRAINTES C IRET 1 ou 0 suivant succes ou pas C C_______________________________________________________________________ C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC CCREEL C==DEB= FORMULATION HHO == INCLUDE ===================================== -INC CCHHOPA C==FIN= FORMULATION HHO ================================================ -INC SMCHAML -INC SMCHPOI -INC SMELEME -INC SMCOORD -INC SMMODEL -INC SMINTE -INC SMLREEL SEGMENT NOTYPE CHARACTER*16 TYPE(NBTYPE) ENDSEGMENT POINTEUR MOTYR8.NOTYPE SEGMENT MPTVAL INTEGER IPOS(NS) ,NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT CHARACTER*8 CMATE CHARACTER*(NCONCH) CONM PARAMETER ( NINF=3 ) INTEGER INFOS(NINF) LOGICAL LDPGE,lsupdp,lsupco,lsupma C * quelques initialisations pour enlever des warnings ldpge=.false. lsupdp=.false. ldpge=.false. lsupco=.false. lsupma=.false. IRET = 0 IPSTRS = 0 c on calcule les termes quadratiques seulement si deformations QUAD IF(IDERI.EQ.2) THEN IREPS2=1 ELSE IREPS2=0 ENDIF C NHRM=NIFOUR ISUP=0 ISUP1=0 MCHAML=0 C C VERIFICATION DU LIEU SUPPORT DU MCHAML DE HOOKE C IF (IMAT.EQ.2) THEN IF (ISUP.NE.0) RETURN ENDIF C C VERIFICATION DU LIEU SUPPORT DU MCHAML DE CARACTERISTIQUES C IF (IPCHE1.NE.0) THEN IF (ISUP1.GT.1) RETURN ENDIF C____________________________________________________________________ C C ON CONVERTIT LE CHAMP POINT EN CHAMP PAR ELEMENT C____________________________________________________________________ C IF (IERR.NE.0) RETURN C C ACTIVATION DU MODELE C MMODEL=IPMODL NSOUS=KMODEL(/1) C C CREATION DU MCHELM C C============================================= N1=NSOUS DO IJKL=1,NSOUS IMODEL=KMODEL(IJKL) IF (NEFMOD.EQ.22.OR.NEFMOD.EQ.259) then N1=N1-1 ELSEIF (FORMOD(1).EQ.'CHARGEMENT') then N1=N1-1 * l operateur sait ce qu il peut traiter elseif(formod(1)(1:9).ne.'MECANIQUE'.and. &formod(1)(1:6).ne.'POREUX'.and.formod(1)(1:7).ne.'LIQUIDE') & then N1=N1-1 endif END DO C WRITE(*,*) 'NSOUS=',NSOUS C WRITE(*,*) 'N1=',N1 C============================================= L1=11 N3=6 SEGINI MCHELM TITCHE='CONTRAINTES' IFOCHE=IFOUR C Un petit segment toujours utile : nbtype = 1 SEGINI,MOTYR8 MOTYR8.type(1) = 'REAL*8 ' C C____________________________________________________________________ C C DEBUT DE LA BOUCLE SUR LES DIFFERENTES ZONES C____________________________________________________________________ C ISOUS=0 DO 500 KISOUS=1,NSOUS * * INITIALISATION * IVAMAT=0 IVACAR=0 IVASTR=0 IVADEP=0 IPMING=0 MOSTRS=0 MODEPL=0 MOMATR=0 MOCARA=0 C C ON RECUPERE L INFORMATION GENERALE C IMODEL=KMODEL(KISOUS) C* SEGACT IMODEL C============================================= MELE=NEFMOD if((MELE.eq.22).OR.(MELE.eq.259)) go to 500 IF (FORMOD(1).EQ.'CHARGEMENT') GOTO 500 ISOUS=ISOUS+1 C============================================== C C TRAITEMENT DU MODELE C IIPDPG=imodel.IPDPGE IPMAIL=IMAMOD CONM =CONMOD c ideri=ideriv c ireps2=0 c if(ideri.eq.2.and.ibid2.eq.0) ireps2=1 cbp,2020-12-10 : ideriv n'est plus utilise -> IDERI en argument IMACHE(ISOUS)=IPMAIL CONCHE(ISOUS)=CONMOD C COQUE INTEGREE OU PAS ? NPINT = imodel.INFMOD(1) C C NATURE DU MATERIAU C CMATE = imodel.CMATEE MATE = imodel.IMATEE INAT = imodel.INATUU C____________________________________________________________________ C C INFORMATION SUR L'ELEMENT FINI C____________________________________________________________________ MFR =INFELE(13) IELE =INFELE(14) IPORE=INFELE(8) NBG =INFELE(6) NBGS =INFELE(4) NSTRS=INFELE(16) LRE =INFELE(9) LW =INFELE(7) LHOOK=INFELE(10) NDDL =INFELE(15) * MINTE=INFELE(11) MINTE=INFMOD(7) MINTE1=INFELE(12) c* MINTE1=INFMOD(8) IPMINT=MINTE IPMIN1=MINTE1 C C C CREATION DU TABLEAU INFOS C IF (IRTD.EQ.0) GOTO 9990 C INFCHE(ISOUS,1)=0 INFCHE(ISOUS,2)=0 INFCHE(ISOUS,3)=NHRM INFCHE(ISOUS,4)=MINTE INFCHE(ISOUS,5)=0 INFCHE(ISOUS,6)=5 C C INITIALISATION DE MINTE C if(mele.ne.260) then NBPGAU=POIGAU(/1) endif C C ACTIVATION DU MELEME C MELEME=IPMAIL c* SEGACT MELEME NBNN =NUM(/1) NBELEM=NUM(/2) IPPORE=0 IF(MFR.EQ.33) THEN IPPORE=NBNN ELSE IF(MFR.EQ.57.OR.MFR.EQ.59) THEN IPPORE=NBNN LHOOK=4 IF(IFOUR.EQ.1.OR.IFOUR.EQ.-3) LHOOK=6 ENDIF LHOO2=LHOOK*LHOOK C C EXTRACTION DES DEPLACEMENTS DU NOEUD SUPPORT DE LA C DEFORMATION PLANE GENERALISEE C IF (LDPGE) THEN IF (IIPDPG.LE.0) THEN ELSE ENDIF IF (IERR.NE.0) GOTO 9990 ELSE UZDPG=XZero RXDPG=XZero RYDPG=XZero ENDIF C____________________________________________________________________ C C RECHERCHE DES NOMS DE COMPOSANTES C____________________________________________________________________ C if(lnomid(4).ne.0) then lsupco=.false. nomid=lnomid(4) mostrs=nomid nstr=lesobl(/2) nfac=lesfac(/2) else lsupco=.true. endif C if(lnomid(1).ne.0) then lsupdp=.false. nomid=lnomid(1) c* segact nomid modepl=nomid ndep=lesobl(/2) nfac=lesfac(/2) else lsupdp=.true. endif C==DEB= FORMULATION HHO == Le MCHAML est vide, on utilise le CHPOINT === IF (MELE .EQ. HHO_NUM_ELEMENT) THEN GOTO 890 END IF C==FIN= FORMULATION HHO ================================================ C____________________________________________________________________ C C VERIFICATION DE LEUR PRESENCE C____________________________________________________________________ C MOTYPE = MOTYR8 IF (IERR.NE.0) GOTO 9990 C C RECHERCHE DE LA TAILLE DES MELVAL A ALLOUER C C==DEB= FORMULATION HHO == Etiquette specifique ======================== 890 CONTINUE C==FIN= FORMULATION HHO ================================================ N1PTEL=NBGS N1EL=NBELEM NBPTEL=N1PTEL NEL=N1EL C C CREATION DU MCHAML DE LA SOUS ZONE C N2=NSTRS SEGINI MCHAML ICHAML(ISOUS)=MCHAML NS=1 NCOSOU=NSTRS SEGINI MPTVAL IVASTR=MPTVAL NOMID=MOSTRS SEGACT NOMID DO 100 ICOMP=1,NSTRS NOMCHE(ICOMP)=LESOBL(ICOMP) TYPCHE(ICOMP)='REAL*8' N2PTEL=0 N2EL=0 SEGINI MELVAL IELVAL(ICOMP)=MELVAL IVAL(ICOMP)=MELVAL 100 CONTINUE C____________________________________________________________________ C * RANGEMENT DE LA MATRICE DE HOOKE DANS UN TABLEAU DE TRAVAIL * C____________________________________________________________________ * lsupma=.true. IF (IMAT.EQ.2) THEN IF(MELE.EQ.93.AND.CMATE.NE.'ISOTROPE')THEN NBROBL=3 NBRFAC=0 SEGINI NOMID LESOBL(1)='MAHO' LESOBL(2)='V1X ' LESOBL(3)='V1Y ' NBTYPE=3 SEGINI NOTYPE TYPE(1)='POINTEURLISTREEL' TYPE(2)='REAL*8' TYPE(3)='REAL*8' ELSE NBROBL=1 NBRFAC=0 SEGINI NOMID LESOBL(1)='MAHO' NBTYPE=1 SEGINI NOTYPE TYPE(1)='POINTEURLISTREEL' ENDIF MOMATR=NOMID NMATR=NBROBL NMATF=NBRFAC SEGSUP NOTYPE IF (IERR.NE.0) GOTO 9990 MPTVAL=IVAMAT MELVAL=IVAL(1) NBGMAT=IELCHE(/1) NELMAT=IELCHE(/2) NMATT=NMATR+NMATF ELSE C____________________________________________________________________ * * SINON TRAITEMENT DES CHAMPS DE MATERIAU C____________________________________________________________________ * IF (FORMOD(1).EQ.'MECANIQUE'.AND.CMATE.EQ.'ISOTROPE') THEN NBROBL=2 NBRFAC=0 SEGINI NOMID MOMATR=NOMID IF (MFR.EQ.35) THEN LESOBL(1)='KS ' LESOBL(2)='KN ' ELSE IF(MFR.EQ.53) THEN NBROBL=1 SEGADJ,NOMID LESOBL(1)='KS ' ELSE LESOBL(1)='YOUN' LESOBL(2)='NU ' C=DEB==== FORMULATION HHO ==== Traitement particulier du modele ======== CALL HHOIDC(imodel,MOMATR) NBROBL=nomid.lesobl(/2) ** NBRFAC=nomid.lesfac(/2) C=FIN==== FORMULATION HHO ============================================== ENDIF NMATR=NBROBL NMATF=NBRFAC ELSE $ IF (FORMOD(1).EQ.'MECANIQUE'.AND.CMATE.EQ.'UNIDIREC') THEN IF (MFR.EQ.1.AND.IDIM.EQ.3) THEN NBROBL=7 NBRFAC=0 SEGINI NOMID MOMATR=NOMID LESOBL(1)='YOUN' LESOBL(2)='V1X ' LESOBL(3)='V1Y ' LESOBL(4)='V1Z ' LESOBL(5)='V2X ' LESOBL(6)='V2Y ' LESOBL(7)='V2Z ' ELSE NBROBL=3 NBRFAC=0 SEGINI NOMID MOMATR=NOMID LESOBL(1)='YOUN' LESOBL(2)='V1X ' LESOBL(3)='V1Y ' ENDIF NMATR=NBROBL NMATF=NBRFAC ELSE $ IF (FORMOD(1).EQ.'POREUX '.AND.CMATE.EQ.'ISOTROPE') THEN IF (MELE.GE.79.AND.MELE.LE.83) THEN NBROBL=4 NBRFAC=0 SEGINI NOMID MOMATR=NOMID LESOBL(1)='YOUN' LESOBL(2)='NU ' LESOBL(3)='COB ' LESOBL(4)='MOB ' ELSE IF (MELE.GE.108.AND.MELE.LE.110) THEN NBROBL=4 NBRFAC=0 SEGINI NOMID MOMATR=NOMID LESOBL(1)='KS ' LESOBL(2)='KN ' LESOBL(3)='COB ' LESOBL(4)='MOB ' ELSE IF (MELE.GE.173.AND.MELE.LE.177) THEN NBROBL=10 NBRFAC=0 SEGINI NOMID MOMATR=NOMID LESOBL(1)='YOUN' LESOBL(2)='NU ' LESOBL(3)='COP1' LESOBL(4)='COP2' LESOBL(5)='CPP1' LESOBL(6)='CPP2' LESOBL(7)='KK11' LESOBL(8)='KK12' LESOBL(9)='KK21' LESOBL(10)='KK22' ELSE IF (MELE.GE.178.AND.MELE.LE.182) THEN NBROBL=17 NBRFAC=0 SEGINI NOMID MOMATR=NOMID LESOBL(1)='YOUN' LESOBL(2)='NU ' LESOBL(3)='COP1' LESOBL(4)='COP2' LESOBL(5)='COP3' LESOBL(6)='CPP1' LESOBL(7)='CPP2' LESOBL(8)='CPP3' LESOBL(9)='KK11' LESOBL(10)='KK12' LESOBL(11)='KK13' LESOBL(12)='KK21' LESOBL(13)='KK22' LESOBL(14)='KK23' LESOBL(15)='KK31' LESOBL(16)='KK32' LESOBL(17)='KK33' ELSE IF (MELE.GE.185.AND.MELE.LE.187) THEN NBROBL=10 NBRFAC=0 SEGINI NOMID MOMATR=NOMID LESOBL(1)='KS ' LESOBL(2)='KN ' LESOBL(3)='COP1' LESOBL(4)='COP2' LESOBL(5)='CPP1' LESOBL(6)='CPP2' LESOBL(7)='KK11' LESOBL(8)='KK12' LESOBL(9)='KK21' LESOBL(10)='KK22' ELSE IF (MELE.GE.188.AND.MELE.LE.190) THEN NBROBL=17 NBRFAC=0 SEGINI NOMID MOMATR=NOMID LESOBL(1)='KS ' LESOBL(2)='KN ' LESOBL(3)='COP1' LESOBL(4)='COP2' LESOBL(5)='COP3' LESOBL(6)='CPP1' LESOBL(7)='CPP2' LESOBL(8)='CPP3' LESOBL(9)='KK11' LESOBL(10)='KK12' LESOBL(11)='KK13' LESOBL(12)='KK21' LESOBL(13)='KK22' LESOBL(14)='KK23' LESOBL(15)='KK31' LESOBL(16)='KK32' LESOBL(17)='KK33' ENDIF NMATR=NBROBL NMATF=NBRFAC * ELSEIF(INAT.EQ.67.AND.CMATE.EQ.'ORTHOTRO') THEN NBROBL=6 NBRFAC=0 SEGINI NOMID MOMATR=NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='NU12' LESOBL(4)='G12 ' LESOBL(5)='V1X ' LESOBL(6)='V1Y ' NMATR=NBROBL NMATF=NBRFAC * * ELSE IF (FORMOD(1).EQ.'ELECTROSTATIQUE') THEN * Pour l'instant, lnomid(6) ou appel a IDMATR suffisent. * * ELSE IF (FORMOD(1).EQ.'DIFFUSION') THEN * Pour l'instant, lnomid(6) ou appel a IDMATR suffisent. * * Autres cas : ELSE if(lnomid(6).ne.0) then nomid=lnomid(6) segact nomid momatr=nomid nmatr=lesobl(/2) nmatf=lesfac(/2) lsupma=.false. else lsupma=.true. endif ENDIF * IF (CMATE.EQ.'SECTION') THEN NBTYPE=3 SEGINI,notype TYPE(1)='POINTEURMMODEL' TYPE(2)='POINTEURMCHAML' TYPE(3)='POINTEURLISTREEL' ELSE NBTYPE = 1 notype = MOTYR8 ENDIF NMATT=NMATR+NMATF C=DEB==== FORMULATION HHO ==== Traitement particulier du modele ======== IF (MFR.EQ.HHO_MFR_ELEMENT) THEN IF (NBTYPE.EQ.1) THEN NBTYPE = NMATT SEGINI,notype DO ITYP = 1, NBTYPE notype.TYPE(ITYP) = 'REAL*8 ' END DO END IF notype.TYPE(NMATR-1) = 'POINTEURLISTREEL' notype.TYPE(NMATR ) = 'POINTEURLISTREEL' END IF C=FIN==== FORMULATION HHO ============================================== MOTYPE = notype * IF (MOTYPE .NE. MOTYR8) SEGSUP,notype IF (IERR.NE.0) GOTO 9990 * IF(ISUP1.EQ.1)THEN IF(IERR.NE.0)THEN ISUP1=0 GOTO 9990 ENDIF ENDIF MPTVAL=IVAMAT NBGMAT = 0 NELMAT = 0 DO 1108 IM=1,NMATT IF(IVAL(IM).NE.0)THEN MELVAL=IVAL(IM) IF (CMATE.EQ.'SECTION') THEN NBGMAT=MAX(NBGMAT,IELCHE(/1)) NELMAT=MAX(NELMAT,IELCHE(/2)) ELSE NBGMAT=MAX(NBGMAT,VELCHE(/1)) NELMAT=MAX(NELMAT,VELCHE(/2)) ENDIF ENDIF 1108 CONTINUE ENDIF C____________________________________________________________________ C * TRAITEMENT DES CHAMPS DE CARACTERISTIQUES * C____________________________________________________________________ C NBROBL=0 NBRFAC=0 MOCARA=0 IVECT=0 * NOTYPE = MOTYR8 * * EPAISSEUR ET EXCENTREMENT DANS LE CAS DES COQUES * IF (MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN NBROBL=1 NBRFAC=1 SEGINI NOMID MOCARA=NOMID LESOBL(1)='EPAI' LESFAC(1)='EXCE' * * SECTION POUR LES BARRES * ELSE IF (MFR.EQ.27) THEN NBROBL=1 SEGINI NOMID MOCARA=NOMID LESOBL(1)='SECT' * * section, excentrements et orientation pour les barres excentrees * ELSE IF (MFR.EQ.49) THEN NBROBL=6 SEGINI NOMID MOCARA=NOMID LESOBL(1)='SECT' LESOBL(2)='EXCZ' LESOBL(3)='EXCY' LESOBL(4)='VX ' LESOBL(5)='VY ' LESOBL(6)='VZ ' * * raideurs locales et orientation pour l'element LIA2 * de liaison a 2 noeuds * ELSE IF (MFR.EQ.51) THEN NBROBL=9 SEGINI NOMID MOCARA=NOMID LESOBL(1)='RLUX' LESOBL(2)='RLUY' LESOBL(3)='RLUZ' LESOBL(4)='RLRX' LESOBL(5)='RLRY' LESOBL(6)='RLRZ' LESOBL(7)='VX ' LESOBL(8)='VY ' LESOBL(9)='VZ ' * * CARACTERISTIQUES POUR LES POUTRES * ELSE IF (MFR.EQ.7 ) THEN IF ((CMATE.EQ.'SECTION')) THEN NBROBL=0 NBRFAC=3 SEGINI NOMID MOCARA=NOMID LESFAC(1)='VX' LESFAC(2)='VY' LESFAC(3)='VZ' IVECT=1 * * CAS 2D * ELSE IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN NBRFAC=1 NBROBL=2 SEGINI NOMID MOCARA=NOMID LESOBL(1)= 'SECT' LESOBL(2)= 'INRZ' LESFAC(1)= 'SECY' * ELSE NBROBL=4 NBRFAC=5 SEGINI NOMID MOCARA=NOMID LESOBL(1)='TORS' LESOBL(2)='INRY' LESOBL(3)='INRZ' LESOBL(4)='SECT' LESFAC(1)='SECY' LESFAC(2)='SECZ' LESFAC(3)='VX' LESFAC(4)='VY' LESFAC(5)='VZ' IVECT=1 ENDIF * * CARACTERISTIQUES POUR LES TUYAUX * ELSE IF (MFR.EQ.13) THEN NBROBL=2 NBRFAC=6 SEGINI NOMID MOCARA=NOMID LESOBL(1)='EPAI' LESOBL(2)='RAYO' LESFAC(1)='RACO' LESFAC(2)='PRES' LESFAC(3)='CISA' LESFAC(4)='VX' LESFAC(5)='VY' LESFAC(6)='VZ' IVECT=1 * * CARACTERISTIQUES POUR LES LINESPRING * ELSE IF (MFR.EQ.15) THEN NBROBL=5 SEGINI NOMID MOCARA=NOMID LESOBL(1)='EPAI' LESOBL(2)='FISS' LESOBL(3)='VX ' LESOBL(4)='VY ' LESOBL(5)='VZ ' * * CARACTERISTIQUES POUR LES TUYAUX FISSURES * ELSE IF (MFR.EQ.17) THEN NBROBL=9 SEGINI NOMID MOCARA=NOMID LESOBL(1)='RAYO' LESOBL(2)='EPAI' LESOBL(3)='VX ' LESOBL(4)='VY ' LESOBL(5)='VZ ' LESOBL(6)='VXF ' LESOBL(7)='VYF ' LESOBL(8)='VZF ' LESOBL(9)='ANGL' * * CARACTERISTIQUES DES ELEMENTS HOMOGENEISES * ELSE IF (MFR.EQ.37) THEN IF(IFOUR.EQ.1.OR.IFOUR.EQ.0) THEN NBROBL=4 SEGINI NOMID MOCARA=NOMID LESOBL(1)='SCEL' LESOBL(2)='SFLU' LESOBL(3)='EPS ' LESOBL(4)='XINE' ELSE NBROBL=3 SEGINI NOMID MOCARA=NOMID LESOBL(1)='SCEL' LESOBL(2)='SFLU' LESOBL(3)='EPS ' ENDIF * * EPAISSEUR POUR LES JOINTS GENERALISES * ELSE IF (MFR.EQ.55) THEN CcPPj NBROBL=1 CcPPj NBRFAC=0 CcPPj SEGINI NOMID CcPPj MOCARA=NOMID CcPPj LESOBL(1)='EPAI' NBROBL=0 NBRFAC=1 SEGINI NOMID MOCARA=NOMID LESFAC(1)='EPAI' * * CARACTERISTIQUE MACRO_EL (element CIFL) * ELSE IF (MFR.EQ.61)THEN NBRFAC=0 NBROBL=2 SEGINI NOMID MOCARA=NOMID LESOBL(1)= 'SECT' LESOBL(2)= 'INRZ' * ENDIF NCARA=NBROBL NCARF=NBRFAC NCARR=NCARA+NCARF MOTYPE = NOTYPE * IF (IPCHE1.NE.0.AND.MOCARA.NE.0) THEN * $ IVACAR) IF (IERR.NE.0) GOTO 9990 * IF (ISUP1.EQ.1) THEN IF(IERR.NE.0)THEN ISUP1=0 GOTO 9990 ENDIF ENDIF ENDIF IF (MOTYPE .NE. MOTYR8) SEGSUP,NOTYPE * C_______________________________________________________________________ C C NUMERO DES ETIQUETTES : C ETIQUETTES DE 1 A 98 POUR TRAITEMENT SPECIFIQUE A L ELEMENT C Les elements sont groupes comme suit : C - massif, poreux, joints poreux ------------------> sigma1 C - coq3,dkt,coq4,coq8,coq2,joints -----------------> sigma2 C - poutre,tuyau,linespring,tuyau fissure,barre ----> sigma3 C et poutre de Timoschenko C_______________________________________________________________________ C SEGACT,MCOORD IF (MELE.LE.100) &GOTO (99,99,99, 4,99, 4,99, 4,99, 4,99,99,99, 4, 4, 4, 4,99,99,99, 1 99,99, 4, 4, 4, 4,27,27,29,29,99,99,99,99,99,99,99,99,99,99, 2 27,29,29,27,29,29,99,99,27,29,99,99,99,99,99,27,99,99,99,99, 3 99,99,99,99,99,99,99,99, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 4, 4, 4,29,27,27,27,27,99,99,99,99,27,99,29,29,99,99,99,99 5 ),MELE IF (MELE.LE.200) &GOTO (99,99,99,99,99,99,99, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1 4, 4,29,29,29,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 2 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, c <168- -172> <173- 3 34,34,34,34,34,34,34,27,27,27,27,27, 4, 4, 4, 4, 4, 4, 4, 4, c Elements mecaniques 1D (M1Dx) : MELE = 193, 194 c -190> <M1Dx> 4 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,34,34, 4, 4,34,34,34,34,34,34 5 ),MELE-100 IF (MELE.LE.300) &GOTO (34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 1 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, c mele = 258, 260 --> goto 29 2 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,29,34,29, 3 34,34,34,34,29,34,34,34,34,34,34,34, 4, 4,34,34,34,34,34,34, C <HHO> 4 89,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34 5 ),MELE-200 C CASE OF THE NEW JOINT ELEMENTS (JCT3 AND JCI4) C (JGI2 2D GENERALIZED) C (JGT3 AND JGI4 GENERALIZED) 34 CONTINUE C POUR les XFEM on fait un cas particuliers IF(MFR.EQ.63) THEN & IVAMAT,IMODEL,IREPS2,IVADEP, & IVASTR,UZDPG,RYDPG,RXDPG,IIPDPG,IRETER) * write(*,*) 'retour de SIGMAX' IF(IRETER.NE.0) RETURN GO TO 9990 ENDIF C fin des XFEM C 99 CONTINUE MOTERR(1:4)=NOMTP(MELE) MOTERR(9:12)='SIGM' GOTO 9990 C_______________________________________________________________________ C C massifs, poreux, joints poreux C_______________________________________________________________________ C 4 CONTINUE IF (MFR.EQ.71) THEN & LRE,MATE,IVAMAT,NMATT, IVASTR) ELSE IF (MFR.EQ.73) THEN & LRE,MATE,IVAMAT,NMATT, IVASTR) ELSE & NBPTEL,LRE,NSTRS,IVAMAT,NBGMAT,NELMAT,LHOOK,NMATT,CMATE, & MFR,NDEP,IPORE,IREPS2,NBPGAU,IVASTR,UZDPG,RYDPG,RXDPG & , IIPDPG,inoer) ENDIF GOTO 9990 C_______________________________________________________________________ C C coq3,dkt,coq4,coq8,coq2 ,dst,joint 3D,joints 2D C_______________________________________________________________________ C 27 CONTINUE & LHOOK,IMAT,MATE,CMATE,NMATT,NSTRS,MFR,IPMINT,IPMIN1, & NDEP,NBPGAU,NBPTEL,MELE,LRE,LW,IREPS2,NPINT,IVASTR & ,UZDPG,RYDPG,RXDPG,IIPDPG,inoer) GOTO 9990 C_______________________________________________________________________ C C poutres,tuyau,linespring,tuyau fissure,barre C_______________________________________________________________________ C 29 CONTINUE & MELE,IMAT,NELMAT,NBGMAT,LHOOK,CMATE,IREPS2,NBPTEL,NSTRS, & MFR,NMATT,NBPGAU,ISOUS,LRE,LW,IVASTR,UZDPG,RYDPG,RXDPG & , IIPDPG,inoer) GOTO 9990 C=DEB==== FORMULATION HHO ==== Cas particulier de la formulation ======= 89 CONTINUE IF (MELE.NE.HHO_NUM_ELEMENT) THEN write(ioimp,*) 'Branchement MELE / HHO incorrect' RETURN END IF CALL HHOSIG (IMODEL, IPCHP1,MODEPL, IIPDPG,UZDPG,RYDPG,RXDPG, & MATE,IVAMAT,NMATR, IPMINT,NBPTEL, & IVASTR,NSTRS, ireth) IF (ireth.NE.0) THEN RETURN END IF GOTO 9990 C=FIN==== FORMULATION HHO ============================================== C____________________________________________________________________ C C DESACTIVATION DES SEGMENTS PROPRES A LA ZONE GEOMETRIQUE ISOUS C____________________________________________________________________ C 9990 CONTINUE * IF(ISUP1.EQ.1.AND.IMAT.NE.2)THEN ELSE ENDIF * IF(ISUP1.EQ.1)THEN ELSE ENDIF * IF(IERR.NE.0)THEN ELSE ENDIF * * IF(MOMATR.NE.0)THEN NOMID=MOMATR if(lsupma)SEGSUP NOMID ENDIF * IF(MOCARA.NE.0)THEN NOMID=MOCARA SEGSUP NOMID ENDIF * IF(MOSTRS.NE.0)THEN NOMID=MOSTRS if(lsupco)SEGSUP NOMID ENDIF * IF(MODEPL.NE.0)THEN NOMID=MODEPL if(lsupdp)SEGSUP NOMID ENDIF C C DANS LE CAS D'ERREUR C IF(IERR.NE.0)THEN IF (MCHAML.NE.0) SEGSUP MCHAML GOTO 888 ENDIF C 500 CONTINUE 888 CONTINUE IF (IERR.NE.0) THEN IRET = 0 SEGSUP MCHELM IPSTRS = 0 ELSE IRET = 1 IPSTRS = MCHELM ENDIF SEGSUP,MOTYR8 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales