CCPP Scientific Documentation
v5.0.0
subroutine sfc_sice::sfc_sice_run ( integer, intent(in)  im,
integer, intent(in)  kice,
real (kind=kind_phys), intent(in)  sbc,
real (kind=kind_phys), intent(in)  hvap,
real (kind=kind_phys), intent(in)  tgice,
real (kind=kind_phys), intent(in)  cp,
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)  grav,
real (kind=kind_phys), intent(in)  t0c,
real (kind=kind_phys), intent(in)  rd,
real (kind=kind_phys), dimension(im), intent(in)  ps,
real (kind=kind_phys), dimension(im), intent(in)  t1,
real (kind=kind_phys), dimension(im), intent(in)  q1,
real (kind=kind_phys), intent(in)  delt,
real (kind=kind_phys), dimension(im), intent(in)  sfcemis,
real (kind=kind_phys), dimension(im), intent(in)  dlwflx,
real (kind=kind_phys), dimension(im), intent(in)  sfcnsw,
real (kind=kind_phys), dimension(im), intent(in)  sfcdsw,
real (kind=kind_phys), dimension(im), intent(in)  srflag,
real (kind=kind_phys), dimension(im), intent(in)  cm,
real (kind=kind_phys), dimension(im), intent(in)  ch,
real (kind=kind_phys), dimension(im), intent(in)  prsl1,
real (kind=kind_phys), dimension(im), intent(in)  prslki,
real (kind=kind_phys), dimension(im), intent(in)  prsik1,
real (kind=kind_phys), dimension(im), intent(in)  prslk1,
real (kind=kind_phys), dimension(im), intent(in)  wind,
logical, dimension(im), intent(in)  flag_iter,
logical, intent(in)  lprnt,
integer, intent(in)  ipr,
real (kind=kind_phys), dimension(im), intent(inout)  hice,
real (kind=kind_phys), dimension(im), intent(inout)  fice,
real (kind=kind_phys), dimension(im), intent(inout)  tice,
real (kind=kind_phys), dimension(im), intent(inout)  weasd,
real (kind=kind_phys), dimension(im), intent(inout)  tskin,
real (kind=kind_phys), dimension(im), intent(inout)  tprcp,
real (kind=kind_phys), dimension(im,kice), intent(inout)  tiice,
real (kind=kind_phys), dimension(im), intent(inout)  ep,
real (kind=kind_phys), dimension(im), intent(inout)  snwdph,
real (kind=kind_phys), dimension(im), intent(inout)  qsurf,
real (kind=kind_phys), dimension(im), intent(inout)  snowmt,
real (kind=kind_phys), dimension(im), intent(inout)  gflux,
real (kind=kind_phys), dimension(im), intent(inout)  cmm,
real (kind=kind_phys), dimension(im), intent(inout)  chh,
real (kind=kind_phys), dimension(im), intent(inout)  evap,
real (kind=kind_phys), dimension(im), intent(inout)  hflx,
logical, intent(in)  frac_grid,
logical, dimension(im), intent(in)  icy,
integer, dimension(im), intent(in)  islmsk_cice,
real (kind=kind_phys), intent(in)  min_lakeice,
real (kind=kind_phys), intent(in)  min_seaice,
real (kind=kind_phys), dimension(im), intent(in)  oceanfrac,
character(len=*), intent(out)  errmsg,
integer, intent(out)  errflg 
)

program history log:

  • 2005 – xingren wu created from original progtm and added two-layer ice model
  • 200x – sarah lu added flag_iter
  • oct 2006 – h. wei added cmm and chh to output
  • 2007 – x. wu modified for mom4 coupling (i.e. cpldice) (not used anymore)
  • 2007 – s. moorthi micellaneous changes
  • may 2009 – y.-t. hou modified to include surface emissivity effect on lw radiation. replaced the confusing slrad with sfc net sw sfcnsw (dn-up). reformatted the code and add program documentation block.
  • sep 2009 – s. moorthi removed rcl, changed pressure units and further optimized
  • jan 2015 – x. wu change "cimin = 0.15" for both uncoupled and coupled case
    • Set flag for sea-ice.
    • Convert snow depth in water equivalent from mm to m unit.
    • Calculate sensible and latent heat flux over open water & sea ice.
    • Calculate net solar incoming at top sneti.
    • Calculate net non-solar and upir heat flux @ ice surface hfi.
    • Calculate heat flux derivative at surface hfd.
    • Assigin heat flux from ocean focn and snowfall rate as constants, which should be from ocean model and other physics.
    • Initialize snow depth snowd.
    • Call the three-layer thermodynamics sea ice model ice3lay().

References funcphys::fpvs(), and ice3lay().

Here is the call graph for this function: