CCPP Scientific Documentation
v5.0.0
GFDL In-Core Fast Saturation Adjustment Module

The subroutine 'fv_sat_adj' implements the fast processes in the GFDL Cloud MP. It is part of the GFDL Cloud MP. More...

Detailed Description

Author
Shian-Jiann Lin, Linjiong Zhou

The subroutine 'fv_sat_adj' performs the fast processes in the GFDL microphysics.

This is designed for single-moment 6-class cloud microphysics schemes. It handles the heat release due to in situ phase changes.

Argument Table

fv_sat_adj_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintentoptional
mdttime_step_for_remapping_for_fast_physicsremapping time step for fast physicssreal()kind_dyninFalse
zvirratio_of_vapor_to_dry_air_gas_constants_minus_one_default_kindzvir=rv/rd-1.0nonereal()kind_dyninFalse
isstarting_x_direction_indexstarting X direction indexcountinteger()inFalse
ieending_x_direction_indexending X direction indexcountinteger()inFalse
isdstarting_x_direction_index_domainstarting X direction index for domaincountinteger()inFalse
iedending_x_direction_index_domainending X direction index for domaincountinteger()inFalse
kmptop_layer_index_for_fast_physicstop layer index for GFDL mpindexinteger()inFalse
kmvertical_dimension_for_fast_physicsnumber of vertical levelscountinteger()inFalse
kmdelzvertical_dimension_for_thickness_at_Lagrangian_surfacevertical dimension for thickness at Lagrangian surfacecountinteger()inFalse
jsstarting_y_direction_indexstarting Y direction indexcountinteger()inFalse
jeending_y_direction_indexending Y direction indexcountinteger()inFalse
jsdstarting_y_direction_index_domainstarting X direction index for domaincountinteger()inFalse
jedending_y_direction_index_domainending X direction index for domaincountinteger()inFalse
ngnumber_of_ghost_zonesnumber of ghost zones defined in fv_mpcountinteger()inFalse
hydrostaticflag_for_hydrostatic_solver_for_fast_physicsflag for use the hydrostatic or nonhydrostatic solverflaglogical()inFalse
fast_mp_consvflag_for_fast_microphysics_energy_conservationflag for fast microphysics energy conservationflaglogical()inFalse
te0_2datmosphere_energy_content_in_columnatmosphere total energy in columnsJ m-2real(starting_x_direction_index:ending_x_direction_index, starting_y_direction_index:ending_y_direction_index)kind_dyninoutFalse
te0atmosphere_energy_content_at_Lagrangian_surfaceatmosphere total energy at Lagrangian surfaceJ m-2real(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain, 1:vertical_dimension_for_fast_physics)kind_dynoutFalse
ngasnumber_of_gases_for_multi_gases_physicsnumber of gases for multi gases physicscountinteger()inFalse
qvigas_tracers_for_multi_gas_physics_at_Lagrangian_surfacegas tracers for multi gas physics at Lagrangian surfacekg kg-1real(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain, 1:vertical_dimension_for_fast_physics, 1:number_of_gases_for_multi_gases_physics)kind_dyninoutFalse
qvwater_vapor_specific_humidity_at_Lagrangian_surfacewater vapor specific humidity updated by fast physics at Lagrangian surfacekg kg-1real(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain, 1:vertical_dimension_for_fast_physics)kind_dyninoutFalse
qlcloud_liquid_water_specific_humidity_at_Lagrangian_surfacecloud liquid water specific humidity updated by fast physics at Lagrangian surfacekg kg-1real(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain, 1:vertical_dimension_for_fast_physics)kind_dyninoutFalse
qicloud_ice_specific_humidity_at_Lagrangian_surfacecloud ice specific humidity updated by fast physics at Lagrangian surfacekg kg-1real(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain, 1:vertical_dimension_for_fast_physics)kind_dyninoutFalse
qrcloud_rain_specific_humidity_at_Lagrangian_surfacecloud rain specific humidity updated by fast physics at Lagrangian surfacekg kg-1real(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain, 1:vertical_dimension_for_fast_physics)kind_dyninoutFalse
qscloud_snow_specific_humidity_at_Lagrangian_surfacecloud snow specific humidity updated by fast physics at Lagrangian surfacekg kg-1real(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain, 1:vertical_dimension_for_fast_physics)kind_dyninoutFalse
qgcloud_graupel_specific_humidity_at_Lagrangian_surfacecloud graupel specific humidity updated by fast physics at Lagrangian surfacekg kg-1real(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain, 1:vertical_dimension_for_fast_physics)kind_dyninoutFalse
hssurface_geopotential_at_Lagrangian_surfacesurface geopotential at Lagrangian surfacem2 s-2real(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain)kind_dyninFalse
pelnlog_pressure_at_Lagrangian_surfacelogarithm of pressure at Lagrangian surfacePareal(starting_x_direction_index:ending_x_direction_index, 1:vertical_dimension_for_fast_physics_plus_one, starting_y_direction_index:ending_y_direction_index)kind_dyninFalse
delzthickness_at_Lagrangian_surfacethickness at Lagrangian_surfacemreal(starting_x_direction_index:ending_x_direction_index, starting_y_direction_index:ending_y_direction_index, 1:vertical_dimension_for_thickness_at_Lagrangian_surface)kind_dyninFalse
delppressure_thickness_at_Lagrangian_surfacepressure thickness at Lagrangian surfacePareal(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain, 1:vertical_dimension_for_fast_physics)kind_dyninFalse
ptvirtual_temperature_at_Lagrangian_surfacevirtual temperature at Lagrangian surfaceKreal(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain, 1:vertical_dimension_for_fast_physics)kind_dyninoutFalse
pkzfinite_volume_mean_edge_pressure_raised_to_the_power_of_kappafinite-volume mean edge pressure raised to the power of kappaPa**kappareal(starting_x_direction_index:ending_x_direction_index, starting_y_direction_index:ending_y_direction_index, 1:vertical_dimension_for_fast_physics)kind_dyninoutFalse
q_concloud_condensed_water_specific_humidity_at_Lagrangian_surfacecloud condensed water specific humidity updated by fast physics at Lagrangian surfacekg kg-1real(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain, 1:vertical_dimension_for_condensed_water_at_Lagrangian_surface)kind_dyninoutFalse
akapkappa_dry_for_fast_physicsmodified kappa for dry air, fast physicsnonereal()kind_dyninFalse
cappacappa_moist_gas_constant_at_Lagrangian_surfacecappa(i,j,k) = rdgas / ( rdgas + cvm(i)/(1.+r_vir*q(i,j,k,sphum)) )nonereal(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain, 1:vertical_dimension_for_cappa_at_Lagrangian_surface)kind_dyninoutFalse
areacell_area_for_fast_physicsarea of the grid cell for fast physicsm2real(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain)kind_gridinFalse
dtdttendency_of_air_temperature_at_Lagrangian_surfaceair temperature tendency due to fast physics at Lagrangian surfaceK s-1real(starting_x_direction_index:ending_x_direction_index, starting_y_direction_index:ending_y_direction_index, 1:vertical_dimension_for_fast_physics)kind_dyninoutFalse
out_dtflag_for_tendency_of_air_temperature_at_Lagrangian_surfaceflag for calculating tendency of air temperature due to fast physicsflaglogical()inFalse
last_stepflag_for_the_last_step_of_k_split_remappingflag for the last step of k-split remappingflaglogical()inFalse
do_qaflag_for_inline_cloud_fraction_calculationflag for the inline cloud fraction calculationflaglogical()inFalse
qacloud_fraction_at_Lagrangian_surfacecloud fraction at Lagrangian surfacenonereal(starting_x_direction_index_domain:ending_x_direction_index_domain, starting_y_direction_index_domain:ending_y_direction_index_domain, 1:vertical_dimension_for_fast_physics)kind_dynoutFalse
nthreadsomp_threads_for_fast_physicsnumber of OpenMP threads available for fast physics schemescountinteger()inFalse
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*outFalse
errflgccpp_error_flagerror flag for error handling in CCPPflaginteger()outFalse

