31 integer(kind=kint),
parameter ::
kyes = 1
32 integer(kind=kint),
parameter ::
kno = 0
33 integer(kind=kint),
parameter ::
kon = 1
34 integer(kind=kint),
parameter ::
koff = 0
40 integer(kind=kint),
parameter ::
kstheat = 3
47 integer(kind=kint),
parameter ::
ksmcg = 1
118 integer(kind=kint),
parameter ::
ilog = 16
119 integer(kind=kint),
parameter ::
ista = 17
120 integer(kind=kint),
parameter ::
iutb = 18
121 integer(kind=kint),
parameter ::
imsg = 51
122 integer(kind=kint),
parameter ::
idbg = 52
123 integer(kind=kint),
parameter ::
ifvs = 53
124 integer(kind=kint),
parameter ::
ineu = 54
125 integer(kind=kint),
parameter ::
iresout = 100
133 character(len=HECMW_FILENAME_LEN) :: cond_name
134 integer :: node_elem = 0
136 integer,
pointer :: intval(:) => null()
137 real(kind=kreal),
pointer :: realval(:) => null()
143 integer(kind=kint) :: solution_type=0
144 integer(kind=kint) :: solver_method=0
145 integer(kind=kint) :: nlsolver_method=0
146 logical :: nlgeom=.false.
149 integer(kind=kint) :: analysis_n=0
150 real(kind=kreal),
pointer :: dtime(:)=>null()
151 real(kind=kreal),
pointer :: etime(:)=>null()
152 real(kind=kreal),
pointer :: dtmin(:)=>null()
153 real(kind=kreal),
pointer :: delmax(:)=>null()
154 integer(kind=kint),
pointer:: itmax(:)=>null()
155 real(kind=kreal),
pointer :: eps(:)=>null()
156 real(kind=kreal) :: ref_temp=0.d0
157 integer(kind=kint) :: timepoint_id=0
160 integer(kind=kint) :: fg_echo=
koff
161 integer(kind=kint) :: fg_result=
koff
162 integer(kind=kint) :: fg_visual=
koff
165 integer(kind=kint) :: fg_neutral=
koff
166 integer(kind=kint) :: fg_irres=
kno
167 integer(kind=kint) :: fg_iwres=
kno
168 integer(kind=kint) :: nrres=0
169 integer(kind=kint) :: nprint=0
172 integer(kind=kint) :: n_node=0
173 integer(kind=kint) :: nn_internal=0
174 integer(kind=kint),
pointer :: global_local_id(:,:)=>null()
177 integer( kind=kint ) :: fg_couple=0
178 integer( kind=kint ) :: fg_couple_type=0
179 integer( kind=kint ) :: fg_couple_first=0
180 integer( kind=kint ) :: fg_couple_window=0
183 integer( kind=kint ) :: restart_out_type=0
184 integer( kind=kint ) :: restart_version=0
187 integer( kind=kint ) :: contact_algo=0
188 integer( kind=kint ) :: augiter=0
189 logical :: fric_cone_follow=.false.
190 real( kind=kreal ) :: eps_fric_band=0.d0
191 type(tcontactparam),
pointer :: contactparam(:)=>null()
192 type(tcontactinterference),
pointer :: contact_if(:)=>null()
204 real(kind=kreal),
pointer :: stress(:) => null()
205 real(kind=kreal),
pointer :: strain(:) => null()
206 real(kind=kreal),
pointer :: mises(:) => null()
208 real(kind=kreal),
pointer :: pstress(:) => null()
209 real(kind=kreal),
pointer :: pstrain(:) => null()
210 real(kind=kreal),
pointer :: pstress_vect(:,:) => null()
211 real(kind=kreal),
pointer :: pstrain_vect(:,:) => null()
213 real(kind=kreal),
pointer :: estress(:) => null()
214 real(kind=kreal),
pointer :: estrain(:) => null()
215 real(kind=kreal),
pointer :: emises(:) => null()
216 real(kind=kreal),
pointer :: eplstrain(:) => null()
218 real(kind=kreal),
pointer :: epstress(:) => null()
219 real(kind=kreal),
pointer :: epstrain(:) => null()
220 real(kind=kreal),
pointer :: epstress_vect(:,:) => null()
221 real(kind=kreal),
pointer :: epstrain_vect(:,:) => null()
222 real(kind=kreal),
pointer :: enqm(:) => null()
231 integer(kind=kint) :: file_type=0
232 integer(kind=kint) :: statictype=0
233 integer(kind=kint) :: nstep_tot=0
239 integer(kind=kint) :: boundary_ngrp_tot=0
240 integer(kind=kint),
pointer :: boundary_ngrp_grpid (:) =>null()
241 integer(kind=kint),
pointer :: boundary_ngrp_id (:) =>null()
242 integer(kind=kint),
pointer :: boundary_ngrp_type (:) =>null()
243 integer(kind=kint),
pointer :: boundary_ngrp_amp (:) =>null()
244 real(kind=kreal),
pointer :: boundary_ngrp_val(:) =>null()
245 integer(kind=kint),
pointer :: boundary_ngrp_istot (:) =>null()
246 integer(kind=kint) :: boundary_ngrp_rot=0
247 integer(kind=kint),
pointer :: boundary_ngrp_rotid (:) =>null()
248 integer(kind=kint),
pointer :: boundary_ngrp_centerid (:) =>null()
251 integer(kind=kint) :: velocity_type=0
252 integer(kind=kint) :: velocity_ngrp_tot=0
253 integer(kind=kint),
pointer :: velocity_ngrp_grpid (:) =>null()
254 integer(kind=kint),
pointer :: velocity_ngrp_id (:) =>null()
255 integer(kind=kint),
pointer :: velocity_ngrp_type (:) =>null()
256 integer(kind=kint),
pointer :: velocity_ngrp_amp (:) =>null()
257 real(kind=kreal),
pointer :: velocity_ngrp_val(:) =>null()
258 integer(kind=kint) :: velocity_ngrp_rot=0
259 integer(kind=kint),
pointer :: velocity_ngrp_rotid (:) =>null()
260 integer(kind=kint),
pointer :: velocity_ngrp_centerid (:) =>null()
263 integer(kind=kint) :: acceleration_type=0
264 integer(kind=kint) :: acceleration_ngrp_tot=0
265 integer(kind=kint),
pointer :: acceleration_ngrp_grpid (:) =>null()
266 integer(kind=kint),
pointer :: acceleration_ngrp_id (:) =>null()
267 integer(kind=kint),
pointer :: acceleration_ngrp_type (:) =>null()
268 integer(kind=kint),
pointer :: acceleration_ngrp_amp (:) =>null()
269 real(kind=kreal),
pointer :: acceleration_ngrp_val(:) =>null()
272 integer(kind=kint) :: cload_ngrp_tot=0
273 integer(kind=kint),
pointer :: cload_ngrp_grpid (:) =>null()
274 integer(kind=kint),
pointer :: cload_ngrp_id (:) =>null()
275 integer(kind=kint),
pointer :: cload_ngrp_dof (:) =>null()
276 integer(kind=kint),
pointer :: cload_ngrp_amp (:) =>null()
277 real(kind=kreal),
pointer :: cload_ngrp_val(:) =>null()
278 integer(kind=kint) :: cload_ngrp_rot=0
279 integer(kind=kint),
pointer :: cload_ngrp_rotid (:) =>null()
280 integer(kind=kint),
pointer :: cload_ngrp_centerid (:) =>null()
283 integer(kind=kint) :: dload_ngrp_tot=0
284 integer(kind=kint) :: dload_follow=0
285 integer(kind=kint),
pointer :: dload_ngrp_grpid (:) =>null()
286 integer(kind=kint),
pointer :: dload_ngrp_id (:) =>null()
287 integer(kind=kint),
pointer :: dload_ngrp_lid (:) =>null()
288 integer(kind=kint),
pointer :: dload_ngrp_amp (:) =>null()
289 real(kind=kreal),
pointer :: dload_ngrp_params(:,:) =>null()
292 integer(kind=kint) :: temp_ngrp_tot=0
293 integer(kind=kint) :: temp_irres=0
294 integer(kind=kint) :: temp_tstep=0
295 integer(kind=kint) :: temp_interval=0
296 integer(kind=kint) :: temp_rtype=0
297 real(kind=kreal) :: temp_factor=0.d0
298 integer(kind=kint),
pointer :: temp_ngrp_grpid (:) =>null()
299 integer(kind=kint),
pointer :: temp_ngrp_id (:) =>null()
300 real(kind=kreal),
pointer :: temp_ngrp_val(:) =>null()
303 integer(kind=kint) :: spring_ngrp_tot=0
304 integer(kind=kint),
pointer :: spring_ngrp_grpid (:) =>null()
305 integer(kind=kint),
pointer :: spring_ngrp_id (:) =>null()
306 integer(kind=kint),
pointer :: spring_ngrp_dof (:) =>null()
307 integer(kind=kint),
pointer :: spring_ngrp_amp (:) =>null()
308 real(kind=kreal),
pointer :: spring_ngrp_val(:) =>null()
309 integer(kind=kint),
pointer :: spring_incremental (:) =>null()
315 integer( kind=kint ) :: couple_ngrp_tot=0
316 integer( kind=kint ),
pointer :: couple_ngrp_id(:) =>null()
319 integer(kind=kint) :: maxn_gauss=0
321 real(kind=kreal),
pointer :: stress(:) =>null()
322 real(kind=kreal),
pointer :: strain(:) =>null()
323 real(kind=kreal),
pointer :: mises(:) =>null()
325 real(kind=kreal),
pointer :: pstress(:) =>null()
326 real(kind=kreal),
pointer :: pstrain(:) =>null()
327 real(kind=kreal),
pointer :: pstress_vect(:,:) =>null()
328 real(kind=kreal),
pointer :: pstrain_vect(:,:) =>null()
330 real(kind=kreal),
pointer :: estress(:) =>null()
331 real(kind=kreal),
pointer :: estrain(:) =>null()
332 real(kind=kreal),
pointer :: emises(:) =>null()
333 real(kind=kreal),
pointer :: eplstrain(:) =>null()
335 real(kind=kreal),
pointer :: epstress(:) =>null()
336 real(kind=kreal),
pointer :: epstrain(:) =>null()
337 real(kind=kreal),
pointer :: epstress_vect(:,:) =>null()
338 real(kind=kreal),
pointer :: epstrain_vect(:,:) =>null()
340 real(kind=kreal),
pointer :: tnstrain(:) =>null()
341 real(kind=kreal),
pointer :: testrain(:) =>null()
343 real(kind=kreal),
pointer :: yield_ratio(:) =>null()
345 real(kind=kreal),
pointer :: enqm(:) =>null()
346 real(kind=kreal),
pointer :: reaction(:) =>null()
348 real(kind=kreal),
pointer :: cont_nforce(:) =>null()
349 real(kind=kreal),
pointer :: cont_fric(:) =>null()
350 real(kind=kreal),
pointer :: cont_relvel(:) =>null()
351 real(kind=kreal),
pointer :: cont_state(:) =>null()
352 integer(kind=kint),
pointer :: cont_sgrp_id(:) =>null()
353 real(kind=kreal),
pointer :: cont_area(:) =>null()
354 real(kind=kreal),
pointer :: cont_ntrac(:) =>null()
355 real(kind=kreal),
pointer :: cont_ftrac(:) =>null()
356 real(kind=kreal),
pointer :: embed_nforce(:) =>null()
363 integer(kind=kint) :: restart_nout=0
366 integer(kind=kint) :: restart_nin=0
369 integer(kind=kint) :: max_lyr=0
370 integer(kind=kint) :: is_33shell=0
371 integer(kind=kint) :: is_33beam=0
372 integer(kind=kint) :: is_heat=0
373 integer(kind=kint) :: max_ncon_stf=0
374 integer(kind=kint) :: max_ncon=0
375 integer(kind=kint),
pointer :: is_rot(:) => null()
376 integer(kind=kint) :: elemopt361=0
377 logical :: is_smoothing_active=.false.
378 real(kind=kreal) :: factor(2)=0.d0
381 integer(kind=kint) :: nrstat_i(10)=0
382 real(kind=kreal) :: nrstat_r(10)=0.d0
383 integer(kind=kint) :: autoinc_stat=0
384 integer(kind=kint) :: cutback_stat=0
386 real(kind=kreal),
pointer :: gl(:) => null()
387 real(kind=kreal),
pointer :: gl0(:) => null()
388 real(kind=kreal),
pointer :: eforce(:) => null()
389 real(kind=kreal),
pointer :: qforce(:) => null()
390 real(kind=kreal),
pointer :: qforce_bak(:) => null()
391 real(kind=kreal),
pointer :: dforce(:) => null()
392 real(kind=kreal),
pointer :: unode(:) => null()
393 real(kind=kreal),
pointer :: unode_bak(:) => null()
394 real(kind=kreal),
pointer :: dunode(:) => null()
395 real(kind=kreal),
pointer :: ddunode(:) => null()
396 logical :: has_finite_rotation_kinematics=.false.
397 logical :: finite_rotation_state_ready=.false.
398 integer(kind=kint),
pointer :: shell_node_mode(:) => null()
399 integer(kind=kint),
pointer :: shell_rot_state(:) => null()
400 real(kind=kreal),
pointer :: shell_ref_triad(:) => null()
401 real(kind=kreal),
pointer :: shell_triad(:) => null()
402 real(kind=kreal),
pointer :: shell_triad_bak(:) => null()
403 real(kind=kreal),
pointer :: shell_dtriad(:) => null()
404 real(kind=kreal),
pointer :: shell_drill(:) => null()
405 real(kind=kreal),
pointer :: shell_drill_bak(:) => null()
406 real(kind=kreal),
pointer :: shell_ddrill(:) => null()
407 real(kind=kreal),
pointer :: temperature(:)=> null()
408 real(kind=kreal),
pointer :: temp_bak(:) => null()
409 real(kind=kreal),
pointer :: last_temp(:) => null()
412 type( tmaterial ),
pointer :: materials(:) =>null()
413 integer :: n_contacts=0
415 integer :: n_embeds=0
417 integer :: n_fix_mpc=0
418 real(kind=kreal),
pointer :: mpc_const(:) =>null()
428 real(kind=kreal),
pointer :: unode_bkup(:) => null()
429 real(kind=kreal),
pointer :: qforce_bkup(:) => null()
430 real(kind=kreal),
pointer :: dforce_bkup(:) => null()
431 real(kind=kreal),
pointer :: last_temp_bkup(:) => null()
432 real(kind=kreal),
pointer :: shell_triad_bkup(:) => null()
433 real(kind=kreal),
pointer :: shell_drill_bkup(:) => null()
434 type(
telement ),
pointer :: elements_bkup(:) =>null()
435 type(
tcontact ),
pointer :: contacts_bkup(:) =>null()
436 type(
tcontact ),
pointer :: embeds_bkup(:) =>null()
442 integer(kind=kint) :: is_steady=0
443 real(kind=kreal) :: beta=0.d0
444 logical :: is_iter_max_limit=.false.
447 integer(kind=kint) :: steptot=0
448 integer(kind=kint) :: restart_nout=0
449 real(kind=kreal),
pointer :: step_dltime(:)=>null(), step_eetime(:)=>null()
450 real(kind=kreal),
pointer :: step_delmin(:)=>null(), step_delmax(:)=>null()
451 integer(kind=kint) :: timepoint_id=0
454 integer(kind=kint) :: materialtot=0
455 integer(kind=kint),
pointer :: rhotab(:)=>null(), cptab(:)=>null(), condtab(:)=>null()
456 real(kind=kreal),
pointer :: rho(:,:)=>null(), rhotemp(:,:)=>null()
457 real(kind=kreal),
pointer :: cp(:,:)=>null(), cptemp(:,:)=>null()
458 real(kind=kreal),
pointer :: cond(:,:)=>null(), condtemp(:,:)=>null()
460 real(kind=kreal),
pointer :: rhofunca(:,:)=>null(), rhofuncb(:,:)=>null()
461 real(kind=kreal),
pointer :: cpfunca(:,:)=>null(), cpfuncb(:,:)=>null()
462 real(kind=kreal),
pointer :: condfunca(:,:)=>null(), condfuncb(:,:)=>null()
465 integer(kind=kint) :: amplitudetot=0
466 integer(kind=kint),
pointer :: ampltab(:)=>null()
467 real(kind=kreal),
pointer :: ampl(:,:)=>null(), ampltime(:,:)=>null()
468 real(kind=kreal),
pointer :: amplfunca(:,:)=>null(), amplfuncb(:,:)=>null()
471 real(kind=kreal),
pointer :: temp0(:)=>null()
472 real(kind=kreal),
pointer :: tempc(:)=>null()
473 real(kind=kreal),
pointer :: temp(:)=>null()
476 logical,
pointer :: is_dummy_node(:)=>null()
479 integer(kind=kint) :: t_fix_tot=0
480 integer(kind=kint),
pointer :: t_fix_node(:)=>null()
481 integer(kind=kint),
pointer :: t_fix_ampl(:)=>null()
482 real(kind=kreal),
pointer :: t_fix_val(:)=>null()
485 integer(kind=kint) :: q_nod_tot=0
486 integer(kind=kint),
pointer :: q_nod_node(:)=>null()
487 integer(kind=kint),
pointer :: q_nod_ampl(:)=>null()
488 real(kind=kreal),
pointer :: q_nod_val(:)=>null()
491 integer(kind=kint) :: q_vol_tot=0
492 integer(kind=kint),
pointer :: q_vol_elem(:)=>null()
493 integer(kind=kint),
pointer :: q_vol_ampl(:)=>null()
494 real(kind=kreal),
pointer :: q_vol_val(:)=>null()
497 integer(kind=kint) :: q_suf_tot=0
498 integer(kind=kint),
pointer :: q_suf_elem(:)=>null()
499 integer(kind=kint),
pointer :: q_suf_ampl(:)=>null()
500 integer(kind=kint),
pointer :: q_suf_surf(:)=>null()
501 real(kind=kreal),
pointer :: q_suf_val(:)=>null()
504 integer(kind=kint) :: r_suf_tot=0
505 integer(kind=kint),
pointer :: r_suf_elem(:)=>null()
506 integer(kind=kint),
pointer :: r_suf_ampl(:,:)=>null()
507 integer(kind=kint),
pointer :: r_suf_surf(:)=>null()
508 real(kind=kreal),
pointer :: r_suf_val(:,:)=>null()
511 integer(kind=kint) :: h_suf_tot=0
512 integer(kind=kint),
pointer :: h_suf_elem(:)=>null()
513 integer(kind=kint),
pointer :: h_suf_ampl(:,:)=>null()
514 integer(kind=kint),
pointer :: h_suf_surf(:)=>null()
515 real(kind=kreal),
pointer :: h_suf_val(:,:)=>null()
517 integer(kind=kint) :: wl_tot=0
527 integer(kind=kint) :: idx_eqa=0
528 integer(kind=kint) :: idx_resp=0
531 integer(kind=kint) :: n_step=0
532 real(kind=kreal) :: t_start=0.d0
533 real(kind=kreal) :: t_curr=0.d0
534 real(kind=kreal) :: t_end=0.d0
535 real(kind=kreal) :: t_delta=0.d0
536 integer(kind=kint) :: restart_nout=0
539 integer(kind=kint) :: restart_nin=0
542 real(kind=kreal) :: gamma=0.d0
543 real(kind=kreal) :: beta=0.d0
546 real(kind=kreal) :: alpha=0.d0
549 integer(kind=kint) :: idx_mas=0
552 integer(kind=kint) :: idx_dmp=0
553 real(kind=kreal) :: ray_m=0.d0
554 real(kind=kreal) :: ray_k=0.d0
557 logical :: varinitialize=.false.
560 integer(kind=kint) :: nout=0
561 integer(kind=kint) :: ngrp_monit=0
562 integer(kind=kint) :: nout_monit=0
563 integer(kind=kint) :: iout_list(6)=0
572 real(kind=kreal),
pointer :: disp(:,:) => null()
573 real(kind=kreal),
pointer :: vel(:,:) => null()
574 real(kind=kreal),
pointer :: acc(:,:) => null()
575 real(kind=kreal),
pointer :: hht_force(:) => null()
577 real(kind=kreal) :: kineticenergy=0.d0
578 real(kind=kreal) :: strainenergy=0.d0
579 real(kind=kreal) :: totalenergy=0.d0
582 real(kind=kreal),
pointer :: vec1(:) => null()
583 real(kind=kreal),
pointer :: vec2(:) => null()
584 real(kind=kreal),
pointer :: vec3(:) => null()
586 integer(kind=kint) :: dynamic_iw4 = 204
587 integer(kind=kint) :: dynamic_iw5 = 205
588 integer(kind=kint) :: dynamic_iw6 = 206
589 integer(kind=kint) :: dynamic_iw7 = 207
590 integer(kind=kint) :: dynamic_iw8 = 208
591 integer(kind=kint) :: dynamic_iw9 = 209
592 integer(kind=kint) :: dynamic_iw10 = 210
596 integer(kind=kint) :: fload_ngrp_tot=0
597 integer(kind=kint),
pointer :: fload_ngrp_grpid(:) => null()
598 integer(kind=kint),
pointer :: fload_ngrp_id(:) => null()
599 integer(kind=kint),
pointer :: fload_ngrp_type(:) => null()
600 integer(kind=kint),
pointer :: fload_ngrp_dof(:) => null()
601 real(kind=kreal),
pointer :: fload_ngrp_valre(:) => null()
602 real(kind=kreal),
pointer :: fload_ngrp_valim(:) => null()
604 integer(kind=kint) :: facc_ngrp_tot=0
605 integer(kind=kint),
pointer :: facc_ngrp_id(:) => null()
606 integer(kind=kint),
pointer :: facc_ngrp_type(:) => null()
607 real(kind=kreal),
pointer :: facc_ngrp_valre(:) => null()
608 real(kind=kreal),
pointer :: facc_ngrp_valim(:) => null()
609 character(len=HECMW_FILENAME_LEN) :: eigenlog_filename =
""
610 integer(kind=kint) :: start_mode=0
611 integer(kind=kint) :: end_mode=0
615 integer(kind=kint) :: nummode=0
616 integer(kind=kint) :: numnodedof=0
617 real(kind=kreal),
pointer :: eigomega(:) => null()
618 real(kind=kreal),
pointer :: eigvector(:,:) => null()
619 real(kind=kreal) :: rayalpha=0.d0, raybeta=0.d0
625 integer(kind=kint) :: nget=0
626 integer(kind=kint) :: maxiter=0
627 integer(kind=kint) :: iter=0
628 real (kind=kreal) :: sigma=0.d0
629 real (kind=kreal) :: tolerance=0.d0
630 real (kind=kreal) :: totalmass=0.d0
631 real (kind=kreal),
pointer :: eigval(:) => null()
632 real (kind=kreal),
pointer :: eigvec(:,:) => null()
633 real (kind=kreal),
pointer :: resid(:) => null()
634 real (kind=kreal),
pointer :: filter(:) => null()
635 real (kind=kreal),
pointer :: mass(:) => null()
636 real (kind=kreal),
pointer :: effmass(:) => null()
637 real (kind=kreal),
pointer :: partfactor(:) => null()
638 logical :: is_free = .false.
644 integer( kind=kint ) :: dof=0
645 integer( kind=kint ) :: ndof=0
646 integer( kind=kint ) :: coupled_node_n=0
648 integer,
pointer :: coupled_node(:) => null()
649 real( kind=8 ),pointer :: trac(:) => null()
650 real( kind=8 ),pointer :: disp(:) => null()
651 real( kind=8 ),pointer :: velo(:) => null()
652 real( kind=8 ),pointer :: accel(:) => null()
654 integer( kind=kint ),
pointer :: index(:) => null()
660 integer(kind=kint) :: egrpid=0
661 real( kind=kreal ) :: i=0.d0
662 real( kind=kreal ) :: u=0.d0
663 real( kind=kreal ) :: coe=0.d0
664 real( kind=kreal ) :: v=0.d0
665 integer(kind=kint) :: xyz=0
666 real(kind=kreal) :: n1=0.d0, n2=0.d0
667 real(kind=kreal) :: distol=0.d0
668 real(kind=kreal) :: tstart=0.d0
676 real(kind=kreal) :: thickness=0.d0
677 integer :: elemopt341=0
681 integer :: elemopt361=0
683 integer :: elemopt611=0
692 integer(kind=kint),
intent(in) :: code
693 integer(kind=kint) :: ios
695 flush(
ilog, iostat=ios )
697 flush(
ista, iostat=ios )
698 flush(
imsg, iostat=ios )
700 call hecmw_abort( hecmw_comm_get_comm(), code )
706 nullify( cond%intval )
707 nullify( cond%realval )
721 nullify( p%global_local_ID)
722 nullify( p%contactparam )
723 nullify( p%contact_if )
725 nullify( p%timepoints )
726 nullify( p%cnvparam )
738 nullify( p%PSTRESS_VECT )
739 nullify( p%PSTRAIN_VECT )
744 nullify( p%EPLSTRAIN )
746 nullify( p%EPSTRESS )
747 nullify( p%EPSTRAIN )
748 nullify( p%EPSTRESS_VECT )
749 nullify( p%EPSTRAIN_VECT )
761 nullify( s%step_ctrl )
762 nullify( s%output_ctrl )
764 nullify( s%BOUNDARY_ngrp_GRPID )
765 nullify( s%BOUNDARY_ngrp_ID )
766 nullify( s%BOUNDARY_ngrp_type )
767 nullify( s%BOUNDARY_ngrp_amp )
768 nullify( s%BOUNDARY_ngrp_val )
769 nullify( s%BOUNDARY_ngrp_istot )
770 nullify( s%BOUNDARY_ngrp_rotID )
771 nullify( s%BOUNDARY_ngrp_centerID )
773 nullify( s%VELOCITY_ngrp_GRPID )
774 nullify( s%VELOCITY_ngrp_ID )
775 nullify( s%VELOCITY_ngrp_type )
776 nullify( s%VELOCITY_ngrp_amp )
777 nullify( s%VELOCITY_ngrp_val )
778 nullify( s%VELOCITY_ngrp_rotID )
779 nullify( s%VELOCITY_ngrp_centerID )
781 nullify( s%ACCELERATION_ngrp_GRPID )
782 nullify( s%ACCELERATION_ngrp_ID )
783 nullify( s%ACCELERATION_ngrp_type )
784 nullify( s%ACCELERATION_ngrp_amp )
785 nullify( s%ACCELERATION_ngrp_val )
787 nullify( s%CLOAD_ngrp_GRPID )
788 nullify( s%CLOAD_ngrp_ID )
789 nullify( s%CLOAD_ngrp_DOF )
790 nullify( s%CLOAD_ngrp_amp )
791 nullify( s%CLOAD_ngrp_val )
792 nullify( s%CLOAD_ngrp_rotID )
793 nullify( s%CLOAD_ngrp_centerID )
795 nullify( s%DLOAD_ngrp_GRPID )
796 nullify( s%DLOAD_ngrp_ID )
797 nullify( s%DLOAD_ngrp_LID )
798 nullify( s%DLOAD_ngrp_amp )
799 nullify( s%DLOAD_ngrp_params )
801 nullify( s%TEMP_ngrp_GRPID )
802 nullify( s%TEMP_ngrp_ID )
803 nullify( s%TEMP_ngrp_val )
805 nullify( s%SPRING_ngrp_GRPID )
806 nullify( s%SPRING_ngrp_ID )
807 nullify( s%SPRING_ngrp_DOF )
808 nullify( s%SPRING_ngrp_amp )
809 nullify( s%SPRING_ngrp_val )
810 nullify( s%SPRING_incremental )
812 nullify( s%COUPLE_ngrp_ID )
819 nullify( s%PSTRESS_VECT )
820 nullify( s%PSTRAIN_VECT )
824 nullify( s%EPLSTRAIN )
825 nullify( s%EPSTRESS )
826 nullify( s%EPSTRAIN )
827 nullify( s%EPSTRESS_VECT )
828 nullify( s%EPSTRAIN_VECT )
829 nullify( s%TNSTRAIN )
830 nullify( s%TESTRAIN )
831 nullify( s%YIELD_RATIO )
833 nullify( s%REACTION )
835 nullify( s%CONT_NFORCE )
836 nullify( s%CONT_FRIC )
837 nullify( s%CONT_RELVEL )
838 nullify( s%CONT_STATE )
839 nullify( s%CONT_SGRP_ID )
840 nullify( s%CONT_AREA )
841 nullify( s%CONT_NTRAC )
842 nullify( s%CONT_FTRAC )
843 nullify( s%EMBED_NFORCE )
855 nullify( s%QFORCE_bak )
858 nullify( s%unode_bak )
862 nullify( s%shell_node_mode )
863 nullify( s%shell_rot_state )
864 nullify( s%shell_ref_triad )
865 nullify( s%shell_triad )
866 nullify( s%shell_triad_bak )
867 nullify( s%shell_dtriad )
868 nullify( s%shell_drill )
869 nullify( s%shell_drill_bak )
870 nullify( s%shell_ddrill )
871 nullify( s%temperature )
872 nullify( s%temp_bak )
873 nullify( s%last_temp )
875 nullify( s%elements )
876 nullify( s%materials )
877 nullify( s%contacts )
879 nullify( s%mpc_const )
880 nullify( s%sections )
882 nullify( s%unode_bkup )
883 nullify( s%QFORCE_bkup )
884 nullify( s%DFORCE_bkup )
885 nullify( s%last_temp_bkup )
886 nullify( s%shell_triad_bkup )
887 nullify( s%shell_drill_bkup )
888 nullify( s%elements_bkup )
889 nullify( s%contacts_bkup )
890 nullify( s%embeds_bkup )
898 nullify( h%STEP_DLTIME )
899 nullify( h%STEP_EETIME )
900 nullify( h%STEP_DELMIN )
901 nullify( h%STEP_DELMAX )
910 nullify( h%CONDtemp )
911 nullify( h%RHOfuncA )
912 nullify( h%RHOfuncB )
915 nullify( h%CONDfuncA )
916 nullify( h%CONDfuncB )
919 nullify( h%AMPLtime )
920 nullify( h%AMPLfuncA )
921 nullify( h%AMPLfuncB )
925 nullify( h%is_dummy_node )
926 nullify( h%T_FIX_node )
927 nullify( h%T_FIX_ampl )
928 nullify( h%T_FIX_val )
929 nullify( h%Q_NOD_node )
930 nullify( h%Q_NOD_ampl )
931 nullify( h%Q_NOD_val )
932 nullify( h%Q_VOL_elem )
933 nullify( h%Q_VOL_ampl )
934 nullify( h%Q_VOL_val )
935 nullify( h%Q_SUF_elem )
936 nullify( h%Q_SUF_ampl )
937 nullify( h%Q_SUF_surf )
938 nullify( h%Q_SUF_val )
939 nullify( h%R_SUF_elem )
940 nullify( h%R_SUF_ampl )
941 nullify( h%R_SUF_surf )
942 nullify( h%R_SUF_val )
943 nullify( h%H_SUF_elem )
944 nullify( h%H_SUF_ampl )
945 nullify( h%H_SUF_surf )
946 nullify( h%H_SUF_val )
947 nullify( h%weldline )
957 nullify( dy%HHT_FORCE )
968 nullify( f%FLOAD_ngrp_GRPID )
969 nullify( f%FLOAD_ngrp_ID )
970 nullify( f%FLOAD_ngrp_TYPE )
971 nullify( f%FLOAD_ngrp_DOF )
972 nullify( f%FLOAD_ngrp_valre )
973 nullify( f%FLOAD_ngrp_valim )
976 nullify( f%FACC_ngrp_ID )
977 nullify( f%FACC_ngrp_type )
978 nullify( f%FACC_ngrp_valre )
979 nullify( f%FACC_ngrp_valim )
985 nullify( f%eigOmega )
986 nullify( f%eigVector )
998 nullify( e%partfactor )
1005 nullify( c%coupled_node )
1015 type(hecmwst_matrix) :: hecMAT
1017 hecmat%Iarray(1) = 100
1018 hecmat%Iarray(2) = 1
1019 hecmat%Iarray(3) = 1
1020 hecmat%Iarray(4) = 0
1021 hecmat%Iarray(5) = 1
1022 hecmat%Iarray(6) = 10
1023 hecmat%Iarray(7) = 0
1024 hecmat%Iarray(21)=
kno
1025 hecmat%Iarray(22)=
kno
1026 hecmat%Iarray(31)= 0
1027 hecmat%Iarray(32)= 0
1028 hecmat%Iarray(33)= 0
1029 hecmat%Iarray(34)= 10
1030 hecmat%Iarray(13)= 0
1031 hecmat%Iarray(14)= 0
1032 hecmat%Iarray(16)= 0
1033 hecmat%Iarray(35)= 3
1034 hecmat%Iarray(36)= hecmw_matvec_impl_default
1035 hecmat%Iarray(37)= hecmw_precond_impl_default
1036 hecmat%Iarray(41)= 0
1037 hecmat%Iarray(42)= 0
1038 hecmat%Iarray(43)= 0
1039 hecmat%Iarray(44)= 0
1040 hecmat%Iarray(45)= 0
1041 hecmat%Iarray(46)= 0
1043 hecmat%Rarray(1) = 1.0e-8
1044 hecmat%Rarray(2) = 1.0
1045 hecmat%Rarray(3) = 1.0
1046 hecmat%Rarray(4) = 0.1
1047 hecmat%Rarray(5) = 0.1
1048 hecmat%Rarray(11)= 1.0e+4
1050 hecmat%Iarray(96) = 0
1051 hecmat%Iarray(97) =
kyes
1052 hecmat%Iarray(98) =
kyes
1053 hecmat%Iarray(99) =
kyes
1058 type( hecmwst_matrix ) :: hecMAT
1059 integer :: ndof, nn, ierror
1062 allocate (hecmat%AL(nn*hecmat%NPL) ,stat=ierror )
1063 if( ierror /= 0 )
then
1064 write(*,*)
"##ERROR : not enough memory"
1065 write(
idbg,*)
'stop due to allocation error'
1067 call hecmw_abort( hecmw_comm_get_comm() )
1069 allocate (hecmat%AU(nn*hecmat%NPU) ,stat=ierror )
1070 if( ierror /= 0 )
then
1071 write(*,*)
"##ERROR : not enough memory"
1072 write(
idbg,*)
'stop due to allocation error'
1074 call hecmw_abort( hecmw_comm_get_comm() )
1076 allocate (hecmat%B(ndof*hecmat%NP) ,stat=ierror )
1077 if( ierror /= 0 )
then
1078 write(*,*)
"##ERROR : not enough memory"
1079 write(
idbg,*)
'stop due to allocation error'
1081 call hecmw_abort( hecmw_comm_get_comm() )
1084 allocate (hecmat%D(nn*hecmat%NP) ,stat=ierror )
1085 if( ierror /= 0 )
then
1086 write(*,*)
"##ERROR : not enough memory"
1087 write(
idbg,*)
'stop due to allocation error'
1089 call hecmw_abort( hecmw_comm_get_comm() )
1091 allocate (hecmat%X(ndof*hecmat%NP) ,stat=ierror )
1092 if( ierror /= 0 )
then
1093 write(*,*)
"##ERROR : not enough memory"
1094 write(
idbg,*)
'stop due to allocation error'
1096 call hecmw_abort( hecmw_comm_get_comm() )
1107 type( hecmwst_matrix ) :: hecMAT
1108 integer :: ndof, nn, ierror
1111 if(
associated(hecmat%AL) )
then
1112 deallocate(hecmat%AL ,stat=ierror)
1113 if( ierror /= 0 )
then
1114 write(
idbg,*)
'stop due to deallocation error'
1116 call hecmw_abort( hecmw_comm_get_comm())
1119 if(
associated(hecmat%AU) )
then
1120 deallocate(hecmat%AU ,stat=ierror)
1121 if( ierror /= 0 )
then
1122 write(
idbg,*)
'stop due to deallocation error'
1124 call hecmw_abort( hecmw_comm_get_comm())
1127 if(
associated(hecmat%B) )
then
1128 deallocate(hecmat%B ,stat=ierror)
1129 if( ierror /= 0 )
then
1130 write(
idbg,*)
'stop due to deallocation error'
1132 call hecmw_abort( hecmw_comm_get_comm())
1135 if(
associated(hecmat%D) )
then
1136 deallocate(hecmat%D ,stat=ierror)
1137 if( ierror /= 0 )
then
1138 write(
idbg,*)
'stop due to deallocation error'
1140 call hecmw_abort( hecmw_comm_get_comm())
1143 if(
associated(hecmat%X) )
then
1144 deallocate(hecmat%X ,stat=ierror)
1145 if( ierror /= 0 )
then
1146 write(
idbg,*)
'stop due to deallocation error'
1148 call hecmw_abort( hecmw_comm_get_comm())
1151 if(
associated(hecmat%A) )
then
1152 deallocate(hecmat%A ,stat=ierror)
1153 if( ierror /= 0 )
then
1154 write(
idbg,*)
'stop due to deallocation error'
1156 call hecmw_abort( hecmw_comm_get_comm())
1165 type(hecmwst_local_mesh) :: hecMESH
1166 integer(kind=kint) :: i
1167 external fstr_sort_index
1170 fstrparam%nlgeom = .false.
1171 fstrparam%solver_method =
ksmcg
1175 fstrparam%analysis_n = 0
1176 fstrparam%ref_temp = 0
1179 fstrparam%fg_echo =
koff
1180 fstrparam%fg_result =
koff
1181 fstrparam%fg_visual =
koff
1184 fstrparam%fg_neutral =
koff
1185 fstrparam%fg_irres =
kno
1186 fstrparam%fg_iwres =
kno
1188 fstrparam%nprint = 1
1191 fstrparam%fg_couple = 0
1192 fstrparam%fg_couple_type = 0
1193 fstrparam%fg_couple_first= 0
1194 fstrparam%fg_couple_window= 0
1197 fstrparam%restart_version = 6
1201 fstrparam%augiter = 2
1202 fstrparam%fric_cone_follow = .true.
1203 fstrparam%eps_fric_band = 0.d0
1207 fstrparam%n_node = hecmesh%n_node;
1208 fstrparam%nn_internal = hecmesh%nn_internal;
1209 allocate( fstrparam%global_local_ID(2,hecmesh%nn_internal))
1210 do i = 1, hecmesh%nn_internal
1211 fstrparam%global_local_ID(1,i) = hecmesh%global_node_ID(i)
1212 fstrparam%global_local_ID(2,i) = i
1214 call fstr_sort_index( fstrparam%global_local_ID, hecmesh%nn_internal )
1220 if(
associated(cond%intval))
deallocate(cond%intval)
1221 if(
associated(cond%realval))
deallocate(cond%realval)
1228 if(
associated(fstrparam%dtime))
deallocate(fstrparam%dtime)
1229 if(
associated(fstrparam%etime))
deallocate(fstrparam%etime)
1230 if(
associated(fstrparam%dtmin))
deallocate(fstrparam%dtmin)
1231 if(
associated(fstrparam%delmax))
deallocate(fstrparam%delmax)
1232 if(
associated(fstrparam%itmax))
deallocate(fstrparam%itmax)
1233 if(
associated(fstrparam%eps))
deallocate(fstrparam%eps)
1234 if(
associated(fstrparam%global_local_ID))
deallocate(fstrparam%global_local_ID)
1236 if(
associated(fstrparam%contactparam))
deallocate(fstrparam%contactparam)
1237 if(
associated(fstrparam%contact_if))
deallocate(fstrparam%contact_if)
1239 if(
associated(fstrparam%ainc))
deallocate(fstrparam%ainc)
1240 if(
associated(fstrparam%timepoints))
then
1241 do i=1,
size(fstrparam%timepoints)
1242 if(
associated(fstrparam%timepoints(i)%points)) &
1243 deallocate(fstrparam%timepoints(i)%points)
1245 deallocate(fstrparam%timepoints)
1248 if(
associated(fstrparam%cnvparam))
deallocate(fstrparam%cnvparam)
1253 integer,
intent(in) :: nbc
1254 integer,
intent(in) :: cstep
1256 if( .not.
associated(fstrsolid%step_ctrl) )
return
1257 if( cstep>fstrsolid%nstep_tot )
return
1263 integer,
intent(in) :: nbc
1264 integer,
intent(in) :: cstep
1266 if( cstep > 0 )
then
1267 if( .not.
associated(fstrsolid%step_ctrl) )
return
1268 if( cstep>fstrsolid%nstep_tot )
return
1277 integer,
intent(in) :: nbc
1278 integer,
intent(in) :: cstep
1280 if( .not.
associated(fstrsolid%step_ctrl) )
return
1281 if( cstep>fstrsolid%nstep_tot )
return
1287 integer,
intent(in) :: nbc
1288 integer,
intent(in) :: cstep
1290 if( .not.
associated(fstrsolid%step_ctrl) )
return
1291 if( cstep>fstrsolid%nstep_tot )
return
1297 integer,
intent(in) :: nbc
1298 integer,
intent(in) :: cstep
1300 if( .not.
associated(fstrsolid%step_ctrl) )
return
1301 if( cstep>fstrsolid%nstep_tot )
return
1307 integer,
intent(in) :: cdsys_ID
1308 integer,
intent(in) :: icel
1309 type(hecmwst_local_mesh) :: hecMESH
1311 real(kind=kreal),
intent(out) :: coords(3,3)
1312 integer :: ik, local_nid, iSS
1315 if( cdsys_id>0 )
then
1319 iss = hecmesh%elem_node_index(icel-1)
1322 ik = hecmesh%elem_node_item(iss+local_nid)
1323 coords(1,:)= hecmesh%node(3*ik-2:3*ik)+fstrsolid%unode(3*ik-2:3*ik) &
1324 + fstrsolid%dunode(3*ik-2:3*ik)
1326 ik = hecmesh%elem_node_item(iss+local_nid)
1327 coords(2,:)= hecmesh%node(3*ik-2:3*ik)+fstrsolid%unode(3*ik-2:3*ik) &
1328 + fstrsolid%dunode(3*ik-2:3*ik)
1330 ik = hecmesh%elem_node_item(iss+local_nid)
1331 coords(3,:)= hecmesh%node(3*ik-2:3*ik)+fstrsolid%unode(3*ik-2:3*ik) &
1332 + fstrsolid%dunode(3*ik-2:3*ik)
1335 coords(1,:)= hecmesh%node(3*ik-2:3*ik)+fstrsolid%unode(3*ik-2:3*ik) &
1336 + fstrsolid%dunode(3*ik-2:3*ik)
1338 coords(2,:)= hecmesh%node(3*ik-2:3*ik)+fstrsolid%unode(3*ik-2:3*ik) &
1339 + fstrsolid%dunode(3*ik-2:3*ik)
1341 if(ik>0) coords(3,:)= hecmesh%node(3*ik-2:3*ik)+fstrsolid%unode(3*ik-2:3*ik) &
1342 + fstrsolid%dunode(3*ik-2:3*ik)
1349 type(hecmwst_local_mesh),
intent(inout) :: hecMESH
1350 type (fstr_solid),
intent(in) :: fstrSOLID
1351 real(kind=kreal),
intent(out) :: coord(:)
1352 integer(kind=kint) :: i
1353 if(hecmesh%n_dof == 4)
return
1354 do i = 1, hecmesh%nn_internal*min(hecmesh%n_dof,3)
1355 coord(i) = hecmesh%node(i)
1356 hecmesh%node(i) = coord(i)+fstrsolid%unode(i)+fstrsolid%dunode(i)
1362 type(hecmwst_local_mesh),
intent(inout) :: hecMESH
1363 type (fstr_solid),
intent(in) :: fstrSOLID
1364 real(kind=kreal),
intent(in) :: coord(:)
1365 integer(kind=kint) :: i
1366 if(hecmesh%n_dof == 4)
return
1367 do i = 1, hecmesh%nn_internal*min(hecmesh%n_dof,3)
1368 hecmesh%node(i) = coord(i)
1378 phys%ESTRAIN = 0.0d0
1379 phys%ESTRESS = 0.0d0
1381 phys%EPLSTRAIN = 0.0d0
1387 type (fstr_solid) :: fstrSOLID
1388 integer(kind=kint) :: i
1390 if (
associated(fstrsolid%SOLID))
then
1393 if (
associated(fstrsolid%SHELL))
then
1395 do i=1,fstrsolid%max_lyr
1400 if (
associated(fstrsolid%BEAM))
then
1414 type ( hecmwST_local_mesh ),
intent(in) :: hecMESH
1415 type ( fstr_solid ),
intent(in) :: fstrSOLID
1416 integer(kind=kint),
intent(in) :: cstep
1417 integer(kind=kint),
intent(in) :: jj_n_amp
1418 real(kind=kreal),
intent(in) :: time
1419 real(kind=kreal),
intent(inout) ::
value
1421 real(kind=kreal) :: t_eval
1423 if( jj_n_amp <= 0 )
then
1425 write(
imsg,*)
'internal error: amplitude table not defined'
1427 call hecmw_abort( hecmw_comm_get_comm() )
1430 if( hecmesh%amp%amp_type_time(jj_n_amp) == hecmw_amp_typetime_total )
then
1433 t_eval = time - fstrsolid%step_ctrl(cstep)%starttime
1436 call hecmw_get_amplitude_value(hecmesh%amp, jj_n_amp, t_eval,
value)
void fstr_sort_index(int *index_data, int *n)
This modules defines common structures for fem analysis.
logical function iscoordneeds(coordsys)
if need to fetch global nodes' coordinate
type(tlocalcoordsys), dimension(:), pointer, save g_localcoordsys
This module defined elemact data and function.
This module defines common data and basic structures for analysis.
integer(kind=kint), parameter kel361bbar
integer(kind=kint), parameter iutb
subroutine fstr_solid_phys_zero(phys)
subroutine hecmat_finalize(hecMAT)
subroutine fstr_nullify_fstr_couple(C)
integer(kind=kint), parameter ksmgroppcg
integer(kind=kint), parameter restart_outall
integer(kind=kint), parameter ineu
subroutine fstr_nullify_fstr_freqanalysis_data(f)
integer(kind=kint) myrank
PARALLEL EXECUTION.
integer(kind=kint), parameter kel341sesns
integer(kind=kint), parameter kbcffstr
boundary condition file type (bcf)
subroutine fstr_recover_initial_config_to_mesh(hecMESH, fstrSOLID, coord)
subroutine fstr_param_init(fstrPARAM, hecMESH)
Initializer of structure fstr_param.
integer(kind=kint), parameter imsg
integer(kind=kint), parameter kopss_material
integer(kind=kint), parameter kitrfloatingerror
logical function fstr_isembedactive(fstrSOLID, nbc, cstep)
integer(kind=kint), parameter ksmcg
solver method (sm) !CAUTION : (<=100):indirect, (>100):direct
integer(kind=kint), parameter kstdynamic
integer(kind=kint), parameter kel361up
integer(kind=kint), parameter ksmgmresren
subroutine fstr_nullify_fstr_heat(H)
logical function fstr_isloadactive(fstrSOLID, nbc, cstep)
integer(kind=kint), parameter kel341fi
section control
integer(kind=kint), parameter idbg
integer(kind=kint), parameter kfloadtype_surf
integer(kind=kint), parameter ksmgmres
integer(kind=kint), parameter kopss_solution
OUTPUT STRESS/STRAIN TYPE.
integer(kind=kint), parameter kel361fi
integer(kind=kint) opsstype
subroutine fstr_nullify_initial_condition(cond)
integer(kind=kint), parameter kmassconsistent
integer(kind=kint), parameter kon
character(len=hecmw_filename_len) restartfilname
subroutine fstr_get_amplitude(hecMESH, fstrSOLID, cstep, jj_n_amp, time, value)
Evaluate the amplitude-scaled target value a(t) for static analysis.
integer(kind=kint), parameter kfloadcase_im
subroutine fstr_mat_init(hecMAT)
Initializer of structure hecmwST_matrix.
subroutine fstr_nullify_fstr_eigen(E)
integer(kind=kint) nprocs
integer(kind=kint), parameter ifvs
logical function fstr_iscontactactive(fstrSOLID, nbc, cstep)
logical function fstr_iselemactivationactive(fstrSOLID, nbc, cstep)
integer(kind=kint), parameter kitrconverged
integer(kind=kint), parameter kyes
CONSTANTS general.
subroutine get_coordsys(cdsys_ID, hecMESH, fstrSOLID, coords, icel)
This subroutine fetch coords defined by local coordinate system.
integer(kind=kint), parameter kbcfnastran
integer(kind=kint), parameter kel361ic
subroutine fstr_abort(code)
Terminate the analysis with a classified exit status. MPI_ABORT does not perform the Fortran I/O fina...
subroutine fstr_param_finalize(fstrPARAM)
integer(kind=kint), parameter kcaslagrange
contact analysis algorithm
integer(kind=kint), parameter ilog
FILE HANDLER.
integer(kind=kint), parameter ksmgpbicg
integer(kind=kint), parameter knsmnewton
nonlinear solver method (nsm)
integer(kind=kint), parameter kel611timoshenko
integer(kind=kint), parameter kststatic
subroutine fstr_set_current_config_to_mesh(hecMESH, fstrSOLID, coord)
integer(kind=kint), parameter kbcinitial
integer(kind=kint), parameter kfloadtype_node
integer(kind=kint), parameter kstprecheck
solution type (st)
integer(kind=kint), parameter knsmquasinewton
integer(kind=kint), parameter kcaalagrange
subroutine hecmat_init(hecMAT)
integer(kind=kint), parameter kststaticeigen
integer(kind=kint), parameter kstheat
integer(kind=kint), parameter ista
integer(kind=kint), parameter ksmpipecg
subroutine fstr_nullify_fstr_freqanalysis(f)
integer(kind=kint), parameter ksmdirect
integer(kind=kint), parameter koff
integer(kind=kint), parameter kstnzprof
integer(kind=kint), parameter kbctransit
subroutine fstr_solid_phys_clear(fstrSOLID)
integer(kind=kint), parameter ksmbicgstab
character(len=hecmw_filename_len) cntfilname
FILE NAME.
subroutine fstr_nullify_solid_physic_val(P)
integer(kind=kint), parameter kel361fbar
logical function fstr_isboundaryactive(fstrSOLID, nbc, cstep)
subroutine fstr_nullify_fstr_param(P)
NULL POINTER SETTING TO AVOID RUNTIME ERROR.
integer(kind=kint), parameter ksteigen
type(tinitialcondition), dimension(:), pointer, save g_initialcnd
integer(kind=kint), parameter kmasslumped
mass matrix type
integer(kind=kint), parameter kitrcontinue
iteration control
integer(kind=kint), parameter restart_outlast
restart type
integer(kind=kint), parameter iresout
integer(kind=kint), parameter ksmgmresr
integer(kind=kint), parameter kel611euler
subroutine fstr_nullify_fstr_solid(S)
subroutine fstr_nullify_fstr_dynamic(DY)
integer(kind=kint), parameter kno
integer(kind=kint), parameter kitrdiverged
logical paracontactflag
PARALLEL CONTACT FLAG.
integer(kind=kint), parameter kfloadcase_re
subroutine fstr_initial_condition_finalize(cond)
This module manages step information.
This module manages step information.
logical function iscontactactive(bnd, stepinfo)
Is contact condition in this step active.
logical function iselemactivationactive(bnd, stepinfo)
Is elemact condition in this step active.
logical function isboundaryactive(bnd, stepinfo)
Is boundary condition in this step active.
logical function isloadactive(bnd, stepinfo)
Is external load in this step active.
This module manages timepoint information.
This modules defines a structure to record history dependent parameter in static analysis.
Data for coupling analysis.
Data for DYNAMIC ANSLYSIS (fstrDYNAMIC)
Package of data used by Lanczos eigenvalue solver.
Data for HEAT ANSLYSIS (fstrHEAT)
FSTR INNER CONTROL PARAMETERS (fstrPARAM)
Data for STATIC ANSLYSIS (fstrSOLID)
Data for section control.
-1:not relation, >1:index of coupled_node
output control such as output filename, output frequency etc.
Step control such as active boundary condition, convergent condition etc.
Convergence criteria of !CONVERG_PARAM, indexed like step_infocnv_check.
Time points storage for output etc.
All data should be recorded in every elements.