module_mp_tempo_tables Module

initialize variables for tempo microphysics

includes a procedure to build and save tempo lookup tables


Uses

  • module~~module_mp_tempo_tables~~UsesGraph module~module_mp_tempo_tables module_mp_tempo_tables module~module_mp_tempo_cfgs module_mp_tempo_cfgs module~module_mp_tempo_tables->module~module_mp_tempo_cfgs module~module_mp_tempo_params module_mp_tempo_params module~module_mp_tempo_tables->module~module_mp_tempo_params module~module_mp_tempo_utils module_mp_tempo_utils module~module_mp_tempo_tables->module~module_mp_tempo_utils mpi_f08 mpi_f08 module~module_mp_tempo_tables->mpi_f08 ccpp_kind_types ccpp_kind_types module~module_mp_tempo_params->ccpp_kind_types iso_fortran_env iso_fortran_env module~module_mp_tempo_params->iso_fortran_env module~machine machine module~module_mp_tempo_params->module~machine mpas_kind_types mpas_kind_types module~module_mp_tempo_params->mpas_kind_types module~module_mp_tempo_utils->module~module_mp_tempo_params

Used by

  • module~~module_mp_tempo_tables~~UsedByGraph module~module_mp_tempo_tables module_mp_tempo_tables program~build_tables build_tables program~build_tables->module~module_mp_tempo_tables

Variables

Type Visibility Attributes Name Initial
type(ty_tempo_table_cfgs), private :: tempo_table_cfgs

Subroutines

public subroutine tempo_build_tables(build_tables_rank, build_tables_num_proc)

builds three lookup tables for tempo microphysics

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: build_tables_rank
integer, intent(in) :: build_tables_num_proc

private subroutine build_table_freezewater()

build lookup table data for frozen cloud and rain water

Arguments

None

private subroutine write_table_freezewater(filename)

write data for frozen cloud water and rain to a file

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: filename

private subroutine build_table_qr_acr_qs(rank, num_proc)

build lookup table data for rain-snow collection

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: rank
integer, intent(in) :: num_proc

private subroutine write_table_qr_acr_qs(filename)

write data for rain-snow collection to a file

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: filename

private subroutine build_table_qr_acr_qg(rank, num_proc)

build lookup table data for rain-graupel collection

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: rank
integer, intent(in) :: num_proc

private subroutine write_table_qr_acr_qg(filename)

write data for rain-graupel collection to a file

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: filename

private subroutine gather(local_flat, global_flat, sendcounts, displacements, ierror)

wrapper to simplify MPI_Gatherv

Arguments

Type IntentOptional Attributes Name
real(kind=table_dp), intent(in), dimension(:) :: local_flat
real(kind=table_dp), intent(out), dimension(:) :: global_flat
integer, intent(in), dimension(:) :: sendcounts
integer, intent(in), dimension(:) :: displacements
integer, intent(inout) :: ierror

private subroutine get_index_for_rank(idx, rank, num_proc, start_idx, end_idx)

returns start and end index values for an array dimension of size idx distributed over num_procs

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: idx
integer, intent(in) :: rank
integer, intent(in) :: num_proc
integer, intent(out) :: start_idx
integer, intent(out) :: end_idx

private subroutine qr_acr_qs(local_start, local_end, ltcs_racs1, ltmr_racs1, ltcs_racs2, ltmr_racs2, ltcr_sacr1, ltms_sacr1, ltcr_sacr2, ltms_sacr2, ltnr_racs1, ltnr_racs2, ltnr_sacr1, ltnr_sacr2)

calculates rain collecting snow (and inverse)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: local_start
integer, intent(in) :: local_end
real(kind=table_dp), intent(out), dimension(:,:,:,:) :: ltcs_racs1
real(kind=table_dp), intent(out), dimension(:,:,:,:) :: ltmr_racs1
real(kind=table_dp), intent(out), dimension(:,:,:,:) :: ltcs_racs2
real(kind=table_dp), intent(out), dimension(:,:,:,:) :: ltmr_racs2
real(kind=table_dp), intent(out), dimension(:,:,:,:) :: ltcr_sacr1
real(kind=table_dp), intent(out), dimension(:,:,:,:) :: ltms_sacr1
real(kind=table_dp), intent(out), dimension(:,:,:,:) :: ltcr_sacr2
real(kind=table_dp), intent(out), dimension(:,:,:,:) :: ltms_sacr2
real(kind=table_dp), intent(out), dimension(:,:,:,:) :: ltnr_racs1
real(kind=table_dp), intent(out), dimension(:,:,:,:) :: ltnr_racs2
real(kind=table_dp), intent(out), dimension(:,:,:,:) :: ltnr_sacr1
real(kind=table_dp), intent(out), dimension(:,:,:,:) :: ltnr_sacr2

private subroutine qr_acr_qg(local_start, local_end, ltcg_racg, ltmr_racg, ltcr_gacr, ltnr_racg, ltnr_gacr)

rain collecting graupel (and inverse) using explicit integration

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: local_start
integer, intent(in) :: local_end
real(kind=table_dp), intent(out), dimension(:,:,:,:,:) :: ltcg_racg
real(kind=table_dp), intent(out), dimension(:,:,:,:,:) :: ltmr_racg
real(kind=table_dp), intent(out), dimension(:,:,:,:,:) :: ltcr_gacr
real(kind=table_dp), intent(out), dimension(:,:,:,:,:) :: ltnr_racg
real(kind=table_dp), intent(out), dimension(:,:,:,:,:) :: ltnr_gacr

private subroutine freezewater()

calculates the probability of drops of a particular volume freezing from Bigg (1953) https://doi.org/10.1002/qj.49707934207

Read more…

Arguments

None