33   character(len=HECMW_FILENAME_LEN)          :: 
name_id 
   39     real(kind=kreal) :: t1, t2, t3
 
   41     t1=0.0d0; t2=0.0d0; t3=0.0d0
 
   46     myrank = hecmw_comm_get_rank()
 
   47     nprocs = hecmw_comm_get_size()
 
   54     if( 
hecmesh%contact_pair%n_pair > 0 ) 
then 
   71     select case( 
fstrpr%solution_type )
 
   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(*,*)           
'====================================' 
   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,*)           
'====================================' 
  107     if(
hecmesh%my_rank==0) 
write(*,*) 
'FrontISTR Completed !!' 
  119     call hecmw_nullify_matrix     ( 
hecmat      )
 
  120     call hecmw_nullify_matrix     ( 
conmat      )
 
  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
 
  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)
 
  196         write( logfilename, 
'(a,a,a,a,a)') 
'LOG/TRUNK', trim(adjustl(r)), 
'/', trim(adjustl(s)), 
'.log' 
  197         logfilename = adjustl(logfilename)
 
  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)
 
  203         if( stat /= 0 ) 
call fstr_setup_util_err_stop( 
'### Cannot create directory' )
 
  205         write( logfilename, 
'(a,a,a)') 
'LOG/', trim(adjustl(s)), 
'.log' 
  206         logfilename = adjustl(logfilename)
 
  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)
 
  212         if( stat /= 0 ) 
call fstr_setup_util_err_stop( 
'### Cannot create directory' )
 
  215     stafilename = 
'FSTR.sta' 
  216     msgfilename = 
