thetap
C THETAP SOURCE OF166741 24/10/07 21:15:50 12016 *_______________________________________________________________________ * OPERATEUR DE CALCUL DE CONTRAINTES DUES A UN CHAMP DE TEMPERATURE * APPELE PAR THETA * ENTREES : * --------- * IPMODL POINTEUR SUR UN MMODEL * IPCHE1 MCHAML DE SOUS TYPE CARACTERISTIQUE * IPCHE2 MCHAML DE SOUS TYPE TEMPERATURE * SORTIES : * --------- * IPSTRS MCHAML DE SOUS TYPE CONTRAINTE (DUE @ LA TEMP{RATURE) * IRET 1 OU 0 SUIVANT SUCCES OU PAS * PASSAGE AUX NOUVEAUX CHAMELEMS PAR S.RAMAHANDRY LE 05/09/90 * VARIATION PARABOLIQUE DE TEMPERATURE DANS LES COQUES,OPTION ORTHOTROPE * ET ANISOTROPE POUR LES MASSIFS PAR P.DOWLATYARI LE 15/03/91 *_______________________________________________________________________ IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC SMCHAML -INC SMELEME -INC SMINTE -INC SMMODEL -INC SMCOORD SEGMENT NOTYPE CHARACTER*16 TYPE(NBTYPE) ENDSEGMENT SEGMENT MPTVAL INTEGER IPOS(NS) ,NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT SEGMENT WRK1 ENDSEGMENT SEGMENT WRK2 REAL*8 XE(3,NBNN),TXR(IDIM,IDIM) REAL*8 XLOC(3,3),XGLOB(3,3) REAL*8 ROTS(NSTRS,NSTRS),DHOOK(LHOOK,LHOOK) ENDSEGMENT SEGMENT WRK3 REAL*8 RES(NSTRS) ENDSEGMENT SEGMENT MVELCH REAL*8 VALMAT(NV1) ENDSEGMENT CHARACTER*8 CMATE CHARACTER*(NCONCH) CONM PARAMETER (NINF=3) INTEGER INFOS(NINF) DIMENSION CRIGI(12) LOGICAL lsupma IRET = 0 IPSTRS = 0 NHRM = NIFOUR THM = 0.D0 THIF = 0.D0 THSU = 0.D0 TEMP = 0.D0 * VERIFICATION DU LIEU SUPPORT DU MCHAML DE CARACTERISTIQUES IF (ISUPMA.GT.1) RETURN * VERIFICATION DU LIEU SUPPORT DU MCHAML DE TEMPERATURE IF (ISUPTE.GT.1) RETURN C============================================= * CREATION DU MCHELM resultat (decompte des SOUS-ZONES) C============================================= MMODEL=IPMODL NSOUS =KMODEL(/1) N1=0 DO 200 ISOUS=1,NSOUS IMODEL=KMODEL(ISOUS) IF (NEFMOD.EQ.22 ) GOTO 200 IF (NEFMOD.EQ.259) GOTO 200 IF (IMODEL.FORMOD(1) .EQ. 'MELANGE ') GOTO 200 N1 = N1 + 1 200 CONTINUE L1=11 N3=6 SEGINI,MCHELM mchelm.TITCHE = 'CONTRAINTES' mchelm.IFOCHE = IFOUR nbtype = 1 SEGINI,notype notype.TYPE(1)='REAL*8 ' MOTYR8 = notype * Introduction en 2020 : T_ALPHA_REFERENCE dans le MATERIAU nbrobl = 1 nbrfac = 0 SEGINI,NOMID nomid.LESOBL(1) = 'TALP ' MOTTAL = nomid *____________________________________________________________________ * DEBUT DE LA BOUCLE SUR LES DIFFERENTES ZONES *____________________________________________________________________ ISOUS=0 DO 500 KISOUS=1,NSOUS * INITIALISATION MOCARA=0 MOMATR=0 MOSTRS=0 MOTEMP=0 IVAMAT=0 IVACAR=0 IVATEM=0 IVASTR=0 NCARA =0 NCARF =0 IMODEL=KMODEL(KISOUS) MELE=NEFMOD if(mele.eq.22) GOTO 999 if(mele.eq.259) GOTO 999 IF (IMODEL.FORMOD(1) .EQ. 'MELANGE ') GOTO 999 ISOUS=ISOUS+1 * TRAITEMENT DU MODELE IPMAIL=IMAMOD CONM =CONMOD IMACHE(ISOUS)=IPMAIL CONCHE(ISOUS)=CONMOD * CREATION DU TABLEAU INFOS IF (IRTD.EQ.0) GOTO 999 * NATURE DU MATERIAU CMATE = imodel.CMATEE MATE = imodel.IMATEE INAT = imodel.INATUU C COQUE INTEGREE OU PAS ? NPINT = imodel.INFMOD(1) * INFORMATION SUR L'ELEMENT FINI MELE =INFELE(1) ICARA=INFELE(5) IPORE=INFELE(8) MFR =INFELE(13) LHOOK=INFELE(10) NBGS =INFELE(4) NSTRS=INFELE(16) LW =INFELE(7) * IPMINT=INFELE(11) IPMINT=INFMOD(7) INFCHE(ISOUS,1)=0 INFCHE(ISOUS,2)=0 INFCHE(ISOUS,3)=NHRM INFCHE(ISOUS,4)=IPMINT INFCHE(ISOUS,5)=0 INFCHE(ISOUS,6)=5 * INITIALISATION DE MINTE MINTE=IPMINT NBPGAU = POIGAU(/1) * ACTIVATION DU MELEME MELEME=IPMAIL NBNN =NUM(/1) NBELEM=NUM(/2) NBNO=NBNN IPPORE=0 IF(MFR.EQ.33) IPPORE=NBNN * RECUPERATION DES NOMS DE COMPOSANTES DES STRESSES nomid =lnomid(4) if (nomid.eq.0) then write(ioimp,*) 'MOSTRS = 0' endif mostrs=nomid nstr =lesobl(/2) nfac =lesfac(/2) if (nstr.ne.NSTRS) then write(ioimp,*) 'NSTRS != nstr' endif * RECUPERATION DES NOMS DE COMPOSANTES DE LA TEMPERATURE nomid = lnomid(8) if (nomid.eq.0) then write(ioimp,*) 'MOTEMP = 0' endif motemp=nomid ntem =lesobl(/2) nfac =lesfac(/2) * RECUPERATION DES COMPOSANTES DE LA TEMPERATURE DANS IPCHE2 1 MOTYR8,1,INFOS,3,IVATEM) IF (IERR.NE.0) GOTO 9990 * CHANGEMENT DE SUPPORT DES MELVAL DANS IVATEM ==> Passage au STRESSES IF (ISUPTE.EQ.1)THEN IF(IERR.NE.0)THEN ISUPTE=0 GOTO 9990 ENDIF ENDIF * RECUPERATION DES COMPOSANTES DE T_ALPHA_REFERENCE DANS IPCHE1 1 MOTYR8,1,INFOS,3,IVATAL) IF (IERR.NE.0) GOTO 9990 * CHANGEMENT DE SUPPORT DES MELVAL DANS IVATAL ==> Passage au STRESSES IF (ISUPTE.EQ.1)THEN NCOMP=1 IF(IERR.NE.0)THEN ISUPTE=0 GOTO 9990 ENDIF ENDIF * RECHERCHE DE LA TAILLE DES MELVAL A ALLOUER N1PTEL=NBGS N1EL=NBELEM * CREATION DU MCHAML DE LA SOUS ZONE N2=NSTRS SEGINI MCHAML ICHAML(ISOUS)=MCHAML NS=1 NCOSOU=NSTRS SEGINI MPTVAL IVASTR=MPTVAL NOMID =MOSTRS N2PTEL=0 N2EL =0 IF(MELE.EQ.30.OR.MELE.EQ.43) THEN N1PTEL=1 N1EL=1 ENDIF DO 100 ICOMP=1,NSTRS NOMCHE(ICOMP)=LESOBL(ICOMP) TYPCHE(ICOMP)='REAL*8' SEGINI MELVAL IELVAL(ICOMP)=MELVAL IVAL(ICOMP)=MELVAL 100 CONTINUE * TRAITEMENT DES CHAMPS DE MATERIAU NBROBL = 0 NBRFAC = 0 NOMID = 0 MOMATR = 0 IF (MELE.EQ.29.OR.MELE.EQ.42.OR.MELE.EQ.45.OR.MELE.EQ.46 & .OR.MELE.EQ.95.OR.MELE.EQ.123.OR.MELE.EQ.124 & .OR.MELE.EQ.84) THEN NBROBL=2 SEGINI NOMID LESOBL(1)='YOUN' LESOBL(2)='ALPH' * materiau isotrope ELSE IF (CMATE.EQ.'ISOTROPE') THEN IF (MFR.EQ.35) THEN NBROBL=3 SEGINI NOMID LESOBL(1)='KS ' LESOBL(2)='KN ' LESOBL(3)='ALPN' ELSE NBROBL=3 SEGINI NOMID LESOBL(1)='YOUN' LESOBL(2)='NU ' LESOBL(3)='ALPH' ENDIF * materiau orthotrope ELSE IF(CMATE.EQ.'ORTHOTRO') THEN IF(MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9)THEN NBROBL=7 SEGINI NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='NU12' LESOBL(4)='ALP1' LESOBL(5)='ALP2' LESOBL(6)='V1X ' LESOBL(7)='V1Y ' ELSE IF (MFR.EQ.35) THEN NBROBL=6 SEGINI NOMID LESOBL(1)='KS1 ' LESOBL(2)='KS2 ' LESOBL(3)='KN ' LESOBL(4)='ALPN' LESOBL(5)='V1X' LESOBL(6)='V1Y ' ELSE IF (MFR.EQ.1.OR.MFR.EQ.31.OR.MFR.EQ.33) THEN IF(IFOUR.EQ.-2) THEN NBROBL =10 SEGINI NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='NU12' LESOBL(4)='ALP1' LESOBL(5)='ALP2' LESOBL(6)='V1X ' LESOBL(7)='V1Y ' LESOBL(8)='YG3 ' LESOBL(9)='NU23' LESOBL(10)='NU13' ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.0 1 .OR.IFOUR.EQ.1.OR.IFOUR.EQ.-3)THEN NBROBL = 11 SEGINI NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='YG3 ' LESOBL(4)='NU12' LESOBL(5)='NU23' LESOBL(6)='NU13' LESOBL(7)='ALP1' LESOBL(8)='ALP2' LESOBL(9)='ALP3' LESOBL(10)='V1X ' LESOBL(11)='V1Y ' ELSEIF(IFOUR.EQ.2)THEN NBROBL = 15 SEGINI NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='YG3 ' LESOBL(4)='NU12' LESOBL(5)='NU23' LESOBL(6)='NU13' LESOBL(7)='ALP1' LESOBL(8)='ALP2' LESOBL(9)='ALP3' LESOBL(10)='V1X ' LESOBL(11)='V1Y ' LESOBL(12)='V1Z ' LESOBL(13)='V2X ' LESOBL(14)='V2Y ' LESOBL(15)='V2Z ' C= Modes de calcul UNIDIMENSIONNELS (1D) ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.15) THEN C= Mode 1D UNID PLAN CYCZ IF (IFOUR.EQ.6) THEN NBROBL=7 SEGINI,NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='YG3 ' LESOBL(4)='NU12' LESOBL(5)='NU23' LESOBL(6)='NU13' LESOBL(7)='ALP1' C= Modes 1D UNID PLAN CYDZ et CYGZ ELSE IF (IFOUR.EQ.5.OR.IFOUR.EQ.10) THEN NBROBL=8 SEGINI,NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='YG3 ' LESOBL(4)='NU12' LESOBL(5)='NU23' LESOBL(6)='NU13' LESOBL(7)='ALP1' LESOBL(8)='ALP3' ELSE IF (IFOUR.EQ.4.OR.IFOUR.EQ.8.OR.IFOUR.EQ.13) THEN C= Modes 1D UNID PLAN DYCZ et GYCZ, et mode 1D UNID AXIS AXCZ NBROBL=8 SEGINI,NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='YG3 ' LESOBL(4)='NU12' LESOBL(5)='NU23' LESOBL(6)='NU13' LESOBL(7)='ALP1' LESOBL(8)='ALP2' ELSE C= Autres modes de calcul 1D UNID C= Mode 1D UNID SPHErique : on suppose que YG2=YG3 NU12=NU13 ALP2=ALP3 NBROBL=9 SEGINI,NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='YG3 ' LESOBL(4)='NU12' LESOBL(5)='NU23' LESOBL(6)='NU13' LESOBL(7)='ALP1' LESOBL(8)='ALP2' LESOBL(9)='ALP3' ENDIF ENDIF ENDIF * materiau anisotrope ELSE IF(CMATE.EQ.'ANISOTRO') THEN IF(MFR.EQ.1.OR.MFR.EQ.31.OR.MFR.EQ.33)THEN IF(IFOUR.EQ.-2) THEN NBROBL=15 SEGINI NOMID LESOBL(1)='D11 ' LESOBL(2)='D21 ' LESOBL(3)='D22 ' LESOBL(4)='D41 ' LESOBL(5)='D42 ' LESOBL(6)='D44 ' LESOBL(7)='ALP1' LESOBL(8)='ALP2' LESOBL(9)='AL12' LESOBL(10)='V1X ' LESOBL(11)='V1Y ' LESOBL(12)='D31 ' LESOBL(13)='D32 ' LESOBL(14)='D33 ' LESOBL(15)='D43 ' ELSE IF(IFOUR.EQ.-3.OR.IFOUR. 1 EQ.-1.OR.IFOUR.EQ.0.OR.IFOUR.EQ.1)THEN NBROBL=16 SEGINI NOMID LESOBL(1)='D11 ' LESOBL(2)='D21 ' LESOBL(3)='D22 ' LESOBL(4)='D31 ' LESOBL(5)='D32 ' LESOBL(6)='D33 ' LESOBL(7)='D41 ' LESOBL(8)='D42 ' LESOBL(9)='D43 ' LESOBL(10)='D44 ' LESOBL(11)='ALP1' LESOBL(12)='ALP2' LESOBL(13)='AL12' LESOBL(14)='ALP3' LESOBL(15)='V1X ' LESOBL(16)='V1Y ' ELSEIF(IFOUR.EQ.2)THEN NBROBL=33 SEGINI NOMID LESOBL(1)='D11 ' LESOBL(2)='D21 ' LESOBL(3)='D22 ' LESOBL(4)='D31 ' LESOBL(5)='D32 ' LESOBL(6)='D33 ' LESOBL(7)='D41 ' LESOBL(8)='D42 ' LESOBL(9)='D43 ' LESOBL(10)='D44 ' LESOBL(11)='D51 ' LESOBL(12)='D52 ' LESOBL(13)='D53 ' LESOBL(14)='D54 ' LESOBL(15)='D55 ' LESOBL(16)='D61 ' LESOBL(17)='D62 ' LESOBL(18)='D63 ' LESOBL(19)='D64 ' LESOBL(20)='D65 ' LESOBL(21)='D66 ' LESOBL(22)='ALP1' LESOBL(23)='ALP2' LESOBL(24)='ALP3' LESOBL(25)='AL12' LESOBL(26)='AL13' LESOBL(27)='AL23' LESOBL(28)='V1X ' LESOBL(29)='V1Y ' LESOBL(30)='V1Z ' LESOBL(31)='V2X ' LESOBL(32)='V2Y ' LESOBL(33)='V2Z ' ENDIF ENDIF * materiau unidirectionnel ELSE IF(CMATE.EQ.'UNIDIREC') THEN * MLR 31/1/97 IF(IFOUR.EQ.2)THEN IF (MFR.EQ.1.AND.IDIM.EQ.3) THEN NBROBL=8 SEGINI NOMID LESOBL(1)='YOUN' LESOBL(2)='ALPH' LESOBL(3)='V1X ' LESOBL(4)='V1Y ' LESOBL(5)='V1Z ' LESOBL(6)='V2X ' LESOBL(7)='V2Y ' LESOBL(8)='V2Z ' ELSE NBROBL=4 SEGINI NOMID LESOBL(1)='YOUN' LESOBL(2)='ALPH' LESOBL(3)='V1X ' LESOBL(4)='V1Y ' ENDIF C ENDIF ENDIF MOMATR = NOMID NMATT=NBROBL+NBRFAC * Types attendus des composantes IF (CMATE.EQ.'SECTION') THEN NBTYPE=3 SEGINI NOTYPE TYPE(1)='POINTEURMMODEL' TYPE(2)='POINTEURMCHAML' TYPE(3)='POINTEURLISTREEL' ELSE NOTYPE=MOTYR8 ENDIF * Recuperation des COMPOSANTES des NOMID 1 NOTYPE,1,INFOS,3,IVAMAT) IF (NOTYPE.NE.MOTYR8) SEGSUP,NOTYPE IF (IERR.NE.0) GOTO 9990 * CHANGEMENT DE SUPPORT DES MELVAL DANS IVAMAT ==> Passage au STRESSES IF(ISUPMA.EQ.1)THEN IF(IERR.NE.0)THEN ISUPMA=0 GOTO 9990 ENDIF ENDIF NBGMAT = 0 NELMAT = 0 MPTVAL=IVAMAT DO 1108 IM=1,NMATT MELVAL=IVAL(IM) IF(MELVAL.NE.0)THEN IF (CMATE.EQ.'SECTION') THEN NBGMAT=MAX(NBGMAT,MELVAL.IELCHE(/1)) NELMAT=MAX(NELMAT,MELVAL.IELCHE(/2)) ELSE NBGMAT=MAX(NBGMAT,MELVAL.VELCHE(/1)) NELMAT=MAX(NELMAT,MELVAL.VELCHE(/2)) ENDIF ENDIF 1108 CONTINUE * TRAITEMENT DES CHAMPS DE CARACTERISTIQUES NBROBL = 0 NBRFAC = 0 NOMID = 0 IVECT = 0 NOTYPE = MOTYR8 * EPAISSEUR DANS LE CAS DES COQUES IF (MFR.EQ.3.OR.MFR.EQ.9) THEN NBROBL=1 SEGINI NOMID LESOBL(1)='EPAI' * SECTION POUR LES BARRES ET LES CERCES ELSE IF (MFR.EQ.27) THEN NBROBL=1 SEGINI NOMID LESOBL(1)='SECT' * section, excentrements et orientation pour les barres excentrees ELSE IF (MFR.EQ.49) THEN NBROBL=6 SEGINI NOMID LESOBL(1)='SECT' LESOBL(2)='EXCZ' LESOBL(3)='EXCY' LESOBL(4)='VX ' LESOBL(5)='VY ' LESOBL(6)='VZ ' * CARACTERISTIQUES POUR LES POUTRES ELSE IF (MFR.EQ.7 ) THEN IF (CMATE.NE.'SECTION') THEN NBROBL=1 SEGINI NOMID LESOBL(1)='SECT' ENDIF * CARACTERISTIQUES POUR LES TUYAUX ELSE IF (MFR.EQ.13) THEN NBROBL=2 NBRFAC=5 SEGINI NOMID LESOBL(1)='EPAI' LESOBL(2)='RAYO' LESFAC(1)='RACO' LESFAC(2)='CISA' LESFAC(3)='VX' LESFAC(4)='VY' LESFAC(5)='VZ' IVECT=1 ENDIF NCARA=NBROBL NCARF=NBRFAC NCARR=NCARA+NCARF MOCARA = NOMID IF (MOCARA.NE.0) THEN IF (IPCHE1.EQ.0) THEN MOTERR(1:4)='CARA' MOTERR(5:8)='CARA' MOTERR(9:12)=NOMTP(MELE) MOTERR(13:20)='THETA' GOTO 9990 ENDIF 1 1,INFOS,3,IVACAR) IF (NOTYPE.NE.MOTYR8) SEGSUP,NOTYPE IF (IERR.NE.0) GOTO 9990 * CHANGEMENT DE SUPPORT DES MELVAL DANS IVACAR ==> Passage au STRESSES IF (ISUPMA.EQ.1) THEN IF (IERR.NE.0) THEN ISUPMA=0 GOTO 9990 ENDIF ENDIF ENDIF NV1=NMATT SEGINI,MVELCH SEGINI, WRK3 IF ((CMATE.EQ.'ORTHOTRO'.OR.CMATE.EQ.'ANISOTRO'.OR. 1 CMATE.EQ.'UNIDIREC')) THEN C RENSEIGNEMENTS SUR LE MAILLAGE MELEME=IPMAIL NBNN=NUM(/1) SEGINI WRK2 * RECUPERATION DES FONCTIONS DE FORME ET LEURS DERIVEES AU CENTRE DE * L'ELEMENT POUR LE CALCUL DES AXES LOCAUX IF (MFR.EQ.1.OR.MFR.EQ.31.OR.MFR.EQ.33) THEN IF (IERR.NE.0) THEN SEGSUP MVELCH,WRK2,WRK3 GOTO 9990 ENDIF MINTE2=IPT1 ENDIF ENDIF * BOUCLE SUR LES ELEMENTS DO 1000 IB=1,NBELEM C IF ((CMATE.EQ.'ORTHOTRO'.OR.CMATE.EQ.'ANISOTRO'.OR. 1 CMATE.EQ.'UNIDIREC').AND. 2 (MFR.EQ.1.OR.MFR.EQ.31.OR.MFR.EQ.33)) THEN C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C CALCUL DES AXES LOCAUX C NBSH=MINTE2.SHPTOT(/2) if (nbsh.eq.-1) then return endif ENDIF C IF(CMATE.EQ.'SECTION') THEN * CAS DE LA POUTRE TIMO - MODELE SECTION MPTVAL=IVAMAT MELVAL=IVAL(1) IBMN=MIN(IB,IELCHE(/2)) IPMODL=IELCHE(1,IBMN) MELVAL=IVAL(2) IBMN=MIN(IB,IELCHE(/2)) IPMAT=IELCHE(1,IBMN) ENDIF C * BOUCLE SUR LES POINTS DO 2000 IGAU=1,NBPGAU * initialisations EPAIST=0.D0 SD =0.D0 TEMP =0.D0 THIF =0.D0 THM =0.D0 THSU =0.D0 E3 =0.D0 * remplissage du tableau des caracteristiques du materiau IF(CMATE.NE.'SECTION') THEN MPTVAL=IVAMAT DO 1100 IO = 1,NMATT MELVAL = IVAL(IO) IF(MELVAL .EQ. 0)GOTO 1100 IBMN=MIN(IB,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) VALMAT(IO) = VELCHE( IGMN,IBMN) 1100 CONTINUE ENDIF C Prise en compte de l'epaisseur et de l'excentrement C dans le cas des coques minces avec ou sans cisaillement C transverse C IF ((CMATE.EQ.'ISOTROPE'.OR.CMATE.EQ.'ORTHOTRO'. 1 OR.CMATE.EQ.'UNIDIREC').AND. 2 (MFR.EQ.3.OR.MFR.EQ.9)) THEN MPTVAL=IVACAR MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) EPAIST=VELCHE(IGMN,IBMN) ELSE GOTO 9990 ENDIF ENDIF * remplissage du tableau des caracteristiques geometriques IF (MELE.EQ.29.OR.MELE.EQ.42.OR.MELE.EQ.45.OR.MELE.EQ.123 1 .OR.MELE.EQ.124.OR.MELE.EQ.46.OR.MELE.EQ.95 1 .OR.MELE.EQ.84) THEN SEGINI WRK1 IF(MELE.EQ.42) THEN MPTVAL=IVACAR DO 1200 IC=1,NCARR MELVAL=IVAL(IC) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) ELSE ENDIF 1200 CONTINUE * CAS DES TUYAUX - ON CALCULE LES CARACTERISTIQUES DE LA POUTRE EQUIVA ELSE MPTVAL=IVACAR MELVAL=IVAL(1) IBMN=MIN(IB,VELCHE(/2)) SD=0.D0 DO 1201 IAUX=1,NBPGAU IGMN=MIN(IAUX,VELCHE(/1)) SD=SD+VELCHE(IGMN,IBMN) 1201 CONTINUE SD=SD/NBPGAU ENDIF ENDIF IF(CMATE.EQ.'SECTION') SD=CRIGI(1) * 'T_ALPHA_REFERENCE' MPTVAL=IVATAL MELVAL=IVAL(1) IGMN =MIN(IGAU,VELCHE(/1)) IBMN =MIN(IB ,VELCHE(/2)) TALP =VELCHE(IGMN,IBMN) IF (((MFR.EQ.3.OR.MFR.EQ.9).AND.(CMATE.EQ.'ISOTROPE'. + OR.CMATE.EQ.'ORTHOTRO'.OR.CMATE.EQ.'UNIDIREC')). + OR.(MFR.EQ.5.AND.(CMATE.EQ.'ISOTROPE'.OR.CMATE. + EQ.'ORTHOTRO'))) THEN IF(NPINT.EQ.0) THEN MPTVAL=IVATEM * 'TINF' - 'T_ALPHA_REFERENCE' MELVAL=IVAL(1) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) THIF=VELCHE(IGMN,IBMN) - TALP * 'T' - 'T_ALPHA_REFERENCE' MELVAL=IVAL(2) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) THM=VELCHE(IGMN,IBMN) - TALP * 'TSUP' - 'T_ALPHA_REFERENCE' MELVAL=IVAL(3) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) THSU=VELCHE(IGMN,IBMN) - TALP ELSE * 'T' - 'T_ALPHA_REFERENCE' MPTVAL=IVATEM MELVAL=IVAL(1) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) TEMP=VELCHE(IGMN,IBMN) - TALP ENDIF E3 = DZEGAU(IGAU) ELSEIF((MFR.EQ.7.OR.MFR.EQ.13.OR.MFR.EQ.27.OR.MELE.EQ.85.OR. + MELE.EQ.86.OR.MELE.EQ.87.OR.MELE.EQ.88.OR.MFR.EQ.49.OR. + MELE.EQ.84.OR.MFR.EQ.51).OR.((MFR.EQ.1.OR.MFR.EQ.33.OR. + MFR.EQ.31).AND.(CMATE.EQ.'ISOTROPE'.OR.CMATE.EQ.'ORTHOTRO' + .OR.CMATE.EQ.'ANISOTRO'.OR.CMATE.EQ.'UNIDIREC'))) THEN * 'T' - 'T_ALPHA_REFERENCE' MPTVAL=IVATEM MELVAL=IVAL(1) IGMN =MIN(IGAU,VELCHE(/1)) IBMN =MIN(IB ,VELCHE(/2)) TEMP =VELCHE(IGMN,IBMN) - TALP ENDIF *-------------------------------------------------------------- * CAS ISOTROPE *-------------------------------------------------------------- IF(CMATE.EQ.'ISOTROPE') THEN 1 THM,THSU,E3,SD,EPAIST,RES,KERRE) *-------------------------------------------------------------- * CAS ORTHOTROPE *-------------------------------------------------------------- ELSEIF(CMATE.EQ.'ORTHOTRO') THEN 1 THM,THSU,E3,SD,EPAIST,TXR,XLOC,XGLOB, 2 ROTS,DHOOK,RES,KERRE) *-------------------------------------------------------------- * CAS ANISOTROPE *-------------------------------------------------------------- ELSEIF(CMATE.EQ.'ANISOTRO') THEN 1 SD,TXR,XLOC,XGLOB,ROTS,DHOOK,RES,KERRE) *-------------------------------------------------------------- * CAS UNIDIRECTIONNEL *-------------------------------------------------------------- ELSEIF(CMATE.EQ.'UNIDIREC') THEN 1 THM,THSU,SD,EPAIST,TXR,XLOC,XGLOB, 2 ROTS,DHOOK,RES,KERRE) *-------------------------------------------------------------- * CAS HOMOGENEISE ET SECTION *-------------------------------------------------------------- ELSEIF(CMATE.EQ.'HOMOGENE'.OR.CMATE.EQ.'SECTION') THEN *-------------------------------------------------------------- ELSE GOTO 9900 ENDIF IF (KERRE.EQ.19) THEN GOTO 9900 ELSEIF (KERRE.EQ.86) THEN MOTERR(1:4) =NOMTP(MELE) MOTERR(5:12)='THET' GOTO 9900 ENDIF MPTVAL=IVASTR DO 1600 I=1,NSTRS MELVAL=IVAL(I) VELCHE(IGAU,IB)=RES(I) 1600 CONTINUE 2000 CONTINUE 1000 CONTINUE *____________________________________________________________________ * DESACTIVATION DES SEGMENTS DE TRAVAIL *____________________________________________________________________ 9900 CONTINUE IF ((CMATE.EQ.'ORTHOTRO'.OR.CMATE.EQ.'ANISOTRO'.OR. 1 CMATE.EQ.'UNIDIREC')) SEGSUP WRK2 IF (MELE.EQ.29.OR.MELE.EQ.42) SEGSUP WRK1 SEGSUP MVELCH,WRK3 9990 CONTINUE *____________________________________________________________________ * DESACTIVATION DES SEGMENTS PROPRES A LA ZONE GEOMETRIQUE IA *____________________________________________________________________ MPTVAL=IVAMAT IF (MPTVAL .GT. 0) SEGSUP,MPTVAL MPTVAL=IVACAR IF (MPTVAL .GT. 0) SEGSUP,MPTVAL MPTVAL=IVASTR IF (MPTVAL .GT. 0) SEGSUP,MPTVAL MPTVAL=IVATEM IF (MPTVAL .GT. 0) SEGSUP,MPTVAL MPTVAL=IVATAL IF (MPTVAL .GT. 0) SEGSUP,MPTVAL IF (IERR.NE.0) GOTO 888 999 CONTINUE IF (IERR.NE.0) GOTO 888 500 CONTINUE 888 CONTINUE IF(IERR.NE.0)THEN IRET = 0 SEGSUP MCHELM IPSTRS = 0 ELSE IRET = 1 IPSTRS = MCHELM ENDIF nomid = MOTTAL SEGSUP,nomid notype = MOTYR8 SEGINI,notype c RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales