|
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 |