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...
Modules | |
| GFS NSST Diurnal Thermocline Model | |
| This module contains the diurnal thermocline layer model (DTM) of the GFS NSST scheme. | |
| GFS NSST Parameter Module | |
| GFS NSST Water Property | |
Functions/Subroutines | |
| 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, 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, 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, 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 [58]). | |
| 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) [161] . | |
| elemental subroutine, public | module_nst_water_prop::sw_ps_9b_aw (z, aw) |
| This subroutine. | |
| real(kind_phys) function, public | module_nst_water_prop::grv (x) |
| 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) |
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.
| subroutine, public nst_module::cal_ttop | ( | integer, intent(in) | kdt, |
| real(kind=kind_phys), intent(in) | timestep, | ||
| real(kind=kind_phys), intent(in) | q_warm, | ||
| real(kind=kind_phys), intent(in) | rho, | ||
| real(kind=kind_phys), intent(in) | dz, | ||
| real(kind=kind_phys), intent(in) | xt, | ||
| real(kind=kind_phys), intent(in) | xz, | ||
| real(kind=kind_phys), intent(out) | ttop | ||
| ) |
This subroutine calculates the diurnal warming amount at the top layer with thickness of delz.
Definition at line 681 of file module_nst_model.f90.
Referenced by nst_module::dtm_1p(), and sfc_nst::sfc_nst_run().
| subroutine, public nst_module::cal_w | ( | integer, intent(in) | kdt, |
| real(kind=kind_phys), intent(in) | xz, | ||
| real(kind=kind_phys), intent(in) | xt, | ||
| real(kind=kind_phys), intent(in) | xzts, | ||
| real(kind=kind_phys), intent(in) | xtts, | ||
| real(kind=kind_phys), intent(out) | w_0, | ||
| real(kind=kind_phys), intent(out) | w_d | ||
| ) |
This subroutine computes coefficients (w_0 and w_d) to calculate d(tw)/d(ts).
Definition at line 649 of file module_nst_model.f90.
Referenced by sfc_nst::sfc_nst_run().
| subroutine, public nst_module::convdepth | ( | integer, intent(in) | kdt, |
| real(kind=kind_phys), intent(in) | timestep, | ||
| real(kind=kind_phys), intent(in) | i0, | ||
| real(kind=kind_phys), intent(in) | q, | ||
| real(kind=kind_phys), intent(in) | sss, | ||
| real(kind=kind_phys), intent(in) | sep, | ||
| real(kind=kind_phys), intent(in) | rho, | ||
| real(kind=kind_phys), intent(in) | alpha, | ||
| real(kind=kind_phys), intent(in) | beta, | ||
| real(kind=kind_phys), intent(in) | xt, | ||
| real(kind=kind_phys), intent(in) | xs, | ||
| real(kind=kind_phys), intent(in) | xz, | ||
| real(kind=kind_phys), intent(out) | d_conv | ||
| ) |
This subroutine calculates depth for convective adjustment.
Definition at line 409 of file module_nst_model.f90.
References nst_module::dtl_reset().
Referenced by sfc_nst::sfc_nst_run().
| subroutine, public nst_module::cool_skin | ( | real(kind=kind_phys), intent(in) | ustar_a, |
| real(kind=kind_phys), intent(in) | f_nsol, | ||
| real(kind=kind_phys), intent(in) | f_sol_0, | ||
| real(kind=kind_phys), intent(in) | evap, | ||
| real(kind=kind_phys), intent(in) | sss, | ||
| real(kind=kind_phys), intent(in) | alpha, | ||
| real(kind=kind_phys), intent(in) | beta, | ||
| real(kind=kind_phys), intent(in) | rho_w, | ||
| real(kind=kind_phys), intent(in) | rho_a, | ||
| real(kind=kind_phys), intent(in) | ts, | ||
| real(kind=kind_phys), intent(in) | q_ts, | ||
| real(kind=kind_phys), intent(in) | hl_ts, | ||
| real(kind=kind_phys), intent(in) | grav, | ||
| real(kind=kind_phys), intent(in) | le, | ||
| real(kind=kind_phys), intent(out) | deltat_c, | ||
| real(kind=kind_phys), intent(out) | z_c, | ||
| real(kind=kind_phys), intent(out) | c_0, | ||
| real(kind=kind_phys), intent(out) | c_d | ||
| ) |
This subroutine contains the upper ocean cool-skin parameterization (Fairall et al, 1996 [58]).
Definition at line 821 of file module_nst_model.f90.
Referenced by sfc_nst::sfc_nst_run().
| subroutine, public module_nst_water_prop::density | ( | real(kind=kind_phys), intent(in) | t, |
| real(kind=kind_phys), intent(in) | s, | ||
| real(kind=kind_phys), intent(out) | rho | ||
| ) |
This subroutine computes sea water density.
Definition at line 91 of file module_nst_water_prop.f90.
Referenced by sfc_nst::sfc_nst_run().
| subroutine, public nst_module::dtl_reset | ( | real(kind=kind_phys), intent(inout) | xt, |
| real(kind=kind_phys), intent(inout) | xs, | ||
| real(kind=kind_phys), intent(inout) | xu, | ||
| real(kind=kind_phys), intent(inout) | xv, | ||
| real(kind=kind_phys), intent(inout) | xz, | ||
| real(kind=kind_phys), intent(inout) | xzts, | ||
| real(kind=kind_phys), intent(inout) | xtts | ||
| ) |
This subroutine resets the value of xt,xs,xu,xv,xz,xtts,xzts.
Definition at line 963 of file module_nst_model.f90.
Referenced by nst_module::convdepth(), nst_module::dtm_1p(), and sfc_nst::sfc_nst_run().
| subroutine, public nst_module::dtm_1p | ( | integer, intent(in) | kdt, |
| real(kind=kind_phys), intent(in) | timestep, | ||
| real(kind=kind_phys), intent(in) | rich, | ||
| real(kind=kind_phys), intent(in) | tox, | ||
| real(kind=kind_phys), intent(in) | toy, | ||
| real(kind=kind_phys), intent(in) | i0, | ||
| real(kind=kind_phys), intent(in) | q, | ||
| real(kind=kind_phys), intent(in) | sss, | ||
| real(kind=kind_phys), intent(in) | sep, | ||
| real(kind=kind_phys), intent(in) | q_ts, | ||
| real(kind=kind_phys), intent(in) | hl_ts, | ||
| real(kind=kind_phys), intent(in) | rho, | ||
| real(kind=kind_phys), intent(in) | alpha, | ||
| real(kind=kind_phys), intent(in) | beta, | ||
| real(kind=kind_phys), intent(in) | alon, | ||
| real(kind=kind_phys), intent(in) | sinlat, | ||
| real(kind=kind_phys), intent(in) | soltim, | ||
| real(kind=kind_phys), intent(in) | grav, | ||
| real(kind=kind_phys), intent(in) | le, | ||
| real(kind=kind_phys), intent(in) | d_conv, | ||
| real(kind=kind_phys), intent(inout) | xt, | ||
| real(kind=kind_phys), intent(inout) | xs, | ||
| real(kind=kind_phys), intent(inout) | xu, | ||
| real(kind=kind_phys), intent(inout) | xv, | ||
| real(kind=kind_phys), intent(inout) | xz, | ||
| real(kind=kind_phys), intent(inout) | xzts, | ||
| real(kind=kind_phys), intent(inout) | xtts | ||
| ) |
This subroutine contains the module of diurnal thermocline layer model.
Definition at line 36 of file module_nst_model.f90.
References nst_module::cal_ttop(), and nst_module::dtl_reset().
Referenced by sfc_nst::sfc_nst_run().
| subroutine, public nst_module::dtm_1p_fca | ( | real(kind=kind_phys), intent(in) | d_conv, |
| real(kind=kind_phys), intent(in) | xt, | ||
| real(kind=kind_phys), intent(in) | xtts, | ||
| real(kind=kind_phys), intent(inout) | xz, | ||
| real(kind=kind_phys), intent(inout) | xzts | ||
| ) |
This subroutine applies free convection adjustment(fca).
Definition at line 319 of file module_nst_model.f90.
Referenced by sfc_nst::sfc_nst_run().
| subroutine, public nst_module::dtm_1p_mda | ( | real(kind=kind_phys), intent(in) | xt, |
| real(kind=kind_phys), intent(in) | xtts, | ||
| real(kind=kind_phys), intent(inout) | xz, | ||
| real(kind=kind_phys), intent(inout) | xzts | ||
| ) |
This subroutine applies minimum depth adjustment (xz adjustment).
Definition at line 371 of file module_nst_model.f90.
Referenced by sfc_nst::sfc_nst_run().
| subroutine, public nst_module::dtm_1p_mta | ( | real(kind=kind_phys), intent(in) | dta, |
| real(kind=kind_phys), intent(in) | xt, | ||
| real(kind=kind_phys), intent(in) | xtts, | ||
| real(kind=kind_phys), intent(inout) | xz, | ||
| real(kind=kind_phys), intent(inout) | xzts | ||
| ) |
This subroutine applies maximum temperature adjustment (mta).
Definition at line 388 of file module_nst_model.f90.
Referenced by sfc_nst::sfc_nst_run().
| subroutine, public nst_module::dtm_1p_mwa | ( | real(kind=kind_phys), intent(in) | xt, |
| real(kind=kind_phys), intent(in) | xtts, | ||
| real(kind=kind_phys), intent(inout) | xz, | ||
| real(kind=kind_phys), intent(inout) | xzts | ||
| ) |
This subroutine applies maximum warming adjustment (mwa).
Definition at line 357 of file module_nst_model.f90.
Referenced by sfc_nst::sfc_nst_run().
| subroutine, public nst_module::dtm_1p_tla | ( | real(kind=kind_phys), intent(in) | dz, |
| real(kind=kind_phys), intent(in) | te, | ||
| real(kind=kind_phys), intent(in) | xt, | ||
| real(kind=kind_phys), intent(in) | xtts, | ||
| real(kind=kind_phys), intent(inout) | xz, | ||
| real(kind=kind_phys), intent(inout) | xzts | ||
| ) |
This subroutine applies top layer adjustment (tla).
Definition at line 337 of file module_nst_model.f90.
Referenced by sfc_nst::sfc_nst_run().
| subroutine, public module_nst_water_prop::get_dtzm_2d | ( | real (kind=kind_phys), dimension(nx,ny), intent(in) | xt, |
| real (kind=kind_phys), dimension(nx,ny), intent(in) | xz, | ||
| real (kind=kind_phys), dimension(nx,ny), intent(in) | dt_cool, | ||
| real (kind=kind_phys), dimension(nx,ny), intent(in) | zc, | ||
| logical, dimension(nx,ny), intent(in) | wet, | ||
| real (kind=kind_phys), intent(in) | z1, | ||
| real (kind=kind_phys), intent(in) | z2, | ||
| integer, intent(in) | nx, | ||
| integer, intent(in) | ny, | ||
| integer, intent(in) | nth, | ||
| real (kind=kind_phys), dimension(nx,ny), intent(out) | dtm | ||
| ) |
Definition at line 637 of file module_nst_water_prop.f90.
| subroutine, public module_nst_water_prop::get_dtzm_point | ( | real (kind=kind_phys), intent(in) | xt, |
| real (kind=kind_phys), intent(in) | xz, | ||
| real (kind=kind_phys), intent(in) | dt_cool, | ||
| real (kind=kind_phys), intent(in) | zc, | ||
| real (kind=kind_phys), intent(in) | z1, | ||
| real (kind=kind_phys), intent(in) | z2, | ||
| real (kind=kind_phys), intent(out) | dtm | ||
| ) |
This subroutine computes dtm (the mean of \(dT(z)\)).
Definition at line 560 of file module_nst_water_prop.f90.
Referenced by sfc_nst::sfc_nst_run().
| real(kind_phys) function, public module_nst_water_prop::grv | ( | real(kind=kind_phys) | x | ) |
| x | sin(lat) |
Definition at line 475 of file module_nst_water_prop.f90.
References module_nst_water_prop::grv().
Referenced by module_nst_water_prop::grv(), and sfc_nst::sfc_nst_run().
| subroutine, public module_nst_water_prop::rhocoef | ( | real(kind=kind_phys), intent(in) | t, |
| real(kind=kind_phys), intent(in) | s, | ||
| real(kind=kind_phys), intent(in) | rhoref, | ||
| real(kind=kind_phys), intent(out) | alpha, | ||
| real(kind=kind_phys), intent(out) | beta | ||
| ) |
This subroutine computes thermal expansion coefficient (alpha) and saline contraction coefficient (beta).
Definition at line 48 of file module_nst_water_prop.f90.
Referenced by sfc_nst::sfc_nst_run().
| subroutine sfc_nst::sfc_nst_run | ( | integer, intent(in) | im, |
| real (kind=kind_phys), intent(in) | hvap, | ||
| real (kind=kind_phys), intent(in) | cp, | ||
| real (kind=kind_phys), intent(in) | hfus, | ||
| real (kind=kind_phys), intent(in) | jcal, | ||
| real (kind=kind_phys), intent(in) | eps, | ||
| real (kind=kind_phys), intent(in) | epsm1, | ||
| real (kind=kind_phys), intent(in) | rvrdm1, | ||
| real (kind=kind_phys), intent(in) | rd, | ||
| real (kind=kind_phys), intent(in) | rhw0, | ||
| real (kind=kind_phys), intent(in) | pi, | ||
| real (kind=kind_phys), intent(in) | tgice, | ||
| real (kind=kind_phys), intent(in) | sbc, | ||
| real (kind=kind_phys), dimension(:), intent(in) | ps, | ||
| real (kind=kind_phys), dimension(:), intent(in) | u1, | ||
| real (kind=kind_phys), dimension(:), intent(in) | v1, | ||
| real (kind=kind_phys), dimension(:), intent(in) | usfco, | ||
| real (kind=kind_phys), dimension(:), intent(in) | vsfco, | ||
| logical, intent(in) | use_oceanuv, | ||
| real (kind=kind_phys), dimension(:), intent(in) | t1, | ||
| real (kind=kind_phys), dimension(:), intent(in) | q1, | ||
| real (kind=kind_phys), dimension(:), intent(in) | tref, | ||
| real (kind=kind_phys), dimension(:), intent(in) | cm, | ||
| real (kind=kind_phys), dimension(:), intent(in) | ch, | ||
| logical, intent(in) | lseaspray, | ||
| real (kind=kind_phys), dimension(:), intent(in) | fm, | ||
| real (kind=kind_phys), dimension(:), intent(in) | fm10, | ||
| real (kind=kind_phys), dimension(:), intent(in) | prsl1, | ||
| real (kind=kind_phys), dimension(:), intent(in) | prslki, | ||
| real (kind=kind_phys), dimension(:), intent(in) | prsik1, | ||
| real (kind=kind_phys), dimension(:), intent(in) | prslk1, | ||
| logical, dimension(:), intent(in) | wet, | ||
| integer, dimension(:), intent(in) | use_lake_model, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xlon, | ||
| real (kind=kind_phys), dimension(:), intent(in) | sinlat, | ||
| real (kind=kind_phys), dimension(:), intent(in) | stress, | ||
| real (kind=kind_phys), dimension(:), intent(in) | sfcemis, | ||
| real (kind=kind_phys), dimension(:), intent(in) | dlwflx, | ||
| real (kind=kind_phys), dimension(:), intent(in) | sfcnsw, | ||
| real (kind=kind_phys), dimension(:), intent(in) | rain, | ||
| real (kind=kind_phys), intent(in) | timestep, | ||
| integer, intent(in) | kdt, | ||
| real (kind=kind_phys), intent(in) | solhr, | ||
| real (kind=kind_phys), dimension(:), intent(in) | xcosz, | ||
| real (kind=kind_phys), dimension(:), intent(in) | wind, | ||
| logical, dimension(:), intent(in) | flag_iter, | ||
| logical, dimension(:), intent(in) | flag_guess, | ||
| integer, intent(in) | nstf_name1, | ||
| integer, intent(in) | nstf_name4, | ||
| integer, intent(in) | nstf_name5, | ||
| logical, intent(in) | lprnt, | ||
| integer, intent(in) | ipr, | ||
| logical, intent(in) | thsfc_loc, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | tskin, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | tsurf, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | xt, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | xs, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | xu, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | xv, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | xz, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | zm, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | xtts, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | xzts, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | dt_cool, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | z_c, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | c_0, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | c_d, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | w_0, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | w_d, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | d_conv, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | ifd, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | qrain, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | qsurf, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | gflux, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | cmm, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | chh, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | evap, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | hflx, | ||
| real (kind=kind_phys), dimension(:), intent(inout) | ep, | ||
| character(len=*), intent(out) | errmsg, | ||
| integer, intent(out) | errflg | ||
| ) |
Definition at line 27 of file sfc_nst.f90.
References nst_module::cal_ttop(), nst_module::cal_w(), nst_module::convdepth(), nst_module::cool_skin(), module_nst_water_prop::density(), nst_module::dtl_reset(), nst_module::dtm_1p(), nst_module::dtm_1p_fca(), nst_module::dtm_1p_mda(), nst_module::dtm_1p_mta(), nst_module::dtm_1p_mwa(), nst_module::dtm_1p_tla(), module_nst_water_prop::get_dtzm_point(), module_nst_water_prop::grv(), and module_nst_water_prop::rhocoef().
| elemental subroutine, public module_nst_water_prop::sw_ps_9b | ( | real(kind=kind_phys), intent(in) | z, |
| real(kind=kind_phys), intent(out) | fxp | ||
| ) |
This subroutine computes the fraction of the solar radiation absorbed by the depth z following Paulson and Simpson (1981) [161] .
Definition at line 129 of file module_nst_water_prop.f90.
| elemental subroutine, public module_nst_water_prop::sw_ps_9b_aw | ( | real(kind=kind_phys), intent(in) | z, |
| real(kind=kind_phys), intent(out) | aw | ||
| ) |
This subroutine.
Definition at line 162 of file module_nst_water_prop.f90.