tempo driver that converts 3d model input to 1d arrays used by the main code also allocates and fills diagnostic arrays
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(ty_tempo_table_cfgs), | private | :: | tempo_table_cfgs |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=wp), | public, | dimension(:,:), allocatable | :: | rain_precip | |||
| real(kind=wp), | public, | dimension(:,:), allocatable | :: | ice_liquid_equiv_precip | |||
| real(kind=wp), | public, | dimension(:,:), allocatable | :: | snow_liquid_equiv_precip | |||
| real(kind=wp), | public, | dimension(:,:), allocatable | :: | graupel_liquid_equiv_precip | |||
| real(kind=wp), | public, | dimension(:,:), allocatable | :: | frozen_fraction | |||
| real(kind=wp), | public, | dimension(:,:), allocatable | :: | frz_rain_precip | |||
| real(kind=wp), | public, | dimension(:,:), allocatable | :: | max_hail_diameter_sfc | |||
| real(kind=wp), | public, | dimension(:,:), allocatable | :: | max_hail_diameter_column | |||
| real(kind=wp), | public, | dimension(:,:,:), allocatable | :: | refl10cm | |||
| real(kind=wp), | public, | dimension(:,:,:), allocatable | :: | re_cloud | |||
| real(kind=wp), | public, | dimension(:,:,:), allocatable | :: | re_ice | |||
| real(kind=wp), | public, | dimension(:,:,:), allocatable | :: | re_snow | |||
| real(kind=wp), | public, | dimension(:,:,:), allocatable | :: | rain_med_vol_diam | |||
| real(kind=wp), | public, | dimension(:,:,:), allocatable | :: | graupel_med_vol_diam | |||
| real(kind=wp), | public, | dimension(:,:,:), allocatable | :: | cloud_number_mixing_ratio |
initialize tempo microphysics \section arg_table_tempo_init Argument Table \htmlinclude tempo_init.html
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in), | optional | :: | aerosolaware_flag | ||
| logical, | intent(in), | optional | :: | hailaware_flag | ||
| logical, | intent(in), | optional | :: | ml_for_bl_nc_flag | ||
| logical, | intent(in), | optional | :: | ml_for_nc_flag | ||
| logical, | intent(in), | optional | :: | force_init_flag | ||
| type(ty_tempo_cfgs), | intent(out) | :: | tempo_cfgs |
\section arg_table_tempo_run Argument Table \htmlinclude tempo_run.html
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ty_tempo_cfgs), | intent(in) | :: | tempo_cfgs | |||
| real(kind=wp), | intent(in) | :: | dt |
timestep |
||
| integer, | intent(in) | :: | itimestep |
integer timestep = integration time / dt |
||
| real(kind=wp), | intent(inout), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | t |
temperature |
| real(kind=wp), | intent(inout), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | th |
theta |
| real(kind=wp), | intent(in), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | pii |
exner function |
| real(kind=wp), | intent(in), | dimension(ims:ime, kms:kme, jms:jme) | :: | p |
pressure |
|
| real(kind=wp), | intent(in), | dimension(ims:ime, kms:kme, jms:jme) | :: | w |
vertical velocity |
|
| real(kind=wp), | intent(in), | dimension(ims:ime, kms:kme, jms:jme) | :: | dz |
vertical grid spacing |
|
| real(kind=wp), | intent(inout), | dimension(ims:ime, kms:kme, jms:jme) | :: | qv |
3D water vapor mixing ratio |
|
| real(kind=wp), | intent(inout), | dimension(ims:ime, kms:kme, jms:jme) | :: | qc |
3D cloud water mass mixing ratio |
|
| real(kind=wp), | intent(inout), | dimension(ims:ime, kms:kme, jms:jme) | :: | qr |
3D rain water mass mixing ratio |
|
| real(kind=wp), | intent(inout), | dimension(ims:ime, kms:kme, jms:jme) | :: | qi |
3D cloud ice mass mixing ratio |
|
| real(kind=wp), | intent(inout), | dimension(ims:ime, kms:kme, jms:jme) | :: | qs |
3D snow mass mixing ratio |
|
| real(kind=wp), | intent(inout), | dimension(ims:ime, kms:kme, jms:jme) | :: | qg |
3D graupel mass mixing ratio |
|
| real(kind=wp), | intent(inout), | dimension(ims:ime, kms:kme, jms:jme) | :: | ni |
3D cloud ice number mixing ratio |
|
| real(kind=wp), | intent(inout), | dimension(ims:ime, kms:kme, jms:jme) | :: | nr |
3D rain water number mixing ratio |
|
| real(kind=wp), | intent(inout), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | nc |
3D cloud water number mixing ratio (aerosol-aware) |
| real(kind=wp), | intent(inout), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | nwfa |
3D water-friendly aerosol number mixing ratio (aerosol-aware) |
| real(kind=wp), | intent(inout), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | nifa |
3D ice-friendly aerosol number mixing ratio (aerosol-aware) |
| real(kind=wp), | intent(inout), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | ng |
3D graupel number mixing ratio (hail-aware) |
| real(kind=wp), | intent(inout), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | qb |
3D graupel volume mixing ratio (hail-aware) |
| real(kind=wp), | intent(in), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | qc_bl | |
| real(kind=wp), | intent(in), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | qcfrac_bl | |
| real(kind=wp), | intent(inout), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | qcfrac | |
| real(kind=wp), | intent(inout), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | qifrac | |
| real(kind=wp), | intent(in), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | thten_bl | |
| real(kind=wp), | intent(in), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | qvten_bl | |
| real(kind=wp), | intent(in), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | qcten_bl | |
| real(kind=wp), | intent(in), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | qiten_bl | |
| real(kind=wp), | intent(in), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | thten_lwrad | |
| real(kind=wp), | intent(in), | optional, | dimension(ims:ime, kms:kme, jms:jme) | :: | thten_swrad | |
| integer, | intent(in) | :: | ids |
domain locations |
||
| integer, | intent(in) | :: | ide |
domain locations |
||
| integer, | intent(in) | :: | jds |
domain locations |
||
| integer, | intent(in) | :: | jde |
domain locations |
||
| integer, | intent(in) | :: | kds |
domain locations |
||
| integer, | intent(in) | :: | kde |
domain locations |
||
| integer, | intent(in) | :: | ims |
memory locations |
||
| integer, | intent(in) | :: | ime |
memory locations |
||
| integer, | intent(in) | :: | jms |
memory locations |
||
| integer, | intent(in) | :: | jme |
memory locations |
||
| integer, | intent(in) | :: | kms |
memory locations |
||
| integer, | intent(in) | :: | kme |
memory locations |
||
| integer, | intent(in) | :: | its |
tile locations |
||
| integer, | intent(in) | :: | ite |
tile locations |
||
| integer, | intent(in) | :: | jts |
tile locations |
||
| integer, | intent(in) | :: | jte |
tile locations |
||
| integer, | intent(in) | :: | kts |
tile locations |
||
| integer, | intent(in) | :: | kte |
tile locations |
||
| type(ty_tempo_driver_diags), | intent(out) | :: | tempo_diags |
adds aerosol surface emissions to the 3D field
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | dt | |||
| real(kind=wp), | intent(inout), | dimension(ims:ime, kms:kme, jms:jme) | :: | nwfa | ||
| real(kind=wp), | intent(in), | dimension(ims:ime, jms:jme) | :: | nwfa2d | ||
| integer, | intent(in) | :: | ims | |||
| integer, | intent(in) | :: | ime | |||
| integer, | intent(in) | :: | jms | |||
| integer, | intent(in) | :: | jme | |||
| integer, | intent(in) | :: | kms | |||
| integer, | intent(in) | :: | kme | |||
| integer, | intent(in) | :: | kts |
read lookup table for frozen cloud and rain water
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | filename | |||
| integer, | intent(in) | :: | table_size |
read lookup table for rain-snow collection
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | filename | |||
| integer, | intent(in) | :: | table_size |
read lookup table for rain-graupel collection
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | filename | |||
| integer, | intent(in) | :: | table_size |
read static file containing CCN activation of aerosols; the data were created from a parcel model by Feingold and Heymsfield (1992) https://doi.org/10.1175/1520-0469(1992)049<2325:POCGOD>2.0.CO;2 with further changes by Eidhammer and Kreidenweis
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | filename | |||
| integer, | intent(in) | :: | table_size |
checks that lookup tables exist and are the correct size before attempting to read them
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | filename | |||
| integer, | intent(in) | :: | table_size |
initialize machine learning data for tempo microphysics