GVEC_POST Program

Uses

  • program~~gvec_post~~UsesGraph program~gvec_post GVEC_POST MODgvec_MHD3D_visu MODgvec_MHD3D_visu program~gvec_post->MODgvec_MHD3D_visu module~modgvec_analyze MODgvec_Analyze program~gvec_post->module~modgvec_analyze module~modgvec_functional MODgvec_functional program~gvec_post->module~modgvec_functional module~modgvec_globals MODgvec_Globals program~gvec_post->module~modgvec_globals module~modgvec_mhd3d_evalfunc MODgvec_MHD3D_evalFunc program~gvec_post->module~modgvec_mhd3d_evalfunc module~modgvec_mhd3d_vars MODgvec_MHD3D_Vars program~gvec_post->module~modgvec_mhd3d_vars module~modgvec_mpi MODgvec_MPI program~gvec_post->module~modgvec_mpi module~modgvec_output MODgvec_Output program~gvec_post->module~modgvec_output module~modgvec_output_vars MODgvec_Output_Vars program~gvec_post->module~modgvec_output_vars module~modgvec_readintools MODgvec_ReadInTools program~gvec_post->module~modgvec_readintools module~modgvec_readstate_vars MODgvec_ReadState_Vars program~gvec_post->module~modgvec_readstate_vars module~modgvec_restart MODgvec_Restart program~gvec_post->module~modgvec_restart module~modgvec_analyze->module~modgvec_globals module~modgvec_functional->module~modgvec_globals module~modgvec_c_functional MODgvec_c_functional module~modgvec_functional->module~modgvec_c_functional iso_fortran_env iso_fortran_env module~modgvec_globals->iso_fortran_env module~modgvec_mhd3d_evalfunc->module~modgvec_globals module~sll_m_spline_matrix sll_m_spline_matrix module~modgvec_mhd3d_evalfunc->module~sll_m_spline_matrix module~sll_m_spline_matrix_banded sll_m_spline_matrix_banded module~modgvec_mhd3d_evalfunc->module~sll_m_spline_matrix_banded module~modgvec_mhd3d_vars->module~modgvec_globals module~modgvec_base MODgvec_base module~modgvec_mhd3d_vars->module~modgvec_base module~modgvec_hmap MODgvec_hmap module~modgvec_mhd3d_vars->module~modgvec_hmap module~modgvec_rprofile_base MODgvec_rProfile_base module~modgvec_mhd3d_vars->module~modgvec_rprofile_base module~modgvec_sgrid MODgvec_sGrid module~modgvec_mhd3d_vars->module~modgvec_sgrid module~modgvec_sol_var_mhd3d MODgvec_sol_var_MHD3D module~modgvec_mhd3d_vars->module~modgvec_sol_var_mhd3d module~modgvec_output_vars->module~modgvec_globals module~modgvec_readintools->module~modgvec_globals module~modgvec_readstate_vars->module~modgvec_globals module~modgvec_readstate_vars->module~modgvec_base module~modgvec_readstate_vars->module~modgvec_hmap module~modgvec_sbase MODgvec_sBase module~modgvec_readstate_vars->module~modgvec_sbase module~modgvec_readstate_vars->module~modgvec_sgrid module~modgvec_restart->module~modgvec_globals module~modgvec_base->module~modgvec_globals module~modgvec_base->module~modgvec_sbase module~modgvec_base->module~modgvec_sgrid module~modgvec_fbase MODgvec_fBase module~modgvec_base->module~modgvec_fbase module~modgvec_c_functional->module~modgvec_globals module~modgvec_c_hmap MODgvec_c_hmap module~modgvec_hmap->module~modgvec_c_hmap module~modgvec_hmap_axisnb MODgvec_hmap_axisNB module~modgvec_hmap->module~modgvec_hmap_axisnb module~modgvec_hmap_cyl MODgvec_hmap_cyl module~modgvec_hmap->module~modgvec_hmap_cyl module~modgvec_hmap_frenet MODgvec_hmap_frenet module~modgvec_hmap->module~modgvec_hmap_frenet module~modgvec_hmap_knot MODgvec_hmap_knot module~modgvec_hmap->module~modgvec_hmap_knot module~modgvec_hmap_rz MODgvec_hmap_RZ module~modgvec_hmap->module~modgvec_hmap_rz module~modgvec_rprofile_base->module~modgvec_globals module~modgvec_sbase->module~modgvec_globals module~modgvec_sbase->module~modgvec_sgrid module~modgvec_sbase->module~sll_m_spline_matrix module~sll_m_bsplines sll_m_bsplines module~modgvec_sbase->module~sll_m_bsplines module~sll_m_spline_interpolator_1d sll_m_spline_interpolator_1d module~modgvec_sbase->module~sll_m_spline_interpolator_1d module~modgvec_sgrid->module~modgvec_globals module~modgvec_sol_var_mhd3d->module~modgvec_globals module~modgvec_c_sol_var MODgvec_c_sol_var module~modgvec_sol_var_mhd3d->module~modgvec_c_sol_var module~sll_m_spline_matrix->module~sll_m_spline_matrix_banded module~sll_m_spline_matrix_base sll_m_spline_matrix_base module~sll_m_spline_matrix->module~sll_m_spline_matrix_base module~sll_m_spline_matrix_dense sll_m_spline_matrix_dense module~sll_m_spline_matrix->module~sll_m_spline_matrix_dense module~sll_m_working_precision sll_m_working_precision module~sll_m_spline_matrix->module~sll_m_working_precision module~sll_m_spline_matrix_banded->iso_fortran_env module~sll_m_spline_matrix_banded->module~sll_m_spline_matrix_base module~sll_m_spline_matrix_banded->module~sll_m_working_precision module~modgvec_c_hmap->module~modgvec_globals module~modgvec_c_sol_var->module~modgvec_globals module~modgvec_fbase->module~modgvec_globals module~modgvec_hmap_axisnb->module~modgvec_globals module~modgvec_hmap_axisnb->module~modgvec_c_hmap module~modgvec_hmap_axisnb->module~modgvec_fbase module~modgvec_io_netcdf MODgvec_IO_NETCDF module~modgvec_hmap_axisnb->module~modgvec_io_netcdf module~modgvec_hmap_cyl->module~modgvec_globals module~modgvec_hmap_cyl->module~modgvec_c_hmap module~modgvec_hmap_frenet->module~modgvec_globals module~modgvec_hmap_frenet->module~modgvec_c_hmap module~modgvec_hmap_knot->module~modgvec_globals module~modgvec_hmap_knot->module~modgvec_c_hmap module~modgvec_hmap_rz->module~modgvec_globals module~modgvec_hmap_rz->module~modgvec_c_hmap module~sll_m_bsplines->module~sll_m_working_precision module~sll_m_bsplines_base sll_m_bsplines_base module~sll_m_bsplines->module~sll_m_bsplines_base module~sll_m_bsplines_non_uniform sll_m_bsplines_non_uniform module~sll_m_bsplines->module~sll_m_bsplines_non_uniform module~sll_m_bsplines_uniform sll_m_bsplines_uniform module~sll_m_bsplines->module~sll_m_bsplines_uniform module~sll_m_spline_interpolator_1d->module~sll_m_spline_matrix module~sll_m_spline_interpolator_1d->module~sll_m_working_precision module~sll_m_boundary_condition_descriptors sll_m_boundary_condition_descriptors module~sll_m_spline_interpolator_1d->module~sll_m_boundary_condition_descriptors module~sll_m_spline_interpolator_1d->module~sll_m_bsplines_base module~sll_m_spline_1d sll_m_spline_1d module~sll_m_spline_interpolator_1d->module~sll_m_spline_1d module~sll_m_spline_matrix_base->module~sll_m_working_precision module~sll_m_spline_matrix_dense->iso_fortran_env module~sll_m_spline_matrix_dense->module~sll_m_spline_matrix_base module~sll_m_spline_matrix_dense->module~sll_m_working_precision module~modgvec_io_netcdf->module~modgvec_globals netcdf netcdf module~modgvec_io_netcdf->netcdf module~sll_m_bsplines_base->module~sll_m_working_precision module~sll_m_bsplines_non_uniform->module~sll_m_working_precision module~sll_m_bsplines_non_uniform->module~sll_m_bsplines_base module~sll_m_bsplines_uniform->module~sll_m_working_precision module~sll_m_bsplines_uniform->module~sll_m_bsplines_base module~sll_m_spline_1d->module~sll_m_working_precision module~sll_m_spline_1d->module~sll_m_bsplines_base

GVEC Driver program


Calls

program~~gvec_post~~CallsGraph program~gvec_post GVEC_POST __perfoff __perfoff program~gvec_post->__perfoff __perfon __perfon program~gvec_post->__perfon __perfout __perfout program~gvec_post->__perfout analyze analyze program~gvec_post->analyze fillstrings fillstrings program~gvec_post->fillstrings finalizeanalyze finalizeanalyze program~gvec_post->finalizeanalyze finalizeoutput finalizeoutput program~gvec_post->finalizeoutput finalizerestart finalizerestart program~gvec_post->finalizerestart getint getint program~gvec_post->getint ignoredstrings ignoredstrings program~gvec_post->ignoredstrings initanalyze initanalyze program~gvec_post->initanalyze initoutput initoutput program~gvec_post->initoutput initrestart initrestart program~gvec_post->initrestart proc~evalenergy EvalEnergy program~gvec_post->proc~evalenergy proc~evalforce EvalForce program~gvec_post->proc~evalforce proc~finalizefunctional FinalizeFunctional program~gvec_post->proc~finalizefunctional proc~initfunctional InitFunctional program~gvec_post->proc~initfunctional proc~initprofilesgp InitProfilesGP program~gvec_post->proc~initprofilesgp proc~par_finalize par_Finalize program~gvec_post->proc~par_finalize proc~par_init par_Init program~gvec_post->proc~par_init restartfromstate restartfromstate program~gvec_post->restartfromstate swrite swrite program~gvec_post->swrite writesfloutfile writesfloutfile program~gvec_post->writesfloutfile proc~evalenergy->__perfoff proc~evalenergy->__perfon interface~par_allreduce par_AllReduce proc~evalenergy->interface~par_allreduce proc~evalaux EvalAux proc~evalenergy->proc~evalaux proc~evalforce->__perfoff proc~evalforce->__perfon interface~par_bcast par_Bcast proc~evalforce->interface~par_bcast interface~par_ibcast par_IBcast proc~evalforce->interface~par_ibcast interface~par_ireduce par_IReduce proc~evalforce->interface~par_ireduce par_wait par_wait proc~evalforce->par_wait proc~applybc_fstrong ApplyBC_Fstrong proc~evalforce->proc~applybc_fstrong proc~applyprecond ApplyPrecond proc~evalforce->proc~applyprecond proc~buildprecond BuildPrecond proc~evalforce->proc~buildprecond proc~evalforce->proc~evalaux proc~fbase_projectiptodof_tens t_fBase%fBase_projectIPtoDOF_tens proc~evalforce->proc~fbase_projectiptodof_tens proc~par_barrier par_Barrier proc~evalforce->proc~par_barrier proc~sbase_applybctorhs t_sBase%sBase_applyBCtoRHS proc~evalforce->proc~sbase_applybctorhs req1 req1 proc~evalforce->req1 req2 req2 proc~evalforce->req2 req3 req3 proc~evalforce->req3 solve_inplace solve_inplace proc~evalforce->solve_inplace init init proc~initfunctional->init proc~initprofilesgp->interface~par_bcast proc~rprofile_eval_at_rho c_rProfile%rProfile_eval_at_rho proc~initprofilesgp->proc~rprofile_eval_at_rho mpi_finalize mpi_finalize proc~par_finalize->mpi_finalize mpi_comm_rank mpi_comm_rank proc~par_init->mpi_comm_rank mpi_comm_size mpi_comm_size proc~par_init->mpi_comm_size mpi_init_thread mpi_init_thread proc~par_init->mpi_init_thread req req proc~par_init->req proc~par_init->req1 proc~par_init->req2 proc~par_init->req3 proc~par_allreduce_array1d par_AllReduce_array1D interface~par_allreduce->proc~par_allreduce_array1d proc~par_allreduce_array2d par_AllReduce_array2D interface~par_allreduce->proc~par_allreduce_array2d proc~par_allreduce_scalar par_AllReduce_scalar interface~par_allreduce->proc~par_allreduce_scalar proc~par_allreduce_scalar_int par_AllReduce_scalar_int interface~par_allreduce->proc~par_allreduce_scalar_int proc~par_bcast_array1d par_Bcast_array1D interface~par_bcast->proc~par_bcast_array1d proc~par_bcast_array1d_int par_Bcast_array1D_int interface~par_bcast->proc~par_bcast_array1d_int proc~par_bcast_array1d_str par_Bcast_array1D_str interface~par_bcast->proc~par_bcast_array1d_str proc~par_bcast_array2d par_Bcast_array2D interface~par_bcast->proc~par_bcast_array2d proc~par_bcast_scalar par_Bcast_scalar interface~par_bcast->proc~par_bcast_scalar proc~par_bcast_scalar_int par_Bcast_scalar_int interface~par_bcast->proc~par_bcast_scalar_int proc~par_bcast_scalar_str par_Bcast_scalar_str interface~par_bcast->proc~par_bcast_scalar_str proc~par_ibcast_array1d par_IBcast_array1D interface~par_ibcast->proc~par_ibcast_array1d proc~par_ibcast_array2d par_IBcast_array2D interface~par_ibcast->proc~par_ibcast_array2d proc~par_ireduce_array1d par_IReduce_array1D interface~par_ireduce->proc~par_ireduce_array1d proc~par_ireduce_array2d par_IReduce_array2D interface~par_ireduce->proc~par_ireduce_array2d proc~sbase_applybctodof_lgm t_sBase%sBase_applyBCtoDOF_LGM proc~applybc_fstrong->proc~sbase_applybctodof_lgm proc~s_spline_matrix_banded__solve_inplace sll_t_spline_matrix_banded%s_spline_matrix_banded__solve_inplace proc~applyprecond->proc~s_spline_matrix_banded__solve_inplace proc~buildprecond->__perfoff proc~buildprecond->__perfon proc~buildprecond->interface~par_allreduce add_element add_element proc~buildprecond->add_element factorize factorize proc~buildprecond->factorize get_element get_element proc~buildprecond->get_element reset reset proc~buildprecond->reset set_element set_element proc~buildprecond->set_element proc~evalaux->__perfoff proc~evalaux->__perfon proc~evalaux->interface~par_allreduce eval_all eval_all proc~evalaux->eval_all proc~base_evaldof t_base%base_evalDOF proc~evalaux->proc~base_evaldof proc~base_evaldof_all t_base%base_evalDOF_all proc~evalaux->proc~base_evaldof_all __adgemm_tn __adgemm_tn proc~fbase_projectiptodof_tens->__adgemm_tn __dgemm_nt __dgemm_nt proc~fbase_projectiptodof_tens->__dgemm_nt mpi_barrier mpi_barrier proc~par_barrier->mpi_barrier eval_at_rho2 eval_at_rho2 proc~rprofile_eval_at_rho->eval_at_rho2 proc~rho2_derivative rho2_derivative proc~rprofile_eval_at_rho->proc~rho2_derivative proc~rprofile_drho2 c_rProfile%rProfile_drho2 proc~rprofile_eval_at_rho->proc~rprofile_drho2 proc~rprofile_drho3 c_rProfile%rProfile_drho3 proc~rprofile_eval_at_rho->proc~rprofile_drho3 proc~rprofile_drho4 c_rProfile%rProfile_drho4 proc~rprofile_eval_at_rho->proc~rprofile_drho4 proc~base_evaldof->__perfoff proc~base_evaldof->__perfon proc~fbase_evaldof_ip_tens t_fBase%fBase_evalDOF_IP_tens proc~base_evaldof->proc~fbase_evaldof_ip_tens proc~base_evaldof_all->__perfoff proc~base_evaldof_all->__perfon proc~base_evaldof_all->proc~fbase_evaldof_ip_tens mpi_allreduce mpi_allreduce proc~par_allreduce_array1d->mpi_allreduce proc~par_allreduce_array2d->mpi_allreduce proc~par_allreduce_scalar->mpi_allreduce proc~par_allreduce_scalar_int->mpi_allreduce mpi_bcast mpi_bcast proc~par_bcast_array1d->mpi_bcast proc~par_bcast_array1d_int->mpi_bcast proc~par_bcast_array1d_str->mpi_bcast proc~par_bcast_array2d->mpi_bcast proc~par_bcast_scalar->mpi_bcast proc~par_bcast_scalar_int->mpi_bcast proc~par_bcast_scalar_str->mpi_bcast mpi_ibcast mpi_ibcast proc~par_ibcast_array1d->mpi_ibcast proc~par_ibcast_array2d->mpi_ibcast mpi_ireduce mpi_ireduce proc~par_ireduce_array1d->mpi_ireduce proc~par_ireduce_array2d->mpi_ireduce proc~poly_derivative_prefactor poly_derivative_prefactor proc~rho2_derivative->proc~poly_derivative_prefactor proc~rprofile_drho2->eval_at_rho2 proc~rprofile_drho2->proc~rho2_derivative proc~rprofile_drho3->eval_at_rho2 proc~rprofile_drho3->proc~rho2_derivative proc~rprofile_drho4->eval_at_rho2 proc~rprofile_drho4->proc~rho2_derivative dgbtrs dgbtrs proc~s_spline_matrix_banded__solve_inplace->dgbtrs sll_assert sll_assert proc~s_spline_matrix_banded__solve_inplace->sll_assert sll_error sll_error proc~s_spline_matrix_banded__solve_inplace->sll_error proc~solve SOLVE proc~sbase_applybctodof_lgm->proc~solve __dgemm_nn __dgemm_nn proc~fbase_evaldof_ip_tens->__dgemm_nn proc~fbase_evaldof_xn t_fBase%fBase_evalDOF_xn proc~fbase_evaldof_ip_tens->proc~fbase_evaldof_xn dgetrf dgetrf proc~solve->dgetrf dgetrs dgetrs proc~solve->dgetrs __matvec_n __matvec_n proc~fbase_evaldof_xn->__matvec_n proc~fbase_eval_xn t_fBase%fBase_eval_xn proc~fbase_evaldof_xn->proc~fbase_eval_xn

Variables

Type Attributes Name Initial
integer :: iArg
integer :: nArgs
character(len=255) :: Parameterfile
character(len=255) :: Statefile
integer :: which_functional
integer :: JacCheck
class(t_functional), ALLOCATABLE :: functional
real(kind=wp) :: StartTime
real(kind=wp) :: EndTime

Source Code

PROGRAM GVEC_POST
  USE MODgvec_MPI          ,ONLY : par_Init, par_Finalize,par_bcast
  USE MODgvec_Globals
  USE MODgvec_Analyze      ,ONLY: InitAnalyze,Analyze,FinalizeAnalyze
  USE MODgvec_Output       ,ONLY: InitOutput,FinalizeOutput
  USE MODgvec_Output_vars  ,ONLY: OutputLevel
  USE MODgvec_Restart      ,ONLY: InitRestart,FinalizeRestart
  USE MODgvec_Restart      ,ONLY: RestartFromState
  USE MODgvec_Output_Vars  ,ONLY: OutputLevel,ProjectName
  USE MODgvec_ReadState_Vars,ONLY: fileID_r,outputLevel_r
  USE MODgvec_MHD3D_Vars   ,ONLY: U,F
  USE MODgvec_MHD3D_visu   ,ONLY:WriteSFLoutfile
  USE MODgvec_MHD3D_EvalFunc , ONLY: InitProfilesGP,EvalEnergy,EvalForce
  USE MODgvec_ReadInTools  ,ONLY: FillStrings,GETLOGICAL,GETINT,IgnoredStrings
  USE MODgvec_Functional
!$ USE omp_lib
  IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
!local variables
  INTEGER                 :: iArg,nArgs
  CHARACTER(LEN=255)      :: Parameterfile
  CHARACTER(LEN=255)      :: Statefile
  INTEGER                 :: which_functional
  INTEGER                 :: JacCheck
  CLASS(t_functional),ALLOCATABLE   :: functional
  REAL(wp)                :: StartTime,EndTime
!===================================================================================================================================
  CALL par_Init()
  __PERFINIT
  __PERFON('main')
  nArgs=COMMAND_ARGUMENT_COUNT()
  IF ((nArgs.LT.2))THEN
    ! Print out error message containing valid syntax
    STOP 'ERROR - Invalid syntax. Please use: gvec_post parameter.ini [Statefiles*] '
  END IF
  CALL GET_COMMAND_ARGUMENT(1,Parameterfile)

  CALL CPU_TIME(StartTime)
!$ StartTime=OMP_GET_WTIME()

  !header
  SWRITE(Unit_stdOut,'(132("="))')
  SWRITE(UNIT_stdOut,'(A)') "GVEC POST ! GVEC POST ! GVEC POST ! GVEC POST"
  SWRITE(Unit_stdOut,'(132("="))')
  !.only executes if compiled with OpenMP
!$ SWRITE(UNIT_stdOut,'(A,I6)')'   Number of OpenMP threads : ',OMP_GET_MAX_THREADS()
!$ SWRITE(Unit_stdOut,'(132("="))')
  !.only executes if compiled with MPI
# if MPI
  SWRITE(UNIT_stdOut,'(A,I6)')'   Number of MPI tasks : ',nRanks
  SWRITE(Unit_stdOut,fmt_sep)
  IF(nRanks.GT.1) CALL abort(__STAMP__,&
                   "GVEC post is compiled with MPI, but can only be called with 1 MPI rank." )
# endif
#include  "configuration-cmake.f90"
  SWRITE(Unit_stdOut,fmt_sep)

  CALL FillStrings(ParameterFile) !< readin parameterfile, done on MPI root + Bcast
  testdbg =.FALSE.
  testlevel=-1

  !initialization phase
  CALL InitRestart()
  CALL InitOutput()
  CALL InitAnalyze()

  which_functional=GETINT('which_functional', Proposal=1 )
  CALL InitFunctional(functional,which_functional)

  CALL IgnoredStrings()
  DO iArg=2,nArgs
    CALL GET_COMMAND_ARGUMENT(iArg,StateFile)
    SWRITE(Unit_stdOut,'(132("-"))')
    SWRITE(UNIT_stdOut,'(A,I4,A4,I4,A3,A)') 'Post-Analyze StateFile ',iArg-1,' of ',nArgs-1,' : ',TRIM(StateFile)
    SWRITE(Unit_stdOut,'(132("-"))')
    ProjectName='POST_'//TRIM(StateFile(1:INDEX(StateFile,'_State_')-1))
    CALL RestartFromState(StateFile,U(0))
    outputLevel=outputLevel_r
    JacCheck=2
    !...check this: temporarily commented for gvec_post to run with MPI version...
    CALL InitProfilesGP() !evaluate profiles once at Gauss Points (on MPIroot + BCast)
    U(0)%W_MHD3D=EvalEnergy(U(0),.TRUE.,JacCheck)
    CALL EvalForce(U(0),.FALSE.,JacCheck, F(0))
    CALL Analyze(FileID_r)
    CALL writeSFLoutfile(U(0),FileID_r)
  END DO !iArg

  CALL FinalizeFunctional(functional)

  CALL FinalizeAnalyze()
  CALL FinalizeOutput()
  CALL FinalizeRestart()

  CALL CPU_TIME(EndTime)
!$ EndTime=OMP_GET_WTIME()
  WRITE(Unit_stdOut,'(132("="))')
  WRITE(Unit_stdOut,'(A,F8.2,A)') ' GVEC POST FINISHED ! [',EndTime-StartTime,' sec ]'
  WRITE(Unit_stdOut,'(132("="))')

  __PERFOFF('main')
  __PERFOUT('main')
  CALL par_Finalize()

END PROGRAM GVEC_POST