| Procedure | Location | Procedure Type | Description |
|---|---|---|---|
| activate_cloud_number | module_mp_tempo_main | Function | calculations numer of cloud droplets activated |
| aerosol_check_and_update | module_mp_tempo_main | Subroutine | sets aerosol number concentrations and checks bounds |
| aerosol_collection_efficiency | module_mp_tempo_aerosols | Function | computes aerosol collection efficiency for precipitation scavenging from Wang et al. (2010) |
| aerosol_scavenging | module_mp_tempo_main | Subroutine | scavenging of aerosols by rain, snow, and graupel |
| build_table_freezewater | module_mp_tempo_tables | Subroutine | build lookup table data for frozen cloud and rain water |
| build_table_qr_acr_qg | module_mp_tempo_tables | Subroutine | build lookup table data for rain-graupel collection |
| build_table_qr_acr_qs | module_mp_tempo_tables | Subroutine | build lookup table data for rain-snow collection |
| calc_gamma_cf | module_mp_tempo_utils | Function | solves the normalized upper gamma function using a continued fractions method (modified Lentz Algorithm) |
| calc_gamma_p | module_mp_tempo_utils | Function | normalized lower gamma function calculated either with a series expansion or continued fraction method |
| calc_gamma_series | module_mp_tempo_utils | Function | solves the normalized lower gamma function |
| calc_rsif | module_mp_tempo_utils | Function | calculates liquid saturation vapor mixing ratio |
| calc_rslf | module_mp_tempo_utils | Function | calculates liquid saturation vapor mixing ratio |
| check_before_table_read | module_mp_tempo_driver | Subroutine | checks that lookup tables exist and are the correct size before attempting to read them |
| check_over_depletion | module_mp_tempo_main | Subroutine | check to ensure that loss terms don't over-deplete a category and adjusts tendencies if needed |
| cloud_check_and_update | module_mp_tempo_main | Subroutine | computes cloud water contents, ilamc, and mvd_c and checks bounds |
| cloud_condensation | module_mp_tempo_main | Subroutine | cloud condensation and evaporation |
| cloud_fallspeed | module_mp_tempo_main | Subroutine | calculates mass and number weighted fall speeds for cloud and the top k-level of sedimentation |
| complex_ice_maetzler | module_mp_tempo_diags | Function | complex refractive index of ice from Maetzler (1998) calculated as function of temperature t [Celsius] (valid from -250 to 0) and radar wavelength lambda [m] (valid from 0.0001 to 30) |
| complex_water_ray | module_mp_tempo_diags | Function | complex refractive index of water from Ray (1972) calculated as function of temperature t [Celsius] (valid from -10 to 30) and radar wavelength lambda [m] (valid from 0.001 to 1) |
| compute_drop_evap | module_mp_tempo_utils | Subroutine | calculates droplet evaporation data |
| compute_efrw | module_mp_tempo_utils | Subroutine | collision efficiency for rain collecting cloud water from Beard and Grover (1974) if a/A < 0.25 https://doi.org/10.1175/1520-0469(1974)031<0543:NCEFSR>2.0.CO;2 otherwise uses polynomials to get close match of Pruppacher and Klett Fig. 14-9 |
| compute_efsw | module_mp_tempo_utils | Subroutine | collision efficiency for snow collecting cloud water from Wang and Ji (2000) https://doi.org/10.1175/1520-0469(2000)057<1001:CEOICA>2.0.CO;2 equating melted snow diameter to effective collision cross-section |
| create_bins | module_mp_tempo_params | Subroutine | calculates log-spaced bins of hydrometer sizes to simplify calculations later |
| demott_nucleation | module_mp_tempo_main | Function | DeMott nucleation |
| effective_radius | module_mp_tempo_diags | Subroutine | effective radius values for cloud water, cloud ice and snow |
| find_melting_level | module_mp_tempo_diags | Function | finds the melting level |
| freeze_cloud_melt_ice | module_mp_tempo_main | Subroutine | |
| freezewater | module_mp_tempo_tables | Subroutine | calculates the probability of drops of a particular volume freezing from Bigg (1953) https://doi.org/10.1002/qj.49707934207 |
| freezing_rain | module_mp_tempo_diags | Subroutine | estimates freezing rain/drizzle accumulation |
| gather | module_mp_tempo_tables | Subroutine | wrapper to simplify MPI_Gatherv |
| get_cloud_number | module_mp_tempo_main | Interface | |
| get_cloud_table_index | module_mp_tempo_main | Subroutine | get cloud table index from mass and number |
| get_constant_cloud_number | module_mp_tempo_utils | Subroutine | returns land-specific value of cloud droplet number concentration when aerosol-aware = false if land = 1, else returns ocean-specific value |
| get_graupel_table_index | module_mp_tempo_main | Subroutine | get graupel table indices from graupel mass, lambda, and density index |
| get_ice_table_index | module_mp_tempo_main | Subroutine | get ice table index from mass and number |
| get_in_table_index | module_mp_tempo_main | Subroutine | get ice nuclei table index |
| get_index_for_rank | module_mp_tempo_tables | Subroutine | returns start and end index values for an array dimension of size idx distributed over num_procs |
| get_nuc | module_mp_tempo_utils | Function | returns nu_c for cloud water (values from 2-15) |
| get_rain_table_index | module_mp_tempo_main | Subroutine | get rain table indices from rain mass and lambda |
| get_snow_table_index | module_mp_tempo_main | Subroutine | get snow table index from snow mass |
| get_t1_subl | module_mp_tempo_main | Subroutine | calculations thermodynamic term used in depositional growth and melting |
| get_temperature_table_index | module_mp_tempo_main | Subroutine | get temperature table index |
| get_version | module_mp_tempo_params | Subroutine | returns the tempo version string from the README.md file or returns empty string if not found |
| graupel_check_and_update | module_mp_tempo_main | Subroutine | computes graupel contents, ilamg, and mvd_g and checks bounds |
| graupel_fallspeed | module_mp_tempo_main | Subroutine | calculates mass and number weighted fall speeds for graupel and optionally the substepping required and the top k-level of sedimentation |
| graupel_init | module_mp_tempo_main | Subroutine | initializes graupel number and volume if both are zero and hail-aware = true |
| ice_check_and_update | module_mp_tempo_main | Subroutine | computes ice contents, ilami and checks bounds |
| ice_fallspeed | module_mp_tempo_main | Subroutine | calculates mass and number weighted fall speeds for ice and the substepping required and the top k-level of sedimentation |
| ice_nucleation | module_mp_tempo_main | Subroutine | ice nulceation |
| ice_processes | module_mp_tempo_main | Subroutine | ice processes including cloud ice depositional growth, conversion of cloud ice to snow, snow collecting cloud ice, rain collecting cloud ice, snow depositional growth, and graupel sublimation |
| init_ice_friendly_aerosols | module_mp_tempo_aerosols | Subroutine | sets ice-friendly aerosols to an exponential profile if aerosol-aware = true and no initial condition is provided by the host model |
| init_ml_data | module_mp_tempo_driver | Subroutine | initialize machine learning data for tempo microphysics |
| init_water_friendly_aerosols | module_mp_tempo_aerosols | Subroutine | sets water-friendly aerosols to an exponential profile if aerosol-aware = true and no initial condition is provided by the host model |
| initialize_array_efrw | module_mp_tempo_params | Subroutine | initializes the collision efficiency data array for rain collecting cloud water |
| initialize_array_efsw | module_mp_tempo_params | Subroutine | initializes the collision efficiency data array for snow collecting cloud water |
| initialize_arrays_ccn | module_mp_tempo_params | Subroutine | initialize data arrays for ccn lookup table |
| initialize_arrays_drop_evap | module_mp_tempo_params | Subroutine | initialize data arrays for drop evaporation data |
| initialize_arrays_freezewater | module_mp_tempo_params | Subroutine | initialize data arrays for Bigg (1953) freezing of cloud water and rain |
| initialize_arrays_qi_aut_qs | module_mp_tempo_params | Subroutine | initializes data arrays for cloud ice to snow conversion and growth |
| initialize_arrays_qr_acr_qg | module_mp_tempo_params | Subroutine | initialize data arrays for rain-graupel collection |
| initialize_arrays_qr_acr_qs | module_mp_tempo_params | Subroutine | initialize data arrays for rain-snow collection |
| initialize_bins_for_hail_size | module_mp_tempo_params | Subroutine | initialize log-spaced bins for hail size calculation |
| initialize_bins_for_radar | module_mp_tempo_params | Subroutine | initialize log-spaced bins for radar calculation |
| initialize_bins_for_tables | module_mp_tempo_params | Subroutine | initialize log-spaced bins of hydrometer quantities used for lookup tables |
| initialize_graupel_vars | module_mp_tempo_params | Subroutine | initialize graupel variables based on hail-aware configuration flag |
| initialize_parameters | module_mp_tempo_params | Subroutine | initialize tempo parameters and variables |
| koop_nucleation | module_mp_tempo_main | Function | aqueous solution freezing of water from Koop et al. (2000) newer research suggests that the freezing rate should be lower than original paper, so J_rate is reduced by two orders of magnitude |
| max_hail_diam | module_mp_tempo_diags | Subroutine | estimates maximmum hail diameter [mm] using a binned approach |
| melting | module_mp_tempo_main | Subroutine | melting of snow and graupel |
| qi_aut_qs | module_mp_tempo_utils | Subroutine | calculates cloud ice conversion to snow and depositional growth by binning cloud ice distributions and determining both the size bins > d0s (that are converted to snow) and the depositional growth up to d0s (for cloud ice) and > d0s for snow following Harrington et al. (1995) https://doi.org/10.1175/1520-0469(1995)052<4344:POICCP>2.0.CO;2 |
| qr_acr_qg | module_mp_tempo_tables | Subroutine | rain collecting graupel (and inverse) using explicit integration |
| qr_acr_qs | module_mp_tempo_tables | Subroutine | calculates rain collecting snow (and inverse) |
| rain_check_and_update | module_mp_tempo_main | Subroutine | computes rain water contents, ilamr, and mvd_r and checks bounds |
| rain_evaporation | module_mp_tempo_main | Subroutine | rain evaporation that includes reduction in the evaporation rate in the presence of melting graupel |
| rain_fallspeed | module_mp_tempo_main | Subroutine | calculates mass and number weighted fall speeds for rain and optionally the substepping required and the top k-level of sedimentation |
| rain_snow_rain_graupel | module_mp_tempo_main | Subroutine | calculates rain-snow and rain-graupel collection |
| rayleigh_soak_wetgraupel | module_mp_tempo_diags | Subroutine | calculates backscatter cross section of wet snow or graupel using Maxwell-Garnett mixing formula and Rayleigh approximation |
| read_table_ccn | module_mp_tempo_driver | Subroutine | 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 |
| read_table_freezewater | module_mp_tempo_driver | Subroutine | read lookup table for frozen cloud and rain water |
| read_table_qr_acr_qg | module_mp_tempo_driver | Subroutine | read lookup table for rain-graupel collection |
| read_table_qr_acr_qs | module_mp_tempo_driver | Subroutine | read lookup table for rain-snow collection |
| reflectivity_10cm | module_mp_tempo_diags | Subroutine | 10-cm radar reflectivity |
| reflectivity_from_melting_graupel | module_mp_tempo_diags | Function | calculates radar reflectivity from melting graupel using binned approach |
| reflectivity_from_melting_snow | module_mp_tempo_diags | Function | calculates radar reflectivity from melting snow using binned approach |
| relu_activation | module_mp_tempo_ml | Subroutine | relu activation function |
| riming | module_mp_tempo_main | Subroutine | snow and graupel riming |
| save_or_read_ml_data | module_mp_tempo_ml | Subroutine | initializes and saves or returns neural network information |
| sedimentation | module_mp_tempo_main | Subroutine | computes sedimentation fluxes, adds fluxes to tendencies, and updates hydrometeor mass (and number and volume) |
| semilagrangian_sedimentation | module_mp_tempo_main | Subroutine | semi-lagrangian sedimentation scheme from Juang and Hong (2010) |
| snow_check_and_update | module_mp_tempo_main | Subroutine | computes snow mass |
| snow_fallspeed | module_mp_tempo_main | Subroutine | calcules mass weighted fall speeds for snow and optionally the substepping required and the top k-level of sedimentation |
| snow_moments | module_mp_tempo_utils | Subroutine | computes snow moments from Field et al. (2005) |
| standard_scaler_transform | module_mp_tempo_ml | Subroutine | standard scaler tranformer |
| sum_tendencies | module_mp_tempo_main | Subroutine | sums tendencies for each hydrometeor category and temperature and moisture |
| tempo_aerosol_surface_emissions | module_mp_tempo_driver | Subroutine | adds aerosol surface emissions to the 3D field |
| tempo_build_tables | module_mp_tempo_tables | Subroutine | builds three lookup tables for tempo microphysics |
| tempo_init | module_mp_tempo_driver | Subroutine | initialize tempo microphysics \section arg_table_tempo_init Argument Table \htmlinclude tempo_init.html |
| tempo_main | module_mp_tempo_main | Subroutine | tempo main |
| tempo_ml_predict_cloud_number | module_mp_tempo_ml | Subroutine | predicts number concentration |
| tempo_run | module_mp_tempo_driver | Subroutine | \section arg_table_tempo_run Argument Table \htmlinclude tempo_run.html |
| test_cloud_number_aerosolaware | tests | Subroutine | |
| test_cloud_number_ml | tests | Subroutine | |
| test_cloud_number_non_aerosolaware | tests | Subroutine | |
| test_graupel_sedimentation | tests | Subroutine | test graupel sedimentation |
| test_ml_cloud_effective_radius | tests | Subroutine | |
| test_snow_sedimentation | tests | Subroutine | |
| test_tempo_init | tests | Subroutine | test tempo initialization procedure use ml_for_bl_nc_flag = .true. to initialize ml data which is used for a few tests test specific flags are then set in each test |
| thermo_vars | module_mp_tempo_main | Subroutine | computes thermodynamic variables |
| warm_rain | module_mp_tempo_main | Subroutine | computes warm-rain process rates -- condensation/evaporation happen later |
| write_table_freezewater | module_mp_tempo_tables | Subroutine | write data for frozen cloud water and rain to a file |
| write_table_qr_acr_qg | module_mp_tempo_tables | Subroutine | write data for rain-graupel collection to a file |
| write_table_qr_acr_qs | module_mp_tempo_tables | Subroutine | write data for rain-snow collection to a file |