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...
|
| subroutine, public | 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| subroutine, public | nst_module::dtm_1p_fca (d_conv, xt, xtts, xz, xzts) |
| | This subroutine applies free convection adjustment(fca).
|
| |
| subroutine, public | nst_module::dtm_1p_tla (dz, te, xt, xtts, xz, xzts) |
| | This subroutine applies top layer adjustment (tla).
|
| |
| subroutine, public | nst_module::dtm_1p_mwa (xt, xtts, xz, xzts) |
| | This subroutine applies maximum warming adjustment (mwa).
|
| |
| subroutine, public | nst_module::dtm_1p_mda (xt, xtts, xz, xzts) |
| | This subroutine applies minimum depth adjustment (xz adjustment).
|
| |
| subroutine, public | nst_module::dtm_1p_mta (dta, xt, xtts, xz, xzts) |
| | This subroutine applies maximum temperature adjustment (mta).
|
| |
| subroutine, public | nst_module::convdepth (kdt, timestep, i0, q, sss, sep, rho, alpha, beta, xt, xs, xz, d_conv) |
| | This subroutine calculates depth for convective adjustment.
|
| |
| 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, public | 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).
|
| |
| subroutine, public | 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.
|
| |
| 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.
|
| |
| 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).
|
| |
| subroutine, public | 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 [38]).
|
| |
| real function | nst_module::int_epn (z1, z2, zmx, ztr, n) |
| | This function calculates a definitive integral of an exponential curve (power of 2).
|
| |
| subroutine | nst_module::dtl_reset_cv (xt, xs, xu, xv, xz) |
| | This subroutine resets the value of xt,xs,xu,xv,xz.
|
| |
| subroutine, public | nst_module::dtl_reset (xt, xs, xu, xv, xz, xzts, xtts) |
| | This subroutine resets the value of xt,xs,xu,xv,xz,xtts,xzts.
|
| |
| subroutine, public | module_nst_water_prop::rhocoef (t, s, rhoref, alpha, beta) |
| | This subroutine computes thermal expansion coefficient (alpha) and saline contraction coefficient (beta).
|
| |
| subroutine, public | module_nst_water_prop::density (t, s, rho) |
| | This subroutine computes sea water density.
|
| |
| 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) [115] .
|
| |
| elemental subroutine, public | module_nst_water_prop::sw_ps_9b_aw (z, aw) |
| | This subroutine.
|
| |
| 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) [38], p. 1298) following Paulson and Simpson (1981) [115] .
|
| |
| 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) [38]; p.1298) following Paulson and Simpson (1981) [115].
|
| |
| 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) [38] , p.1298) following Paulson and Simpson (1981) [115] .
|
| |
| 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) [38], p.1298)
|
| |
| 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) [155] , p.5).
|
| |
| 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) [38] , p.1301) following Soloviev and Vershinsky (1982) [136].
|
| |
| 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) |
| |
| real(kind_phys) function, public | module_nst_water_prop::grv (x) |
| |
| subroutine | module_nst_water_prop::solar_time_from_julian (jday, xlon, soltim) |
| | This subroutine computes solar time from the julian date.
|
| |
| subroutine | 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.
|
| |
| 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)\)).
|
| |
| subroutine, public | module_nst_water_prop::get_dtzm_2d (xt, xz, dt_cool, zc, wet, z1, z2, nx, ny, nth, dtm) |
| |
| subroutine | sfc_nst::sfc_nst_run (im, hvap, cp, hfus, jcal, eps, epsm1, rvrdm1, rd, rhw0, pi, tgice, sbc, ps, u1, v1, usfco, vsfco, use_oceanuv, t1, q1, tref, cm, ch, lseaspray, fm, fm10, prsl1, prslki, prsik1, prslk1, wet, use_lake_model, 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) |
| |
| local_name | standard_name | long_name | units | type | dimensions | kind | intent |
| im | horizontal_loop_extent | horizontal loop extent | count | integer | () | | in |
| hvap | latent_heat_of_vaporization_of_water_at_0c | latent heat of evaporation/sublimation | J kg-1 | real | () | kind_phys | in |
| cp | specific_heat_of_dry_air_at_constant_pressure | specific heat of dry air at constant pressure | J kg-1 K-1 | real | () | kind_phys | in |
| hfus | latent_heat_of_fusion_of_water_at_0c | latent heat of fusion | J kg-1 | real | () | kind_phys | in |
| jcal | joules_per_calorie_constant | joules per calorie constant | J cal-1 | real | () | kind_phys | in |
| eps | ratio_of_dry_air_to_water_vapor_gas_constants | rd/rv | none | real | () | kind_phys | in |
| epsm1 | ratio_of_dry_air_to_water_vapor_gas_constants_minus_one | (rd/rv) - 1 | none | real | () | kind_phys | in |
| rvrdm1 | ratio_of_vapor_to_dry_air_gas_constants_minus_one | (rv/rd) - 1 (rv = ideal gas constant for water vapor) | none | real | () | kind_phys | in |
| rd | gas_constant_of_dry_air | ideal gas constant for dry air | J kg-1 K-1 | real | () | kind_phys | in |
| rhw0 | sea_water_reference_density | sea water reference density | kg m-3 | real | () | kind_phys | in |
| pi | pi | ratio of a circle's circumference to its diameter | none | real | () | kind_phys | in |
| tgice | freezing_point_temperature_of_seawater | freezing point temperature of seawater | K | real | () | kind_phys | in |
| sbc | stefan_boltzmann_constant | Stefan-Boltzmann constant | W m-2 K-4 | real | () | kind_phys | in |
| ps | surface_air_pressure | surface pressure | Pa | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| u1 | physics_timestep_initial_x_wind_at_surface_adjacent_layer | x component of surface layer wind | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| v1 | physics_timestep_initial_y_wind_at_surface_adjacent_layer | y component of surface layer wind | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| usfco | x_ocean_current | zonal current at ocean surface | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| vsfco | y_ocean_current | meridional current at ocean surface | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| use_oceanuv | do_air_sea_flux_computation_over_water | air-sea flux option | flag | logical | () | | in |
| t1 | physics_timestep_initial_air_temperature_at_surface_adjacent_layer | surface layer mean temperature | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| q1 | physics_timestep_initial_specific_humidity_at_surface_adjacent_layer | surface layer mean specific humidity | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| tref | reference_sea_surface_temperature | reference/foundation temperature | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| cm | surface_drag_coefficient_for_momentum_in_air_over_water | surface exchange coeff for momentum over water | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| ch | surface_drag_coefficient_for_heat_and_moisture_in_air_over_water | surface exchange coeff heat surface exchange coeff heat & moisture over ocean moisture over water | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| lseaspray | flag_for_sea_spray | flag for sea spray parameterization | flag | logical | () | | in |
| fm | monin_obukhov_similarity_function_for_momentum_over_water | Monin-Obukhov similarity function for momentum over water | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| fm10 | monin_obukhov_similarity_function_for_momentum_at_10m_over_water | Monin-Obukhov similarity parameter for momentum at 10m over water | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| prsl1 | air_pressure_at_surface_adjacent_layer | surface layer mean pressure | Pa | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| prslki | ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer | Exner function ratio bt midlayer and interface at 1st layer | ratio | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| prsik1 | surface_dimensionless_exner_function | dimensionless Exner function at the ground surface | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| prslk1 | dimensionless_exner_function_at_surface_adjacent_layer | dimensionless Exner function at the lowest model layer | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| wet | flag_nonzero_wet_surface_fraction | flag indicating presence of some ocean or lake surface area fraction | flag | logical | (ccpp_constant_one:horizontal_loop_extent) | | in |
| use_lake_model | flag_for_using_lake_model | flag indicating lake points using a lake model | flag | integer | (ccpp_constant_one:horizontal_loop_extent) | | in |
| xlon | longitude | longitude | radian | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| sinlat | sine_of_latitude | sine of latitude | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| stress | surface_wind_stress_over_water | surface wind stress over water | m2 s-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| sfcemis | surface_longwave_emissivity_over_water | surface lw emissivity in fraction over water | frac | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| dlwflx | surface_downwelling_longwave_flux_absorbed_by_ground_over_water | total sky surface downward longwave flux absorbed by the ground over water | W m-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| sfcnsw | surface_net_downwelling_shortwave_flux | total sky sfc net sw flx into ocean | W m-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| rain | nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_water | total precipitation amount in each time step over water | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| timestep | timestep_for_dynamics | timestep interval | s | real | () | kind_phys | in |
| kdt | index_of_timestep | current time step index | index | integer | () | | in |
| solhr | forecast_utc_hour | time in hours after 00z at the current timestep | h | real | () | kind_phys | in |
| xcosz | instantaneous_cosine_of_zenith_angle | cosine of solar zenith angle | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| wind | wind_speed_at_lowest_model_layer | wind speed at lowest model level | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
| flag_iter | flag_for_iteration | flag for iteration | flag | logical | (ccpp_constant_one:horizontal_loop_extent) | | in |
| flag_guess | flag_for_guess_run | flag for guess run | flag | logical | (ccpp_constant_one:horizontal_loop_extent) | | in |
| nstf_name1 | control_for_nsstm | NSSTM flag: off/uncoupled/coupled=0/1/2 | flag | integer | () | | in |
| nstf_name4 | lower_bound_for_depth_of_sea_temperature_for_nsstm | zsea1 | mm | integer | () | | in |
| nstf_name5 | upper_bound_for_depth_of_sea_temperature_for_nsstm | zsea2 | mm | integer | () | | in |
| lprnt | flag_print | flag for printing diagnostics to output | flag | logical | () | | in |
| ipr | horizontal_index_of_printed_column | horizontal index of printed column | index | integer | () | | in |
| thsfc_loc | flag_for_reference_pressure_theta | flag for reference pressure in theta calculation | flag | logical | () | | in |
| tskin | surface_skin_temperature_for_nsst | ocean surface skin temperature | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| tsurf | surface_skin_temperature_after_iteration_over_water | surface skin temperature after iteration over water | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| xt | heat_content_in_diurnal_thermocline | heat content in diurnal thermocline layer | K m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| xs | sea_water_salinity_in_diurnal_thermocline | salinity content in diurnal thermocline layer | ppt m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| xu | x_current_in_diurnal_thermocline | u-current content in diurnal thermocline layer | m2 s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| xv | y_current_in_diurnal_thermocline | v-current content in diurnal thermocline layer | m2 s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| xz | diurnal_thermocline_layer_thickness | diurnal thermocline layer thickness | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| zm | ocean_mixed_layer_thickness | mixed layer thickness | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| xtts | derivative_of_heat_content_in_diurnal_thermocline_wrt_surface_skin_temperature | d(xt)/d(ts) | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| xzts | derivative_of_diurnal_thermocline_layer_thickness_wrt_surface_skin_temperature | d(xz)/d(ts) | m K-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| dt_cool | molecular_sublayer_temperature_correction_in_sea_water | sub-layer cooling amount | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| z_c | molecular_sublayer_thickness_in_sea_water | sub-layer cooling thickness | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| c_0 | coefficient_c_0 | coefficient1 to calculate d(tz)/d(ts) | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| c_d | coefficient_c_d | coefficient2 to calculate d(tz)/d(ts) | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| w_0 | coefficient_w_0 | coefficient3 to calculate d(tz)/d(ts) | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| w_d | coefficient_w_d | coefficient4 to calculate d(tz)/d(ts) | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| d_conv | free_convection_layer_thickness_in_sea_water | thickness of free convection layer | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| ifd | control_for_diurnal_thermocline_calculation | index to start dtlm run or not | index | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| qrain | surface_sensible_heat_due_to_rainfall | sensible heat flux due to rainfall | W | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| qsurf | surface_specific_humidity_over_water | surface air saturation specific humidity over water | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| gflux | upward_heat_flux_in_soil_over_water | soil heat flux over water | W m-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| cmm | surface_drag_wind_speed_for_momentum_in_air_over_water | momentum exchange coefficient over water | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| chh | surface_drag_mass_flux_for_heat_and_moisture_in_air_over_water | thermal exchange coefficient over water | kg m-2 s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| evap | kinematic_surface_upward_latent_heat_flux_over_water | kinematic surface upward latent heat flux over water | kg kg-1 m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| hflx | kinematic_surface_upward_sensible_heat_flux_over_water | kinematic surface upward sensible heat flux over water | K m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| ep | surface_upward_potential_latent_heat_flux_over_water | surface upward potential latent heat flux over water | W m-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
| errmsg | ccpp_error_message | error message for error handling in CCPP | none | character | () | len=* | out |
| errflg | ccpp_error_code | error code for error handling in CCPP | 1 | integer | () | | out |