OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_visc_lprony.F File Reference
#include "implicit_f.inc"
#include "units_c.inc"
#include "com04_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_visc_lprony (visc, ivisc, mat_id, unitab, lsubmodel)

Function/Subroutine Documentation

◆ hm_read_visc_lprony()

subroutine hm_read_visc_lprony ( type (visc_param_), intent(inout) visc,
integer, intent(in) ivisc,
integer, intent(in) mat_id,
type (unit_type_), intent(in) unitab,
type(submodel_data), dimension(nsubmod), intent(in) lsubmodel )

Definition at line 37 of file hm_read_visc_lprony.F.

39C-----------------------------------------------
40C M o d u l e s
41C-----------------------------------------------
42 USE visc_param_mod
43 USE unitab_mod
44 USE message_mod
45 USE submodel_mod
47C-----------------------------------------------
48C I m p l i c i t T y p e s
49C-----------------------------------------------
50#include "implicit_f.inc"
51C----------+---------+---+---+--------------------------------------------
52C VAR | SIZE |TYP| RW| DEFINITION
53C----------+---------+---+---+--------------------------------------------
54C IIN | 1 | I | R | INPUT FILE UNIT (D00 file)
55C IOUT | 1 | I | R | OUTPUT FILE UNIT (L00 file)
56C UPARAM | NUPARAM | F | W | USER FAILURE MODEL PARAMETER ARRAY
57C MAXUPARAM| 1 | I | R | MAXIMUM SIZE OF UPARAM
58C NUPARAM | 1 | I | W | SIZE OF UPARAM =< MAXUPARAM
59C NUVAR | 1 | I | W | NUMBER OF USER VARIABLES
60C----------+---------+---+---+--------------------------------------------
61C IFUNC | NFUNC | I | W | FUNCTION NUMBER ARRAY
62C MAXFUNC | 1 | I | R | MAXIMUM SIZE OF IFUNC
63C NFUNC | 1 | I | W | SIZE OF IFUNC =< MAXFUNC
64C----------+---------+---+---+--------------------------------------------
65#include "units_c.inc"
66#include "com04_c.inc"
67C-----------------------------------------------
68C D u m m y A r g u m e n t s
69C-----------------------------------------------
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
74C-----------------------------------------------
75C L o c a l V a r i a b l e s
76C-----------------------------------------------
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
80 my_real :: gama(100),tau(100)
81C
82 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
83C=======================================================================
84 is_encrypted = .false.
85 is_available = .false.
86
87 CALL hm_option_is_encrypted(is_encrypted)
88C======================================
89 visc%ILAW = ivisc
90C
91 ! initialization
92 gama(1:100) = zero
93 tau(1:100) = zero
94C
95 ! 1st Card - Flags and prony order
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)
99C
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 ! Classical input
106 ! =======================================================================================
107 ! -> Itab = 0 ! classical input of prony series
108
109 IF (nprony > 0) THEN
110 DO i=1,nprony
111 CALL hm_get_float_array_index('GAMAI' ,gama(i) ,i,is_available,lsubmodel,unitab)
112 CALL hm_get_float_array_index('TAUI' ,tau(i) ,i,is_available,lsubmodel,unitab)
113 ENDDO
114 ENDIF
115c-------------------------------------------------
116c Storing parameters in UPARAM / IPARAM tables
117c-------------------------------------------------
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
133c-----------------------------------------------------------------------
134c Output
135c-----------------------------------------------------------------------
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
149C-----------
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
#define my_real
Definition cppsort.cpp:32
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)
Definition message.F:889