CAM
|
Data Types | |
type | btofc_pters |
type | chunk |
type | column_map |
type | knuhc |
type | lchunk |
Functions/Subroutines | |
integer function | get_nlcols_p () |
integer function | get_clon_p_tot () |
integer function | get_clat_p_tot () |
subroutine | phys_grid_init () |
subroutine | phys_grid_find_col (lat, lon, owner, lcid, icol) |
subroutine | phys_grid_find_cols (lat, lon, nclosest, owner, lcid, icol, distmin, mlats, mlons) |
logical function | phys_grid_initialized () |
subroutine | phys_grid_defaultopts (phys_loadbalance_out, phys_twin_algorithm_out, phys_alltoall_out, phys_chnk_per_thd_out) |
subroutine | phys_grid_setopts (phys_loadbalance_in, phys_twin_algorithm_in, phys_alltoall_in, phys_chnk_per_thd_in) |
subroutine | get_chunk_indices_p (index_beg, index_end) |
subroutine | get_gcol_all_p (lcid, latdim, gcols) |
integer function | get_gcol_p (lcid, col) |
subroutine | get_gcol_vec_p (lcid, lth, cols, gcols) |
integer function | get_ncols_p (lcid) |
subroutine | get_lat_all_p (lcid, latdim, lats) |
subroutine | get_lat_vec_p (lcid, lth, cols, lats) |
integer function | get_lat_p (lcid, col) |
subroutine | get_lon_all_p (lcid, londim, lons) |
subroutine | get_lon_vec_p (lcid, lth, cols, lons) |
integer function | get_lon_p (lcid, col) |
subroutine | get_rlat_all_p (lcid, rlatdim, rlats) |
subroutine | get_area_all_p (lcid, rdim, area) |
real(r8) function | get_area_p (lcid, col) |
subroutine | get_wght_all_p (lcid, rdim, wght) |
real(r8) function | get_wght_p (lcid, col) |
subroutine | get_rlat_vec_p (lcid, lth, cols, rlats) |
real(r8) function | get_rlat_p (lcid, col) |
subroutine | get_rlon_all_p (lcid, rlondim, rlons) |
subroutine | get_rlon_vec_p (lcid, lth, cols, rlons) |
real(r8) function | get_rlon_p (lcid, col) |
subroutine | scatter_field_to_chunk (fdim, mdim, ldim, hdim1d, globalfield, localchunks) |
subroutine | scatter_field_to_chunk4 (fdim, mdim, ldim, hdim1d, globalfield, localchunks) |
subroutine | scatter_field_to_chunk_int (fdim, mdim, ldim, hdim1d, globalfield, localchunks) |
subroutine | gather_chunk_to_field (fdim, mdim, ldim, hdim1d, localchunks, globalfield) |
subroutine | gather_chunk_to_field4 (fdim, mdim, ldim, hdim1d, localchunks, globalfield) |
subroutine | gather_chunk_to_field_int (fdim, mdim, ldim, hdim1d, localchunks, globalfield) |
subroutine | write_field_from_chunk (iu, fdim, mdim, ldim, localchunks) |
subroutine | read_chunk_from_field (iu, fdim, mdim, ldim, localchunks) |
subroutine | transpose_block_to_chunk (record_size, block_buffer, chunk_buffer, window) |
subroutine | block_to_chunk_send_pters (blockid, fdim, ldim, record_size, pter) |
subroutine | block_to_chunk_recv_pters (lcid, fdim, ldim, record_size, pter) |
subroutine | transpose_chunk_to_block (record_size, chunk_buffer, block_buffer, window) |
subroutine | chunk_to_block_send_pters (lcid, fdim, ldim, record_size, pter) |
subroutine | chunk_to_block_recv_pters (blockid, fdim, ldim, record_size, pter) |
subroutine | create_chunks (opt, chunks_per_thread) |
subroutine | find_partners (opt, proc_busy_d, nsmpx, proc_smp_mapx) |
subroutine | find_twin (gcol, smp, proc_smp_mapx, twingcol_f) |
subroutine | assign_chunks (npthreads, nsmpx, proc_smp_mapx, nsmpthreads, nsmpchunks) |
Variables | |
integer, private | block_buf_nrecs |
integer, private | chunk_buf_nrecs |
logical, private | local_dp_map =.true. |
integer, parameter, public | phys_decomp = 100 |
integer, private | hdim1_d |
integer, private | hdim2_d |
integer | ngcols |
integer, public | ngcols_p |
integer, dimension(:), allocatable, private | dyn_to_latlon_gcol_map |
integer, dimension(:), allocatable, public | latlon_to_dyn_gcol_map |
integer, dimension(:), allocatable, private | lonlat_to_dyn_gcol_map |
integer, public | clat_p_tot |
integer, public | clon_p_tot |
integer, dimension(:), allocatable, private | clat_p_cnt |
integer, dimension(:), allocatable, private | clat_p_idx |
real(r8), dimension(:), allocatable | clat_p |
integer, dimension(:), allocatable, private | clon_p_cnt |
integer, dimension(:), allocatable, private | clon_p_idx |
real(r8), dimension(:), allocatable | clon_p |
integer, dimension(:), allocatable, private | lat_p |
integer, dimension(:), allocatable, private | lon_p |
integer | nchunks |
type(chunk), dimension(:), allocatable, public | chunks |
integer, dimension(:), allocatable, public | npchunks |
integer, private | nlchunks |
type(lchunk), dimension(:), allocatable, private | lchunks |
type(knuhc), dimension(:), allocatable, public | knuhcs |
integer, private | nlcols |
type(column_map), dimension(:), allocatable, private | pgcols |
integer, dimension(:), allocatable, private | gs_col_num |
integer, dimension(:), allocatable, private | gs_col_offset |
integer, dimension(:), allocatable, private | btofc_blk_num |
integer, dimension(:), allocatable, private | btofc_chk_num |
type(btofc_pters), dimension(:), allocatable, private | btofc_blk_offset |
type(btofc_pters), dimension(:), allocatable, private | btofc_chk_offset |
integer, private | dp_coup_steps |
integer, dimension(:), allocatable, private | dp_coup_proc |
logical | physgrid_set = .false. |
integer, private | max_nproc_smpx |
integer, private | nproc_busy_d |
integer, parameter, private | min_lbal_opt = -1 |
integer, parameter, private | max_lbal_opt = 5 |
integer, parameter, private | def_lbal_opt = 2 |
integer, private | lbal_opt = def_lbal_opt |
integer, parameter, private | min_twin_alg = 0 |
integer, parameter, private | max_twin_alg = 1 |
integer, parameter, private | def_twin_alg_lonlat = 1 |
integer, parameter, private | def_twin_alg_unstructured = 0 |
integer, private | twin_alg = def_twin_alg_lonlat |
integer, parameter, private | min_chunks_per_thread = 1 |
integer, parameter, private | def_chunks_per_thread = min_chunks_per_thread |
integer, private | chunks_per_thread = def_chunks_per_thread |
integer, parameter, private | min_alltoall = -1 |
integer, parameter, private | max_alltoall = 3 |
integer, parameter, private | def_alltoall = 1 |
integer, private | phys_alltoall = def_alltoall |
subroutine phys_grid::assign_chunks | ( | integer, dimension(0:npes-1), intent(in) | npthreads, |
integer, intent(in) | nsmpx, | ||
integer, dimension(0:npes-1), intent(in) | proc_smp_mapx, | ||
integer, dimension(0:nsmpx-1), intent(in) | nsmpthreads, | ||
integer, dimension(0:nsmpx-1), intent(in) | nsmpchunks | ||
) |
subroutine phys_grid::block_to_chunk_recv_pters | ( | integer, intent(in) | lcid, |
integer, intent(in) | fdim, | ||
integer, intent(in) | ldim, | ||
integer, intent(in) | record_size, | ||
integer, dimension(fdim,ldim), intent(out) | pter | ||
) |
subroutine phys_grid::block_to_chunk_send_pters | ( | integer, intent(in) | blockid, |
integer, intent(in) | fdim, | ||
integer, intent(in) | ldim, | ||
integer, intent(in) | record_size, | ||
integer, dimension(fdim,ldim), intent(out) | pter | ||
) |
subroutine phys_grid::chunk_to_block_recv_pters | ( | integer, intent(in) | blockid, |
integer, intent(in) | fdim, | ||
integer, intent(in) | ldim, | ||
integer, intent(in) | record_size, | ||
integer, dimension(fdim,ldim), intent(out) | pter | ||
) |
subroutine phys_grid::chunk_to_block_send_pters | ( | integer, intent(in) | lcid, |
integer, intent(in) | fdim, | ||
integer, intent(in) | ldim, | ||
integer, intent(in) | record_size, | ||
integer, dimension(fdim,ldim), intent(out) | pter | ||
) |
subroutine phys_grid::create_chunks | ( | integer, intent(in) | opt, |
integer, intent(in) | chunks_per_thread | ||
) |
subroutine phys_grid::find_partners | ( | integer, intent(in) | opt, |
logical, dimension(0:npes-1), intent(in) | proc_busy_d, | ||
integer, intent(out) | nsmpx, | ||
integer, dimension(0:npes-1), intent(out) | proc_smp_mapx | ||
) |
subroutine phys_grid::find_twin | ( | integer, intent(in) | gcol, |
integer, intent(in) | smp, | ||
integer, dimension(0:npes-1), intent(in) | proc_smp_mapx, | ||
integer, intent(out) | twingcol_f | ||
) |
subroutine phys_grid::gather_chunk_to_field | ( | integer, intent(in) | fdim, |
integer, intent(in) | mdim, | ||
integer, intent(in) | ldim, | ||
integer, intent(in) | hdim1d, | ||
real(r8), dimension(fdim,pcols,mdim, begchunk:endchunk,ldim), intent(in) | localchunks, | ||
real(r8), dimension(fdim,hdim1d,mdim,hdim2_d,ldim), intent(out) | globalfield | ||
) |
subroutine phys_grid::gather_chunk_to_field4 | ( | integer, intent(in) | fdim, |
integer, intent(in) | mdim, | ||
integer, intent(in) | ldim, | ||
integer, intent(in) | hdim1d, | ||
real(r4), dimension(fdim,pcols,mdim, begchunk:endchunk,ldim), intent(in) | localchunks, | ||
real(r4), dimension(fdim,hdim1d,mdim,hdim2_d,ldim), intent(out) | globalfield | ||
) |
subroutine phys_grid::gather_chunk_to_field_int | ( | integer, intent(in) | fdim, |
integer, intent(in) | mdim, | ||
integer, intent(in) | ldim, | ||
integer, intent(in) | hdim1d, | ||
integer, dimension(fdim,pcols,mdim,begchunk:endchunk,ldim), intent(in) | localchunks, | ||
integer, dimension(fdim,hdim1d,mdim,hdim2_d,ldim), intent(out) | globalfield | ||
) |
subroutine phys_grid::get_area_all_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | rdim, | ||
real(r8), dimension(rdim), intent(out) | area | ||
) |
real(r8) function phys_grid::get_area_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | col | ||
) |
subroutine phys_grid::get_chunk_indices_p | ( | integer, intent(out) | index_beg, |
integer, intent(out) | index_end | ||
) |
integer function phys_grid::get_clat_p_tot | ( | ) |
integer function phys_grid::get_clon_p_tot | ( | ) |
subroutine phys_grid::get_gcol_all_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | latdim, | ||
integer, dimension(:), intent(out) | gcols | ||
) |
integer function phys_grid::get_gcol_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | col | ||
) |
subroutine phys_grid::get_gcol_vec_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | lth, | ||
integer, dimension(lth), intent(in) | cols, | ||
integer, dimension(lth), intent(out) | gcols | ||
) |
subroutine phys_grid::get_lat_all_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | latdim, | ||
integer, dimension(latdim), intent(out) | lats | ||
) |
integer function phys_grid::get_lat_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | col | ||
) |
subroutine phys_grid::get_lat_vec_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | lth, | ||
integer, dimension(lth), intent(in) | cols, | ||
integer, dimension(lth), intent(out) | lats | ||
) |
subroutine phys_grid::get_lon_all_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | londim, | ||
integer, dimension(londim), intent(out) | lons | ||
) |
integer function phys_grid::get_lon_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | col | ||
) |
subroutine phys_grid::get_lon_vec_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | lth, | ||
integer, dimension(lth), intent(in) | cols, | ||
integer, dimension(lth), intent(out) | lons | ||
) |
integer function phys_grid::get_ncols_p | ( | integer, intent(in) | lcid | ) |
integer function phys_grid::get_nlcols_p | ( | ) |
subroutine phys_grid::get_rlat_all_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | rlatdim, | ||
real(r8), dimension(rlatdim), intent(out) | rlats | ||
) |
real(r8) function phys_grid::get_rlat_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | col | ||
) |
subroutine phys_grid::get_rlat_vec_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | lth, | ||
integer, dimension(lth), intent(in) | cols, | ||
real(r8), dimension(lth), intent(out) | rlats | ||
) |
subroutine phys_grid::get_rlon_all_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | rlondim, | ||
real(r8), dimension(rlondim), intent(out) | rlons | ||
) |
real(r8) function phys_grid::get_rlon_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | col | ||
) |
subroutine phys_grid::get_rlon_vec_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | lth, | ||
integer, dimension(lth), intent(in) | cols, | ||
real(r8), dimension(lth), intent(out) | rlons | ||
) |
subroutine phys_grid::get_wght_all_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | rdim, | ||
real(r8), dimension(rdim), intent(out) | wght | ||
) |
real(r8) function phys_grid::get_wght_p | ( | integer, intent(in) | lcid, |
integer, intent(in) | col | ||
) |
subroutine phys_grid::phys_grid_defaultopts | ( | integer, intent(out), optional | phys_loadbalance_out, |
integer, intent(out), optional | phys_twin_algorithm_out, | ||
integer, intent(out), optional | phys_alltoall_out, | ||
integer, intent(out), optional | phys_chnk_per_thd_out | ||
) |
subroutine phys_grid::phys_grid_find_col | ( | real(r8), intent(in) | lat, |
real(r8), intent(in) | lon, | ||
integer, intent(out) | owner, | ||
integer, intent(out) | lcid, | ||
integer, intent(out) | icol | ||
) |
subroutine phys_grid::phys_grid_find_cols | ( | real(r8), intent(in) | lat, |
real(r8), intent(in) | lon, | ||
integer, intent(in) | nclosest, | ||
integer, dimension(nclosest), intent(out) | owner, | ||
integer, dimension(nclosest), intent(out) | lcid, | ||
integer, dimension(nclosest), intent(out) | icol, | ||
real(r8), dimension(nclosest), intent(out) | distmin, | ||
real(r8), dimension(nclosest), intent(out) | mlats, | ||
real(r8), dimension(nclosest), intent(out) | mlons | ||
) |
subroutine phys_grid::phys_grid_init | ( | ) |
logical function phys_grid::phys_grid_initialized | ( | ) |
subroutine phys_grid::phys_grid_setopts | ( | integer, intent(in), optional | phys_loadbalance_in, |
integer, intent(in), optional | phys_twin_algorithm_in, | ||
integer, intent(in), optional | phys_alltoall_in, | ||
integer, intent(in), optional | phys_chnk_per_thd_in | ||
) |
subroutine phys_grid::read_chunk_from_field | ( | integer, intent(in) | iu, |
integer, intent(in) | fdim, | ||
integer, intent(in) | mdim, | ||
integer, intent(in) | ldim, | ||
real(r8), dimension(fdim,pcols,mdim,begchunk:endchunk,ldim), intent(out) | localchunks | ||
) |
subroutine phys_grid::scatter_field_to_chunk | ( | integer, intent(in) | fdim, |
integer, intent(in) | mdim, | ||
integer, intent(in) | ldim, | ||
integer, intent(in) | hdim1d, | ||
real(r8), dimension(fdim,hdim1d,mdim,hdim2_d,ldim), intent(in) | globalfield, | ||
real(r8), dimension(fdim,pcols,mdim, begchunk:endchunk,ldim), intent(out) | localchunks | ||
) |
subroutine phys_grid::scatter_field_to_chunk4 | ( | integer, intent(in) | fdim, |
integer, intent(in) | mdim, | ||
integer, intent(in) | ldim, | ||
integer, intent(in) | hdim1d, | ||
real(r4), dimension(fdim,hdim1d,mdim,hdim2_d,ldim), intent(in) | globalfield, | ||
real(r4), dimension(fdim,pcols,mdim, begchunk:endchunk,ldim), intent(out) | localchunks | ||
) |
subroutine phys_grid::scatter_field_to_chunk_int | ( | integer, intent(in) | fdim, |
integer, intent(in) | mdim, | ||
integer, intent(in) | ldim, | ||
integer, intent(in) | hdim1d, | ||
integer, dimension(fdim,hdim1d,mdim,hdim2_d,ldim), intent(in) | globalfield, | ||
integer, dimension(fdim,pcols,mdim, begchunk:endchunk,ldim), intent(out) | localchunks | ||
) |
subroutine phys_grid::transpose_block_to_chunk | ( | integer, intent(in) | record_size, |
real(r8), dimension(record_size*block_buf_nrecs), intent(in) | block_buffer, | ||
real(r8), dimension(record_size*chunk_buf_nrecs), intent(out) | chunk_buffer, | ||
integer, intent(in), optional | window | ||
) |
subroutine phys_grid::transpose_chunk_to_block | ( | integer, intent(in) | record_size, |
real(r8), dimension(record_size*chunk_buf_nrecs), intent(in) | chunk_buffer, | ||
real(r8), dimension(record_size*block_buf_nrecs), intent(out) | block_buffer, | ||
integer, intent(in), optional | window | ||
) |
subroutine phys_grid::write_field_from_chunk | ( | integer, intent(in) | iu, |
integer, intent(in) | fdim, | ||
integer, intent(in) | mdim, | ||
integer, intent(in) | ldim, | ||
real(r8), dimension(fdim,pcols,mdim,begchunk:endchunk,ldim), intent(in) | localchunks | ||
) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
type (chunk), dimension(:), allocatable, public phys_grid::chunks |
|
private |
real(r8), dimension(:), allocatable phys_grid::clat_p |
|
private |
|
private |
integer, public phys_grid::clat_p_tot |
real(r8), dimension(:), allocatable phys_grid::clon_p |
|
private |
|
private |
integer, public phys_grid::clon_p_tot |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
type (knuhc), dimension(:), allocatable, public phys_grid::knuhcs |
|
private |
integer, dimension(:), allocatable, public phys_grid::latlon_to_dyn_gcol_map |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
integer phys_grid::nchunks |
integer phys_grid::ngcols |
integer, public phys_grid::ngcols_p |
|
private |
|
private |
integer, dimension(:), allocatable, public phys_grid::npchunks |
|
private |
|
private |
|
private |
integer, parameter, public phys_grid::phys_decomp = 100 |
logical phys_grid::physgrid_set = .false. |
|
private |