CCPP SciDoc for Idealized Regional TC Capability  SRW v3.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches

◆ noahmpdrv_run()

subroutine __noahmpdrv_f90__::noahmpdrv_run ( integer, intent(in) im,
integer, intent(in) km,
integer, intent(in) lsnowl,
integer, intent(in) itime,
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) t1,
real(kind=kind_phys), dimension(:), intent(in) q1,
integer, dimension(:), intent(in) soiltyp,
integer, dimension(:), intent(in) soilcol,
integer, dimension(:), intent(in) vegtype,
real(kind=kind_phys), dimension(:), intent(in) sigmaf,
real(kind=kind_phys), dimension(:), intent(in) dlwflx,
real(kind=kind_phys), dimension(:), intent(in) dswsfc,
real(kind=kind_phys), dimension(:), intent(in) snet,
real(kind=kind_phys), intent(in) delt,
real(kind=kind_phys), dimension(:), intent(in) tg3,
real(kind=kind_phys), dimension(:), intent(inout) cm,
real(kind=kind_phys), dimension(:), intent(inout) ch,
real(kind=kind_phys), dimension(:), intent(in) prsl1,
real(kind=kind_phys), dimension(:), intent(in) prslk1,
real(kind=kind_phys), dimension(:), intent(in) prslki,
real(kind=kind_phys), dimension(:), intent(in) prsik1,
real(kind=kind_phys), dimension(:), intent(in) zf,
real(kind=kind_phys), dimension(:), intent(in) pblh,
logical, dimension(:), intent(in) dry,
real(kind=kind_phys), dimension(:), intent(in) wind,
integer, dimension(:), intent(in) slopetyp,
real(kind=kind_phys), dimension(:), intent(in) shdmin,
real(kind=kind_phys), dimension(:), intent(in) shdmax,
real(kind=kind_phys), dimension(:), intent(in) snoalb,
real(kind=kind_phys), dimension(:), intent(inout) sfalb,
logical, dimension(:), intent(in) flag_iter,
real(kind=kind_phys), intent(in) con_g,
integer, intent(in) idveg,
integer, intent(in) iopt_crs,
integer, intent(in) iopt_btr,
integer, intent(in) iopt_run,
integer, intent(in) iopt_sfc,
integer, intent(in) iopt_frz,
integer, intent(in) iopt_inf,
integer, intent(in) iopt_rad,
integer, intent(in) iopt_alb,
integer, intent(in) iopt_snf,
integer, intent(in) iopt_tbot,
integer, intent(in) iopt_stc,
integer, intent(in) iopt_trs,
integer, intent(in) iopt_diag,
real(kind=kind_phys), dimension(:), intent(in) xlatin,
real(kind=kind_phys), dimension(:), intent(in) xcoszin,
integer, intent(in) iyrlen,
real(kind=kind_phys), intent(in) julian,
real(kind=kind_phys), dimension(:), intent(in) garea,
real(kind=kind_phys), dimension(:), intent(in) rainn_mp,
real(kind=kind_phys), dimension(:), intent(in) rainc_mp,
real(kind=kind_phys), dimension(:), intent(in) snow_mp,
real(kind=kind_phys), dimension(:), intent(in) graupel_mp,
real(kind=kind_phys), dimension(:), intent(in) ice_mp,
real(kind=kind_phys), dimension(:), intent(in) rhonewsn1,
real(kind=kind_phys), intent(in) con_hvap,
real(kind=kind_phys), intent(in) con_cp,
real(kind=kind_phys), intent(in) con_jcal,
real(kind=kind_phys), intent(in) rhoh2o,
real(kind=kind_phys), intent(in) con_eps,
real(kind=kind_phys), intent(in) con_epsm1,
real(kind=kind_phys), intent(in) con_fvirt,
real(kind=kind_phys), intent(in) con_rd,
real(kind=kind_phys), intent(in) con_hfus,
logical, intent(in) thsfc_loc,
logical, intent(in) cpllnd,
logical, intent(in) cpllnd2atm,
real(kind=kind_phys), dimension(:), intent(inout) weasd,
real(kind=kind_phys), dimension(:), intent(inout) snwdph,
real(kind=kind_phys), dimension(:), intent(inout) tskin,
real(kind=kind_phys), dimension(:), intent(inout) tprcp,
real(kind=kind_phys), dimension(:), intent(inout) srflag,
real(kind=kind_phys), dimension(:,:), intent(inout) smc,
real(kind=kind_phys), dimension(:,:), intent(inout) stc,
real(kind=kind_phys), dimension(:,:), intent(inout) slc,
real(kind=kind_phys), dimension(:), intent(inout) canopy,
real(kind=kind_phys), dimension(:), intent(inout) trans,
real(kind=kind_phys), dimension(:), intent(inout) tsurf,
real(kind=kind_phys), dimension(:), intent(inout) zorl,
real(kind=kind_phys), dimension(:), intent(inout) rb1,
real(kind=kind_phys), dimension(:), intent(inout) fm1,
real(kind=kind_phys), dimension(:), intent(inout) fh1,
real(kind=kind_phys), dimension(:), intent(inout) ustar1,
real(kind=kind_phys), dimension(:), intent(inout) stress1,
real(kind=kind_phys), dimension(:), intent(inout) fm101,
real(kind=kind_phys), dimension(:), intent(inout) fh21,
real(kind=kind_phys), dimension(:), intent(inout) rmol1,
real(kind=kind_phys), dimension(:), intent(inout) flhc1,
real(kind=kind_phys), dimension(:), intent(inout) flqc1,
logical, intent(in) do_mynnsfclay,
real(kind=kind_phys), dimension(:), intent(inout) snowxy,
real(kind=kind_phys), dimension(:), intent(inout) tvxy,
real(kind=kind_phys), dimension(:), intent(inout) tgxy,
real(kind=kind_phys), dimension(:), intent(inout) canicexy,
real(kind=kind_phys), dimension(:), intent(inout) canliqxy,
real(kind=kind_phys), dimension(:), intent(inout) eahxy,
real(kind=kind_phys), dimension(:), intent(inout) tahxy,
real(kind=kind_phys), dimension(:), intent(inout) cmxy,
real(kind=kind_phys), dimension(:), intent(inout) chxy,
real(kind=kind_phys), dimension(:), intent(inout) fwetxy,
real(kind=kind_phys), dimension(:), intent(inout) sneqvoxy,
real(kind=kind_phys), dimension(:), intent(inout) alboldxy,
real(kind=kind_phys), dimension(:), intent(inout) qsnowxy,
real(kind=kind_phys), dimension(:), intent(inout) wslakexy,
real(kind=kind_phys), dimension(:), intent(inout) zwtxy,
real(kind=kind_phys), dimension(:), intent(inout) waxy,
real(kind=kind_phys), dimension(:), intent(inout) wtxy,
real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) tsnoxy,
real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) zsnsoxy,
real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) snicexy,
real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) snliqxy,
real(kind=kind_phys), dimension(:), intent(inout) lfmassxy,
real(kind=kind_phys), dimension(:), intent(inout) rtmassxy,
real(kind=kind_phys), dimension(:), intent(inout) stmassxy,
real(kind=kind_phys), dimension(:), intent(inout) woodxy,
real(kind=kind_phys), dimension(:), intent(inout) stblcpxy,
real(kind=kind_phys), dimension(:), intent(inout) fastcpxy,
real(kind=kind_phys), dimension(:), intent(inout) xlaixy,
real(kind=kind_phys), dimension(:), intent(inout) xsaixy,
real(kind=kind_phys), dimension(:), intent(inout) taussxy,
real(kind=kind_phys), dimension(:,:), intent(inout) smoiseq,
real(kind=kind_phys), dimension(:), intent(inout) smcwtdxy,
real(kind=kind_phys), dimension(:), intent(inout) deeprechxy,
real(kind=kind_phys), dimension(:), intent(inout) rechxy,
real(kind=kind_phys), dimension(:), intent(out) albdvis,
real(kind=kind_phys), dimension(:), intent(out) albdnir,
real(kind=kind_phys), dimension(:), intent(out) albivis,
real(kind=kind_phys), dimension(:), intent(out) albinir,
real(kind=kind_phys), dimension(:), intent(out) emiss,
real(kind=kind_phys), dimension(:), intent(out) sncovr1,
real(kind=kind_phys), dimension(:), intent(out) qsurf,
real(kind=kind_phys), dimension(:), intent(out) gflux,
real(kind=kind_phys), dimension(:), intent(out) drain,
real(kind=kind_phys), dimension(:), intent(out) evap,
real(kind=kind_phys), dimension(:), intent(out) hflx,
real(kind=kind_phys), dimension(:), intent(out) ep,
real(kind=kind_phys), dimension(:), intent(out) runoff,
real(kind=kind_phys), dimension(:), intent(out) cmm,
real(kind=kind_phys), dimension(:), intent(out) chh,
real(kind=kind_phys), dimension(:), intent(out) evbs,
real(kind=kind_phys), dimension(:), intent(out) evcw,
real(kind=kind_phys), dimension(:), intent(out) sbsno,
real(kind=kind_phys), dimension(:), intent(out) pah,
real(kind=kind_phys), dimension(:), intent(out) ecan,
real(kind=kind_phys), dimension(:), intent(out) etran,
real(kind=kind_phys), dimension(:), intent(out) edir,
real(kind=kind_phys), dimension(:), intent(out) snowc,
real(kind=kind_phys), dimension(:), intent(out) stm,
real(kind=kind_phys), dimension(:), intent(out) snohf,
real(kind=kind_phys), dimension(:), intent(out) smcwlt2,
real(kind=kind_phys), dimension(:), intent(out) smcref2,
real(kind=kind_phys), dimension(:), intent(out) wet1,
real(kind=kind_phys), dimension(:), intent(out) t2mmp,
real(kind=kind_phys), dimension(:), intent(out) q2mp,
real(kind=kind_phys), dimension(:), intent(out) zvfun,
real(kind=kind_phys), dimension(:), intent(out) ztmax,
real(kind=kind_phys), dimension(:), intent(out) rca,
character(len=*), intent(out) errmsg,
integer, intent(out) errflg,
real(kind=kind_phys), dimension(:), intent(out), optional canopy_heat_storage_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional rainfall_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional sw_absorbed_total_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional sw_reflected_total_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional lw_absorbed_total_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional temperature_bare_grd_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional temperature_veg_grd_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional temperature_veg_2m_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional temperature_bare_2m_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional spec_humidity_veg_2m_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional spec_humidity_bare_2m_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional sw_absorbed_veg_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional sw_absorbed_ground_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional snowmelt_out_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional snowmelt_shallow_ccpp,
real(kind=kind_phys), dimension(:,:), intent(out), optional albedo_direct_snow_ccpp,
real(kind=kind_phys), dimension(:,:), intent(out), optional albedo_diffuse_snow_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional ch_vegetated_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional ch_bare_ground_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional sensible_heat_grd_veg_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional sensible_heat_leaf_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional sensible_heat_grd_bar_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional latent_heat_grd_veg_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional latent_heat_grd_bare_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional ground_heat_veg_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional ground_heat_bare_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional lw_absorbed_grd_veg_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional lw_absorbed_leaf_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional lw_absorbed_grd_bare_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional latent_heat_trans_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional latent_heat_leaf_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional ch_leaf_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional ch_below_canopy_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional ch_vegetated_2m_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional ch_bare_ground_2m_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional precip_adv_heat_veg_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional precip_adv_heat_grd_v_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional precip_adv_heat_grd_b_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional spec_humid_sfc_veg_ccpp,
real(kind=kind_phys), dimension(:), intent(out), optional spec_humid_sfc_bare_ccpp )
private

Argument Table

NoahMP Driver General Algorithm

  • Initialize CCPP error handling variables.
  • Set a flag to only continue with each grid cell if the fraction of land is non-zero.
  • This driver may be called as part of an iterative loop. If called as the first "guess" run, save land-related prognostic fields to restore.
  • Initialize output variables to zero and prepare variables for input into the NoahMP LSM.
  • Call transfer_mp_parameters() to fill a derived datatype for input into the NoahMP LSM.
  • Call noahmp_options() to set module-level scheme options for the NoahMP LSM.
  • If the vegetation type is ice for the grid cell, call noahmp_options_glacier() to set module-level scheme options for NoahMP Glacier and call noahmp_glacier().
  • For other vegetation types, call noahmp_sflx(), the entry point of the NoahMP LSM.
  • Set output variables from the output of noahmp_glacier() and/or noahmp_sflx().
  • Call penman() to calculate potential evaporation.
  • Calculate the surface specific humidity and convert surface sensible and latent heat fluxes in W m-2 from their kinematic values.
  • If a "guess" run, restore the land-related prognostic fields.

References noahmp_options(), noahmp_sflx(), penman(), sfcdif4(), snow_age(), snowfall(), and transfer_mp_parameters().

Here is the call graph for this function: