hook2p
C HOOK2P SOURCE OF166741 24/10/21 21:15:14 12042 C_______________________________________________________________________ C C Entrees: C ________ C C MODORI Pointeur sur un MMODEL C IPCHE1 Pointeur sur un MCHAML de caracteristiques C IPCHE2 Pointeur sur un MCHAML de variables internes(FACULTATIF) C LASURF Flag de presence du mot cle REFE C C Sorties: C ________ C C IPCHOO Pointeur sur un MCHAML de matrice de HOOKE C IRET 1 si tout OK 0 sinon C_______________________________________________________________________ IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC CCGEOME -INC SMCHAML -INC SMMODEL -INC SMLREEL -INC SMINTE SEGMENT NOTYPE CHARACTER*16 TYPE(NBTYPE) ENDSEGMENT 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 lsupva,lsupma IRET = 0 if (ipmodl.eq.0) return * AM 16/5/08 REDUCTION PRELABLE DU CHAMP SUR LE MODELE MECA if (ierr.ne.0) return ipche1=ipche10 * VERIFICATION DU LIEU SUPPORT DU MCHAML DE CARACTERISTIQUE * IF (ISUP.GT.1) THEN RETURN ENDIF * * VERIFICATION DU LIEU SUPPORT DU MCHAML DE VARIABLES INTERNES * IF (IPCHE2.NE.0) THEN if (ierr.ne.0) return ipche2=ipche20 IF (ISUP2.GT.1) THEN RETURN ENDIF ENDIF C Petit segment utile NBTYPE=1 SEGINI NOTYPE TYPE(1)='REAL*8' MOTYR8 = NOTYPE C ACTIVATION DU MODELE C MMODEL=IPMODL NSOUS=KMODEL(/1) N1 = NSOUS C C ON NE TIENT PAS COMPTE D'UN EVENTUEL MODELE CHARGEMENT C Pimodl ne le fait-il pas ? DO III = 1,NSOUS IMODEL = KMODEL(III) IF (FORMOD(1).EQ.'CHARGEMENT') N1=N1-1 END DO IF (N1.NE.NSOUS) THEN write(ioimp,*) 'HOOK2P : PIMODL & CHARGEMENT' ENDIF C C INITIALISATION DU CHAPEAU DES MATRICES DE HOOKE C L1=16 N3=6 SEGINI MCHELM IPCHOO=MCHELM TITCHE='MATRICE DE HOOKE' IFOCHE=IFOUR C C BOUCLE SUR LES SOUS ZONES DU MAILLAGE C DO 100 ISOUS=1,N1 IVAMAT=0 IVACAR=0 IVARI =0 IVAHOO=0 MOMATR=0 MOCARA=0 NVART =0 IPMINT=0 lsupma=.true. lsupva=.true. C C TRAITEMENT DU MODELE C IMODEL=KMODEL(ISOUS) MELE=NEFMOD IPMAIL=IMAMOD CONM =CONMOD C C CREATION DU TABLEAU INFOS C IF (IRTD.EQ.0) GOTO 9990 C CMATE = CMATEE MATE = IMATEE INAT = INATUU C C COQUE INTEGREE OU PAS ? NPINT=INFMOD(1) C C REMPLISSAGE DE MCHELM DE HOOKE C IMACHE(ISOUS)=IPMAIL CONCHE(ISOUS)=CONMOD C C INFORMATION ELEMENT FINI C NBPGAU=INFELE(6) LHOOK=INFELE(10) MFR =INFELE(13) IPPORE=0 LW =INFELE(7) IPORE = INFELE(8) * * CAS DES DKT INTEGRES * IF (MFR.EQ.3.AND.NPINT.NE.0) LHOOK=4 * LHOO2=LHOOK*LHOOK * MINTE=INFELE(11) MINTE=INFMOD(5) IPMINT=MINTE C INFCHE(ISOUS,1)=0 INFCHE(ISOUS,2)=0 INFCHE(ISOUS,3)=NIFOUR INFCHE(ISOUS,4)=IPMINT INFCHE(ISOUS,5)=0 INFCHE(ISOUS,6)=3 C C CREATION DU MCHAML DE HOOKE C IF((MELE.EQ.93.OR.MELE.EQ.87.OR.MELE.EQ.88).AND. & CMATE.NE.'ISOTROPE')THEN N2=3 SEGINI MCHAML NOMCHE(1)='MAHO' NOMCHE(2)='V1X ' NOMCHE(3)='V1Y ' TYPCHE(1)='POINTEURLISTREEL' TYPCHE(2)='REAL*8' TYPCHE(3)='REAL*8' ELSE N2=1 SEGINI MCHAML NOMCHE(1)='MAHO' TYPCHE(1)='POINTEURLISTREEL' ENDIF ICHAML(ISOUS)=MCHAML * TRAITEMENT DES CHAMPS DE MATERIAU * lsupma=.true. NBROBL=0 NBRFAC=0 NOMID =0 IF (FORMOD(1).EQ.'MECANIQUE') THEN IF (CMATE.EQ.'ISOTROPE') THEN IF(INAT.EQ.26.AND.IPCHE2.NE.0) THEN NBROBL=3 SEGINI NOMID LESOBL(1)='YOUN' LESOBL(2)='NU ' LESOBL(3)='DC ' ELSE IF (INAT.EQ.62.AND.IPCHE2.NE.0) THEN NBROBL=4 SEGINI NOMID LESOBL(1)='YOUN' LESOBL(2)='NU ' LESOBL(3)='F ' LESOBL(4)='FC ' ELSE IF (INAT.EQ.64.AND.IPCHE2.NE.0) THEN NBROBL=3 SEGINI NOMID LESOBL(1)='YOUN' LESOBL(2)='NU ' LESOBL(3)='FF ' ELSE NBROBL=2 SEGINI NOMID IF (MFR.EQ.35.OR.MFR.EQ.78) 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 ' ENDIF ENDIF ELSEIF (CMATE.EQ.'ORTHOTRO') THEN IF (MFR.EQ.3) THEN * COQUES MINCES NBROBL=6 SEGINI NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='NU12' LESOBL(4)='G12 ' LESOBL(5)='V1X ' LESOBL(6)='V1Y ' ELSE IF (MFR.EQ.9.OR.MFR.EQ.5) THEN * COQUES AVEC CISAILLEMENT TRANSVERSE NBROBL=8 SEGINI NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='NU12' LESOBL(4)='G12 ' LESOBL(5)='G23 ' LESOBL(6)='G13 ' LESOBL(7)='V1X ' LESOBL(8)='V1Y ' ELSE IF (MFR.EQ.75) THEN * * JOINT UNIDIMENSIONNEL JOI1 * IF(IDIM.EQ.3)THEN NBROBL=12 SEGINI NOMID LESOBL(1)='V1X ' LESOBL(2)='V1Y ' LESOBL(3)='V1Z ' LESOBL(4)='V2X ' LESOBL(5)='V2Y ' LESOBL(6)='V2Z ' LESOBL(7)='KN ' LESOBL(8)='KS1 ' LESOBL(9)='KS2' LESOBL(10)='QN ' LESOBL(11)='QS1 ' LESOBL(12)='QS2 ' * ELSE IF(IDIM.EQ.2)THEN NBROBL=5 SEGINI NOMID LESOBL(1)='V1X ' LESOBL(2)='V1Y ' LESOBL(3)='KN ' LESOBL(4)='KS ' LESOBL(5)='QS' ENDIF * ELSE IF (MFR.EQ.1 .OR. MFR.EQ.31) THEN * ELEMENTS MASSIFS IF(IDIM.EQ.3)THEN * ELEMENTS 3D NBROBL=15 SEGINI NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='YG3 ' LESOBL(4)='NU12' LESOBL(5)='NU23' LESOBL(6)='NU13' LESOBL(7)='G12 ' LESOBL(8)='G23 ' LESOBL(9)='G13 ' LESOBL(10)='V1X ' LESOBL(11)='V1Y ' LESOBL(12)='V1Z ' LESOBL(13)='V2X ' LESOBL(14)='V2Y ' LESOBL(15)='V2Z ' ELSE IF (IDIM.EQ.2) THEN IF(IFOUR.EQ.-2) THEN * CONT. PLANE NBROBL=9 SEGINI NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='NU12 ' LESOBL(4)='G12' LESOBL(5)='V1X ' LESOBL(6)='V1Y ' LESOBL(7)='YG3 ' LESOBL(8)='NU23' LESOBL(9)='NU13' ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-3) THEN * DEFORMATION PLANE ,AXISYMETRIE NBROBL=9 SEGINI NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='YG3 ' LESOBL(4)='NU12' LESOBL(5)='NU23' LESOBL(6)='NU13' LESOBL(7)='G12 ' LESOBL(8)='V1X ' LESOBL(9)='V1Y ' ELSE IF (IFOUR.EQ.1) THEN * AXISYMETRIE DE FOURIER NBROBL=11 SEGINI NOMID LESOBL(1)='YG1 ' LESOBL(2)='YG2 ' LESOBL(3)='YG3 ' LESOBL(4)='NU12' LESOBL(5)='NU23' LESOBL(6)='NU13' LESOBL(7)='G12 ' LESOBL(8)='G23 ' LESOBL(9)='G13 ' LESOBL(10)='V1X ' LESOBL(11)='V1Y ' ENDIF ENDIF ELSE IF (MFR.EQ.35) THEN * ELEMENTS JOINTS IF (IFOUR.EQ.2) THEN NBROBL=5 SEGINI NOMID LESOBL(1)='KS1 ' LESOBL(2)='KS2 ' LESOBL(3)='KN ' LESOBL(4)='V1X ' LESOBL(5)='V1Y ' ENDIF ENDIF ELSEIF (CMATE.EQ.'ANISOTRO') THEN IF(MFR.EQ.75)THEN * JOINT UNIDIMESIONNEL JOI1 IF(IDIM.EQ.3)THEN NBROBL=27 SEGINI NOMID LESOBL(1)='V1X ' LESOBL(2)='V1Y ' LESOBL(3)='V1Z ' LESOBL(4)='V2X ' LESOBL(5)='V2Y ' LESOBL(6)='V2Z ' LESOBL(7)='D11 ' LESOBL(8)='D22 ' LESOBL(9)='D33 ' LESOBL(10)='D44 ' LESOBL(11)='D55 ' LESOBL(12)='D66 ' LESOBL(13)='D21 ' LESOBL(14)='D31 ' LESOBL(15)='D32 ' LESOBL(16)='D41 ' LESOBL(17)='D42 ' LESOBL(18)='D43 ' LESOBL(19)='D51 ' LESOBL(20)='D52 ' LESOBL(21)='D53 ' LESOBL(22)='D54 ' LESOBL(23)='D61 ' LESOBL(24)='D62 ' LESOBL(25)='D63 ' LESOBL(26)='D64 ' LESOBL(27)='D65 ' ELSE IF(IDIM.EQ.2)THEN NBROBL=8 SEGINI NOMID LESOBL(1)='V1X ' LESOBL(2)='V1Y ' LESOBL(3)='D11 ' LESOBL(4)='D22 ' LESOBL(5)='D33 ' LESOBL(6)='D21 ' LESOBL(7)='D31 ' LESOBL(8)='D32 ' ENDIF * ELSE IF (MFR.EQ.1 .OR. MFR.EQ.31) THEN * ELEMENTS MASSIFS IF(IDIM.EQ.3)THEN * ELEMENTS 3D IF (IFOUR.EQ.2) THEN NBROBL=27 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)='V1X ' LESOBL(23)='V1Y ' LESOBL(24)='V1Z ' LESOBL(25)='V2X ' LESOBL(26)='V2Y ' LESOBL(27)='V2Z ' ENDIF ELSE IF (IDIM.EQ.2) THEN IF (IFOUR.EQ.-2) THEN * CONTRAINTE PLANE NBROBL=12 SEGINI NOMID LESOBL(1)='D11 ' LESOBL(2)='D21 ' LESOBL(3)='D22 ' LESOBL(4)='D41 ' LESOBL(5)='D42 ' LESOBL(6)='D44 ' LESOBL(7)='V1X ' LESOBL(8)='V1Y ' LESOBL(9)='D31 ' LESOBL(10)='D32 ' LESOBL(11)='D33 ' LESOBL(12)='D43 ' ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-3) THEN * DEFORMATION PLANE ,AXISYMETRIE NBROBL=12 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)='V1X ' LESOBL(12)='V1Y ' ELSE IF (IFOUR.EQ.1) THEN * AXISYMETRIE DE FOURIER NBROBL=15 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)='D55 ' LESOBL(12)='D65 ' LESOBL(13)='D66 ' LESOBL(14)='V1X ' LESOBL(15)='V1Y ' ENDIF ENDIF ENDIF ELSEIF (CMATE.EQ.'UNIDIREC') THEN IF (IDIM.EQ.3.AND.(MFR.EQ.1.OR.MFR.EQ.33)) THEN IF (MFR.EQ.1) THEN NBROBL=7 ELSE NBROBL=9 ENDIF SEGINI NOMID LESOBL(1)='YOUN' LESOBL(2)='V1X ' LESOBL(3)='V1Y ' LESOBL(4)='V1Z ' LESOBL(5)='V2X ' LESOBL(6)='V2Y ' LESOBL(7)='V2Z ' IF (MFR.EQ.33) THEN LESOBL(8)='COB ' LESOBL(9)='MOB ' ENDIF ELSE IF (MFR.EQ.33) THEN NBROBL=5 ELSE NBROBL=3 ENDIF SEGINI NOMID LESOBL(1)='YOUN' LESOBL(2)='V1X ' LESOBL(3)='V1Y ' IF (MFR.EQ.33) THEN LESOBL(4)='COB ' LESOBL(5)='MOB ' ENDIF ENDIF ELSEIF (CMATE.EQ.'ZONE_COH') THEN IF (MFR.EQ.77) THEN NBROBL=2 SEGINI NOMID LESOBL(1)='KS ' LESOBL(2)='KN ' ENDIF ELSE nomid=lnomid(6) if(nomid.ne.0) then NBROBL = lesobl(/2) NBRFAC = lesfac(/2) lsupma=.false. else write(ioimp,*) 'LNOMID(6) non defini',imodel,formod(1) endif ENDIF ELSE nomid=lnomid(6) if(nomid.ne.0) then nbrobl=lesobl(/2) nbrfac=lesfac(/2) lsupma=.false. else write(ioimp,*) 'LNOMID(6) non defini',imodel,formod(1) endif ENDIF NMATR = NBROBL NMATF = NBRFAC NMATT = NMATR+NMATF MOMATR = NOMID IF (CMATE.EQ.'SECTION') THEN NBTYPE=3 SEGINI NOTYPE TYPE(1)='POINTEURMMODEL' TYPE(2)='POINTEURMCHAML' TYPE(3)='POINTEURLISTREEL' ELSE NOTYPE = MOTYR8 ENDIF MOTYPE = NOTYPE IF (MOTYPE.NE.MOTYR8) SEGSUP,NOTYPE IF (IERR.NE.0) GOTO 9990 IF (MOMATR.NE.0.AND.ISUP.EQ.1) THEN ENDIF C____________________________________________________________________ C * TRAITEMENT DES CHAMPS DE CARACTERISTIQUES * C____________________________________________________________________ C NBROBL=0 NBRFAC=0 NBTYPE=0 NOMID = 0 * * 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 LESOBL(1)='EPAI' LESFAC(1)='EXCE' * * SECTION POUR LES BARRES * ELSE IF (MFR.EQ.27.OR.MFR.EQ.78) THEN NBROBL=1 SEGINI NOMID LESOBL(1)='SECT' * * EPAISSEUR POUR LES JOINTS GENERALISES * ELSE IF (MFR.EQ.55) THEN NBRFAC=1 SEGINI NOMID LESFAC(1)='EPAI' * * CARACTERISTIQUES POUR LES POUTRES * ELSE IF (MFR.EQ.7 ) THEN IF (CMATE.NE.'SECTION') THEN IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN NBROBL=2 NBRFAC=1 SEGINI NOMID LESOBL(1)='SECT' LESOBL(2)='INRZ' LESFAC(1)='SECY' ELSE NBROBL=4 NBRFAC=2 SEGINI NOMID LESOBL(1)='TORS' LESOBL(2)='INRY' LESOBL(3)='INRZ' LESOBL(4)='SECT' LESFAC(1)='SECY' LESFAC(2)='SECZ' ENDIF ENDIF * * CARACTERISTIQUES POUR LES TUYAUX * ELSE IF (MFR.EQ.13) THEN NBROBL=2 NBRFAC=3 SEGINI NOMID LESOBL(1)='EPAI' LESOBL(2)='RAYO' LESFAC(1)='RACO' LESFAC(2)='PRES' LESFAC(3)='CISA' * * CARACTERISTIQUES POUR LES LINESPRING * ELSE IF (MFR.EQ.15) THEN NBROBL=5 SEGINI 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 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 LESOBL(1)='SCEL' LESOBL(2)='SFLU' LESOBL(3)='EPS ' LESOBL(4)='XINE' ELSE NBROBL=3 SEGINI NOMID LESOBL(1)='SCEL' LESOBL(2)='SFLU' LESOBL(3)='EPS ' ENDIF * * CARACTERISTIQUE MACRO_EL (element CIFL) * ELSE IF (MFR.EQ.61)THEN NBROBL=2 SEGINI NOMID LESOBL(1)= 'SECT' LESOBL(2)= 'INRZ' ENDIF NCARA = NBROBL NCARF = NBRFAC NCARR = NCARA+NCARF MOCARA = NOMID MOTYPE = MOTYR8 IF (IPCHE1.NE.0.AND.MOCARA.NE.0) THEN IF (IERR.NE.0) GOTO 9990 * IF (MOCARA.NE.0.AND.ISUP.EQ.1) THEN ENDIF ENDIF C segdes mchaml * * DANS LE CAS DE L'ELEMENT DST, JOT3 ET JOI4 ORTHO. ON STOCKE EGALEMENT * V1X ET V1Y * IF ((MELE.EQ.93.OR.MELE.EQ.87.OR.MELE.EQ.88).AND. & CMATE.NE.'ISOTROPE')THEN MPTVAL=IVAMAT IF(CMATE.EQ.'ORTHOTRO')THEN IF (MELE.EQ.87.OR.MELE.EQ.88) THEN MELVA1=IVAL(4) ELSE MELVA1=IVAL(7) ENDIF ELSE MELVA1=IVAL(2) ENDIF SEGINI,MELVAL=MELVA1 IELVAL(2)=MELVAL C SEGDES MELVAL IF(CMATE.EQ.'ORTHOTRO')THEN IF (MELE.EQ.87.OR.MELE.EQ.88) THEN MELVA1=IVAL(5) ELSE MELVA1=IVAL(8) ENDIF ELSE MELVA1=IVAL(3) ENDIF SEGINI,MELVAL=MELVA1 IELVAL(3)=MELVAL C SEGDES MELVAL ENDIF C____________________________________________________________________ C * TRAITEMENT DES CHAMPS DE VARIABLES INTERNES * C____________________________________________________________________ C IF (IPCHE2.NE.0) THEN movari = lnomid(10) if(movari.ne.0) then nomid=movari nvari=lesobl(/2) nvarf=lesfac(/2) lsupva=.false. else write(6,*) 'MOVARI = LNOMID(10) = 0',imodel,formod(1) endif IF (MOVARI.EQ.0) THEN MOTERR(1:4)='VARI' MOTERR(5:8)=NOMTP(MELE) GOTO 9990 ENDIF NVART=NVARI+NVARF MOTYPE = MOTYR8 1 INFOS,3,IVARI) IF (IERR.NE.0) GOTO 9990 IF (ISUP2.EQ.1) THEN ENDIF ENDIF C____________________________________________________________________ * * RECHERCHE DES DIMENSIONS DU MELVAL DE HOOKE * C____________________________________________________________________ N2PTEL=0 N2EL=0 MPTVAL=IVAMAT DO 40 IO=1,NMATT IF(IVAL(IO).NE.0)THEN MELVAL=IVAL(IO) IF (CMATE.EQ.'SECTION') THEN N2PTEL=MAX(N2PTEL,IELCHE(/1)) N2EL =MAX(N2EL ,IELCHE(/2)) ELSE N2PTEL=MAX(N2PTEL,VELCHE(/1)) N2EL =MAX(N2EL ,VELCHE(/2)) ENDIF ENDIF 40 CONTINUE MPTVAL=IVACAR DO 41 IO=1,NCARR IF(IVAL(IO).NE.0)THEN MELVAL=IVAL(IO) IF (CMATE.EQ.'SECTION') THEN N2PTEL=MAX(N2PTEL,IELCHE(/1)) N2EL =MAX(N2EL ,IELCHE(/2)) ELSE N2PTEL=MAX(N2PTEL,VELCHE(/1)) N2EL =MAX(N2EL ,VELCHE(/2)) ENDIF ENDIF 41 CONTINUE IF (IPCHE2.NE.0) THEN MPTVAL=IVARI DO 42 IO=1,NVART IF(IVAL(IO).NE.0)THEN MELVAL=IVAL(IO) IF (CMATE.EQ.'SECTION') THEN N2PTEL=MAX(N2PTEL,IELCHE(/1)) N2EL =MAX(N2EL ,IELCHE(/2)) ELSE N2PTEL=MAX(N2PTEL,VELCHE(/1)) N2EL =MAX(N2EL ,VELCHE(/2)) ENDIF ENDIF 42 CONTINUE ENDIF C IF (N2PTEL.EQ.1.OR.NBPGAU.EQ.1) THEN N2PTEL=1 ELSE N2PTEL=NBPGAU ENDIF * * INITIALISATION DU MELVAL DE HOOKE * N1PTEL=0 N1EL=0 SEGINI MELVAL IVAHOO=MELVAL IELVAL(1)=MELVAL C Pour ne pas avoir de LOCK dans ESOPE, on cree tous les MLREEL ici C Avec un VERROU pour ne pas se marcher dessus dans ESOPE (ooogll) JG = LHOO2 CALL OOOPRL(1) DO IB=1,N2EL DO IGAU=1,N2PTEL SEGINI,MLREEL IELCHE(IGAU,IB)=MLREEL ENDDO ENDDO CALL OOOPRL(0) KCAS=1 IF (IPCHE2.EQ.0) INAT=0 1 NCARR,NPINT,IVARI,NVART,IVAHOO,KCAS,NBPGAU, 2 LHOOK,LW,LASURF,IPORE,IRTD) C IF (IRTD.LE.0 ) GOTO 9990 C C____________________________________________________________________ C C DESACTIVATION DES SEGMENTS PROPRES A LA ZONE GEOMETRIQUE ISOUS C____________________________________________________________________ C 510 CONTINUE MELVAL=IVAHOO * IF (ISUP.EQ.1) THEN ELSE ENDIF * NOMID=MOCARA IF (MOCARA.NE.0) SEGSUP NOMID NOMID=MOMATR IF (MOMATR.NE.0.and.lsupma) SEGSUP NOMID * IF(IPCHE2.NE.0) THEN IF (ISUP2.EQ.1) THEN ELSE ENDIF NOMID=MOVARI if(lsupva)SEGSUP NOMID ENDIF C C ERREUR LE MATERIAU PAS ENCORE IMPLEMENTE POUR LA C FORMULATION MFR ET L OPTION IFOUR C IF(IERR.NE.0) THEN MOTERR(1:8)=CMATE * MOTERR(9:12)=NOMFR(MFR/2+1) MFR PAS DEFINI PV INTERR(1)=IFOUR GOTO 888 ENDIF 100 CONTINUE IRET = 1 GOTO 888 * * ERREUR DANS UNE SOUS ZONE, DESACTIVATION ET RETOUR * 9990 CONTINUE IRET = 0 C IF (IPMINT.NE.0) SEGDES,MINTE IF (ISUP.EQ.1) THEN ELSE ENDIF * NOMID=MOCARA IF (MOCARA.NE.0) SEGSUP NOMID NOMID=MOMATR IF (MOMATR.NE.0.and.lsupma) SEGSUP NOMID * IF (IPCHE2.NE.0.AND.IVARI.NE.0) THEN IF (ISUP2.EQ.1) THEN ELSE ENDIF NOMID=MOVARI if(lsupva)SEGSUP NOMID ENDIF IF(IVAHOO.NE.0) THEN MELVAL=IVAHOO SEGSUP MELVAL ENDIF SEGSUP MCHAML IF (IPCHE1.NE.0) THEN MCHEL1=IPCHE1 C SEGDES MCHEL1 ENDIF SEGSUP MCHELM C FIN 888 CONTINUE notype = MOTYR8 SEGSUP,notype c RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales