Interoperable Physics Driver for NGGPS
GFS Physics Implementation Layer

Layer that invokes individual GFS physics routines. More...

Functions/Subroutines

subroutine gbphys
 Parameter descriptions include intent, name, description, and size. More...
 

Detailed Description

Layer that invokes individual GFS physics routines.

Function/Subroutine Documentation

subroutine gbphys ( )

Parameter descriptions include intent, name, description, and size.

gbphys is the driver subroutine to invoke GFS physics (except radiation but radiative heating is applied here) at physics time steps

Parameters
[in]ix(1),im(1)- integer, horiz dimension and num of used pts
[in]levs(1)- integer, vertical layer dimension
[in]lsoil(1)- integer, number of soil layers
[in]lsm(1)- integer, flag for land surface model to use =0 for osu lsm; =1 for noah lsm
[in]ntrac(1)- integer, number of tracers
[in]ncld(1)- integer, number of cloud species
[in]ntoz(1)- integer, ozone location in the tracer array
[in]ntcw(1)- integer, cloud condensate location in the tracer array
[in]ntke(1)- integer, tke location in the tracer array
[in]nmtvr(1)- integer, number of topographic variables such as variance etc used in the GWD parameterization
[in]nrcm(1)- integer, second dimension for the random number array rann
[in]ko3(1)- integer, number of layers for ozone data
[in]lonr(1),latr(1)- integer, number of lon/lat points
[in]jcap(1)- integer, number of spectral wave trancation used only by sascnv shalcnv
[in]num_p3d(1)- integer, number of 3D arrays needed for microphysics
[in]num_p2d(1)- integer, number of 2D arrays needed for microphysics
[in]npdf3d(1)- integer, number of 3d arrays associated with pdf based clouds/microphysics
[in]ncnvcld3d(1)- integer, number of 3d arrays associated with convective cloudiness enhancement
[in]kdt(1)- integer, number of the current time step
[in]lat(1)- integer, latitude index - used for debug prints
[in]me(1)- integer, pe number - used for debug prints
[in]pl_coeff(1)- integer, number coefficients in ozone forcing
[in]nlons(im)- integer, number of total grid points in a latitude circle through a point
[in]ncw(2)- integer, range of droplet number concentrations for Ferrier microphysics
[in]flgmin(2)- real, range of minimum large ice fraction for Ferrier microphys
[in]crtrh(3)- real, critical relative humidity at the surface, PBL top and at the top of the atmosphere
[in]cdmbgwd(2)- real, multiplication factors for cdmb and gwd
[in]ccwf(2)- real, multiplication factor for critical cloud workfunction for RAS
[in]dlqf(2)- real, factor for cloud condensate detrainment from cloud edges (RAS)
[in]ctei_rm(2)- real, critical cloud top entrainment instability criteria (used if mstrat=.true.)
[in]clstp(1)- real, index used by cnvc90 (for convective clouds) legacy stuff - does not affect forecast
[in]cgwf(2)- real, multiplication factor for convective GWD
[in]prslrd0(1)- real, pressure level (Pa) from which Rayleigh Damping is applied
[in]ral_ts(1)- real time scale for Rayleigh damping in days
[in]dtp(1)- real, physics time step in seconds
[in]dtf(1)- real, dynamics time step in seconds
[in]fhour(1)- real, forecast hour
[in]solhr(1)- real, fcst hour at the end of prev time step
[in]slag(1)- real, equation of time ( radian )
[in]sdec(1),cdec(1)- real, sin and cos of the solar declination angle
[in]sinlat(im)- real, sin of latitude
[in]coslat(im)- real, cos of latitude
[in]pgr(im)- real, surface pressure (Pa)
[in]ugrs(ix,levs),vgrs(ix,levs)- real, u/v component of layer wind
[in]tgrs(ix,levs)- real, layer mean temperature ( k )
[in]qgrs(ix,levs,ntrac)- real, layer mean tracer concentration
[in]vvel(ix,levs)- real, layer mean vertical velocity (Pa/s)
[in]prsi(ix,levs+1)- real, pressure at layer interfaces
[in]prsl(ix,levs)- real, mean layer presure
[in]prsik(ix,levs+1)- real, Exner function at layer interface
[in]prslk(ix,levs)- real, Exner function at layer
[in]phii(ix,levs+1)- real, interface geopotential (m^2/s^2)
[in]phil(ix,levs)- real, layer geopotential (m^2/s^2)
[in]rann(ix,nrcm)- real, random number array (0-1)
[in]prdout(ix,ko3,pl_coeff)- real, ozone forcing data
[in]poz(ko3)- real, ozone forcing data level pressure (ln(Pa))
[in]dpshc(im)- real, maximum pressure depth for shallow convection
[in]hprime(ix,nmtvr)- real, orographic std dev
[in]xlon(im),xlat(im)- real, longitude and latitude ( radian )
[in]slope(im)- real, sfc slope type for lsm
[in]shdmin(im1)- real, min fractional coverage of green veg
[in]shdmax(im1)- real, max fractnl cover of green veg (not used)
[in]snoalb(im1)- real, max snow albedo over land (for deep snow)
[in]tg3(im)- real, deep soil temperature
[in]slmsk(im- real, sea/land/ice mask (=0/1/2)
[in]vfrac(im)- real, vegetation fraction
[in]vtype(im)- real, vegetation type
[in]stype(im)- real, soil type
[in]uustar(im)- real, boundary layer parameter
[in]oro(im)- real, orography
[in]oro_uf(im)- real, unfiltered orography
[in]coszen(im)- real, avg cosz over daytime sw radiation interval
[in]sfcdsw(im)- real, total sky sfc downward sw flux ( w/m**2 )
[in]sfcnsw(im)- real, total sky sfc netsw flx into ground(w/m**2)
[in]sfcdlw(im)- real, total sky sfc downward lw flux ( w/m**2 )
[in]tsflw(im)- real, sfc air (layer 1) temp over lw interval (k)
[in]sfcemis(im)- real, sfc lw emissivity ( fraction )
[in]sfalb(im)- real, mean sfc diffused sw albedo
[in]sfcnirbmu(im)- real, sfc nir-beam sw upward flux (w/m2)
[in]sfcnirdfu(im)- real, sfc nir-diff sw upward flux (w/m2)
[in]sfcvisbmu(im)- real, sfc uv+vis-beam sw upward flux (w/m2)
[in]sfcvisdfu(im)- real, sfc uv+vis-diff sw upward flux (w/m2)
[in]sfcnirbmd(im)- real, sfc nir-beam sw downward flux (w/m2)
[in]sfcnirdfd(im)- real, sfc nir-diff sw downward flux (w/m2)
[in]sfcvisbmd(im)- real, sfc uv+vis-beam sw downward flux (w/m2)
[in]sfcvisdfd(im)- real, sfc uv+vis-diff sw downward flux (w/m2)
[in]slimskin_cpl(im)- real,
[in]ulwsfcin_cpl(im)- real,
[in]dusfcin_cpl(im)- real,
[in]dvsfcin_cpl(im)- real,
[in]dtsfcin_cpl(im)- real,
[in]dqsfcin_cpl(im)- real,
[in]swh(ix,levs)- real, total sky sw heating rates ( k/s )
[in]swhc(ix,levs)- real, clear sky sw heating rates ( k/s )
[in]hlw(ix,levs)- real, total sky lw heating rates ( k/s )
[in]hlwc(ix,levs)- real, clear sky lw heating rates ( k/s )
[in]hlwd(ix,levs)- real, idea sky lw heating rates ( k/s )
[in]ras(1)- logical, flag for ras convection scheme
[in]cscnv(1)- logical, flag for Chikira-Sugiyama convection
[in]nctp(1)- integer, number of cloud types in CS scheme
[in]do_shoc(1)- logical, flag for SHOC
[in]shocaftcnv(1)- logical, flag for SHOC
[in]ntot3d(1)- integer, number of total 3d fields for phy_f3d
[in]ntot2d(1)- integer, number of total 2d fields for phy_f2d
[in]pre_rad(1)- logical, flag for testing purpose
[in]ldiag3d(1)- logical, flag for 3d diagnostic fields
[in]lgocart(1)- logical, flag for 3d diagnostic fields for gocart
[in]lssav(1)- logical, flag controls data store and output
[in]lssav_cpl(1)- logical, flag for save data for A/O/I coupling
[in]flipv(1)- logical, flag for vertical direction flip (ras)
[in]xkzm_m(1)- real, background vertical diffusion for momentum
[in]xkzm_h(1)- real, background vertical diffusion for heat, q
[in]xkzm_s(1)- real, sigma threshold for background mom. diffusn
[in]psautco(2)- real, auto conversion coeff from ice to snow
[in]prautco(2)- real, auto conversion coeff from cloud to rain
[in]evpco(1)- real, coeff for evaporation of largescale rain
[in]wminco(1)- real, water and ice minimum threshold for Zhao
[in]pdfcld(1)- logical, flag for pdfcld
[in]shcnvcw(1)- logical, flag for shallow convective cloud
[in]sup(1)- real, supsaturation for ho. nucleation of ice
[in]redrag(1)- logical, flag for reduced drag coeff. over sea
[in]hybedmf(1)- logical, flag for hybrid edmf pbl scheme
[in]dspheat(1)- logical, flag for tke dissipative heating
[in]old_monin(1)- logical, flag for diff monin schemes
[in]cnvgwd(1)- logical, flag for conv gravity wave drag
[in]shal_cnv(1)- logical, flag for calling shallow convection
[in]imfshalcnv(1)- integer, flag for mass-flux shallow conv scheme
     1: July 2010 version of mass-flux shallow conv scheme 
         current operational version as of 2016 
     2: scale- & aerosol-aware mass-flux shallow conv scheme (2017)
     0: modified Tiedtke's eddy-diffusion shallow conv scheme
    -1: no shallow convection used
[in]imfdeepcnv(1)- integer, flag for mass-flux deep conv scheme
     1: July 2010 version of SAS conv scheme
           current operational version as of 2016 
     2: scale- & aerosol-aware mass-flux deep conv scheme (2017)
     0: old SAS Convection scheme before July 2010
[in]cal_pre(1)- logical, flag controls precip type algorithm
[in]mom4ice(1)- logical, flag controls mom4 sea-ice
[in]mstrat(1)- logical, flag for moorthi approach for stratus
[in]trans_trac(1)- logical, flag for convective transport of tracers
[in]nstf_name(1)- integer array, NSST related flag parameters
     nstf_name(1) : 0 = NSSTM off                      
                    1 = NSSTM on but uncoupled         
                    2 = NSSTM on and coupled           
     nstf_name(2) : 1 = NSSTM spin up on               
                    0 = NSSTM spin up off              
     nstf_name(3) : 1 = NSST analysis on               
                    0 = NSSTM analysis off             
     nstf_name(4) : zsea1 in mm                        
     nstf_name(5) : zsea2 in mm                        
[in]moist_adj(1)- logical, flag for moist convective adjustment
[in]thermodyn_id(1)- integer, valid for GFS only for get_prs/phi
[in]sfcpress_id(1)- integer, valid for GFS only for get_prs/phi
[in]gen_coord_hybrid(1)- logical for pk=ak+bk*ps+ck*theta (Henry)
[in]levr(1)- integer, the number of layers GFS Radiative heating calculted at 1
[in]adjtrc(ntrac)- real, dynamics adjustments to tracers
[in]nnp(1)- integer, physics substep number
[in,out]hice(im)- real, sea-ice thickness
[in,out]fice(im)- real, sea-ice concentration
[in,out]tisfc(im)- real, sea-ice temperature
[in,out]tsea(im)- real, ground surface temperature ( k )
[in,out]tprcp(im)- real, total precipitation the following three variables do not affect the forecast
[in,out]cv(im)- real, convective clouds amountt
[in,out]cvb(im)- real, convective clouds base pressure (kPa)
[in,out]cvt(im)- real, convective clouds top pressure (kPa)
[in,out]srflag(im)- real, snow/rain flag for precipitation
[in,out]snwdph(im)- real, actual snow depth (mm) over land/sea ice
[in,out]weasd(im)- real, water equiv of accumulated snow depth (kg/m**2) over land and sea ice
[in,out]sncovr(im)- real, snow cover over land
[in,out]zorl(im)- real, surface roughness
[in,out]canopy(im)- real, canopy water
[in,out]ffmm(im)- real, fm parameter from PBL scheme
[in,out]ffhh(im)- real, fh parameter from PBL scheme
[in,out]f10m(im)- real, fm at 10m
[in,out]srunoff(im)- real, surface water runoff (from lsm)
[in,out]evbsa(im)- real, noah lsm diagnostics
[in,out]evcwa(im)- real, noah lsm diagnostics
[in,out]snohfa(im)- real, noah lsm diagnostics
[in,out]transa(im)- real, noah lsm diagnostics
[in,out]sbsnoa(im)- real, noah lsm diagnostics
[in,out]snowca(im)- real, noah lsm diagnostics
[in,out]soilm(im)- real, soil moisture
[in,out]tmpmin(im)- real, min temperature at 2m height (k)
[in,out]tmpmax(im)- real, max temperature at 2m height (k)
[in,out]dusfc(im)- real, u component of surface stress
[in,out]dvsfc(im)- real, v component of surface stress
[in,out]dtsfc(im)- real, sensible heat flux (w/m2)
[in,out]dqsfc(im)- real, latent heat flux (w/m2)
[in,out]totprcp(im)- real, accumulated total precipitation (kg/m2)
[in,out]gflux(im)- real, groud conductive heat flux
[in,out]dlwsfc(im)- real, time accumulated sfc dn lw flux ( w/m**2 )
[in,out]ulwsfc(im)- real, time accumulated sfc up lw flux ( w/m**2 )
[in,out]suntim(im)- real, sunshine duration time (s)
[in,out]runoff(im)- real, total water runoff
[in,out]ep(im)- real, potential evaporation
[in,out]cldwrk(im)- real, cloud workfunction (valid only with sas)
[in,out]dugwd(im)- real, vertically integrated u change by OGWD
[in,out]dvgwd(im)- real, vertically integrated v change by OGWD
[in,out]psmean(im)- real, surface pressure (kPa)
[in,out]cnvprcp(im)- real, accumulated convective precipitation (kg/m2)
[in,out]spfhmin(im)- real, minimum specific humidity
[in,out]spfhmax(im)- real, maximum specific humidity
[in,out]rain(im)- real, total rain at this time step
[in,out]rainc(im)- real, convective rain at this time step
[in,out]dt3dt(ix,les,6)- real, temperature change due to physics
[in,out]dq3dt(ix,levs,5+pl_coeff)- real, moisture change due to physics
[in,out]du3dt(ix,levs,4)- real, u momentum change due to physics
[in,out]dv3dt(ix,levs,4)- real, v momentum change due to physics
[in,out]dqdt_v(ix,levs)- real, total moisture tendency (kg/kg/s)
[in,out]cnvqc_v(ix,levs)- real, total convective conensate (kg/kg)
[in,out]acv(im)- real, array containing accumulated convective clouds
[in,out]acvb(im),acvt(im)- real, arrays used by cnvc90
[in,out]slc(ix,soil)- real, liquid soil moisture
[in,out]smc(ix,soil)- real, total soil moisture
[in,out]stc(ix,soil)- real, soil temperature
[in,out]upd_mf(ix,levs)- real, convective updraft mass flux
[in,out]dwn_mf(ix,levs)- real, convective downdraft mass flux
[in,out]det_mf(ix,levs)- real, convective detrainment mass flux
[in,out]dkh(ix,levs)- real, vertical diffusion coefficient (gocart), not used
[in,out]rnp(ix,levs)- real, n cloud precipitation rate (gocart), not used
[in,out]phy_f3d(ix,levs,num_p3d)- real, 3d arrays saved for restart
[in,out]phy_f2d(ix,num_p2d)- real, 2d arrays save for restart
[in,out]dusfc_cpl(im)- real, sfc u-momentum flux for A/O/I coupling
[in,out]dvsfc_cpl(im)- real, sfc v-momentum flux for A/O/I coupling
[in,out]dtsfc_cpl(im)- real, sfc sensible heat flux for A/O/I coupling
[in,out]dqsfc_cpl(im)- real, sfc latent heat flux for A/O/I coupling
[in,out]dlwsfc_cpl(im)- real, sfc dnwd lw flux (w/m**2) for A/O/I coupling
[in,out]dswsfc_cpl(im)- real, sfc dnwd sw flux (w/m**2) for A/O/I coupling
[in,out]dnirbm_cpl(im)- real, sfc nir beam dnwd sw rad flux (w/m**2)
[in,out]dnirdf_cpl(im)- real, sfc nir diff dnwd sw rad flux (w/m**2)
[in,out]dvisbm_cpl(im)- real, sfc uv+vis beam dnwd sw rad flux (w/m**2)
[in,out]dvisdf_cpl(im)- real, sfc uv+vis diff dnwd sw rad flux (w/m**2)
[in,out]nlwsfc_cpl(im)- real, net dnwd lw flux (w/m**2) for A/O/I coupling
[in,out]nswsfc_cpl(im)- real, net dnwd sw flux (w/m**2) for A/O/I coupling
[in,out]nnirbm_cpl(im)- real, net nir beam dnwd sw rad flux (w/m**2)
[in,out]nnirdf_cpl(im)- real, net nir diff dnwd sw rad flux (w/m**2)
[in,out]nvisbm_cpl(im)- real, net uv+vis beam dnwd sw rad flux (w/m**2)
[in,out]nvisdf_cpl(im)- real, net uv+vis diff dnwd sw rad flux (w/m**2)
[in,out]rain_cpl(im)- real, total precipitation rain for A/O/I coupling
[in,out]snow_cpl(im)- real, total precipitation snow for A/O/I coupling
[in,out]xt(im)- real, heat content in DTL
[in,out]xs(im)- real, salinity content in DTL
[in,out]xu(im)- real, u-current content in DTL
[in,out]xv(im)- real, v-current content in DTL
[in,out]xz(im)- real, DTL thickness
[in,out]zm(im)- real, MXL thickness
[in,out]xtts(im)- real, d(xt)/d(ts)
[in,out]xzts(im)- real, d(xz)/d(ts)
[in,out]d_conv(im)- real, thickness of Free Convection Layer (FCL)
[in,out]ifd(im)- real, index to start DTM run or not
[in,out]dt_cool(im)- real, Sub-layer cooling amount
[in,out]Qrain(im)- real, sensible heat flux due to rainfall (watts)
[in,out]phy_fctd(ix,nctp)- real, cloud base mass flux for CScnv
[out]gt0(ix,levs)- real, updated temperature
[out]gq0(ix,levs,ntrac)- real, updated tracers
[out]gu0(ix,levs)- real, updated zonal wind
[out]gv0(ix,levs)- real, update meridional wind
[out]t2m(im),q2m(im)- real, 2 meter temperature and humidity
[out]u10m(im),v10m(im)- real, 10 meater u/v wind speed
[out]zlvl(im)- real, layer 1 height (m)
[out]psurf(im)- real, surface pressure (Pa)
[out]hpbl(im)- real, pbl height (m)
[out]pwat(im)- real, precipitable water
[out]t1(im)- real, layer 1 temperature (K)
[out]q1(im)- real, layer 1 specific humidity (kg/kg)
[out]u1(im)- real, layer 1 zonal wind (m/s)
[out]v1(im)- real, layer 1 merdional wind (m/s)
[out]chh(im)- real, thermal exchange coefficient
[out]cmm(im)- real, momentum exchange coefficient
[out]dlwsfci(im)- real, instantaneous sfc dnwd lw flux ( w/m**2 )
[out]ulwsfci(im)- real, instantaneous sfc upwd lw flux ( w/m**2 )
[out]dswsfci(im)- real, instantaneous sfc dnwd sw flux ( w/m**2 )
[out]uswsfci(im)- real, instantaneous sfc upwd sw flux ( w/m**2 )
[out]dusfci(im)- real, instantaneous u component of surface stress
[out]dvsfci(im)- real, instantaneous v component of surface stress
[out]dtsfci(im)- real, instantaneous sfc sensible heat flux
[out]dqsfci(im)- real, instantaneous sfc latent heat flux
[out]gfluxi(im)- real, instantaneous sfc ground heat flux
[out]epi(im)- real, instantaneous sfc potential evaporation
[out]smcwlt2(im)- real, wilting point (volumetric)
[out]smcref2(im)- real, soil moisture threshold (volumetric)
[out]dusfci_cpl(im)- real, sfc u-momentum flux at time step AOI cpl
[out]dvsfci_cpl(im)- real, sfc v-momentum flux at time step AOI cpl
[out]dtsfci_cpl(im)- real, sfc sensib heat flux at time step AOI cpl
[out]dqsfci_cpl(im)- real, sfc latent heat flux at time step AOI cpl
[out]dlwsfci_cpl(im)- real, sfc dnwd lw flux at time step AOI cpl
[out]dswsfci_cpl(im)- real, sfc dnwd sw flux at time step AOI cpl
[out]dnirbmi_cpl(im)- real, sfc nir beam dnwd sw flx rad at time step
[out]dnirdfi_cpl(im)- real, sfc nir diff dnwd sw flx rad at time step
[out]dvisbmi_cpl(im)- real, sfc uv+vis beam dnwd sw flx at time step
[out]dvisdfi_cpl(im)- real, sfc uv+vis diff dnwd sw flx at time step
[out]nlwsfci_cpl(im)- real, net sfc dnwd lw flux at time step AOI cpl
[out]nswsfci_cpl(im)- real, net sfc dnwd sw flux at time step AOI cpl
[out]nnirbmi_cpl(im)- real, net nir beam dnwd sw flx rad at time step
[out]nnirdfi_cpl(im)- real, net nir diff dnwd sw flx rad at time step
[out]nvisbmi_cpl(im)- real, net uv+vis beam dnwd sw flx at time step
[out]nvisdfi_cpl(im)- real, net uv+vis diff dnwd sw flx at time step
[out]ocalnirbm_cpl(im)- real, ocean alb nir beam (no ice) at time step
[out]ocalnirdf_cpl(im)- real, ocean alb nir diff (no ice) at time step
[out]ocalvisbm_cpl(im)- real, ocean alb vis beam (no ice) at time step
[out]ocalvisdf_cpl(im)- real, ocean alb vis diff (no ice) at time step
[out]t2mi_cpl(im)- real, T2m at time step AOI cpl
[out]q2mi_cpl(im)- real, Q2m at time step AOI cpl
[out]u10mi_cpl(im)- real, U10m at time step AOI cpl
[out]v10mi_cpl(im)- real, V10m at time step AOI cpl
[out]tseai_cpl(im)- real, sfc temp at time step AOI cpl
[out]psurfi_cpl(im)- real, sfc pressure at time step AOI cpl
[out]tref(im)- real, Reference Temperature
[out]z_c(im)- real, Sub-layer cooling thickness
[out]c_0(im)- real, coefficient1 to calculate d(Tz)/d(Ts)
[out]c_d(im)- real, coefficient2 to calculate d(Tz)/d(Ts)
[out]w_0(im)- real, coefficient3 to calculate d(Tz)/d(Ts)
[out]w_d(im)- real, coefficient4 to calculate d(Tz)/d(Ts)
[out]rqtk(im)- real, mass change due to moisture variation
[out]dtdtr(ix,levs)- real, temperature change due to radiative heating per time step (K)

Definition at line 530 of file gbphys.f.

Referenced by gloopb(), and nuopc_physics::nuopc_phys_run().

Here is the caller graph for this function: