Analyze Subroutine

public subroutine Analyze(fileID_in, dofs_in, force_in)

Uses

  • proc~~analyze~~UsesGraph proc~analyze Analyze MODgvec_mhd3d_visu MODgvec_mhd3d_visu proc~analyze->MODgvec_mhd3d_visu module~modgvec_analyze_vars MODgvec_Analyze_Vars proc~analyze->module~modgvec_analyze_vars module~modgvec_mhd3d_vars MODgvec_MHD3D_Vars proc~analyze->module~modgvec_mhd3d_vars module~modgvec_sol_var_mhd3d MODgvec_sol_var_MHD3D proc~analyze->module~modgvec_sol_var_mhd3d module~modgvec_globals MODgvec_Globals module~modgvec_analyze_vars->module~modgvec_globals module~modgvec_mhd3d_vars->module~modgvec_sol_var_mhd3d module~modgvec_base MODgvec_base module~modgvec_mhd3d_vars->module~modgvec_base module~modgvec_boundaryfromfile MODgvec_boundaryFromFile module~modgvec_mhd3d_vars->module~modgvec_boundaryfromfile module~modgvec_mhd3d_vars->module~modgvec_globals 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_c_sol_var MODgvec_c_sol_var module~modgvec_sol_var_mhd3d->module~modgvec_c_sol_var module~modgvec_sol_var_mhd3d->module~modgvec_globals module~modgvec_base->module~modgvec_globals module~modgvec_base->module~modgvec_sgrid module~modgvec_fbase MODgvec_fBase module~modgvec_base->module~modgvec_fbase module~modgvec_sbase MODgvec_sBase module~modgvec_base->module~modgvec_sbase module~modgvec_boundaryfromfile->module~modgvec_globals module~modgvec_io_netcdf MODgvec_IO_NETCDF module~modgvec_boundaryfromfile->module~modgvec_io_netcdf module~modgvec_c_sol_var->module~modgvec_globals iso_fortran_env iso_fortran_env module~modgvec_globals->iso_fortran_env 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_sgrid->module~modgvec_globals module~modgvec_c_hmap->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_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~modgvec_io_netcdf->module~modgvec_globals module~modgvec_sbase->module~modgvec_globals module~modgvec_sbase->module~modgvec_sgrid 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~sll_m_spline_matrix sll_m_spline_matrix module~modgvec_sbase->module~sll_m_spline_matrix module~sll_m_assert sll_m_assert module~sll_m_bsplines->module~sll_m_assert 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_errors sll_m_errors module~sll_m_bsplines->module~sll_m_errors module~sll_m_working_precision sll_m_working_precision module~sll_m_bsplines->module~sll_m_working_precision module~sll_m_spline_interpolator_1d->module~sll_m_spline_matrix module~sll_m_spline_interpolator_1d->module~sll_m_assert 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_interpolator_1d->module~sll_m_errors module~sll_m_spline_1d sll_m_spline_1d module~sll_m_spline_interpolator_1d->module~sll_m_spline_1d module~sll_m_spline_interpolator_1d->module~sll_m_working_precision module~sll_m_spline_matrix->module~sll_m_errors module~sll_m_spline_matrix_banded sll_m_spline_matrix_banded 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_spline_matrix->module~sll_m_working_precision module~sll_m_boundary_condition_descriptors->module~sll_m_working_precision module~sll_m_bsplines_base->module~sll_m_assert module~sll_m_bsplines_base->module~sll_m_working_precision module~sll_m_bsplines_non_uniform->module~sll_m_assert module~sll_m_bsplines_non_uniform->module~sll_m_bsplines_base module~sll_m_bsplines_non_uniform->module~sll_m_working_precision module~sll_m_bsplines_uniform->module~sll_m_assert module~sll_m_bsplines_uniform->module~sll_m_bsplines_base module~sll_m_bsplines_uniform->module~sll_m_errors module~sll_m_bsplines_uniform->module~sll_m_working_precision module~sll_m_errors->iso_fortran_env module~sll_m_spline_1d->module~sll_m_assert module~sll_m_spline_1d->module~sll_m_bsplines_base module~sll_m_spline_1d->module~sll_m_working_precision module~sll_m_spline_matrix_banded->iso_fortran_env module~sll_m_spline_matrix_banded->module~sll_m_assert module~sll_m_spline_matrix_banded->module~sll_m_errors module~sll_m_spline_matrix_banded->module~sll_m_spline_matrix_base module~sll_m_spline_matrix_banded->module~sll_m_working_precision 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_assert module~sll_m_spline_matrix_dense->module~sll_m_errors module~sll_m_spline_matrix_dense->module~sll_m_spline_matrix_base module~sll_m_spline_matrix_dense->module~sll_m_working_precision

Arguments

Type IntentOptional Attributes Name
integer, intent(in), optional :: fileID_in
class(t_sol_var_MHD3D), intent(in) :: dofs_in
class(t_sol_var_MHD3D), intent(in) :: force_in

Calls

proc~~analyze~~CallsGraph proc~analyze Analyze proc~vmec1d_visu VMEC1D_visu proc~analyze->proc~vmec1d_visu proc~vmec3d_visu VMEC3D_visu proc~analyze->proc~vmec3d_visu visu_1d_modes visu_1d_modes proc~analyze->visu_1d_modes visu_3d visu_3d proc~analyze->visu_3d visu_bc_face visu_bc_face proc~analyze->visu_bc_face proc~rprofile_eval_at_rho c_rProfile%rProfile_eval_at_rho proc~vmec1d_visu->proc~rprofile_eval_at_rho vmec_evalsplmode vmec_evalsplmode proc~vmec1d_visu->vmec_evalsplmode write_modes write_modes proc~vmec1d_visu->write_modes proc~writedatatovtk WriteDataToVTK proc~vmec3d_visu->proc~writedatatovtk writedatatocsv writedatatocsv proc~vmec3d_visu->writedatatocsv 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 interface~getfreeunit GETFREEUNIT proc~writedatatovtk->interface~getfreeunit interface~getfreeunit->interface~getfreeunit 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

Source Code

SUBROUTINE Analyze(fileID_in, dofs_in, force_in)
! MODULES
USE MODgvec_sol_var_MHD3D, ONLY: t_sol_var_MHD3D
USE MODgvec_Analyze_Vars
USE MODgvec_MHD3D_Vars, ONLY:which_init
USE MODgvec_mhd3d_visu
IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
CLASS(t_sol_var_MHD3D), INTENT(IN) :: dofs_in, force_in
INTEGER, INTENT(IN), OPTIONAL :: fileID_in
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
LOGICAL            :: vcase(4)
CHARACTER(LEN=4)   :: vstr
INTEGER            :: FileID
!===================================================================================================================================
  IF(.NOT.MPIroot) RETURN
  iAnalyze=iAnalyze+1
  IF(PRESENT(FileID_in))THEN
    FileID=FileID_in
  ELSE
    FileID=iAnalyze
  END IF
  IF(iAnalyze.EQ.0) THEN
    IF(which_init.EQ.1) THEN
      IF(visu1D.GT.0) CALL VMEC1D_visu()
      IF(visu2D.GT.0) CALL VMEC3D_visu(np_visu_planes,visu_planes_minmax,.TRUE. )
      IF(visu3D.GT.0) CALL VMEC3D_visu(np_visu_3D    ,visu_3D_minmax    ,.FALSE.)
    END IF
  END IF !iAnalyze==0
  IF(visu1D.GT.0)THEN
    CALL visu_1d_modes(dofs_in,np_1d,FileID)
    !
  END IF !visu1D
  IF(visu2D.GT.0)THEN
    vcase=.FALSE.
    WRITE(vstr,'(I4)')visu2D
    IF(INDEX(vstr,'1').NE.0) vcase(1)=.TRUE.
    IF(INDEX(vstr,'2').NE.0) vcase(2)=.TRUE.
    IF(INDEX(vstr,'3').NE.0) vcase(3)=.TRUE.
    IF(INDEX(vstr,'4').NE.0) vcase(4)=.TRUE.
    IF(vcase(1))THEN
      IF(iAnalyze.EQ.0) CALL visu_BC_face(dofs_in, np_visu_BC(1:2),visu_BC_minmax(:,:),FileID)
    END IF
    IF(vcase(2))THEN
      CALL visu_3D(dofs_in, force_in, np_visu_planes,visu_planes_minmax,.TRUE.,FileID) !only planes
    END IF
  END IF !visu2d
  IF(visu3D.GT.0)THEN
    vcase=.FALSE.
    WRITE(vstr,'(I4)')visu3D
    IF(INDEX(vstr,'1').NE.0) vcase(1)=.TRUE.
    IF(INDEX(vstr,'2').NE.0) vcase(2)=.TRUE.
    IF(INDEX(vstr,'3').NE.0) vcase(3)=.TRUE.
    IF(INDEX(vstr,'4').NE.0) vcase(4)=.TRUE.
    IF(vcase(1))THEN
      CALL visu_3D(dofs_in, force_in, np_visu_3D,visu_3D_minmax,.FALSE.,FileID) !full 3D
    END IF
  END IF !visu2d

END SUBROUTINE Analyze