12 integer,
parameter,
private :: MAXOUT = 256
13 integer,
parameter,
private :: MAXNAMELEN = 24
14 character(len=20),
parameter,
private :: OUTFILENAME =
"ifstr.out"
19 character(len=MAXNAMELEN) :: keyword(maxout)
20 integer :: vtype(maxout)
23 character(HECMW_NAME_LEN) :: grp_id_name
30 character(len=HECMW_NAME_LEN) :: filename
42 outinfo%grp_id_name =
"ALL"
45 outinfo%on(:) = .false.
46 outinfo%num_items = 44
48 outinfo%keyWord(1) =
"DISP"
50 outinfo%on(1) = .true.
52 outinfo%keyWord(2) =
"REACTION"
55 outinfo%keyWord(3) =
"NSTRAIN"
58 outinfo%keyWord(4) =
"NSTRESS"
60 outinfo%on(4) = .true.
62 outinfo%keyWord(5) =
"NMISES"
64 outinfo%on(5) = .true.
66 outinfo%keyWord(6) =
"ESTRAIN"
69 outinfo%keyWord(7) =
"ESTRESS"
72 outinfo%keyWord(8) =
"EMISES"
75 outinfo%keyWord(9) =
"ISTRAIN"
78 outinfo%keyWord(10) =
"ISTRESS"
79 outinfo%vtype(10) = -3
81 outinfo%keyWord(11) =
"PL_ISTRAIN"
82 outinfo%vtype(11) = -1
84 outinfo%keyWord(12) =
"TH_NSTRAIN"
85 outinfo%vtype(12) = -3
87 outinfo%keyWord(13) =
"TH_ESTRAIN"
88 outinfo%vtype(13) = -3
90 outinfo%keyWord(14) =
"TH_ISTRAIN"
91 outinfo%vtype(14) = -3
93 outinfo%keyWord(15) =
"VEL"
94 outinfo%vtype(15) = -2
96 outinfo%keyWord(16) =
"ACC"
97 outinfo%vtype(16) = -2
99 outinfo%keyWord(17) =
"TEMP"
100 outinfo%vtype(17) = -1
102 outinfo%keyWord(18) =
"ROT"
103 outinfo%vtype(18) = -2
104 outinfo%on(18) = .true.
106 outinfo%keyWord(19) =
"PRINC_NSTRESS"
107 outinfo%vtype(19) = -2
109 outinfo%keyWord(20) =
"PRINC_ESTRESS"
110 outinfo%vtype(20) = -2
112 outinfo%keyWord(21) =
"PRINC_NSTRAIN"
113 outinfo%vtype(21) = -2
115 outinfo%keyWord(22) =
"PRINC_ESTRAIN"
116 outinfo%vtype(22) = -2
118 outinfo%keyWord(23) =
"PRINCV_NSTRESS"
119 outinfo%vtype(23) = -2
121 outinfo%keyWord(24) =
"PRINCV_ESTRESS"
122 outinfo%vtype(24) = -2
124 outinfo%keyWord(25) =
"PRINCV_NSTRAIN"
125 outinfo%vtype(25) = -2
127 outinfo%keyWord(26) =
"PRINCV_ESTRAIN"
128 outinfo%vtype(26) = -2
130 outinfo%keyWord(27) =
"SHELL_LAYER"
131 outinfo%vtype(27) = -1
133 outinfo%keyWord(28) =
"SHELL_SURFACE"
134 outinfo%vtype(28) = -1
136 outinfo%keyWord(29) =
"YIELD_RATIO"
137 outinfo%vtype(29) = -1
139 outinfo%keyWord(30) =
"CONTACT_NFORCE"
140 outinfo%vtype(30) = -2
142 outinfo%keyWord(31) =
"CONTACT_FRICTION"
143 outinfo%vtype(31) = -2
145 outinfo%keyWord(32) =
"CONTACT_RELVEL"
146 outinfo%vtype(32) = -2
148 outinfo%keyWord(33) =
"CONTACT_STATE"
149 outinfo%vtype(33) = -1
151 outinfo%keyWord(34) =
"MATERIAL_ID"
152 outinfo%vtype(34) = -1
154 outinfo%keyWord(35) =
"BEAM_NQM"
155 outinfo%vtype(35) = -5
157 outinfo%keyWord(36) =
"CONTACT_NTRACTION"
158 outinfo%vtype(36) = -2
160 outinfo%keyWord(37) =
"CONTACT_FTRACTION"
161 outinfo%vtype(37) = -2
163 outinfo%keyWord(38) =
"NODE_ID"
164 outinfo%vtype(38) = -1
166 outinfo%keyWord(39) =
"ELEM_ID"
167 outinfo%vtype(39) = -1
169 outinfo%keyWord(40) =
"SECTION_ID"
170 outinfo%vtype(40) = -1
172 outinfo%keyWord(41) =
"NOT ASSIGNED"
173 outinfo%vtype(41) = -1
175 outinfo%keyWord(42) =
"ORIENTATION"
176 outinfo%vtype(42) = -2
178 outinfo%keyWord(43) =
"PL_ESTRAIN"
179 outinfo%vtype(43) = -1
181 outinfo%keyWord(44) =
"ELEMACT"
182 outinfo%vtype(44) = -1
187 integer,
intent(in) :: fnum
188 integer,
intent(in) :: nitem
190 real(kind=kreal),
intent(in) :: outdata(:,:)
192 integer :: i, j, nsize, ncomp
193 if( nitem>outinfo%num_items )
return
194 if( .not. outinfo%on(nitem) )
return
195 nsize =
size( outdata, 1 )
196 ncomp =
size( outdata, 2 )
197 write( fnum,
'(a)' ) trim(outinfo%keyWord(nitem))
199 write( fnum, * ) (outdata(i,j),j=1,ncomp)
205 integer,
intent(in) :: vtype
206 integer,
intent(in) :: ndim
210 else if( vtype==-1 )
then
212 else if( vtype==-2 )
then
214 else if( vtype==-3 )
then
217 else if( vtype==-4 )
then
219 else if( vtype==-5 )
then
230 outctrl%filename= trim(outfilename)
240 outctrl1%filename = outctrl2%filename
241 outctrl1%filenum = outctrl2%filenum
242 outctrl1%frequency = outctrl2%frequency
246 integer,
intent(in) :: cstep
253 integer(kind=kint),
intent(in) :: ctrl
254 character(len=HECMW_NAME_LEN),
intent(out) :: ss
255 integer(kind=kint) :: rcode
256 ss = trim(outfilename)
261 integer(kind=kint),
intent(in) :: ctrl
263 integer(kind=kint),
intent(out) :: islog, res, visual, femap
264 integer(kind=kint) :: rcode, n
265 character(len=HECMW_NAME_LEN) :: ss
266 islog=0; res=0; visual=0; femap=0
275 if( len(trim(ss))>0 )
then
276 outctrl%filename = trim(ss)
278 outctrl%frequency = 1
281 if( n>0 ) outctrl%frequency = n
int fstr_ctrl_get_param_ex(int *ctrl, const char *param_name, const char *value_list, int *necessity, char *type, void *val)
This module manages step information.
subroutine fstr_init_outctrl(outctrl)
subroutine initoutinfo(outinfo)
subroutine fstr_ctrl_get_filename(ctrl, ss)
integer function n_comp_valtype(vtype, ndim)
subroutine fstr_copy_outctrl(outctrl1, outctrl2)
Copy output control except outinfo, which may already hold !OUTPUT_RES / !OUTPUT_VIS settings.
subroutine write_outinfo(fnum, nitem, outinfo, outdata)
subroutine fstr_ctrl_get_output(ctrl, outctrl, islog, res, visual, femap)
logical function fstr_output_active(cstep, outctrl)
output control such as output filename, output frequency etc.