Functions/Subroutines

subroutine, public fv_sat_adj::fv_sat_adj_run (mdt, zvir, is, ie, isd, ied, kmp, km, kmdelz, js, je, jsd, jed, ng, hydrostatic, fast_mp_consv, te0_2d, te0, ngas, qvi, qv, ql, qi, qr, qs, qg, hs, peln, delz, delp, pt, pkz, q_con, akap, cappa, area, dtdt, out_dt, last_step, do_qa, qa, nthreads, errmsg, errflg)
 
real(kind=kind_dyn) function fv_sat_adj::wqs1 (ta, den)
 the function 'wqs1' computes the saturated specific humidity for table ii. More...
 
real(kind=kind_dyn) function fv_sat_adj::iqs1 (ta, den)
 the function 'wqs1' computes the saturated specific humidity for table iii More...
 
real(kind=kind_dyn) function fv_sat_adj::wqs2 (ta, den, dqdt)
 The function 'wqs2'computes the gradient of saturated specific humidity for table ii. More...
 
subroutine fv_sat_adj::wqs2_vect (is, ie, ta, den, wqsat, dqdt)
 The function wqs2_vect computes the gradient of saturated specific humidity for table ii. It is the same as "wqs2", but written as vector function. More...
 
real(kind=kind_dyn) function fv_sat_adj::iqs2 (ta, den, dqdt)
 The function 'iqs2' computes the gradient of saturated specific humidity for table iii. More...
 
subroutine fv_sat_adj::qs_table (n)
 saturation water vapor pressure table i More...
 
subroutine fv_sat_adj::qs_tablew (n)
 saturation water vapor pressure table ii. More...
 
subroutine fv_sat_adj::qs_table2 (n)
 saturation water vapor pressure table iii. More...
 
subroutine fv_sat_adj::fv_sat_adj_work (mdt, zvir, is, ie, js, je, ng, hydrostatic, consv_te, te0, ifdef MULTI_GASES
 This subroutine includes the entity of the fast saturation adjustment processes. More...