FIXME : Add documentation
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | private | :: | initialized | = | .false. | ||
logical, | private | :: | initialized_x_transform | = | .false. | ||
logical, | private | :: | initialized_y_transform | = | .false. | ||
logical, | private | :: | initialized_layouts | = | .false. | ||
logical, | private | :: | initialized_dist_fn_layouts | = | .false. | ||
logical, | private | :: | initialized_fields_layouts | = | .false. | ||
logical, | private | :: | initialized_jfields_layouts | = | .false. | ||
logical, | private | :: | initialized_le_layouts | = | .false. | ||
logical, | private | :: | initialized_gf_layouts | = | .false. | ||
logical, | private | :: | initialized_energy_layouts | = | .false. | ||
logical, | private | :: | initialized_lambda_layouts | = | .false. | ||
logical, | private | :: | initialized_parity_layouts | = | .false. | ||
logical, | private | :: | initialized_accel_transform_layouts | = | .false. | ||
logical, | public | :: | opt_local_copy | ||||
logical, | public | :: | intmom_sub | ||||
logical, | public | :: | intspec_sub | ||||
logical, | public | :: | local_field_solve | ||||
logical, | private | :: | accel_lxyes | ||||
logical, | private | :: | lambda_local | ||||
logical, | private | :: | unbalanced_xxf | ||||
logical, | private | :: | unbalanced_yxf | ||||
integer, | private | :: | nproc_e_lo | ||||
integer, | private | :: | nproc_g_lo | ||||
integer, | private | :: | nproc_le_lo | ||||
integer, | private | :: | nproc_lz_lo | ||||
integer, | private | :: | nproc_xxf_lo | ||||
integer, | private | :: | nproc_yxf_lo | ||||
real, | private | :: | max_unbalanced_xxf | ||||
real, | private | :: | max_unbalanced_yxf | ||||
character(len=5), | public | :: | layout | ||||
character(len=run_name_size), | public | :: | fft_wisdom_file | ||||
logical, | public | :: | fft_use_wisdom | ||||
logical, | public | :: | fft_measure_plan | ||||
logical, | public | :: | simple_gf_decomposition | ||||
logical, | public | :: | gf_local_fields | ||||
type(f_layout_type), | public, | dimension(:), allocatable | :: | f_lo | |||
type(g_layout_type), | public | :: | g_lo | ||||
type(le_layout_type), | public | :: | le_lo | ||||
type(gf_layout_type), | public | :: | gf_lo |
layout for fields_gf_local and gf_lo integration |
|||
type(p_layout_type), | public | :: | p_lo | ||||
type(jf_layout_type), | public | :: | jf_lo | ||||
type(lz_layout_type), | public | :: | lz_lo | ||||
type(e_layout_type), | public | :: | e_lo | ||||
type(xxf_layout_type), | public | :: | xxf_lo | ||||
type(yxf_layout_type), | public | :: | yxf_lo | ||||
type(accel_layout_type), | public | :: | accel_lo | ||||
type(accelx_layout_type), | public | :: | accelx_lo | ||||
type(layouts_config_type), | private | :: | layouts_config |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | if | |||
integer, | intent(in) | :: | n |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | if | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Here if is the compound theta*field index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the theta index, given xxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the theta index, given yxf-layout and a global index of a point on this proc
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the ky index, given g-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(gf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the ky index, given xxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accel_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the kx index, given g-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(gf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the kx index, given yxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accel_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the lambda index, given g-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the lambda index, given xxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the lambda index, given yxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the energy index, given g-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the energy index, given xxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the energy index, given yxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the species index, given g-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the species index, given xxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the species index, given yxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the sign index, given xxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the sign index, given yxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the processor id that has the point i in the g_lo layout
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(gf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the processor id that has the point i in the xxf_lo layout
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the processor id that has the point i in the yxf_lo layout
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the global index in the g_lo layout given the dimensional indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | if | |||
integer, | intent(in) | :: | im |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | if | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | isign | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(gf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it |
Return the global index in the xxf_lo layout given the dimensional indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | isign | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
Return the global index in the yxf_lo layout given the dimensional indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | isign | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
Return whether a point is local to a processor given the dimensional indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
Return whether a point is local to a processor given the global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | if | |||
integer, | intent(in) | :: | im |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | if | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | isign | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(gf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(gf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig |
Return whether a point is local to a processor given the dimensional indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | isign | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
Return whether a point is local to a processor given the global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return whether a point is local to a processor given the dimensional indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | isign | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
Return whether a point is local to a processor given the global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ip |
Sets the order of x y l e s in g_lo
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(inout) | :: | lo | |||
integer, | intent(in) | :: | it_ord | |||
integer, | intent(in) | :: | ik_ord | |||
integer, | intent(in) | :: | il_ord | |||
integer, | intent(in) | :: | ie_ord | |||
integer, | intent(in) | :: | is_ord |
Sets the order of x y th s in le_lo
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(inout) | :: | lo | |||
integer, | intent(in) | :: | ig_ord | |||
integer, | intent(in) | :: | it_ord | |||
integer, | intent(in) | :: | ik_ord | |||
integer, | intent(in) | :: | is_ord |
Sets the order of x y e th s in lz_lo
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(inout) | :: | lo | |||
integer, | intent(in) | :: | ig_ord | |||
integer, | intent(in) | :: | it_ord | |||
integer, | intent(in) | :: | ik_ord | |||
integer, | intent(in) | :: | ie_ord | |||
integer, | intent(in) | :: | is_ord |
Sets the order of th sgn x y l s in e_lo
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(inout) | :: | lo | |||
integer, | intent(in) | :: | ig_ord | |||
integer, | intent(in) | :: | isgn_ord | |||
integer, | intent(in) | :: | it_ord | |||
integer, | intent(in) | :: | ik_ord | |||
integer, | intent(in) | :: | il_ord | |||
integer, | intent(in) | :: | is_ord |
Sets the order of y th sgn l e s in xxf_lo Note: usually the order is y, theta, sign, then "les" in the order they appear in the g_lo layout
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(inout) | :: | lo | |||
integer, | intent(in) | :: | ik_ord | |||
integer, | intent(in) | :: | ig_ord | |||
integer, | intent(in) | :: | isgn_ord | |||
integer, | intent(in) | :: | il_ord | |||
integer, | intent(in) | :: | ie_ord | |||
integer, | intent(in) | :: | is_ord |
Sets the order of x th sgn l e s in yxf_lo Note: usually the order is x, theta, sign, then "les" in the order they appear in the g_lo layout
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(inout) | :: | lo | |||
integer, | intent(in) | :: | it_ord | |||
integer, | intent(in) | :: | ig_ord | |||
integer, | intent(in) | :: | isgn_ord | |||
integer, | intent(in) | :: | il_ord | |||
integer, | intent(in) | :: | ie_ord | |||
integer, | intent(in) | :: | is_ord |
FIXME : Add documentation
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | iproc | ||||
integer, | public | :: | nproc | ||||
integer, | public | :: | nidx | ||||
integer, | public | :: | nfield | ||||
integer, | public | :: | ntgrid | ||||
integer, | public | :: | nindex | ||||
integer, | public | :: | naky | ||||
integer, | public | :: | ntheta0 | ||||
integer, | public | :: | M_class | ||||
integer, | public | :: | N_class | ||||
integer, | public | :: | i_class | ||||
integer, | public | :: | llim_world | ||||
integer, | public | :: | ulim_world | ||||
integer, | public | :: | llim_proc | ||||
integer, | public | :: | ulim_proc | ||||
integer, | public | :: | ulim_alloc | ||||
integer, | public | :: | blocksize | ||||
integer, | public, | dimension(:,:), allocatable | :: | ik | |||
integer, | public, | dimension(:,:), allocatable | :: | it |
FIXME : Add documentation
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | iproc | ||||
integer, | public | :: | nproc | ||||
integer, | public | :: | nindex | ||||
integer, | public | :: | naky | ||||
integer, | public | :: | ntheta0 | ||||
integer, | public | :: | ntgrid | ||||
integer, | public | :: | nfield | ||||
integer, | public | :: | llim_world | ||||
integer, | public | :: | ulim_world | ||||
integer, | public | :: | llim_proc | ||||
integer, | public | :: | ulim_proc | ||||
integer, | public | :: | ulim_alloc | ||||
integer, | public | :: | blocksize | ||||
integer, | public | :: | ig_min | ||||
integer, | public | :: | ig_max | ||||
integer, | public | :: | ifield_min | ||||
integer, | public | :: | ifield_max | ||||
integer, | public | :: | it_min | ||||
integer, | public | :: | it_max | ||||
integer, | public | :: | ik_min | ||||
integer, | public | :: | ik_max | ||||
integer, | public, | dimension(:), allocatable | :: | ij | |||
integer, | public, | dimension(:), allocatable | :: | mj | |||
integer, | public, | dimension(:,:), allocatable | :: | dj |
Used to represent the input configuration of layouts
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public | :: | exist | = | .false. |
Does the related namelist exist in the target input file? |
|
integer, | public | :: | index | = | 0 |
Used to hold the specific index of numbered namelists |
|
logical, | public | :: | skip_read | = | .false. |
Do we want to skip the read step in init? |
|
logical, | public | :: | skip_broadcast | = | .false. |
Do we want to skip the broadcast step in init? |
|
logical, | public | :: | skip_smart_defaults | = | .false. |
Do we want to skip the smaart defaults in init? |
|
logical, | public | :: | fft_measure_plan | = | .false. |
If false then fftw will use heuristics to determine the best fft plan. If true then timing measurements will be made to determine an optimal plan. When true it can take somewhat longer to initialise the fft plans. |
|
logical, | public | :: | fft_use_wisdom | = | .true. |
Try to load and save wisdom about fftw plans to
|
|
character(len=run_name_size), | public | :: | fft_wisdom_file | = | 'default' |
Location of fftw wisdom file, if left as default, this is set to
run_name//'.fftw_wisdom', unless overriden by the environment
variable |
|
logical, | public | :: | gf_local_fields | = | .false. |
If true then perform initial decomposition setup related to
the |
|
logical, | public | :: | intmom_sub | = | .false. |
When set to true use sub-communicators in the velocity space
integration routines associated with taking moments of the
distribution function. The sub-communicator involves all
processors with a given |
|
logical, | public | :: | intspec_sub | = | .false. |
When set to true use sub-communicators in the velocity space
integration routines associated with taking species summed
moments of the distribution function. The sub-communicator
involves all processors with a given |
|
character(len=5), | public | :: | layout | = | 'lxyes' |
This string determines how the distributed dimensions (k) |
|
logical, | public | :: | local_field_solve | = | .false. |
Can strongly affect initialization time on some parallel computers. Recommendation: Set true on computers with slow communication networks. It's probably worth trying changing this on your favourite machine to see how much difference it makes for you. |
|
real, | public | :: | max_unbalanced_xxf | = | 0.0 |
Sets maximum allowable fractional imbalance between the two
different blocksizes used in the |
|
real, | public | :: | max_unbalanced_yxf | = | 0.0 |
Sets maximum allowable fractional imbalance between the two
different blocksizes used in the |
|
integer, | public | :: | nproc_e_lo | = | 0 |
The number of processors to use in e_lo layout. Capped to number of processors in comm world. If not set (<=0) defaults to global nproc. |
|
integer, | public | :: | nproc_g_lo | = | 0 |
The number of processors to use in g_lo layout. Capped to number of processors in comm world. If not set (<=0) defaults to global nproc. |
|
integer, | public | :: | nproc_le_lo | = | 0 |
The number of processors to use in le_lo layout. Capped to number of processors in comm world. If not set (<=0) defaults to global nproc. |
|
integer, | public | :: | nproc_lz_lo | = | 0 |
The number of processors to use in lz_lo layout. Capped to number of processors in comm world. If not set (<=0) defaults to global nproc. |
|
integer, | public | :: | nproc_xxf_lo | = | 0 |
The number of processors to use in xxf_lo layout. Capped to number of processors in comm world. If not set (<=0) defaults to global nproc. |
|
integer, | public | :: | nproc_yxf_lo | = | 0 |
The number of processors to use in yxf_lo layout. Capped to number of processors in comm world. If not set (<=0) defaults to global nproc. |
|
logical, | public | :: | opt_local_copy | = | .false. |
Setting to true enables optimising redistribute code, used in FFTs for evaluating nonlinear terms, that avoids indirect addressing. This can introduces worthwhile savings in nonlinear GS2 simulations at lower core counts. See Adrian Jackson's DCSE report for more details. |
|
logical, | public | :: | opt_redist_nbk | = | .true. |
Set to true to use non-blocking communications in the redistribute routines. This is generally more performant but has been observed to be slower in one or two rare cases. |
|
logical, | public | :: | opt_redist_persist | = | .false. |
Set to true to use persistent (non-blocking) communications in
the redistribute routines. Requires |
|
logical, | public | :: | opt_redist_persist_overlap | = | .false. |
Set to true to try to overlap the mpi and local parts of the
gather/scatter routines. Should only be used with
|
|
logical, | public | :: | simple_gf_decomposition | = | .true. |
When in |
|
logical, | public | :: | unbalanced_xxf | = | .false. |
Setting to true allows GS2 to adopt a more flexible domain
decomposition of the xxf data decomposition (used in nonlinear
FFTs). By default GS2 allocates each 1 task with the same
uniform blocksize in |
|
logical, | public | :: | unbalanced_yxf | = | .false. |
Setting to true allows GS2 to adopt a more flexible domain
decomposition of the yxf data decomposition (used in nonlinear
FFTs). By default GS2 allocates each 1 task with the same
uniform blocksize in yxf_lo, one task may have a smaller block
of data, and other tasks may be empty. There is no attempt to
keep both x and y as local as possible, and sometimes large
1 data transfers are required to map from xxf to yxf and
vice-versa during FFTs. With |
Handle nproc values outside valid range (i.e. <= 0 or > nproc_total). Values outside of this range are replaced with nproc_total
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nproc_in | |||
integer, | intent(in) | :: | upper_limit |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Distribution function layouts !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Setup a g_layout (g_lo) type data decomposition object describing the work decomposition for a problem with passed grid sizes running on nproc. Returns the values for the processor with rank iproc. Note this involves collective 1 routines so requires all processors on comm world to take part. This does not require the input nproc to match the nproc of the world communicator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
Return the species index, given g-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the lambda index, given g-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the energy index, given g-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the kx index, given g-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the ky index, given g-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the processor id that has the point i in the g_lo layout
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the global index in the g_lo layout given the dimensional indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
Return whether a point is local to a processor given the dimensional indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
Return whether a point is local to a processor given the global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Field layouts
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
M_class(i) = number of i_th supercell
N_class(i) = size of i_th supercell
i_class = number of classes of (different sized) supercells.
Construct a fields layout instance
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nfield | |||
integer, | intent(in) | :: | nindex | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in), | dimension(:) | :: | M_class | ||
integer, | intent(in), | dimension(:) | :: | N_class | ||
integer, | intent(in) | :: | i_class | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | if | |||
integer, | intent(in) | :: | im |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | if | |||
integer, | intent(in) | :: | im |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | if | |||
integer, | intent(in) | :: | n |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(f_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Fast field layouts !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Construct a jfields instance
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nfield | |||
integer, | intent(in) | :: | nindex | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | i_class | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | if | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | if | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | if | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(jf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Lambda-Energy layouts !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Construct a le_layout_type instance.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Fields Local layout: This is used to calculate velocity space integration and other fields related calculations on a restricted process count for large core count simulations. It takes naky and ntheta and distributed that amongst theta so that a single naky,ntheta point is only owned by a single process. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Construct a gf_layout_type instance.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(gf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(gf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(gf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(gf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(gf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(gf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Energy layouts !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Construct an energy layout instance.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | isign | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | isign | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Lambda layouts !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Construct a lambda layout instance
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | ng2 | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! layouts for parity diagnostic !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Construct a parity layout instance.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ip |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(p_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! X-space layouts !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Construct an xxf_lo instance.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nx | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
Return the species index, given xxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the energy index, given xxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the lambda index, given xxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the sign index, given xxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the theta index, given xxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the ky index, given xxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the global index in the xxf_lo layout given the dimensional indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | isign | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
Return the processor id that has the point i in the xxf_lo layout
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return whether a point is local to a processor given the dimensional indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | isign | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
Return whether a point is local to a processor given the global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Y-space layouts !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Construct a yxf_lo instance.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nx | |||
integer, | intent(in) | :: | ny | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
Return the species index, given yxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the energy index, given yxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the lambda index, given yxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the sign index, given yxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the theta index, given yxf-layout and a global index of a point on this proc
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the kx index, given yxf-layout and a global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
Return the global index in the yxf_lo layout given the dimensional indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | isign | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return the processor id that has the point i in the yxf_lo layout
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ik | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
Return whether a point is local to a processor given the dimensional indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ig | |||
integer, | intent(in) | :: | isign | |||
integer, | intent(in) | :: | it | |||
integer, | intent(in) | :: | il | |||
integer, | intent(in) | :: | ie | |||
integer, | intent(in) | :: | is |
Return whether a point is local to a processor given the global index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Accelerated FFTW3 layouts !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Construct an accelx layout instance
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nx | |||
integer, | intent(in) | :: | ny | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
Construct an accel layout instance
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nx | |||
integer, | intent(in) | :: | ny | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accelx_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accel_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accel_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | i |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(accel_layout_type), | intent(in) | :: | lo | |||
integer, | intent(in) | :: | ia |
Gets the default name for this namelist
Gets the default requires index for this namelist
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | unit |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(layouts_config_type), | intent(in), | optional | :: | layouts_config_in |
FIXME : Add documentation
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(layouts_config_type), | intent(in), | optional | :: | layouts_config_in |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(optimisations_overrides_type), | intent(in) | :: | opt_ov |
Disable opt_redist_persist and opt_redist_persist_overlap if dependent settings not set
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(in) | :: | opt_redist_nbk | |||
logical, | intent(inout) | :: | opt_redist_persist | |||
logical, | intent(inout) | :: | opt_redist_persist_overlap |
Set the fft_wisdom_file based on the value set in the namelist (if any) and the value in the GK_FFTW3_WISDOM environment variable
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=run_name_size), | intent(inout) | :: | wisdom_file |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(out) | :: | nblock |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec |
For the passed ulim_world, blocksize and nproc work out if there are any unused processors and report to screen. Can optionally also set an output flag.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ulim_world | |||
integer, | intent(in) | :: | blocksize | |||
integer, | intent(in) | :: | nproc | |||
character(len=*), | intent(in) | :: | name | |||
logical, | intent(out), | optional | :: | any_unused |
Construct the work decomposition for the g_layout and store it in the module level g_lo instance.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
Construct the module level fields_layout instance
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nfield | |||
integer, | intent(in) | :: | nindex | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in), | dimension(:) | :: | M_class | ||
integer, | intent(in), | dimension(:) | :: | N_class | ||
integer, | intent(in) | :: | i_class | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
FIXME : Add documentation
FIXME : Add documentation
FIXME : Add documentation
Setup the module level jfields instance
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nfield | |||
integer, | intent(in) | :: | nindex | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | i_class | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
FIXME : Add documentation
Setup the module level le_lo
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
Setup the module level gf_lo instance.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
Setup the module level energy layout.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
Setup the module level lz_lo instance
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | ng2 | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
Setup the module level p_lo instance
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
Setup the module level xxf_lo instance
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nx | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
This subroutine (calculate_unbalanced_x) wraps up all the functionality required to calculate the xxf blocksizes and work out if and unbalanced decomposition should be used, and if so the size of the unbalanced blocks.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc | |||
real, | intent(out) | :: | unbalanced_amount |
This subroutine (calculate_block_breakdown) is used in the code to create unbalanced xxf and yxf layouts to address 1 communication overheads in the redistribution of data for the FFTs used in the nonlinear calculations to move from Fourier space to real space and back again.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | k | |||
integer, | intent(out) | :: | i | |||
integer, | intent(out) | :: | m | |||
integer, | intent(out) | :: | j | |||
integer, | intent(in) | :: | level_proc_num |
This subroutine (calculate_unbalanced_decomposition) is used in the code to create unbalanced xxf and yxf layouts to address 1 communication overheads in the redistribution of data for the FFTs used in the nonlinear calculations to move from Fourier space to real space and back again.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | k | |||
integer, | intent(out) | :: | j | |||
integer, | intent(out) | :: | i | |||
integer, | intent(out) | :: | numsmall | |||
integer, | intent(out) | :: | numlarge | |||
integer, | intent(in) | :: | localprocs |
This subroutine (calculate_block_size) is used in the code to create unbalanced xxf and yxf layouts to address 1 communication overheads in the redistribution of data for the FFTs used in the nonlinear calculations to move from Fourier space to real space and back again.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | iproc | |||
integer, | intent(in) | :: | numsmall | |||
integer, | intent(in) | :: | numlarge | |||
integer, | intent(in) | :: | smalldecomp | |||
integer, | intent(in) | :: | largedecomp | |||
integer, | intent(in) | :: | sizeblock | |||
integer, | intent(out) | :: | blocksize | |||
integer, | intent(out) | :: | smallblocksize | |||
integer, | intent(out) | :: | largeblocksize | |||
integer, | intent(out) | :: | block_multiple | |||
integer, | intent(out) | :: | llim | |||
integer, | intent(out) | :: | ulim | |||
integer, | intent(out) | :: | ulim_alloc |
This subroutine (calculate_idle_processes) is used to calculate the difference between the number of processes used in the xxf and yxf data layouts. This is important as it can affect the amount of communication that the code has to undertake when moving between linear and non-linear calculations.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nprocs | |||
real, | intent(out) | :: | idle_percentage |
Setup the module level yxf_lo instance.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nx | |||
integer, | intent(in) | :: | ny | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc | |||
real, | intent(out) | :: | unbalanced_amount |
Setup the module level accelx_lo and accel_lo instances
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ntgrid | |||
integer, | intent(in) | :: | naky | |||
integer, | intent(in) | :: | ntheta0 | |||
integer, | intent(in) | :: | nlambda | |||
integer, | intent(in) | :: | negrid | |||
integer, | intent(in) | :: | nspec | |||
integer, | intent(in) | :: | nx | |||
integer, | intent(in) | :: | ny | |||
integer, | intent(in) | :: | nproc | |||
integer, | intent(in) | :: | iproc |
FIXME : Add documentation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=1), | intent(out) | :: | char |
Get the factors of an integer n
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | n |
The number to factorize |
||
integer, | intent(out) | :: | j |
The number of factors |
||
integer, | intent(out), | dimension (:) | :: | div |
Array containing the j factors of n |
Sets the order of x y l e s in g_lo
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(g_layout_type), | intent(inout) | :: | lo | |||
integer, | intent(in) | :: | it_ord | |||
integer, | intent(in) | :: | ik_ord | |||
integer, | intent(in) | :: | il_ord | |||
integer, | intent(in) | :: | ie_ord | |||
integer, | intent(in) | :: | is_ord |
Sets the order of x y th s in le_lo
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(le_layout_type), | intent(inout) | :: | lo | |||
integer, | intent(in) | :: | ig_ord | |||
integer, | intent(in) | :: | it_ord | |||
integer, | intent(in) | :: | ik_ord | |||
integer, | intent(in) | :: | is_ord |
Sets the order of x y e th s in lz_lo
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(lz_layout_type), | intent(inout) | :: | lo | |||
integer, | intent(in) | :: | ig_ord | |||
integer, | intent(in) | :: | it_ord | |||
integer, | intent(in) | :: | ik_ord | |||
integer, | intent(in) | :: | ie_ord | |||
integer, | intent(in) | :: | is_ord |
Sets the order of th sgn x y l s in e_lo
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(e_layout_type), | intent(inout) | :: | lo | |||
integer, | intent(in) | :: | ig_ord | |||
integer, | intent(in) | :: | isgn_ord | |||
integer, | intent(in) | :: | it_ord | |||
integer, | intent(in) | :: | ik_ord | |||
integer, | intent(in) | :: | il_ord | |||
integer, | intent(in) | :: | is_ord |
Sets the order of y th sgn l e s in xxf_lo Note: usually the order is y, theta, sign, then "les" in the order they appear in the g_lo layout
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(xxf_layout_type), | intent(inout) | :: | lo | |||
integer, | intent(in) | :: | ik_ord | |||
integer, | intent(in) | :: | ig_ord | |||
integer, | intent(in) | :: | isgn_ord | |||
integer, | intent(in) | :: | il_ord | |||
integer, | intent(in) | :: | ie_ord | |||
integer, | intent(in) | :: | is_ord |
Sets the order of x th sgn l e s in yxf_lo Note: usually the order is x, theta, sign, then "les" in the order they appear in the g_lo layout
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(yxf_layout_type), | intent(inout) | :: | lo | |||
integer, | intent(in) | :: | it_ord | |||
integer, | intent(in) | :: | ig_ord | |||
integer, | intent(in) | :: | isgn_ord | |||
integer, | intent(in) | :: | il_ord | |||
integer, | intent(in) | :: | ie_ord | |||
integer, | intent(in) | :: | is_ord |
Checks that the given array contains unique integers 1 to (array size) (in any order), aborts if not.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout), | dimension(:) | :: | array |
Dimension of input |
|
character(len=*), | intent(in) | :: | message |
Error message |
Reads in the layouts_knobs namelist and populates the member variables
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(layouts_config_type), | intent(inout) | :: | self |
Writes out a namelist representing the current state of the config object
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(layouts_config_type), | intent(in) | :: | self | |||
integer, | intent(in), | optional | :: | unit |
Resets the config object to the initial empty state
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(layouts_config_type), | intent(inout) | :: | self |
Broadcasts all config parameters so object is populated identically on all processors
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(layouts_config_type), | intent(inout) | :: | self |
Set the module level config instance
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(layouts_config_type), | intent(in), | optional | :: | layouts_config_in |