FrontISTR  5.7.0
Large-scale structural analysis program with finit element method
fistr_main.f90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
2 ! Copyright (c) 2019 FrontISTR Commons
3 ! This software is released under the MIT License, see LICENSE.txt
4 !-------------------------------------------------------------------------------
5 module m_fstr_main
6 
7  use hecmw
8  use m_fstr
10  use m_fstr_setup
14  use m_static_echo
15  use m_heat_init
16  use m_heat_echo
17  use m_fstr_precheck
18  use m_fstr_rcap_io
20  use fstr_debug_dump
21 
22  type(hecmwst_local_mesh), save :: hecmesh
23  type(hecmwst_matrix), save :: hecmat
24  type(hecmwst_matrix), save :: conmat
25  type(fstr_solid), save :: fstrsolid
26  type(hecmwst_matrix_lagrange), save :: heclagmat
27  type(fstr_heat), save :: fstrheat
28  type(fstr_eigen), save :: fstreig
29  type(fstr_dynamic), save :: fstrdynamic
30  type(hecmwst_result_data), save :: fstrresult
31  type(fstr_couple), save :: fstrcpl
32  type(fstr_freqanalysis), save :: fstrfreq
33  character(len=HECMW_FILENAME_LEN) :: name_id
34 
35 contains
36 
37  subroutine fstr_main() bind(C,NAME='fstr_main')
38  implicit none
39  real(kind=kreal) :: t1, t2, t3
40 
41  t1=0.0d0; t2=0.0d0; t3=0.0d0
42 
43  ! =============== INITIALIZE ===================
44 
45  call hecmw_init
46  myrank = hecmw_comm_get_rank()
47  nprocs = hecmw_comm_get_size()
48 
49  t1 = hecmw_wtime()
50 
51  name_id = 'fstrMSH'
52  call hecmw_get_mesh( name_id , hecmesh )
53 
54  if( hecmesh%contact_pair%n_pair > 0 ) then
55  paracontactflag = .true.
56  if( myrank == 0 ) then
57  print *,'paraContactFlag',paracontactflag
58  endif
59  endif
60 
62 
63  call fstr_init
64 
66 
67  t2 = hecmw_wtime()
68 
69  ! =============== ANALYSIS =====================
70 
71  select case( fstrpr%solution_type )
72  case( kststatic )
74  case( kstdynamic )
76  case( ksteigen )
78  case( kstheat )
80  case( kststaticeigen )
82  end select
83 
84  t3 = hecmw_wtime()
85 
86  if(hecmesh%my_rank==0) then
87  write(*,*)
88  write(*,*) '===================================='
89  write(*,'(a,f10.2)') ' TOTAL TIME (sec) :', t3 - t1
90  write(*,'(a,f10.2)') ' pre (sec) :', t2 - t1
91  write(*,'(a,f10.2)') ' solve (sec) :', t3 - t2
92  write(*,*) '===================================='
93 
94  write(imsg,*) '===================================='
95  write(imsg,'(a,f10.2)') ' TOTAL TIME (sec) :', t3 - t1
96  write(imsg,'(a,f10.2)') ' pre (sec) :', t2 - t1
97  write(imsg,'(a,f10.2)') ' solve (sec) :', t3 - t2
98  write(imsg,*) '===================================='
99  endif
100 
101  ! =============== FINALIZE =====================
102 
104  call fstr_finalize()
105  call hecmw_dist_free(hecmesh)
106  call hecmw_finalize
107  if(hecmesh%my_rank==0) write(*,*) 'FrontISTR Completed !!'
108 
109  end subroutine fstr_main
110 
111  !=============================================================================!
113  !=============================================================================!
114 
115  subroutine fstr_init
116  implicit none
117 
118  ! set pointer to null
119  call hecmw_nullify_matrix ( hecmat )
120  call hecmw_nullify_matrix ( conmat )
121  call hecmw_nullify_result_data( fstrresult )
128  call fstr_init_file
129 
130  ! ---- default setting of global params ---
131  dt = 1
132  etime = 1
133  itmax = 20
134  eps = 1.0d-6
135 
136  ! ------- global pointer setting ----------
137  ref_temp => fstrpr%ref_temp
138  iecho => fstrpr%fg_echo
139  iresult => fstrpr%fg_result
140  ivisual => fstrpr%fg_visual
141 
142  ! for heat ...
143  ineutral => fstrpr%fg_neutral
144  irres => fstrpr%fg_irres
145  iwres => fstrpr%fg_iwres
146  nrres => fstrpr%nrres
147  nprint => fstrpr%nprint
148 
149 
150  ! ------- initial value setting -------------
151  call fstr_mat_init ( hecmat )
153 
155  call fstr_eigen_init( fstreig )
156  call fstr_heat_init ( fstrheat )
158 
159  ! ------- scan cnt file -------------
161 
162  ! ------- hecMAT setting -------------
163  call hecmw_mat_con(hecmesh, hecmat)
164  hecmat%NDOF = hecmesh%n_dof
165  if( kstheat == fstrpr%solution_type ) then
168  hecmat%NDOF = 1
169  endif
170  call hecmat_init( hecmat )
171  end subroutine fstr_init
172 
173  !------------------------------------------------------------------------------
175  subroutine fstr_init_file
176  implicit none
177  character(len=HECMW_FILENAME_LEN) :: s, r
178  character(len=HECMW_FILENAME_LEN) :: stafileNAME
179  character(len=HECMW_FILENAME_LEN) :: logfileNAME
180  character(len=HECMW_FILENAME_LEN) :: msgfileNAME
181  character(len=HECMW_FILENAME_LEN) :: dbgfileNAME
182  integer :: stat, flag, limit, irank
183 
184  ! set file name --------------------------------
185  call hecmw_ctrl_is_subdir( flag, limit )
186  write(s,*) myrank
187  if( flag == 0 ) then
188  write( logfilename, '(a,a)') trim(adjustl(s)), '.log'
189  logfilename = adjustl(logfilename)
190  write( dbgfilename, '(a,a)') 'FSTR.dbg.', trim(adjustl(s))
191  dbgfilename = adjustl(dbgfilename)
192  else
193  if( nprocs > limit ) then
194  irank = myrank / limit
195  write(r,*) irank
196  write( logfilename, '(a,a,a,a,a)') 'LOG/TRUNK', trim(adjustl(r)), '/', trim(adjustl(s)), '.log'
197  logfilename = adjustl(logfilename)
198  call hecmw_ctrl_make_subdir( logfilename, stat )
199  if( stat /= 0 ) call fstr_setup_util_err_stop( '### Cannot create directory' )
200  write( dbgfilename, '(a,a,a,a,a)') 'DBG/TRUNK', trim(adjustl(r)), '/', 'FSTR.dbg.', trim(adjustl(s))
201  dbgfilename = adjustl(dbgfilename)
202  call hecmw_ctrl_make_subdir( dbgfilename, stat )
203  if( stat /= 0 ) call fstr_setup_util_err_stop( '### Cannot create directory' )
204  else
205  write( logfilename, '(a,a,a)') 'LOG/', trim(adjustl(s)), '.log'
206  logfilename = adjustl(logfilename)
207  call hecmw_ctrl_make_subdir( logfilename, stat )
208  if( stat /= 0 ) call fstr_setup_util_err_stop( '### Cannot create directory' )
209  write( dbgfilename, '(a,a,a)') 'DBG/', 'FSTR.dbg.', trim(adjustl(s))
210  dbgfilename = adjustl(dbgfilename)
211  call hecmw_ctrl_make_subdir( dbgfilename, stat )
212  if( stat /= 0 ) call fstr_setup_util_err_stop( '### Cannot create directory' )
213  endif
214  endif
215  stafilename = 'FSTR.sta'
216  msgfilename = 'FSTR.msg'
217 
218  ! open & opening message out -------------------
219  ! MSGFILE
220  if( myrank == 0) then
221  open(imsg, file=msgfilename, status='replace', iostat=stat)
222  if( stat /= 0 ) then
223  call fstr_setup_util_err_stop( '### Cannot open message file :'//msgfilename )
224  endif
225  write(imsg,*) ':========================================:'
226  write(imsg,*) ':** BEGIN FSTR Structural Analysis **:'
227  write(imsg,*) ':========================================:'
228  write(imsg,*) ' Total no. of processors: ',nprocs
229  write(imsg,*)
230  write(imsg,*)
231  write(imsg,*)
232  write(imsg,*) ' * STAGE Initialization and input **'
233  endif
234 
235  ! LOGFILE & STAFILE
236  open (ilog, file = logfilename, status = 'replace', iostat=stat )
237  if( stat /= 0 ) then
238  call fstr_setup_util_err_stop( '### Cannot open log file :'//logfilename )
239  endif
240 
241  if( myrank == 0 ) then
242  open (ista,file = stafilename, status = 'replace', iostat=stat )
243  write(ista,'(''####''a80)') stafilename
244  if( stat /= 0 ) then
245  call fstr_setup_util_err_stop( '### Cannot open status file :'//stafilename )
246  endif
247  endif
248 
249  open (idbg,file = dbgfilename, status = 'replace')
250  write(idbg,'(''####''a80)') dbgfilename
251  if( stat /= 0 ) then
252  call fstr_setup_util_err_stop( '### Cannot open debug file :'//dbgfilename )
253  endif
254  end subroutine fstr_init_file
255 
256  !------------------------------------------------------------------------------
258  subroutine fstr_init_condition
259  implicit none
260  character(len=HECMW_FILENAME_LEN) :: cntfileNAME
261 
262  name_id='fstrCNT'
263  call hecmw_ctrl_get_control_file( name_id, cntfilename )
264 
265  ! loading boundary conditions etc. from fstr control file or nastran mesh file
266  ! and setup parameters ...
267  svrarray(:) = hecmat%Rarray(:)
268  sviarray(:) = hecmat%Iarray(:)
269 
271 
272  hecmat%Rarray(:) = svrarray(:)
273  hecmat%Iarray(:) = sviarray(:)
274 
276 
277  if( myrank == 0) write(*,*) 'fstr_setup: OK'
278  write(ilog,*) 'fstr_setup: OK'
279  call flush(6)
280 
281  end subroutine fstr_init_condition
282 
283  !=============================================================================!
285  !=============================================================================!
286 
287  subroutine fstr_static_analysis
288  implicit none
289 
290  if( iecho.eq.1 ) call fstr_echo(hecmesh)
291 
292  if(myrank .EQ. 0) then
293  write(imsg,*)
294  write(imsg,*)
295  write(imsg,*)
296  endif
297 
298  if( fstrpr%nlgeom ) then
299  if( myrank == 0) write(imsg,*) ' *** STAGE Non Linear static analysis **'
300  else
301  if( myrank == 0 ) write(imsg,*) ' *** STAGE Linear static analysis **'
302  endif
303 
305 
307 
308  end subroutine fstr_static_analysis
309 
310  !=============================================================================!
312  !=============================================================================!
313 
314  subroutine fstr_eigen_analysis
315  use hecmw
316  use m_fstr
317  implicit none
318 
319  if( iecho.eq.1 ) call fstr_echo(hecmesh)
320  if(myrank .EQ. 0) then
321  write(imsg,*)
322  write(imsg,*)
323  write(imsg,*)
324  write(imsg,*) ' *** STAGE Eigenvalue analysis **'
325  endif
326 
328 
329  end subroutine fstr_eigen_analysis
330 
331  !=============================================================================!
333  !=============================================================================!
334 
335  subroutine fstr_heat_analysis
336  implicit none
337 
338  if( iecho.eq.1 ) call heat_echo(fstrpr,hecmesh,fstrheat)
339  if(myrank .EQ. 0) then
340  write(imsg,*)
341  write(imsg,*)
342  write(imsg,*)
343  write(imsg,*) ' *** STAGE Heat analysis **'
344  endif
345 
347 
348  end subroutine fstr_heat_analysis
349 
350  !=============================================================================!
352  !=============================================================================!
353 
354  subroutine fstr_dynamic_analysis
355  implicit none
356 
357  if( iecho.eq.1 ) call fstr_echo(hecmesh)
358 
359  if(myrank == 0) then
360  write(imsg,*)
361  write(imsg,*)
362  write(imsg,*)
363  if( fstrpr%nlgeom ) then
364  write(imsg,*) ' *** STAGE Nonlinear dynamic analysis **'
365  else
366  write(imsg,*) ' *** STAGE Linear dynamic analysis **'
367  endif
368  endif
369 
372  conmat )
373 
374  end subroutine fstr_dynamic_analysis
375 
376  !=============================================================================!
378  !=============================================================================!
379 
380  subroutine fstr_static_eigen_analysis
381  implicit none
382 
383  if( iecho==1 ) call fstr_echo(hecmesh)
384 
385  if(myrank == 0) then
386  write(imsg,*)
387  write(imsg,*)
388  write(imsg,*)
389  write(imsg,*) ' *** STAGE Static -> Eigen analysis **'
390  write(*,*) ' *** STAGE Static -> Eigen analysis **'
391  write(imsg,*)
392  write(imsg,*) ' *** Stage 1: Nonlinear static analysis **'
393  write(*,*) ' *** Stage 1: Nonlinear static analysis **'
394  endif
395 
397 
398  if(myrank == 0) then
399  write(imsg,*)
400  write(imsg,*) ' *** Stage 2: Eigenvalue analysis **'
401  write(*,*)
402  write(*,*) ' *** Stage 2: Eigenvalue analysis **'
403  endif
404 
406 
408 
409  end subroutine fstr_static_eigen_analysis
410 
411  !=============================================================================!
413  !=============================================================================!
414 
415  subroutine fstr_finalize
416  implicit none
417 
418  if( myrank == 0 ) then
419  write(imsg,*)
420  write(imsg,*)
421  write(imsg,*)
422  write(imsg,*) ':========================================:'
423  write(imsg,*) ':** END of FSTR **:'
424  write(imsg,*) ':========================================:'
425  close(imsg)
426  close(ista)
427  endif
428 
430  call hecmat_finalize( hecmat )
431 
432  close(ilog)
433  close(idbg)
434  end subroutine fstr_finalize
435 
436 end module m_fstr_main
m_fstr_main::fstr_static_analysis
subroutine fstr_static_analysis
Master subroutine of linear/nonlinear static analysis !
Definition: fistr_main.f90:288
m_fstr::iecho
integer(kind=kint), pointer iecho
FLAG for ECHO/RESULT/POST.
Definition: m_fstr.f90:121
m_fstr_main::fstr_heat_analysis
subroutine fstr_heat_analysis
Master subroutine of heat analysis !
Definition: fistr_main.f90:336
m_heat_init
This module provides functions to initialize heat analysis.
Definition: heat_init.f90:6
fstr_solver_dynamic
This module contains subroutines controlling dynamic calculation.
Definition: fstr_solve_dynamic.f90:7
hecmw_ctrl_is_subdir
void hecmw_ctrl_is_subdir(int *flag, int *limit)
Definition: hecmw_control.c:2619
m_fstr_main::fstr_main
subroutine fstr_main()
Startup routine for FrontISTR.
Definition: fistr_main.f90:38
m_fstr_solve_nlgeom::fstr_solve_nlgeom
subroutine fstr_solve_nlgeom(hecMESH, hecMAT, fstrSOLID, hecLagMAT, fstrPARAM, conMAT)
This module provides main subroutine for nonlinear calculation.
Definition: fstr_solve_NLGEOM.f90:31
m_fstr_main::fstr_init_file
subroutine fstr_init_file
Open all files preparing calculation.
Definition: fistr_main.f90:176
m_fstr_rcap_io
Definition: fstr_rcap_io.F90:5
m_fstr_setup::fstr_eigen_init
subroutine fstr_eigen_init(fstrEIG)
Initial setting of eigen ca;culation.
Definition: fstr_setup.f90:1541
m_fstr_solve_eigen
This module provides a function to control eigen analysis.
Definition: fstr_solve_eigen.f90:6
m_fstr::fstr_mat_init
subroutine fstr_mat_init(hecMAT)
Initializer of structure hecmwST_matrix.
Definition: m_fstr.f90:825
m_static_echo
This module provide a function to ECHO for IFSTR solver.
Definition: static_echo.f90:6
m_fstr_solve_nlgeom
This module provides main suboruitne for nonliear calculation.
Definition: fstr_solve_NLGEOM.f90:7
m_fstr_main::fstr_finalize
subroutine fstr_finalize
Finalizer !
Definition: fistr_main.f90:416
m_fstr::ineutral
integer(kind=kint), pointer ineutral
Definition: m_fstr.f90:124
m_fstr_setup
This module provides functions to read in data from control file and do necessary preparation for fol...
Definition: fstr_setup.f90:7
m_fstr::myrank
integer(kind=kint) myrank
PARALLEL EXECUTION.
Definition: m_fstr.f90:96
m_fstr::fstr_eigen
Package of data used by Lanczos eigenvalue solver.
Definition: m_fstr.f90:593
m_fstr::kststaticeigen
integer(kind=kint), parameter kststaticeigen
Definition: m_fstr.f90:42
m_fstr::itmax
integer(kind=kint) itmax
Definition: m_fstr.f90:141
m_fstr_main::fstrheat
type(fstr_heat), save fstrheat
Definition: fistr_main.f90:27
m_heat_init::heat_init_material
subroutine heat_init_material(hecMESH, fstrHEAT)
Definition: heat_init.f90:159
m_fstr::fstr_heat
Data for HEAT ANSLYSIS (fstrHEAT)
Definition: m_fstr.f90:425
m_fstr::fstr_param_init
subroutine fstr_param_init(fstrPARAM, hecMESH)
Initializer of structure fstr_param.
Definition: m_fstr.f90:979
fstr_debug_dump
This module contains functions to print out calculation settings.
Definition: fstr_debug_dump.f90:7
m_fstr_main::fstrdynamic
type(fstr_dynamic), save fstrdynamic
Definition: fistr_main.f90:29
m_fstr_main::name_id
character(len=hecmw_filename_len) name_id
Definition: fistr_main.f90:33
m_fstr_main::hecmat
type(hecmwst_matrix), save hecmat
Definition: fistr_main.f90:23
m_fstr_main::fstreig
type(fstr_eigen), save fstreig
Definition: fistr_main.f90:28
m_fstr_main::fstr_init
subroutine fstr_init
Initializer !
Definition: fistr_main.f90:116
m_fstr::fstr_nullify_fstr_dynamic
subroutine fstr_nullify_fstr_dynamic(DY)
Definition: m_fstr.f90:782
m_fstr::fstr_solid
Definition: m_fstr.f90:238
m_fstr_main::conmat
type(hecmwst_matrix), save conmat
Definition: fistr_main.f90:24
m_fstr::fstr_dynamic
Data for DYNAMIC ANSLYSIS (fstrDYNAMIC)
Definition: m_fstr.f90:504
m_fstr::fstr_nullify_fstr_heat
subroutine fstr_nullify_fstr_heat(H)
Definition: m_fstr.f90:728
m_fstr::idbg
integer(kind=kint), parameter idbg
Definition: m_fstr.f90:111
m_fstr_main::fstrresult
type(hecmwst_result_data), save fstrresult
Definition: fistr_main.f90:30
m_fstr::fstr_nullify_fstr_eigen
subroutine fstr_nullify_fstr_eigen(E)
Definition: m_fstr.f90:807
m_fstr::fstrpr
type(fstr_param), target fstrpr
GLOBAL VARIABLE INITIALIZED IN FSTR_SETUP.
Definition: m_fstr.f90:208
m_fstr_setup::fstr_setup
subroutine fstr_setup(cntl_filename, hecMESH, fstrPARAM, fstrSOLID, fstrEIG, fstrHEAT, fstrDYNAMIC, fstrCPL, fstrFREQ)
Read in and initialize control data !
Definition: fstr_setup.f90:45
m_fstr_setup::fstr_dynamic_init
subroutine fstr_dynamic_init(fstrDYNAMIC)
Initial setting of dynamic calculation.
Definition: fstr_setup.f90:1554
m_fstr::eps
real(kind=kreal) eps
Definition: m_fstr.f90:142
m_fstr::fstr_freqanalysis
Definition: m_fstr.f90:571
m_fstr::dt
real(kind=kreal) dt
ANALYSIS CONTROL for NLGEOM and HEAT.
Definition: m_fstr.f90:139
m_fstr_main::fstr_init_condition
subroutine fstr_init_condition
Read in control file and do all preparation.
Definition: fistr_main.f90:259
m_fstr_rcap_io::fstr_rcap_initialize
subroutine, public fstr_rcap_initialize(hecMESH, fstrPARAM, fstrCPL)
Definition: fstr_rcap_io.F90:27
m_fstr::kststatic
integer(kind=kint), parameter kststatic
Definition: m_fstr.f90:37
m_fstr_main::fstrcpl
type(fstr_couple), save fstrcpl
Definition: fistr_main.f90:31
m_fstr
This module defines common data and basic structures for analysis.
Definition: m_fstr.f90:15
m_fstr::nprocs
integer(kind=kint) nprocs
Definition: m_fstr.f90:97
m_hecmw2fstr_mesh_conv::hecmw2fstr_mesh_conv
subroutine hecmw2fstr_mesh_conv(hecMESH)
Definition: hecmw2fstr_mesh_conv.f90:15
m_fstr::ivisual
integer(kind=kint), pointer ivisual
Definition: m_fstr.f90:123
hecmw_ctrl_make_subdir
void hecmw_ctrl_make_subdir(char *filename, int *err, int len)
Definition: hecmw_control.c:2594
m_fstr_main::hecmesh
type(hecmwst_local_mesh), save hecmesh
Definition: fistr_main.f90:22
m_fstr::ref_temp
real(kind=kreal), pointer ref_temp
REFTEMP.
Definition: m_fstr.f90:136
m_fstr_solve_eigen::fstr_solve_eigen
subroutine fstr_solve_eigen(hecMESH, hecMAT, fstrEIG, fstrSOLID, fstrRESULT, fstrPARAM, hecLagMAT)
solve eigenvalue probrem
Definition: fstr_solve_eigen.f90:12
m_fstr::fstr_couple
Data for coupling analysis.
Definition: m_fstr.f90:611
m_fstr::fstr_nullify_fstr_couple
subroutine fstr_nullify_fstr_couple(C)
Definition: m_fstr.f90:814
m_fstr_main
Definition: fistr_main.f90:5
m_fstr_precheck::fstr_input_precheck
subroutine fstr_input_precheck(hecMESH, hecMAT, fstrSOLID)
fstr_input_precheck !
Definition: fstr_precheck.f90:14
m_fstr::kstheat
integer(kind=kint), parameter kstheat
Definition: m_fstr.f90:39
m_fstr::iresult
integer(kind=kint), pointer iresult
Definition: m_fstr.f90:122
m_fstr_setup::fstr_solid_finalize
subroutine fstr_solid_finalize(fstrSOLID)
Finalizer of fstr_solid.
Definition: fstr_setup.f90:1268
m_fstr::ksteigen
integer(kind=kint), parameter ksteigen
Definition: m_fstr.f90:38
m_fstr::fstr_nullify_fstr_param
subroutine fstr_nullify_fstr_param(P)
NULL POINTER SETTING TO AVOID RUNTIME ERROR.
Definition: m_fstr.f90:658
m_fstr_solve_heat::fstr_solve_heat
subroutine fstr_solve_heat(hecMESH, hecMAT, fstrRESULT, fstrPARAM, fstrHEAT)
Definition: fstr_solve_heat.f90:10
hecmw
Definition: hecmw.f90:6
m_fstr::iwres
integer(kind=kint), pointer iwres
Definition: m_fstr.f90:126
m_fstr::ista
integer(kind=kint), parameter ista
Definition: m_fstr.f90:108
m_hecmw2fstr_mesh_conv
HECMW to FSTR Mesh Data Converter. Converting Connectivity of Element Type 232, 342 and 352.
Definition: hecmw2fstr_mesh_conv.f90:8
m_fstr_solve_heat
This module provides a function to control heat analysis.
Definition: fstr_solve_heat.f90:6
m_fstr_precheck
This module provides function to check input data of IFSTR solver.
Definition: fstr_precheck.f90:6
m_fstr_main::fstr_dynamic_analysis
subroutine fstr_dynamic_analysis
Master subroutine of dynamic analysis !
Definition: fistr_main.f90:355
m_fstr_main::fstr_eigen_analysis
subroutine fstr_eigen_analysis
Master subroutine of eigen analysis !
Definition: fistr_main.f90:315
m_fstr_rcap_io::fstr_rcap_finalize
subroutine, public fstr_rcap_finalize(fstrPARAM, fstrCPL)
Definition: fstr_rcap_io.F90:124
m_fstr_main::heclagmat
type(hecmwst_matrix_lagrange), save heclagmat
Definition: fistr_main.f90:26
m_fstr::hecmat_init
subroutine hecmat_init(hecMAT)
Definition: m_fstr.f90:865
m_fstr_main::fstrsolid
type(fstr_solid), save fstrsolid
Definition: fistr_main.f90:25
m_fstr::irres
integer(kind=kint), pointer irres
Definition: m_fstr.f90:125
m_fstr::nrres
integer(kind=kint), pointer nrres
Definition: m_fstr.f90:127
m_fstr_setup::fstr_solid_init
subroutine fstr_solid_init(hecMESH, fstrSOLID)
Initializer of structure fstr_solid.
Definition: fstr_setup.f90:1007
m_fstr::fstr_nullify_fstr_solid
subroutine fstr_nullify_fstr_solid(S)
Definition: m_fstr.f90:672
m_fstr::paracontactflag
logical paracontactflag
PARALLEL CONTACT FLAG.
Definition: m_fstr.f90:100
m_static_echo::fstr_echo
subroutine fstr_echo(hecMESH)
ECHO for IFSTR solver.
Definition: static_echo.f90:14
m_fstr_main::fstr_static_eigen_analysis
subroutine fstr_static_eigen_analysis
Master subroutine of static -> eigen analysis !
Definition: fistr_main.f90:381
m_heat_echo::heat_echo
subroutine heat_echo(p, hecMESH, fstrHEAT)
Definition: heat_echo.f90:10
m_fstr::sviarray
integer(kind=kint), dimension(100) sviarray
SOLVER CONTROL.
Definition: m_fstr.f90:117
m_fstr::etime
real(kind=kreal) etime
Definition: m_fstr.f90:140
fstr_solver_dynamic::fstr_solve_dynamic
subroutine fstr_solve_dynamic(hecMESH, hecMAT, fstrSOLID, fstrEIG, fstrDYNAMIC, fstrRESULT, fstrPARAM, fstrCPL, fstrFREQ, hecLagMAT, conMAT)
Master subroutine for dynamic analysis.
Definition: fstr_solve_dynamic.f90:23
m_fstr::ilog
integer(kind=kint), parameter ilog
FILE HANDLER.
Definition: m_fstr.f90:107
m_fstr::nprint
integer(kind=kint), pointer nprint
Definition: m_fstr.f90:128
m_fstr::svrarray
real(kind=kreal), dimension(100) svrarray
Definition: m_fstr.f90:118
m_fstr_setup::fstr_heat_init
subroutine fstr_heat_init(fstrHEAT)
Initial setting of heat analysis.
Definition: fstr_setup.f90:1523
m_fstr::hecmat_finalize
subroutine hecmat_finalize(hecMAT)
Definition: m_fstr.f90:922
m_heat_echo
ECHO for HEAT solver.
Definition: heat_echo.f90:6
m_heat_init::heat_init_amplitude
subroutine heat_init_amplitude(hecMESH, fstrHEAT)
Definition: heat_init.f90:75
m_fstr_main::fstrfreq
type(fstr_freqanalysis), save fstrfreq
Definition: fistr_main.f90:32
m_fstr::kstdynamic
integer(kind=kint), parameter kstdynamic
Definition: m_fstr.f90:40
m_fstr::imsg
integer(kind=kint), parameter imsg
Definition: m_fstr.f90:110