'FSTR.msg' 
  221       open(
imsg, file=msgfilename, status=
'replace', iostat=stat)
 
  223         call fstr_setup_util_err_stop( 
'### Cannot open message file :'//msgfilename )
 
  225       write(
imsg,*) 
':========================================:' 
  226       write(
imsg,*) 
':**   BEGIN FSTR Structural Analysis   **:' 
  227       write(
imsg,*) 
':========================================:' 
  228       write(
imsg,*) 
'        Total no. of processors: ',
nprocs 
  232       write(
imsg,*) 
' *    STAGE Initialization and input   **' 
  236     open (
ilog, file = logfilename, status = 
'replace', iostat=stat )
 
  238       call fstr_setup_util_err_stop( 
'### Cannot open log file :'//logfilename )
 
  242       open (
ista,file = stafilename, status = 
'replace', iostat=stat )
 
  243       write(
ista,
'(''####''a80)') stafilename
 
  245         call fstr_setup_util_err_stop( 
'### Cannot open status file :'//stafilename )
 
  249     open (
idbg,file = dbgfilename, status = 
'replace')
 
  250     write(
idbg,
'(''####''a80)') dbgfilename
 
  252       call fstr_setup_util_err_stop( 
'### Cannot open debug file :'//dbgfilename )
 
  260     character(len=HECMW_FILENAME_LEN) :: cntfileNAME
 
  263     call hecmw_ctrl_get_control_file( 
name_id, cntfilename )
 
  277     if( 
myrank == 0) 
write(*,*) 
'fstr_setup: OK' 
  278     write(
ilog,*) 
'fstr_setup: OK' 
  299       if( 
myrank == 0)  
write(
imsg,*) 
' ***   STAGE Non Linear static analysis   **' 
  301       if( 
myrank == 0 ) 
write(
imsg,*) 
' ***   STAGE Linear static analysis   **' 
  324       write(
imsg,*) 
' ***   STAGE Eigenvalue analysis     **' 
  343       write(
imsg,*) 
' ***   STAGE Heat analysis    **' 
  364         write(
imsg,*) 
' ***   STAGE Nonlinear dynamic analysis   **' 
  366         write(
imsg,*) 
' ***   STAGE Linear dynamic analysis   **' 
  389       write(
imsg,*) 
' ***   STAGE Static -> Eigen analysis   **' 
  390       write(*,*) 
' ***   STAGE Static -> Eigen analysis   **' 
  392       write(
imsg,*) 
' ***   Stage 1: Nonlinear static analysis  **' 
  393       write(*,*) 
' ***   Stage 1: Nonlinear static analysis   **' 
  400       write(
imsg,*) 
' ***   Stage 2: Eigenvalue analysis  **' 
  402       write(*,*) 
' ***   Stage 2: Eigenvalue analysis   **' 
  422       write(
imsg,*) 
':========================================:' 
  423       write(
imsg,*) 
':**            END of FSTR             **:' 
  424       write(
imsg,*) 
':========================================:' 
void hecmw_ctrl_is_subdir(int *flag, int *limit)
void hecmw_ctrl_make_subdir(char *filename, int *err, int len)
This module contains functions to print out calculation settings.
This module contains subroutines controlling dynamic calculation.
subroutine fstr_solve_dynamic(hecMESH, hecMAT, fstrSOLID, fstrEIG, fstrDYNAMIC, fstrRESULT, fstrPARAM, fstrCPL, fstrFREQ, hecLagMAT, conMAT)
Master subroutine for dynamic analysis.
type(hecmwst_result_data), save fstrresult
subroutine fstr_dynamic_analysis
Master subroutine of dynamic analysis !
type(hecmwst_matrix), save hecmat
type(hecmwst_matrix_lagrange), save heclagmat
subroutine fstr_static_eigen_analysis
Master subroutine of static -> eigen analysis !
subroutine fstr_init
Initializer !
subroutine fstr_heat_analysis
Master subroutine of heat analysis !
type(hecmwst_local_mesh), save hecmesh
subroutine fstr_init_condition
Read in control file and do all preparation.
type(fstr_solid), save fstrsolid
type(fstr_heat), save fstrheat
subroutine fstr_static_analysis
Master subroutine of linear/nonlinear static analysis !
character(len=hecmw_filename_len) name_id
subroutine fstr_finalize
Finalizer !
type(fstr_dynamic), save fstrdynamic
type(fstr_couple), save fstrcpl
subroutine fstr_init_file
Open all files preparing calculation.
type(fstr_freqanalysis), save fstrfreq
type(hecmwst_matrix), save conmat
subroutine fstr_eigen_analysis
Master subroutine of eigen analysis !
type(fstr_eigen), save fstreig
This module provides function to check input data of IFSTR solver.
subroutine fstr_input_precheck(hecMESH, hecMAT, fstrSOLID)
fstr_input_precheck !
subroutine, public fstr_rcap_finalize(fstrPARAM, fstrCPL)
subroutine, public fstr_rcap_initialize(hecMESH, fstrPARAM, fstrCPL)
This module provides functions to read in data from control file and do necessary preparation for fol...
subroutine fstr_eigen_init(fstrEIG)
Initial setting of eigen ca;culation.
subroutine fstr_solid_finalize(fstrSOLID)
Finalizer of fstr_solid.
subroutine fstr_solid_init(hecMESH, fstrSOLID)
Initializer of structure fstr_solid.
subroutine fstr_dynamic_init(fstrDYNAMIC)
Initial setting of dynamic calculation.
subroutine fstr_heat_init(fstrHEAT)
Initial setting of heat analysis.
subroutine fstr_setup(cntl_filename, hecMESH, fstrPARAM, fstrSOLID, fstrEIG, fstrHEAT, fstrDYNAMIC, fstrCPL, fstrFREQ)
Read in and initialize control data !
This module provides a function to control eigen analysis.
subroutine fstr_solve_eigen(hecMESH, hecMAT, fstrEIG, fstrSOLID, fstrRESULT, fstrPARAM, hecLagMAT)
solve eigenvalue probrem
This module provides a function to control heat analysis.
subroutine fstr_solve_heat(hecMESH, hecMAT, fstrRESULT, fstrPARAM, fstrHEAT)
This module provides main suboruitne for nonliear calculation.
subroutine fstr_solve_nlgeom(hecMESH, hecMAT, fstrSOLID, hecLagMAT, fstrPARAM, conMAT)
This module provides main subroutine for nonlinear calculation.
This module defines common data and basic structures for analysis.
integer(kind=kint), pointer iresult
subroutine hecmat_finalize(hecMAT)
subroutine fstr_nullify_fstr_couple(C)
integer(kind=kint) myrank
PARALLEL EXECUTION.
subroutine fstr_param_init(fstrPARAM, hecMESH)
Initializer of structure fstr_param.
integer(kind=kint), parameter imsg
real(kind=kreal), dimension(100) svrarray
integer(kind=kint), parameter kstdynamic
integer(kind=kint), pointer ineutral
subroutine fstr_nullify_fstr_heat(H)
integer(kind=kint), parameter idbg
integer(kind=kint), dimension(100) sviarray
SOLVER CONTROL.
subroutine fstr_mat_init(hecMAT)
Initializer of structure hecmwST_matrix.
subroutine fstr_nullify_fstr_eigen(E)
integer(kind=kint) nprocs
integer(kind=kint), pointer iwres
integer(kind=kint), parameter ilog
FILE HANDLER.
integer(kind=kint), pointer nprint
real(kind=kreal) dt
ANALYSIS CONTROL for NLGEOM and HEAT.
integer(kind=kint), pointer nrres
integer(kind=kint), parameter kststatic
subroutine hecmat_init(hecMAT)
integer(kind=kint), parameter kststaticeigen
integer(kind=kint), parameter kstheat
integer(kind=kint), parameter ista
real(kind=kreal), pointer ref_temp
REFTEMP.
integer(kind=kint), pointer irres
integer(kind=kint), pointer iecho
FLAG for ECHO/RESULT/POST.
type(fstr_param), target fstrpr
GLOBAL VARIABLE INITIALIZED IN FSTR_SETUP.
subroutine fstr_nullify_fstr_param(P)
NULL POINTER SETTING TO AVOID RUNTIME ERROR.
integer(kind=kint), parameter ksteigen
integer(kind=kint), pointer ivisual
subroutine fstr_nullify_fstr_solid(S)
subroutine fstr_nullify_fstr_dynamic(DY)
logical paracontactflag
PARALLEL CONTACT FLAG.
subroutine heat_echo(p, hecMESH, fstrHEAT)
This module provides functions to initialize heat analysis.
subroutine heat_init_material(hecMESH, fstrHEAT)
subroutine heat_init_amplitude(hecMESH, fstrHEAT)
HECMW to FSTR Mesh Data Converter. Converting Connectivity of Element Type 232, 342 and 352.
subroutine hecmw2fstr_mesh_conv(hecMESH)
This module provide a function to ECHO for IFSTR solver.
subroutine fstr_echo(hecMESH)
ECHO for IFSTR solver.
Data for coupling analysis.
Data for DYNAMIC ANSLYSIS (fstrDYNAMIC)
Package of data used by Lanczos eigenvalue solver.
Data for HEAT ANSLYSIS (fstrHEAT)