1 : C FEFP SOURCE PV 09/03/12 21:22:42 6325 2 : *--------------------------------------------------------------------- 3 : * Integration of FeFp models 4 : *--------------------------------------------------------------------- 5 : c SUBROUTINE FEFP 6 : c SUBROUTINE FEFP1(IPMODL,IPCHE1,IPCHE2,IPCHE3,IPCAR, 7 : c . IPCHE7,IPCHE8,IPCHE9,IPRIGI, 8 : c . PRECIS,NITMAX,NUPDATE) 9 : c SUBROUTINE FEFP2(MATE,INPLAS,MELE,MELEME,MINTE,IMATRI, 10 : c . NBELEM,NBPTEL,NBNN,LRE,MFR, 11 : c . IVADESP,IVADPI,IVARI,IVAMAT, 12 : c . IVASTF,IVARIF,IVADPF,LHOOK,IRIGE7, 13 : c . NDEP,NDEF,NSTRS,NVARI,NMATT,PRECIS,NITMAX,NUPDATE, 14 : c . KERRE) 15 : c subroutine apf_driver_fefp(BE,VARF,SIGF,DDHOOK, 16 : c . NDEF,NVARI,NSTRS,LHOOK, 17 : c . XMAT,xdensi,PRECIS,NITMAX,KERRE, 18 : c . nescri,nues,nmodel,nnumer,deltax, 19 : c . level,kmax,iaugla,caugla) 20 : c subroutine pushf35(a,f,a1) 21 : c subroutine prin35(b,bpr,qen,q6,q6t) 22 : c subroutine eig35(v,d,rot) 23 : *--------------------------------------------------------------------- 24 : *--------------------------------------------------------------------- 25 : *--------------------------------------------------------------------- 26 : SUBROUTINE FEFP 27 : *--------------------------------------------------------------------- 28 : * Integration of FeFp models 29 : *--------------------------------------------------------------------- 30 : * SYNTAXE= 31 : * SIGF VARF DEPPFI RI1 = 'ECFEFP' MODL DEPPL0 VAR0 ZDEPT CARAC 32 : * (PRECIS) (NITMAX) (NUPDATE); 33 : * IN= 34 : * MMODEL | MODL OBJET MODELE 35 : * MCHAML | DEPPL0 DEFORMATIONS INELASTIQUES AU DEBUT DU PAS 36 : * MCHAML | VAR0 VARIABLES INTERNES AU DEBUT DU PAS 37 : * CHAMPOINT | ZDEPT deplacements entre conf de depart et arrivee 38 : * MCHAML | CARAC CARACTERISTIQUES GEOMETRIQUES 39 : * FLOTTANT | PRECIS PRECISION POUR ITERATIONS INTERNES 40 : * INTEGER | NITMAX maximum number of iterations at local level 41 : * INTEGER | NUPDATE =1 UPDATE ; =0 TOTAL - LAGRANGIAN 42 : * 43 : * OUT= 44 : * MCHAML | SIGF CONTRAINTES A LA FIN DU PAS 45 : * MCHAML | VARF VARIABLES INTERNES A LA FIN DU PAS 46 : * MCHAML | DEPIN DEFORMATIONS INELASTIQUES A LA FIN DU PAS 47 : * MRIGI | RI1 CONSISTENT TANGENT MATRIX 48 : *--------------------------------------------------------------------- 49 : IMPLICIT INTEGER(I-N) 50 : IMPLICIT REAL*8(A-H,O-Z) 51 : 52 : -INC CCOPTIO 53 : -INC SMCHAML 54 : 55 : ************************ 56 : * Lectura de datos 57 : ************************ 58 : * modelo 58 : CALL LIROBJ('MMODEL',IPMODL,1,IRT) 59 : IF(IRT.EQ.0) then 60 : write(*,*) ' No hay modelo' 61 : RETURN 62 : ENDIF 63 : 64 : * deformacion plastica inicial 64 : CALL LIROBJ('MCHAML',IPCHE1,1,IRT) 65 : IF(IRT.EQ.0) then 66 : write(*,*) ' No hay deformacion plastica inicial' 67 : RETURN 68 : ENDIF 69 : MCHELM=IPCHE1 70 : SEGACT MCHELM 71 : c Usa L1, N1, N3 72 : IF(MCHELM.TITCHE.NE.'DEFORMATIONS INELASTIQUES')THEN 73 : MOTERR(1:8)='DEFINELA' 73 : CALL ERREUR(109) 74 : SEGDES MCHELM 75 : RETURN 76 : ENDIF 77 : SEGDES MCHELM 78 : 79 : * variables internas iniciales 79 : CALL LIROBJ('MCHAML',IPCHE2,1,IRT) 80 : IF(IRT.EQ.0) then 81 : write(*,*) ' No hay variables internas iniciales' 82 : RETURN 83 : ENDIF 84 : MCHELM=IPCHE2 85 : SEGACT MCHELM 86 : IF(TITCHE.NE.'VARIABLES INTERNES')THEN 87 : MOTERR(1:8)='VARINTER' 87 : CALL ERREUR(109) 88 : SEGDES MCHELM 89 : RETURN 90 : ENDIF 91 : SEGDES MCHELM 92 : 93 : * incremento de desplazamientos 93 : CALL LIROBJ('CHPOINT',IPCHP1,1,IRT) 94 : IF(IRT.EQ.0) then 95 : write(*,*) ' No hay incremento de desplazamientos' 96 : RETURN 97 : ENDIF 98 : * paso de campo nodal a campo elemental en nodos (ct=1) 98 : CALL CHAME1(0,IPMODL,IPCHP1,' ',IPCHE3,1) 99 : 100 : * caracteristicas materiales y geometricas 100 : CALL LIROBJ('MCHAML',IPCAR,1,IRT) 101 : IF(IRT.EQ.0) then 102 : write(*,*) ' No hay caracteristicas materiales' 103 : RETURN 104 : ENDIF 105 : MCHELM=IPCAR 106 : SEGACT MCHELM 107 : IF(TITCHE.NE.'CARACTERISTIQUES')THEN 108 : MOTERR(1:8)='CARACTER' 108 : CALL ERREUR(109) 109 : SEGDES MCHELM 110 : RETURN 111 : ENDIF 112 : SEGDES MCHELM 113 : 114 : * precision para iteraciones internas 114 : CALL LIRREE(PRECIS,0,IRT) 115 : IF(IRT.EQ.0) PRECIS=1.D-10 116 : 117 : * num max de iteraciones internas 117 : CALL LIRENT(NITMAX,0,IRT) 118 : IF (IRT.EQ.0) NITMAX=25 119 : 120 : * Update or total (default) lagrangian formulation 120 : CALL LIRENT(NUPDATE,0,IRT) 121 : IF (IRT.EQ.0) NUPDATE=0 122 : 123 : * deformacion plana o axisimetrico 124 : IF ((IFOUR.gt.0).or.(IFOUR.lt.-1)) then 125 : write(*,*) ' Formulacion no disponible' 126 : return 127 : endif 128 : 129 : ************************ 130 : * calcular 131 : ************************ 131 : CALL FEFP1(IPMODL,IPCHE1,IPCHE2,IPCHE3,IPCAR, 132 : . IPCHE7,IPCHE8,IPCHE9,IPRIGI, 133 : . PRECIS,NITMAX,NUPDATE) 134 : 135 : ************************ 136 : * escribir resultados 137 : ************************ 138 : 139 : IF(IERR.EQ.0)THEN 139 : CALL ECROBJ('MCHAML',IPCHE9) 139 : CALL ECROBJ('MCHAML',IPCHE8) 139 : CALL ECROBJ('MCHAML',IPCHE7) 139 : CALL ECROBJ('RIGIDITE',IPRIGI) 140 : ENDIF 141 : 142 : * borrar los desplazamientos en campo elemental 142 : CALL DTCHAM(IPCHE3) 143 : RETURN 144 : END 145 : 146 : 147 : 148 : 149 :
© Cast3M 2003 - All rights reserved.
Disclaimer