39
40
41
42 USE visc_param_mod
47
48
49
50#include "implicit_f.inc"
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65#include "units_c.inc"
66#include "com04_c.inc"
67
68
69
70 INTEGER ,INTENT(IN) :: IVISC,MAT_ID
71 TYPE (VISC_PARAM_) ,INTENT(INOUT) :: VISC
72 TYPE (UNIT_TYPE_) ,INTENT(IN) ::UNITAB
73 TYPE(SUBMODEL_DATA) ,DIMENSION(NSUBMOD), INTENT(IN) :: LSUBMODEL
74
75
76
77 INTEGER I,NUPARAM,NIPARAM,NUVAR,NPRONY,IMOD,IVISC_FLAG,FORM
78 INTEGER :: FctID_G,FctID_K,ITAB,ISHAPE,
79 . FctID_Gs,FctID_Ks,FctID_Gl,FctID_Kl
81
82 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
83
84 is_encrypted = .false.
85 is_available = .false.
86
88
89 visc%ILAW = ivisc
90
91
92 gama(1:100) = zero
93 tau(1:100) = zero
94
95
96 CALL hm_get_intv (
'Model_Order' ,nprony ,is_available,lsubmodel)
97 CALL hm_get_intv (
'FORM' ,form ,is_available,lsubmodel)
98 CALL hm_get_intv (
'FLAG_VISC' ,ivisc_flag ,is_available,lsubmodel)
99
100 IF(ivisc_flag == 0) ivisc_flag = 1
101 IF(form == 0) form = 1
102 IF (nprony == 0)
CALL ancmsg(msgid=2026,msgtype=msgerror,
103 . anmode=aninfo_blind_1,i1=mat_id)
104
105
106
107
108
109 IF (nprony > 0) THEN
110 DO i=1,nprony
113 ENDDO
114 ENDIF
115
116
117
118 nuvar = (1 + nprony)*6
119 niparam = 3
120 nuparam = 2*nprony
121 ALLOCATE (visc%UPARAM(nuparam))
122 ALLOCATE (visc%IPARAM(niparam))
123 visc%NUVAR = nuvar
124 visc%NUPARAM = nuparam
125 visc%NIPARAM = niparam
126 visc%IPARAM(1) = nprony
127 visc%IPARAM(2) = form
128 visc%IPARAM(3) = ivisc_flag
129 DO i=1,nprony
130 visc%UPARAM(i) = gama(i)
131 visc%UPARAM(nprony + i) = tau(i)
132 ENDDO
133
134
135
136 IF (is_encrypted)THEN
137 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
138 ELSE
139 IF(nprony > 0) THEN
140 WRITE(iout,1000)
141 DO i=1,nprony
142 WRITE(iout,1100) i
143 WRITE(iout,1200) gama(i),tau(i)
144 ENDDO
145 write(iout,1300) ivisc_flag
146 write(iout,1400) form
147 ENDIF
148 ENDIF
149
150 1000 FORMAT(
151 & 5x,' PRONY SERIES MODEL :' ,/,
152 & 5x,' --------------------- ' ,/)
153
154 1100 FORMAT(
155 & 5x,'ORDER OF PRONY SERIES . . . . . . . . . . . . . . . . . . . . . . . . =',i10/)
156 1200 FORMAT(
157 & 5x,'SHEAR RELAXATION RATIO . . . . . . . . . . . . . . . . . . . . . . .= '1pg20.13/
158 & 5x,'RELAXATION TIME . . . . . . . . . . . . . . . . . . . . . . . . . . .=',1pg20.13)
159 1300 FORMAT(/
160 & 5x,'VISCOUS STRESS FORMULATION . . . . . . . . . . . . . . . . . . . . . . =',i8 /
161 &10x,' 1 : TOTAL VISCOUS STRESS '/,
162 &10x,' 2 : DEVIATORIC VISCOUS STRESS IS DEVIATORIC' )
163 1400 FORMAT(/
164 & 5x,'FLAG FOR VISCOUS RIGIDITY . . . . . . . . . . . . . . . . . . . . . . =',i8 /
165 &10x,' 1 : ADDED VISCOSITY '/,
166 &10x,' 2 : SUBSTRUCTED VISCOSITY' )
167 RETURN
subroutine hm_get_float_array_index(name, rval, index, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)