FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(theta_grid_gridgen_config_type), | intent(in), | optional | :: | theta_grid_gridgen_config_in | ||
type(theta_grid_salpha_config_type), | intent(in), | optional | :: | theta_grid_salpha_config_in | ||
type(theta_grid_file_config_type), | intent(in), | optional | :: | theta_grid_file_config_in | ||
type(theta_grid_eik_config_type), | intent(in), | optional | :: | theta_grid_eik_config_in |
subroutine get_sizes(theta_grid_gridgen_config_in, theta_grid_salpha_config_in, theta_grid_file_config_in, theta_grid_eik_config_in)
use theta_grid_eik, only: eik_get_sizes, init_theta_grid_eik, theta_grid_eik_config_type
use theta_grid_salpha, only: salpha_get_sizes, init_theta_grid_salpha, theta_grid_salpha_config_type
use theta_grid_file, only: file_get_sizes, file_nc_get_sizes, init_theta_grid_file, theta_grid_file_config_type
use theta_grid_file, only: ntheta_file=>ntheta, nperiod_file=>nperiod
use theta_grid_file, only: nbset_file=>nbset
use theta_grid_gridgen, only: theta_grid_gridgen_init, theta_grid_gridgen_config_type
implicit none
type(theta_grid_gridgen_config_type), intent(in), optional :: theta_grid_gridgen_config_in
type(theta_grid_salpha_config_type), intent(in), optional :: theta_grid_salpha_config_in
type(theta_grid_file_config_type), intent(in), optional :: theta_grid_file_config_in
type(theta_grid_eik_config_type), intent(in), optional :: theta_grid_eik_config_in
logical, parameter :: debug=.false.
if (debug) write(6,*) 'get_sizes: eqopt_switch=',eqopt_switch
select case (eqopt_switch)
case (eqopt_eik)
if (debug) write(6,*) 'get_sizes: call init_theta_grid_eik'
call init_theta_grid_eik(theta_grid_eik_config_in)
if (debug) write(6,*) 'get_sizes: call eik_get_sizes'
call eik_get_sizes (ntheta, nperiod, nbset)
case (eqopt_salpha)
if (debug) write(6,*) 'get_sizes: call init_theta_grid_salpha'
call init_theta_grid_salpha(theta_grid_salpha_config_in)
if (debug) write(6,*) 'get_sizes: call salpha_get_sizes'
call salpha_get_sizes (ntheta, nperiod, nbset)
case (eqopt_file)
if (debug) write(6,*) 'get_sizes: call init_theta_grid_file'
call init_theta_grid_file(theta_grid_file_config_in)
if (debug) write(6,*) 'get_sizes: call file_get_sizes'
call file_get_sizes
ntheta=ntheta_file
nperiod=nperiod_file
nbset=nbset_file
case (eqopt_file_nc)
if (debug) write(6,*) 'get_sizes: call init_theta_grid_file'
call init_theta_grid_file(theta_grid_file_config_in)
if (debug) write(6,*) 'get_sizes: call file_nc_get_sizes'
call file_nc_get_sizes
ntheta=ntheta_file
nperiod=nperiod_file
nbset=nbset_file
end select
ntgrid = ntheta / 2 + (nperiod - 1) * ntheta
! Make sure gridgen is setup on all procs
call theta_grid_gridgen_init(theta_grid_gridgen_config_in)
if (debug) write(6,*) 'get_sizes: done'
end subroutine get_sizes