CAM
phys_grid.F90 File Reference

Data Types

type  phys_grid::chunk
 
type  phys_grid::lchunk
 
type  phys_grid::knuhc
 
type  phys_grid::column_map
 
type  phys_grid::btofc_pters
 

Modules

module  phys_grid
 

Functions/Subroutines

integer function phys_grid::get_nlcols_p ()
 
integer function phys_grid::get_clon_p_tot ()
 
integer function phys_grid::get_clat_p_tot ()
 
subroutine phys_grid::phys_grid_init ()
 
subroutine phys_grid::phys_grid_find_col (lat, lon, owner, lcid, icol)
 
subroutine phys_grid::phys_grid_find_cols (lat, lon, nclosest, owner, lcid, icol, distmin, mlats, mlons)
 
logical function phys_grid::phys_grid_initialized ()
 
subroutine phys_grid::phys_grid_defaultopts (phys_loadbalance_out, phys_twin_algorithm_out, phys_alltoall_out, phys_chnk_per_thd_out)
 
subroutine phys_grid::phys_grid_setopts (phys_loadbalance_in, phys_twin_algorithm_in, phys_alltoall_in, phys_chnk_per_thd_in)
 
subroutine phys_grid::get_chunk_indices_p (index_beg, index_end)
 
subroutine phys_grid::get_gcol_all_p (lcid, latdim, gcols)
 
integer function phys_grid::get_gcol_p (lcid, col)
 
subroutine phys_grid::get_gcol_vec_p (lcid, lth, cols, gcols)
 
integer function phys_grid::get_ncols_p (lcid)
 
subroutine phys_grid::get_lat_all_p (lcid, latdim, lats)
 
subroutine phys_grid::get_lat_vec_p (lcid, lth, cols, lats)
 
integer function phys_grid::get_lat_p (lcid, col)
 
subroutine phys_grid::get_lon_all_p (lcid, londim, lons)
 
subroutine phys_grid::get_lon_vec_p (lcid, lth, cols, lons)
 
integer function phys_grid::get_lon_p (lcid, col)
 
subroutine phys_grid::get_rlat_all_p (lcid, rlatdim, rlats)
 
subroutine phys_grid::get_area_all_p (lcid, rdim, area)
 
real(r8) function phys_grid::get_area_p (lcid, col)
 
subroutine phys_grid::get_wght_all_p (lcid, rdim, wght)
 
real(r8) function phys_grid::get_wght_p (lcid, col)
 
subroutine phys_grid::get_rlat_vec_p (lcid, lth, cols, rlats)
 
real(r8) function phys_grid::get_rlat_p (lcid, col)
 
subroutine phys_grid::get_rlon_all_p (lcid, rlondim, rlons)
 
subroutine phys_grid::get_rlon_vec_p (lcid, lth, cols, rlons)
 
real(r8) function phys_grid::get_rlon_p (lcid, col)
 
subroutine phys_grid::scatter_field_to_chunk (fdim, mdim, ldim, hdim1d, globalfield, localchunks)
 
subroutine phys_grid::scatter_field_to_chunk4 (fdim, mdim, ldim, hdim1d, globalfield, localchunks)
 
subroutine phys_grid::scatter_field_to_chunk_int (fdim, mdim, ldim, hdim1d, globalfield, localchunks)
 
subroutine phys_grid::gather_chunk_to_field (fdim, mdim, ldim, hdim1d, localchunks, globalfield)
 
subroutine phys_grid::gather_chunk_to_field4 (fdim, mdim, ldim, hdim1d, localchunks, globalfield)
 
subroutine phys_grid::gather_chunk_to_field_int (fdim, mdim, ldim, hdim1d, localchunks, globalfield)
 
subroutine phys_grid::write_field_from_chunk (iu, fdim, mdim, ldim, localchunks)
 
subroutine phys_grid::read_chunk_from_field (iu, fdim, mdim, ldim, localchunks)
 
subroutine phys_grid::transpose_block_to_chunk (record_size, block_buffer, chunk_buffer, window)
 
subroutine phys_grid::block_to_chunk_send_pters (blockid, fdim, ldim, record_size, pter)
 
subroutine phys_grid::block_to_chunk_recv_pters (lcid, fdim, ldim, record_size, pter)
 
subroutine phys_grid::transpose_chunk_to_block (record_size, chunk_buffer, block_buffer, window)
 
subroutine phys_grid::chunk_to_block_send_pters (lcid, fdim, ldim, record_size, pter)
 
subroutine phys_grid::chunk_to_block_recv_pters (blockid, fdim, ldim, record_size, pter)
 
subroutine phys_grid::create_chunks (opt, chunks_per_thread)
 
subroutine phys_grid::find_partners (opt, proc_busy_d, nsmpx, proc_smp_mapx)
 
subroutine phys_grid::find_twin (gcol, smp, proc_smp_mapx, twingcol_f)
 
subroutine phys_grid::assign_chunks (npthreads, nsmpx, proc_smp_mapx, nsmpthreads, nsmpchunks)
 

Variables

integer, private phys_grid::block_buf_nrecs
 
integer, private phys_grid::chunk_buf_nrecs
 
logical, private phys_grid::local_dp_map =.true.
 
integer, parameter, public phys_grid::phys_decomp = 100
 
integer, private phys_grid::hdim1_d
 
integer, private phys_grid::hdim2_d
 
integer phys_grid::ngcols
 
integer, public phys_grid::ngcols_p
 
integer, dimension(:), allocatable, private phys_grid::dyn_to_latlon_gcol_map
 
integer, dimension(:), allocatable, public phys_grid::latlon_to_dyn_gcol_map
 
integer, dimension(:), allocatable, private phys_grid::lonlat_to_dyn_gcol_map
 
integer, public phys_grid::clat_p_tot
 
integer, public phys_grid::clon_p_tot
 
integer, dimension(:), allocatable, private phys_grid::clat_p_cnt
 
integer, dimension(:), allocatable, private phys_grid::clat_p_idx
 
real(r8), dimension(:), allocatable phys_grid::clat_p
 
integer, dimension(:), allocatable, private phys_grid::clon_p_cnt
 
integer, dimension(:), allocatable, private phys_grid::clon_p_idx
 
real(r8), dimension(:), allocatable phys_grid::clon_p
 
integer, dimension(:), allocatable, private phys_grid::lat_p
 
integer, dimension(:), allocatable, private phys_grid::lon_p
 
integer phys_grid::nchunks
 
type(chunk), dimension(:), allocatable, public phys_grid::chunks
 
integer, dimension(:), allocatable, public phys_grid::npchunks
 
integer, private phys_grid::nlchunks
 
type(lchunk), dimension(:), allocatable, private phys_grid::lchunks
 
type(knuhc), dimension(:), allocatable, public phys_grid::knuhcs
 
integer, private phys_grid::nlcols
 
type(column_map), dimension(:), allocatable, private phys_grid::pgcols
 
integer, dimension(:), allocatable, private phys_grid::gs_col_num
 
integer, dimension(:), allocatable, private phys_grid::gs_col_offset
 
integer, dimension(:), allocatable, private phys_grid::btofc_blk_num
 
integer, dimension(:), allocatable, private phys_grid::btofc_chk_num
 
type(btofc_pters), dimension(:), allocatable, private phys_grid::btofc_blk_offset
 
type(btofc_pters), dimension(:), allocatable, private phys_grid::btofc_chk_offset
 
integer, private phys_grid::dp_coup_steps
 
integer, dimension(:), allocatable, private phys_grid::dp_coup_proc
 
logical phys_grid::physgrid_set = .false.
 
integer, private phys_grid::max_nproc_smpx
 
integer, private phys_grid::nproc_busy_d
 
integer, parameter, private phys_grid::min_lbal_opt = -1
 
integer, parameter, private phys_grid::max_lbal_opt = 5
 
integer, parameter, private phys_grid::def_lbal_opt = 2
 
integer, private phys_grid::lbal_opt = def_lbal_opt
 
integer, parameter, private phys_grid::min_twin_alg = 0
 
integer, parameter, private phys_grid::max_twin_alg = 1
 
integer, parameter, private phys_grid::def_twin_alg_lonlat = 1
 
integer, parameter, private phys_grid::def_twin_alg_unstructured = 0
 
integer, private phys_grid::twin_alg = def_twin_alg_lonlat
 
integer, parameter, private phys_grid::min_chunks_per_thread = 1
 
integer, parameter, private phys_grid::def_chunks_per_thread = min_chunks_per_thread
 
integer, private phys_grid::chunks_per_thread = def_chunks_per_thread
 
integer, parameter, private phys_grid::min_alltoall = -1
 
integer, parameter, private phys_grid::max_alltoall = 3
 
integer, parameter, private phys_grid::def_alltoall = 1
 
integer, private phys_grid::phys_alltoall = def_alltoall