10 integer,
parameter,
private :: MAXOUT = 256
11 integer,
parameter,
private :: MAXNAMELEN = 24
12 character(len=20),
parameter,
private :: OUTFILENAME =
"ifstr.out"
14 include
'fstr_ctrl_util_f.inc'
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"
44 outinfo%on(:) = .false.
45 outinfo%num_items = 43
47 outinfo%keyWord(1) =
"DISP"
49 outinfo%on(1) = .true.
51 outinfo%keyWord(2) =
"REACTION"
54 outinfo%keyWord(3) =
"NSTRAIN"
57 outinfo%keyWord(4) =
"NSTRESS"
59 outinfo%on(4) = .true.
61 outinfo%keyWord(5) =
"NMISES"
63 outinfo%on(5) = .true.
65 outinfo%keyWord(6) =
"ESTRAIN"
68 outinfo%keyWord(7) =
"ESTRESS"
71 outinfo%keyWord(8) =
"EMISES"
74 outinfo%keyWord(9) =
"ISTRAIN"
77 outinfo%keyWord(10) =
"ISTRESS"
78 outinfo%vtype(10) = -3
80 outinfo%keyWord(11) =
"PL_ISTRAIN"
81 outinfo%vtype(11) = -1
83 outinfo%keyWord(12) =
"TH_NSTRAIN"
84 outinfo%vtype(12) = -3
86 outinfo%keyWord(13) =
"TH_ESTRAIN"
87 outinfo%vtype(13) = -3
89 outinfo%keyWord(14) =
"TH_ISTRAIN"
90 outinfo%vtype(14) = -3
92 outinfo%keyWord(15) =
"VEL"
93 outinfo%vtype(15) = -2
95 outinfo%keyWord(16) =
"ACC"
96 outinfo%vtype(16) = -2
98 outinfo%keyWord(17) =
"TEMP"
99 outinfo%vtype(17) = -1
101 outinfo%keyWord(18) =
"ROT"
102 outinfo%vtype(18) = -2
103 outinfo%on(18) = .true.
105 outinfo%keyWord(19) =
"PRINC_NSTRESS"
106 outinfo%vtype(19) = -2
108 outinfo%keyWord(20) =
"PRINC_ESTRESS"
109 outinfo%vtype(20) = -2
111 outinfo%keyWord(21) =
"PRINC_NSTRAIN"
112 outinfo%vtype(21) = -2
114 outinfo%keyWord(22) =
"PRINC_ESTRAIN"
115 outinfo%vtype(22) = -2
117 outinfo%keyWord(23) =
"PRINCV_NSTRESS"
118 outinfo%vtype(23) = -2
120 outinfo%keyWord(24) =
"PRINCV_ESTRESS"
121 outinfo%vtype(24) = -2
123 outinfo%keyWord(25) =
"PRINCV_NSTRAIN"
124 outinfo%vtype(25) = -2
126 outinfo%keyWord(26) =
"PRINCV_ESTRAIN"
127 outinfo%vtype(26) = -2
129 outinfo%keyWord(27) =
"SHELL_LAYER"
130 outinfo%vtype(27) = -1
132 outinfo%keyWord(28) =
"SHELL_SURFACE"
133 outinfo%vtype(28) = -1
135 outinfo%keyWord(29) =
"YIELD_RATIO"
136 outinfo%vtype(29) = -1
138 outinfo%keyWord(30) =
"CONTACT_NFORCE"
139 outinfo%vtype(30) = -2
141 outinfo%keyWord(31) =
"CONTACT_FRICTION"
142 outinfo%vtype(31) = -2
144 outinfo%keyWord(32) =
"CONTACT_RELVEL"
145 outinfo%vtype(32) = -2
147 outinfo%keyWord(33) =
"CONTACT_STATE"
148 outinfo%vtype(33) = -1
150 outinfo%keyWord(34) =
"MATERIAL_ID"
151 outinfo%vtype(34) = -1
153 outinfo%keyWord(35) =
"BEAM_NQM"
154 outinfo%vtype(35) = -5
156 outinfo%keyWord(36) =
"CONTACT_NTRACTION"
157 outinfo%vtype(36) = -2
159 outinfo%keyWord(37) =
"CONTACT_FTRACTION"
160 outinfo%vtype(37) = -2
162 outinfo%keyWord(38) =
"NODE_ID"
163 outinfo%vtype(38) = -1
165 outinfo%keyWord(39) =
"ELEM_ID"
166 outinfo%vtype(39) = -1
168 outinfo%keyWord(40) =
"SECTION_ID"
169 outinfo%vtype(40) = -1
171 outinfo%keyWord(41) =
"NOT ASSIGNED"
172 outinfo%vtype(41) = -1
174 outinfo%keyWord(42) =
"NOT ASSIGNED"
175 outinfo%vtype(42) = -1
177 outinfo%keyWord(43) =
"PL_ESTRAIN"
178 outinfo%vtype(43) = -1
183 integer,
intent(in) :: fnum
184 integer,
intent(in) :: nitem
186 real(kind=kreal),
intent(in) :: outdata(:,:)
188 integer :: i, j, nsize, ncomp
189 if( nitem>outinfo%num_items )
return
190 if( .not. outinfo%on(nitem) )
return
191 nsize =
size( outdata, 1 )
192 ncomp =
size( outdata, 2 )
193 write( fnum,
'(a)' ) trim(outinfo%keyWord(nitem))
195 write( fnum, * ) (outdata(i,j),j=1,ncomp)
201 integer,
intent(in) :: vtype
202 integer,
intent(in) :: ndim
206 else if( vtype==-1 )
then
208 else if( vtype==-2 )
then
210 else if( vtype==-3 )
then
213 else if( vtype==-4 )
then
215 else if( vtype==-5 )
then
226 outctrl%filename= trim(outfilename)
235 outctrl1%filename = outctrl2%filename
236 outctrl1%filenum = outctrl2%filenum
237 outctrl1%frequency = outctrl2%frequency
241 integer,
intent(in) :: cstep
248 integer(kind=kint),
intent(in) :: ctrl
249 character(len=HECMW_NAME_LEN),
intent(out) :: ss
250 integer(kind=kint) :: rcode
251 ss = trim(outfilename)
256 integer(kind=kint),
intent(in) :: ctrl
258 integer(kind=kint),
intent(out) :: islog, res, visual, femap
259 integer(kind=kint) :: rcode, n
260 character(len=HECMW_NAME_LEN) :: ss
261 islog=0; res=0; visual=0; femap=0
270 if( len(trim(ss))>0 )
then
271 outctrl%filename = trim(ss)
273 outctrl%frequency = 1
276 if( n>0 ) outctrl%frequency = n
280 integer,
intent(in) :: nfile
283 write( nfile, *) trim(outctrl%filename),outctrl%filenum,outctrl%frequency,outctrl%outinfo%num_items
284 do i=1,outctrl%outinfo%num_items
285 write( nfile, *) trim(outctrl%outinfo%keyWord(i)),outctrl%outinfo%on(i),outctrl%outinfo%vtype(i)