CCPP Scientific Documentation
v5.0.0
subroutine sfccycle ( integer  lugb,
integer  len,
integer  lsoil,
real (kind=kind_io8), dimension(len)  sig1t,
real (kind=kind_io8)  deltsfc,
integer  iy,
integer  im,
integer  id,
integer  ih,
real (kind=kind_io8)  fh,
real (kind=kind_io8), dimension(len)  rla,
real (kind=kind_io8), dimension(len)  rlo,
real (kind=kind_io8), dimension(len)  slmask,
real (kind=kind_io8), dimension(len)  orog,
real (kind=kind_io8), dimension(len)  orog_uf,
logical, intent(in)  use_ufo,
logical, intent(in)  nst_anl,
real (kind=kind_io8), dimension(len)  sihfcs,
real (kind=kind_io8), dimension(len)  sicfcs,
real (kind=kind_io8), dimension(len)  sitfcs,
real (kind=kind_io8), dimension(len)  swdfcs,
real (kind=kind_io8), dimension(len,lsoil)  slcfcs,
real (kind=kind_io8), dimension(len)  vmnfcs,
real (kind=kind_io8), dimension(len)  vmxfcs,
real (kind=kind_io8), dimension(len)  slpfcs,
real (kind=kind_io8), dimension(len)  absfcs,
real (kind=kind_io8), dimension(len)  tsffcs,
real (kind=kind_io8), dimension(len)  snofcs,
real (kind=kind_io8), dimension(len)  zorfcs,
real (kind=kind_io8), dimension(len,4)  albfcs,
real (kind=kind_io8), dimension(len)  tg3fcs,
real (kind=kind_io8), dimension(len)  cnpfcs,
real (kind=kind_io8), dimension(len,lsoil)  smcfcs,
real (kind=kind_io8), dimension(len,lsoil)  stcfcs,
real (kind=kind_io8), dimension(len)  slifcs,
real (kind=kind_io8), dimension(len)  aisfcs,
real (kind=kind_io8), dimension(len)  vegfcs,
real (kind=kind_io8), dimension(len)  vetfcs,
real (kind=kind_io8), dimension(len)  sotfcs,
real (kind=kind_io8), dimension(len,2)  alffcs,
real (kind=kind_io8), dimension (len)  cvfcs,
real (kind=kind_io8), dimension(len)  cvbfcs,
real (kind=kind_io8), dimension(len)  cvtfcs,
integer  me,
integer  nlunit,
integer  sz_nml,
character(len=*), dimension(sz_nml), intent(in)  input_nml_file,
logical, dimension(len), intent(in)  lake,
real (kind=kind_io8), intent(in)  min_lakeice,
real (kind=kind_io8), intent(in)  min_seaice,
integer  ialb,
integer  isot,
integer  ivegsrc,
character(len=*), intent(in)  tile_num_ch,
integer, dimension(len), intent(in)  i_index,
integer, dimension(len), intent(in)  j_index 
)

This is a limited point version of surface program.

this program runs in two different modes:

  1. analysis mode (fh=0.)

    this program merges climatology, analysis and forecast guess to create new surface fields. if analysis file is given, the program uses it if date of the analysis matches with iy,im,id,ih (see note below).

  2. forecast mode (fh.gt.0.)

    this program interpolates climatology to the date corresponding to the forecast hour. if surface analysis file is given, for the corresponding dates, the program will use it.

Note
if the date of the analysis does not match given iy,im,id,ih, (and fh), the program searches an old analysis by going back 6 hours, then 12 hours, then one day upto nrepmx days (parameter statement in the subrotine fixrd. now defined as 8). this allows the user to provide non-daily analysis to be used. if matching field is not found, the forecast guess will be used.

use of a combined earlier surface analyses and current analysis is not allowed (as was done in the old version for snow analysis in which old snow analysis is used in combination with initial guess), except for sea surface temperature. for sst anolmaly interpolation, you need to set lanom=.true. and must provide sst analysis at initial time.

if you want to do complex merging of past and present surface field analysis, you need to create a separate file that contains daily surface field.

for a dead start, do not supply fnbgsi or set fnbgsi=' '

  • Call hmskrd() to read a high resolution mask field for use in grib interpolation

References albocn(), analy(), anomint(), clima(), filanl(), filfcs(), fixrdc(), getscv(), getsmc(), getstc(), hmskrd(), sfccyc_module::kpdais, sfccyc_module::kpdalb_0, sfccyc_module::kpdalb_1, sfccyc_module::kpdalf, sfccyc_module::kpdgla, sfccyc_module::kpdsno, sfccyc_module::kpdtg3, sfccyc_module::kpdtsf, sfccyc_module::kpdwet, sfccyc_module::kpdzor, landtyp(), merge(), monitr(), newice(), qcbyfc(), qcmxice(), qcmxmn(), qcsice(), qcsli(), qcsnow(), rof01(), rof01_len(), scale(), setlsi(), setzro(), snodpth(), snodpth2(), snosfc(), sfccyc_module::soil_type_landice, tsfcor(), usesgt(), and sfccyc_module::veg_type_landice.

Referenced by gcycle().

Here is the call graph for this function: