CCPP SciDoc  v6.0.0
Common Community Physics Package Developed at DTC
GFS Near-Surface Sea Temperature Module

This module contains the CCPP-compliant GFS near-surface sea temperature scheme.This subroutine calls the Thermal Skin-layer and Diurnal Thermocline models to update the NSST profile. More...

Collaboration diagram for GFS Near-Surface Sea Temperature Module:

Modules

 GFS NSST Diurnal Thermocline Model
 This module contains the diurnal thermocline layer model (DTM) of the GFS NSST scheme.
 
 GFS NSST Parameter Module
 This module contains constants and parameters used in GFS near surface sea temperature scheme. history: 20210305: X.Li, reduce z_w_max from 30 m to 20 m.
 
 GFS NSST Water Property
 This module contains GFS NSST water property subroutines.
 

Functions/Subroutines

subroutine sfc_nst::sfc_nst_run (im, hvap, cp, hfus, jcal, eps, epsm1, rvrdm1, rd, rhw0, pi, tgice, sbc, ps, u1, v1, t1, q1, tref, cm, ch, lseaspray, fm, fm10, prsl1, prslki, prsik1, prslk1, wet, use_flake, xlon, sinlat, stress, sfcemis, dlwflx, sfcnsw, rain, timestep, kdt, solhr, xcosz, wind, flag_iter, flag_guess, nstf_name1, nstf_name4, nstf_name5, lprnt, ipr, thsfc_loc, tskin, tsurf, xt, xs, xu, xv, xz, zm, xtts, xzts, dt_cool, z_c, c_0, c_d, w_0, w_d, d_conv, ifd, qrain, qsurf, gflux, cmm, chh, evap, hflx, ep, errmsg, errflg)
 
subroutine nst_module::dtm_1p (kdt, timestep, rich, tox, toy, i0, q, sss, sep, q_ts, hl_ts, rho, alpha, beta, alon, sinlat, soltim, grav, le, d_conv, xt, xs, xu, xv, xz, xzts, xtts)
 This subroutine contains the module of diurnal thermocline layer model. More...
 
subroutine nst_module::eulerm (kdt, timestep, rich, tox, toy, i0, q, sss, sep, q_ts, hl_ts, rho, alpha, beta, alon, sinlat, soltim, grav, le, d_conv, xt, xs, xu, xv, xz, xzts, xtts)
 This subroutine integrates one time step with modified Euler method. More...
 
subroutine nst_module::dtm_1p_zwa (kdt, timestep, i0, q, rho, d_conv, xt, xs, xu, xv, xz, tr_mda, tr_fca, tr_tla, tr_mwa)
 This subroutine applies xz adjustment. More...
 
subroutine nst_module::dtm_1p_fca (d_conv, xt, xtts, xz, xzts)
 This subroutine applies free convection adjustment(fca). More...
 
subroutine nst_module::dtm_1p_tla (dz, te, xt, xtts, xz, xzts)
 This subroutine applies top layer adjustment (tla). More...
 
subroutine nst_module::dtm_1p_mwa (xt, xtts, xz, xzts)
 This subroutine applies maximum warming adjustment (mwa). More...
 
subroutine nst_module::dtm_1p_mda (xt, xtts, xz, xzts)
 This subroutine applies minimum depth adjustment (xz adjustment). More...
 
subroutine nst_module::dtm_1p_mta (dta, xt, xtts, xz, xzts)
 This subroutine applies maximum temperature adjustment (mta). More...
 
subroutine nst_module::convdepth (kdt, timestep, i0, q, sss, sep, rho, alpha, beta, xt, xs, xz, d_conv)
 This subroutine calculates depth for convective adjustment. More...
 
subroutine nst_module::dtm_onset (kdt, timestep, rich, tox, toy, i0, q, sss, sep, q_ts, hl_ts, rho, alpha, beta, alon, sinlat, soltim, grav, le, xt, xs, xu, xv, xz, xzts, xtts)
 
subroutine nst_module::cal_w (kdt, xz, xt, xzts, xtts, w_0, w_d)
 This subroutine computes coefficients (w_0 and w_d) to calculate d(tw)/d(ts). More...
 
subroutine nst_module::cal_ttop (kdt, timestep, q_warm, rho, dz, xt, xz, ttop)
 This subroutine calculates the diurnal warming amount at the top layer with thickness of delz. More...
 
subroutine nst_module::app_sfs (kdt, xt, xs, xu, xv, alpha, beta, grav, d_1p, xz)
 This subroutine adjust dtm-1p dtl thickness by applying shear flow stability with assumed exponential profile. More...
 
subroutine nst_module::cal_tztr (kdt, xt, c_0, c_d, w_0, w_d, zc, zw, z, tztr)
 This subroutine calculates d(tz)/d(ts). More...
 
subroutine nst_module::cool_skin (ustar_a, f_nsol, f_sol_0, evap, sss, alpha, beta, rho_w, rho_a, ts, q_ts, hl_ts, grav, le, deltat_c, z_c, c_0, c_d)
 This subroutine contains the upper ocean cool-skin parameterization (Fairall et al, 1996 [57]). More...
 
real function nst_module::int_epn (z1, z2, zmx, ztr, n)
 This function calculates a definitive integral of an exponential curve (power of 2). More...
 
subroutine nst_module::dtl_reset_cv (xt, xs, xu, xv, xz)
 This subroutine resets the value of xt,xs,xu,xv,xz. More...
 
subroutine nst_module::dtl_reset (xt, xs, xu, xv, xz, xzts, xtts)
 This subroutine resets the value of xt,xs,xu,xv,xz,xtts,xzts. More...
 
subroutine, public module_nst_water_prop::rhocoef (t, s, rhoref, alpha, beta)
 This subroutine computes thermal expansion coefficient (alpha) and saline contraction coefficient (beta). More...
 
subroutine, public module_nst_water_prop::density (t, s, rho)
 This subroutine computes sea water density. More...
 
elemental subroutine, public module_nst_water_prop::sw_ps_9b (z, fxp)
 This subroutine computes the fraction of the solar radiation absorbed by the depth z following Paulson and Simpson (1981) [153] . More...
 
elemental subroutine, public module_nst_water_prop::sw_ps_9b_aw (z, aw)
 This subroutine. More...
 
elemental subroutine module_nst_water_prop::sw_fairall_6exp_v1 (z, fxp)
 This subroutine computes fraction of the solar radiation absorbed by the ocean at the depth z (Fairall et al. (1996) [57], p. 1298) following Paulson and Simpson (1981) [153] . More...
 
elemental subroutine module_nst_water_prop::sw_fairall_6exp_v1_aw (z, aw)
 This subroutine calculates fraction of the solar radiation absorbed by the ocean at the depth z (fairall et al.(1996) [57]; p.1298) following Paulson and Simpson (1981) [153]. More...
 
elemental subroutine module_nst_water_prop::sw_fairall_6exp_v1_sum (z, sum)
 This subroutine computes fraction of the solar radiation absorbed by the ocean at the depth z (Fairall et al.(1996) [57] , p.1298) following Paulson and Simpson (1981) [153] . More...
 
elemental subroutine module_nst_water_prop::sw_fairall_simple_v1 (f_sol_0, z, df_sol_z)
 Solar radiation absorbed by the ocean at the depth z (Fairall et al. (1996) [57], p.1298) More...
 
elemental subroutine module_nst_water_prop::sw_wick_v1 (f_sol_0, z, df_sol_z)
 solar radiation absorbed by the ocean at the depth z (Zeng and Beljaars (2005) [196] , p.5). More...
 
elemental subroutine module_nst_water_prop::sw_soloviev_3exp_v1 (f_sol_0, z, df_sol_z)
 This subroutine computes solar radiation absorbed by the ocean at the depth z (Fairall et al.(1996) [57] , p.1301) following Soloviev and Vershinsky (1982) [178]. More...
 
elemental subroutine module_nst_water_prop::sw_soloviev_3exp_v2 (f_sol_0, z, df_sol_z)
 
elemental subroutine module_nst_water_prop::sw_soloviev_3exp_v2_aw (z, aw)
 
elemental subroutine module_nst_water_prop::sw_ohlmann_v1 (z, fxp)
 
function, public module_nst_water_prop::grv (lat)
 
subroutine, public module_nst_water_prop::solar_time_from_julian (jday, xlon, soltim)
 This subroutine computes solar time from the julian date. More...
 
subroutine, public module_nst_water_prop::compjd (jyr, jmnth, jday, jhr, jmn, jd, fjd)
 This subroutine computes julian day and fraction from year, month, day and time UTC. More...
 
subroutine, public module_nst_water_prop::get_dtzm_point (xt, xz, dt_cool, zc, z1, z2, dtm)
 This subroutine computes dtm (the mean of \(dT(z)\)). More...
 
subroutine, public module_nst_water_prop::get_dtzm_2d (xt, xz, dt_cool, zc, wet, z1, z2, nx, ny, nth, dtm)
 

Detailed Description

Argument Table

sfc_nst_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintent
imhorizontal_loop_extenthorizontal loop extentcountinteger()in
hvaplatent_heat_of_vaporization_of_water_at_0clatent heat of evaporation/sublimationJ kg-1real()kind_physin
cpspecific_heat_of_dry_air_at_constant_pressurespecific heat of dry air at constant pressureJ kg-1 K-1real()kind_physin
hfuslatent_heat_of_fusion_of_water_at_0clatent heat of fusionJ kg-1real()kind_physin
jcaljoules_per_calorie_constantjoules per calorie constantJ cal-1real()kind_physin
epsratio_of_dry_air_to_water_vapor_gas_constantsrd/rvnonereal()kind_physin
epsm1ratio_of_dry_air_to_water_vapor_gas_constants_minus_one(rd/rv) - 1nonereal()kind_physin
rvrdm1ratio_of_vapor_to_dry_air_gas_constants_minus_one(rv/rd) - 1 (rv = ideal gas constant for water vapor)nonereal()kind_physin
rdgas_constant_of_dry_airideal gas constant for dry airJ kg-1 K-1real()kind_physin
rhw0sea_water_reference_densitysea water reference densitykg m-3real()kind_physin
pipiratio of a circle's circumference to its diameternonereal()kind_physin
tgicefreezing_point_temperature_of_seawaterfreezing point temperature of seawaterKreal()kind_physin
sbcstefan_boltzmann_constantStefan-Boltzmann constantW m-2 K-4real()kind_physin
pssurface_air_pressuresurface pressurePareal(ccpp_constant_one:horizontal_loop_extent)kind_physin
u1x_wind_at_surface_adjacent_layerx component of surface layer windm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
v1y_wind_at_surface_adjacent_layery component of surface layer windm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
t1air_temperature_at_surface_adjacent_layersurface layer mean temperatureKreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
q1specific_humidity_at_surface_adjacent_layersurface layer mean specific humiditykg kg-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
trefreference_sea_surface_temperaturereference/foundation temperatureKreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
cmsurface_drag_coefficient_for_momentum_in_air_over_watersurface exchange coeff for momentum over waternonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
chsurface_drag_coefficient_for_heat_and_moisture_in_air_over_watersurface exchange coeff heat surface exchange coeff heat & moisture over ocean moisture over waternonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
lseasprayflag_for_sea_sprayflag for sea spray parameterizationflaglogical()in
fmmonin_obukhov_similarity_function_for_momentum_over_waterMonin-Obukhov similarity function for momentum over waternonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
fm10monin_obukhov_similarity_function_for_momentum_at_10m_over_waterMonin-Obukhov similarity parameter for momentum at 10m over waternonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
prsl1air_pressure_at_surface_adjacent_layersurface layer mean pressurePareal(ccpp_constant_one:horizontal_loop_extent)kind_physin
prslkiratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layerExner function ratio bt midlayer and interface at 1st layerratioreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
prsik1surface_dimensionless_exner_functiondimensionless Exner function at the ground surfacenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
prslk1dimensionless_exner_function_at_surface_adjacent_layerdimensionless Exner function at the lowest model layernonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
wetflag_nonzero_wet_surface_fractionflag indicating presence of some ocean or lake surface area fractionflaglogical(ccpp_constant_one:horizontal_loop_extent)in
use_flakeflag_for_using_flakeflag indicating lake points using flake modelflaglogical(ccpp_constant_one:horizontal_loop_extent)in
xlonlongitudelongituderadianreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
sinlatsine_of_latitudesine of latitudenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
stresssurface_wind_stress_over_watersurface wind stress over waterm2 s-2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
sfcemissurface_longwave_emissivity_over_watersurface lw emissivity in fraction over waterfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
dlwflxsurface_downwelling_longwave_flux_absorbed_by_ground_over_watertotal sky surface downward longwave flux absorbed by the ground over waterW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
sfcnswsurface_net_downwelling_shortwave_fluxtotal sky sfc net sw flx into oceanW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
rainnonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_watertotal precipitation amount in each time step over watermreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
timesteptimestep_for_dynamicstimestep intervalsreal()kind_physin
kdtindex_of_timestepcurrent time step indexindexinteger()in
solhrforecast_utc_hourtime in hours after 00z at the current timestephreal()kind_physin
xcoszinstantaneous_cosine_of_zenith_anglecosine of solar zenith anglenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
windwind_speed_at_lowest_model_layerwind speed at lowest model levelm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
flag_iterflag_for_iterationflag for iterationflaglogical(ccpp_constant_one:horizontal_loop_extent)in
flag_guessflag_for_guess_runflag for guess runflaglogical(ccpp_constant_one:horizontal_loop_extent)in
nstf_name1control_for_nsstmNSSTM flag: off/uncoupled/coupled=0/1/2flaginteger()in
nstf_name4lower_bound_for_depth_of_sea_temperature_for_nsstmzsea1mminteger()in
nstf_name5upper_bound_for_depth_of_sea_temperature_for_nsstmzsea2mminteger()in
lprntflag_printflag for printing diagnostics to outputflaglogical()in
iprhorizontal_index_of_printed_columnhorizontal index of printed columnindexinteger()in
thsfc_locflag_for_reference_pressure_thetaflag for reference pressure in theta calculationflaglogical()in
tskinsurface_skin_temperature_for_nsstocean surface skin temperatureKreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
tsurfsurface_skin_temperature_after_iteration_over_watersurface skin temperature after iteration over waterKreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
xtheat_content_in_diurnal_thermoclineheat content in diurnal thermocline layerK mreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
xssea_water_salinity_in_diurnal_thermoclinesalinity content in diurnal thermocline layerppt mreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
xux_current_in_diurnal_thermoclineu-current content in diurnal thermocline layerm2 s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
xvy_current_in_diurnal_thermoclinev-current content in diurnal thermocline layerm2 s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
xzdiurnal_thermocline_layer_thicknessdiurnal thermocline layer thicknessmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
zmocean_mixed_layer_thicknessmixed layer thicknessmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
xttsderivative_of_heat_content_in_diurnal_thermocline_wrt_surface_skin_temperatured(xt)/d(ts)mreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
xztsderivative_of_diurnal_thermocline_layer_thickness_wrt_surface_skin_temperatured(xz)/d(ts)m K-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
dt_coolmolecular_sublayer_temperature_correction_in_sea_watersub-layer cooling amountKreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
z_cmolecular_sublayer_thickness_in_sea_watersub-layer cooling thicknessmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
c_0coefficient_c_0coefficient1 to calculate d(tz)/d(ts)nonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
c_dcoefficient_c_dcoefficient2 to calculate d(tz)/d(ts)nonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
w_0coefficient_w_0coefficient3 to calculate d(tz)/d(ts)nonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
w_dcoefficient_w_dcoefficient4 to calculate d(tz)/d(ts)nonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
d_convfree_convection_layer_thickness_in_sea_waterthickness of free convection layermreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
ifdcontrol_for_diurnal_thermocline_calculationindex to start dtlm run or notindexreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
qrainsurface_sensible_heat_due_to_rainfallsensible heat flux due to rainfallWreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
qsurfsurface_specific_humidity_over_watersurface air saturation specific humidity over waterkg kg-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
gfluxupward_heat_flux_in_soil_over_watersoil heat flux over waterW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
cmmsurface_drag_wind_speed_for_momentum_in_air_over_watermomentum exchange coefficient over waterm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
chhsurface_drag_mass_flux_for_heat_and_moisture_in_air_over_waterthermal exchange coefficient over waterkg m-2 s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
evapkinematic_surface_upward_latent_heat_flux_over_waterkinematic surface upward latent heat flux over waterkg kg-1 m s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
hflxkinematic_surface_upward_sensible_heat_flux_over_waterkinematic surface upward sensible heat flux over waterK m s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
epsurface_upward_potential_latent_heat_flux_over_watersurface upward potential latent heat flux over waterW m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*out
errflgccpp_error_codeerror code for error handling in CCPP1integer()out

GFS Near-Surface Sea Temperature Scheme General Algorithm