global_cycle  1.4.0
 All Data Structures Files Functions Variables
cycle.f90 File Reference

Update surface and NSST fields. More...

Go to the source code of this file.

Functions/Subroutines

subroutine adjust_nsst (RLA, RLO, SLMSK_TILE, SLMSK_FG_TILE, SKINT_TILE, SICET_TILE, sice_tile, SOILT_TILE, NSST, LENSFC, LSOIL, IDIM, JDIM, ZSEA1, ZSEA2, MON, DAY, DELTSFC, tf_clm_tile, tf_trd_tile, sal_clm_tile)
 Read in gsi file with the updated reference temperature increments (on the gaussian grid), interpolate increments to the cubed-sphere tile, and perform required nsst adjustments and qc. More...
 
subroutine climo_trend (LATITUDE, MON, DAY, DELTSFC, DTREF)
 If the tile point is an isolated water point that has no corresponding gsi water point, then tref is updated using the rtg sst climo trend. More...
 
subroutine dtzm_point (XT, XZ, DT_COOL, ZC, Z1, Z2, DTZM)
 Compute the vertical mean of the NSST t-profile. More...
 
subroutine get_sal_clm (xlats_ij, xlons_ij, ny, nx, iy, im, id, ih, sal_clm)
 Get salinity climatology at the valid time on the target grid. More...
 
subroutine get_sal_clm_ta (sal_clm_ta, xlats, xlons, nlat, nlon, mon1, mon2, wei1, wei2)
 Get climatological salinity at the analysis time. More...
 
subroutine get_tf_clm (xlats_ij, xlons_ij, ny, nx, iy, im, id, ih, tf_clm, tf_trd)
 Get the sst climatology at the valid time and on the target grid. More...
 
subroutine get_tf_clm_ta (tf_clm_ta, tf_clm_trend, xlats, xlons, nlat, nlon, mon1, mon2, wei1, wei2)
 Get the reference temperature/sst climatology and its trend at analysis time. More...
 
subroutine get_tim_wei (iy, im, id, ih, mon1, mon2, wei1, wei2)
 For a given date, determine the bounding months and the linear time interpolation weights. More...
 
subroutine intp_tile (tf_lalo, dlats_lalo, dlons_lalo, jdim_lalo, idim_lalo, tf_tile, xlats_tile, xlons_tile, jdim_tile, idim_tile)
 Interpolate lon/lat grid data to the fv3 native grid (tf_lalo => tf_tile). More...
 
subroutine nsst_water_reset (nsst, ij, tf_thaw)
 If the first guess was sea ice, but the analysis is open water, reset all nsst variables. More...
 
subroutine remap_coef (is, ie, js, je, im, jm, lon, lat, id1, id2, jdc, s2c, agrid)
 Generate the weights and index of the grids used in the bilinear interpolation. More...
 
program sfc_drv
 Stand alone surface/NSST cycle driver for the cubed-sphere grid. More...
 
subroutine sfcdrv (LUGB, IDIM, JDIM, LENSFC, LSOIL, DELTSFC, IY, IM, ID, IH, FH, IALB, USE_UFO, DO_NSST, ADJT_NST_ONLY, ZSEA1, ZSEA2, ISOT, IVEGSRC, MYRANK)
 Driver routine for updating the surface fields. More...
 
subroutine tf_thaw_set (tf_ij, mask_ij, itile, jtile, tice, tclm, tf_thaw, nx, ny, nset_thaw_s, nset_thaw_i, nset_thaw_c)
 Set the background reference temperature (tf) for points where the ice has just melted. More...
 
real function tfreez (salinity)
 Compute the freezing point of water as a function of salinity. More...
 

Detailed Description

Update surface and NSST fields.

Author
Mark Iredell NCEP/EMC

Definition in file cycle.f90.

Function/Subroutine Documentation

subroutine adjust_nsst ( real, dimension(lensfc), intent(inout)  RLA,
real, dimension(lensfc), intent(inout)  RLO,
real, dimension(lensfc), intent(in)  SLMSK_TILE,
real, dimension(lensfc), intent(in)  SLMSK_FG_TILE,
real, dimension(lensfc), intent(inout)  SKINT_TILE,
real, dimension(lensfc), intent(inout)  SICET_TILE,
real, dimension(lensfc), intent(inout)  sice_tile,
real, dimension(lensfc,lsoil), intent(inout)  SOILT_TILE,
type(nsst_data NSST,
integer, intent(in)  LENSFC,
integer, intent(in)  LSOIL,
integer, intent(in)  IDIM,
integer, intent(in)  JDIM,
real, intent(in)  ZSEA1,
real, intent(in)  ZSEA2,
integer, intent(in)  MON,
integer, intent(in)  DAY,
real, intent(in)  DELTSFC,
real, dimension(lensfc), intent(in)  tf_clm_tile,
real, dimension(lensfc), intent(in)  tf_trd_tile,
real, dimension(lensfc), intent(in)  sal_clm_tile 
)

Read in gsi file with the updated reference temperature increments (on the gaussian grid), interpolate increments to the cubed-sphere tile, and perform required nsst adjustments and qc.

Parameters
[in,out]RLALatitude on the cubed-sphere tile
[in,out]RLOLongitude on the cubed-sphere tile
[in]SLMSK_TILELand-sea mask on the cubed-sphere tile
[in]SLMSK_FG_TILEFirst guess land-sea mask on the cubed-sphere tile
[in,out]SKINT_TILESkin temperature on the cubed-sphere tile
[in,out]SICET_TILEIce temperature on the cubed-sphere tile
[in,out]sice_tileIce concentration on the cubed-sphere tile
[in,out]SOILT_TILESoil temperature on the cubed-sphere tile
[in]NSSTData structure holding nsst fields
[in]LENSFCNumber of points on a tile
[in]LSOILNumber of soil layers
[in]IDIM'I' dimension of a tile
[in]JDIM'J' dimension of a tile
[in]ZSEA1When running nsst model, this is the lower bound of depth of sea temperature. In whole mm.
[in]ZSEA2When running nsst model, this is the upper bound of depth of sea temperature. In whole mm.
[in]MONMonth
[in]DAYDay
[in]DELTSFCCycling frequency in hours
[in]tf_clm_tileClimatological reference temperature on the cubed-sphere tile.
[in]tf_trd_tileClimatolocial reference temperature trend on the cubed-sphere tile.
[in]sal_clm_tileClimatological salinity on the cubed-sphere tile.
Author
Xu Li, George Gayno

Definition at line 575 of file cycle.f90.

References dtzm_point(), nsst_water_reset(), remap_coef(), tf_thaw_set(), and tfreez().

Referenced by sfcdrv().

subroutine climo_trend ( real, intent(in)  LATITUDE,
integer, intent(in)  MON,
integer, intent(in)  DAY,
real, intent(in)  DELTSFC,
real, intent(out)  DTREF 
)

If the tile point is an isolated water point that has no corresponding gsi water point, then tref is updated using the rtg sst climo trend.

This monthly trend is sorted by latitude band.

Parameters
[in]LATITUDELatitude of tile point
[in]MONMonth
[in]DAYDay
[in]DELTSFCCycling frequency in hours
[out]DTREFMonthly trend of reference temperature
Author
Xu Li, George Gayno

Definition at line 983 of file cycle.f90.

subroutine dtzm_point ( real, intent(in)  XT,
real, intent(in)  XZ,
real, intent(in)  DT_COOL,
real, intent(in)  ZC,
real, intent(in)  Z1,
real, intent(in)  Z2,
real, intent(out)  DTZM 
)

Compute the vertical mean of the NSST t-profile.

Parameters
[in]xtHeat content in the diurnal thermocline layer.
[in]xzThickness of the diurnal thermocline layer.
[in]dt_coolSkin-layer cooling amount.
[in]zcThickness of skin-layer.
[in]z1Lower bound of depth of sea temperature.
[in]z2Upper bound of depth of sea temperature.
[out]dtzmMean of the NSST t-profile from z1 to z2.
Author
Xu Li
Date
2015

Definition at line 1136 of file cycle.f90.

Referenced by adjust_nsst().

subroutine get_sal_clm ( real, dimension(nx*ny), intent(in)  xlats_ij,
real, dimension(nx*ny), intent(in)  xlons_ij,
integer, intent(in)  ny,
integer, intent(in)  nx,
integer, intent(in)  iy,
integer, intent(in)  im,
integer, intent(in)  id,
integer, intent(in)  ih,
real, dimension(nx,ny), intent(out)  sal_clm 
)

Get salinity climatology at the valid time on the target grid.

Parameters
[in]xlats_ijLatitudes of target grid
[in]xlons_ijLongitudes of target grid
[in]ny'j' dimension of target grid
[in]nx'i' dimension of target grid
[in]iyYear
[in]imMonth
[in]idDay
[in]ihHour
[out]sal_clmSalinity climatology on the target grid at the valid time
Author
Xu Li

Definition at line 1567 of file cycle.f90.

References read_write_data::get_dim_nc(), get_sal_clm_ta(), get_tim_wei(), and intp_tile().

Referenced by sfcdrv().

subroutine get_sal_clm_ta ( real, dimension(nlon,nlat), intent(out)  sal_clm_ta,
real, dimension(nlat), intent(out)  xlats,
real, dimension(nlon), intent(out)  xlons,
integer, intent(in)  nlat,
integer, intent(in)  nlon,
integer, intent(in)  mon1,
integer, intent(in)  mon2,
real, intent(in)  wei1,
real, intent(in)  wei2 
)

Get climatological salinity at the analysis time.

Parameters
[in]nlat'j' dimension of climatological data
[in]nlon'i' dimension of climatological data
[in]mon1First bounding month
[in]mon2Second bounding month
[in]wei1Weight of first bounding month
[in]wei2Weight of second bounding month
[out]sal_clm_taClimatological salinity at the analysis time
[out]xlatsLatitudes on the climatological grid
[out]xlonsLongitudes on the climatological grid
Author
Xu Li
Date
March 2019

Definition at line 1627 of file cycle.f90.

References read_write_data::read_salclm_gfs_nc().

Referenced by get_sal_clm().

subroutine get_tf_clm ( real, dimension(nx*ny), intent(in)  xlats_ij,
real, dimension(nx*ny), intent(in)  xlons_ij,
integer, intent(in)  ny,
integer, intent(in)  nx,
integer, intent(in)  iy,
integer, intent(in)  im,
integer, intent(in)  id,
integer, intent(in)  ih,
real, dimension(nx,ny), intent(out)  tf_clm,
real, dimension(nx,ny), intent(out)  tf_trd 
)

Get the sst climatology at the valid time and on the target grid.

Parameters
[in]xlats_ijlatitude of target grid
[in]xlons_ijlongitude of target grid
[in]ny'j' dimension of target grid
[in]nx'i' dimension of target grid
[in]iyYear
[in]imMonth
[in]idDay
[in]ihHour
[out]tf_clmsst climatology at the valid time and on the target grid
[out]tf_trd6-hourly sst climatology tendency at the valid time and on the target grid.
Author
Xu Li

Definition at line 1450 of file cycle.f90.

References read_write_data::get_tf_clm_dim(), get_tf_clm_ta(), get_tim_wei(), and intp_tile().

Referenced by sfcdrv().

subroutine get_tf_clm_ta ( real, dimension(nlon,nlat), intent(out)  tf_clm_ta,
real, dimension(nlon,nlat), intent(out)  tf_clm_trend,
real, dimension(nlat), intent(out)  xlats,
real, dimension(nlon), intent(out)  xlons,
integer, intent(in)  nlat,
integer, intent(in)  nlon,
integer, intent(in)  mon1,
integer, intent(in)  mon2,
real, intent(in)  wei1,
real, intent(in)  wei2 
)

Get the reference temperature/sst climatology and its trend at analysis time.

The data is time interpolated between two bounding months.

Parameters
[out]tf_clm_taClimatological tf/sst at analysis time
[out]tf_clm_trendClimatological tf/sst trend at analysis time
[out]xlatsLatitudes on the climatological data grid
[out]xlonsLongitudes on the climatological data grid
[in]nlat'j' dimension on the climatological grid
[in]nlon'i' dimension on the climatological grid
[in]mon1First bounding month
[in]mon2Second bounding month
[in]wei1Weighting of first bounding month
[in]wei2Weighting of second bounding month
Author
Xu Li
Date
March 2019

Definition at line 1519 of file cycle.f90.

References read_write_data::read_tf_clim_grb().

Referenced by get_tf_clm().

subroutine get_tim_wei ( integer, intent(in)  iy,
integer, intent(in)  im,
integer, intent(in)  id,
integer, intent(in)  ih,
integer, intent(out)  mon1,
integer, intent(out)  mon2,
real, intent(out)  wei1,
real, intent(out)  wei2 
)

For a given date, determine the bounding months and the linear time interpolation weights.

Parameters
[in]iyThe year
[in]imThe month
[in]idThe day
[in]ihThe hour
[out]mon1First bounding month
[out]mon2Second bounding month
[out]wei1Weighting of first bounding month
[out]wei2Weighting of second bounding month
Author
Xu Li
Date
March 2019

Definition at line 1760 of file cycle.f90.

Referenced by get_sal_clm(), and get_tf_clm().

subroutine intp_tile ( real, dimension(idim_lalo,jdim_lalo), intent(in)  tf_lalo,
real, dimension(jdim_lalo), intent(in)  dlats_lalo,
real, dimension(idim_lalo), intent(in)  dlons_lalo,
integer, intent(in)  jdim_lalo,
integer, intent(in)  idim_lalo,
real, dimension(jdim_tile*idim_tile), intent(out)  tf_tile,
real, dimension(jdim_tile*idim_tile), intent(in)  xlats_tile,
real, dimension(jdim_tile*idim_tile), intent(in)  xlons_tile,
integer, intent(in)  jdim_tile,
integer, intent(in)  idim_tile 
)

Interpolate lon/lat grid data to the fv3 native grid (tf_lalo => tf_tile).

Does not account for a mask.

Parameters
[in]tf_lalo(idim_lalo,idim_lalo) field on the lat/lon regular grid.
[in]dlats_lalo(jdim_lalo) latitudes along y direction of lat/lon regular grid points.
[in]dlons_lalo(idim_lalo) longitudes along x direction of lat/lon regular grid points.
[in]jdim_lalonumber of y dimension of tf_lalo.
[in]idim_lalonumber of x dimension of tf_lalo.
[in]xlats_tile(jdim_tile*idim_tile) latitudes of all tile grid points.
[in]xlons_tile(jdim_tile*idim_tile) longitudes of all tile grid points.
[in]jdim_tilenumber of y dimension of tf_tile.
[in]idim_tilenumber of x dimension of tf_tile.
[out]tf_tile(jdim_tile*idim_tile) field on the cubed sphere grid.
Author
Xu Li

Definition at line 1672 of file cycle.f90.

References remap_coef().

Referenced by get_sal_clm(), and get_tf_clm().

subroutine nsst_water_reset ( type(nsst_data), intent(inout)  nsst,
integer, intent(in)  ij,
real, intent(in)  tf_thaw 
)

If the first guess was sea ice, but the analysis is open water, reset all nsst variables.

Parameters
[in,out]nsstData structure that holds the nsst fields
[in]ijIndex of point to be updated
[in]tf_thawReference temperature for former ice points
Author
Xu Li

Definition at line 1404 of file cycle.f90.

Referenced by adjust_nsst().

subroutine remap_coef ( integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  im,
integer, intent(in)  jm,
real, dimension(im), intent(in)  lon,
real, dimension(jm), intent(in)  lat,
integer, dimension(is:ie,js:je), intent(out)  id1,
integer, dimension(is:ie,js:je), intent(out)  id2,
integer, dimension(is:ie,js:je), intent(out)  jdc,
real, dimension(is:ie,js:je,4), intent(out)  s2c,
real, dimension(is:ie,js:je,2), intent(in)  agrid 
)

Generate the weights and index of the grids used in the bilinear interpolation.

This routine was taken from the forecast model - ./atmos_cubed_sphere/tools/fv_treat_da_inc.f90.

Parameters
[in]isStart index in x-direction of the source array.
[in]ieEnd index in x-direction of the source array.
[in]jsStart index in y-direction of the source array.
[in]jeEnd index in y-direction of the source array.
[in]imx-dimension of the source array.
[in]jmy-dimension of the source array.
[in]lon1-d array of longitudes (in radians).
[in]lat1-d array of latitudes (in radians).
[in]agrid2-d array for lon [agrid(:,:,1)] & lat [agrid(:,:,2)] (in radians).
[out]s2cBi-linear interpolation weights of the four nearby grids of the source array.
[out]id1Index 1 in x-direction of the nearby grids of the source array.
[out]id2Index 2 in x-direction of the nearby grids of the source array.
[out]jdcIndex in y-direction of the nearby grid of the source array.
Author
Xu Li

Definition at line 1214 of file cycle.f90.

Referenced by adjust_nsst(), and intp_tile().

program sfc_drv ( )

Stand alone surface/NSST cycle driver for the cubed-sphere grid.

Each cubed-sphere tile runs independently on its own mpi task. The surface update component runs with threads. The NSST update component in not threaded.

The program can be run in the following ways: 1) Update the surface fields only. NSST fields are not processed. Invoke this option by setting namelist variable DONST=.false. Output files only contain surface fields.

2) Update the surface fields and NSST TREF field using GSI increments on the Gaussian grid. All other NSST fields are cycled. Invoke this option by setting namelist variable DONST=.true. and GSI_FILE to the name of the GSI increment file.

3) Update surface and run with NSST, but postpone the TREF update. Here all NSST fields are cycled. But the NSST IFD field is used to flag points that flipped from ice to open water. To invoke this option, set DONST=.true. and GSI_FILE="NULL".

4) Perform the NSST TREF adjustment only. Surface fields are only cycled. To run with this option, set DONST=.true., GSI_FILE to the GSI increment file, and ADJT_NST_ONLY=.true. The input cubed-sphere restart files must be those from option (3).

NOTE: running (3) then (4) is equivalent to running (2).

INPUT FILES:

  • fngrid.$NNN The cubed-sphere grid file (contains grid point latitude and longitdue).
  • fnorog.$NNN The cubed-sphere orography file (contains land mask and orography).
  • fnbgsi.$NNN The cubed-sphere input sfc/nsst restart file.
  • $GSI_FILE Gaussian GSI file which contains NSST TREF increments

OUTPUT FILES:

  • fnbgso.$NNN The updated sfc/nsst restart file.

NOTE: $NNN corresponds to (mpi rank + 1)

NAMELIST VARIABLE DEFINITIONS:

  • IDIM,JDIM i/j dimension of a cubed-sphere tile.
  • LUGB Unit number used in the sfccycle subprogram to read input datasets.
  • LSOIL Number of soil layers.
  • IY,IM,ID,IH Year, month, day, and hour of initial state.
  • FH Forecast hour
  • DELTSFC Cycling frequency in hours.
  • IALB Use modis albedo when '1'. Use brigleb when '0'.
  • USE_UFO Adjust sst and soil substrate temperature for differences between the filtered and unfiltered terrain.
  • DONST Process NSST records.
  • ADJT_NST_ONLY When true, only do the NSST update (don't call sfcsub component).
  • ISOT Use statsgo soil type when '1'. Use zobler when '0'.
  • IVEGSRC Use igbp veg type when '1'. Use sib when '2'.
  • ZSEA1/2_MM When running with NSST model, this is the lower/ upper bound of depth of sea temperature. In whole mm.
  • MAX_TASKS Normally, program should be run with a number of mpi tasks equal to the number of cubed-sphere tiles being processed. However, the current parallel scripts may over-specify the number of tasks. Set this variable to not process any ranks > (max_tasks-1).
  • GSI_FILE Path/name of the gaussian GSI file which contains NSST TREF increments.

Program Updates:

  • 2005-02-03: Iredell For global_analysis
  • 2014-11-30: Xu Li Add nst_anl
  • 2015-05-26: Hang Lei Added NEMSIO read/write function in the code
  • 2017-08-08: Gayno Modify to work on cubed-sphere grid. Added processing of NSST and TREF update. Added mpi directives.
    Author
    Mark Iredell NOAA/EMC
    Returns
    0 for success, error code otherwise.

Definition at line 89 of file cycle.f90.

References num_parthds(), and sfcdrv().

subroutine sfcdrv ( integer, intent(in)  LUGB,
integer, intent(in)  IDIM,
integer, intent(in)  JDIM,
integer, intent(in)  LENSFC,
integer, intent(in)  LSOIL,
real, intent(in)  DELTSFC,
integer, intent(in)  IY,
integer, intent(in)  IM,
integer, intent(in)  ID,
integer, intent(in)  IH,
real, intent(in)  FH,
integer, intent(in)  IALB,
logical, intent(in)  USE_UFO,
logical, intent(in)  DO_NSST,
logical, intent(in)  ADJT_NST_ONLY,
real, intent(in)  ZSEA1,
real, intent(in)  ZSEA2,
integer, intent(in)  ISOT,
integer, intent(in)  IVEGSRC,
integer, intent(in)  MYRANK 
)

Driver routine for updating the surface fields.

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. This is forcing-by-observation experiment.

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 15). This allows the user to provide non-daily analysis to be used. If matching field is not found, the forecast guess will be used.

Variable naming convention for this program:

  • OROG .. Orography
  • ALB .. Snow-free albedo
  • SNO .. Liquid-equivalent snow depth
  • ZOR .. Surface roughness length
  • VET .. Vegetation type
  • TSF .. Surface skin temperature. Sea surface temp. over ocean.
  • TG3 .. Deep soil temperature (at 500cm)
  • STC .. Soil temperature (LSOIL layrs)
  • SMC .. Total soil moisture (LSOIL layrs)
  • AIS .. Sea ice mask (0 or 1)
  • CNP .. Canopy water content
  • CV .. Convective cloud cover
  • CVB .. Convective cloud base
  • CVT .. Convective cloud top
  • SLI .. LAND/SEA/SEA-ICE mask. (1/0/2 respectively)
  • VEG .. Vegetation cover
  • SOT .. Soil type
  • SIH .. Sea ice thickness
  • SIC .. Sea ice concentration
  • SWD .. Actual snow depth
  • SLC .. Liquid soil moisture (LSOIL layers)
  • VMN .. Vegetation cover minimum
  • VMX .. Vegetation cover maximum
  • SLP .. Slope type
  • ABS .. Maximum snow albedo
  • T2M .. 2m Temperature
  • Q2M .. 2m Specific Humidity
  • TICE .. Ice Temperature
  • OROG_UF .. Orography unfiltered

Most fields have a blending coefficient. This controls the blending of the forecast (first guess) and interpolated climatology or analyzed fields. When it is equal to 1.0, the pure forecast is used. When the coefficient is equal to 0, the pure climatology or analysis is used. The default values are set as follows:

Variables Land Sea
Surface temperature Forecast Analysis
Albedo Analysis Analysis
Sea-ice Analysis Analysis
Snow Analysis Forecast (over sea ice)
Roughness Analysis Forecast
Plant resistance Analysis Analysis
Soil moisture Weighted average Analysis
Soil temperature Forecast Analysis
Canopy waver content Forecast Forecast
Convective cloud cover Forecast Forecast
Convective cloud bottm Forecast Forecast
Convective cloud top Forecast Forecast
Vegetation greenness Analysis Analysis
Vegetation type Analysis Analysis
Soil type Analysis Analysis
Parameters
[in]LUGBFortran unit number uses in sfccycle subprogram to read input datasets.
[in]IDIM'i' dimension of the cubed-sphere tile
[in]JDIM'j' dimension of the cubed-sphere tile
[in]LENSFCTotal numberof points for the cubed-sphere tile
[in]LSOILNumber of soil layers
[in]DELTSFCCycling frequency in hours
[in]IYYear of initial state
[in]IMMonth of initial state
[in]IDDay of initial state
[in]IHHour of initial state
[in]FHForecast hour
[in]IALBUse modis albedo when '1'. Use brigleb when '0'.
[in]USE_UFOWhen true, adjust SST and soil temperature for differences between the filtered and unfiltered terrain.
[in]DO_NSSTWhen true, process NSST records.
[in]ADJT_NST_ONLYWhen true, only do the NSST update (don't call sfcsub component.
[in]ZSEA1When running NSST model, this is the lower bound of depth of sea temperature. In whole mm.
[in]ZSEA2When running NSST model, this is the upper bound of depth of sea temperature. In whole mm.
[in]ISOTUse STATSGO soil type when '1'. Use Zobler when '0'.
[in]IVEGSRCUse IGBP vegetation type when '1'. Use SIB when '2'.
[in]MYRANKMPI rank number
Author
Mark Iredell, George Gayno

Definition at line 283 of file cycle.f90.

References adjust_nsst(), get_sal_clm(), get_tf_clm(), read_write_data::read_data(), read_write_data::read_gsi_data(), read_write_data::read_lat_lon_orog(), sfccycle(), and read_write_data::write_data().

Referenced by sfc_drv().

subroutine tf_thaw_set ( real, dimension(nx*ny), intent(in)  tf_ij,
integer, dimension(nx*ny), intent(in)  mask_ij,
integer, intent(in)  itile,
integer, intent(in)  jtile,
real, intent(in)  tice,
real, intent(in)  tclm,
real, intent(out)  tf_thaw,
integer, intent(in)  nx,
integer, intent(in)  ny,
integer, intent(inout)  nset_thaw_s,
integer, intent(inout)  nset_thaw_i,
integer, intent(inout)  nset_thaw_c 
)

Set the background reference temperature (tf) for points where the ice has just melted.

Parameters
[in]tf_ijFoundation temperature background on FV3 native grids.
[in]mask_ijMask of the tile (FV3 native grids).
[in]itileLocation index in the 'i' direction.
[in]jtileLocation index in the 'j' direction.
[in]ticeWater temperature (calulated with a salinity formula).
[in]tclmSST climatology valid at the analysis time.
[out]tf_thawFoundation temperature of thawed points.
[in,out]nx'i' dimension of tf_ij
[in,out]ny'j' dimension of tf_ij
[in,out]nset_thaw_sNumber of foundation temperature points filled via a search.
[in,out]nset_thaw_iNumber of ice points filled with a calculated tice.
[in,out]nset_thaw_cNumber of points filled with a weighted average of tice and tclm.
Author
Xu Li

Definition at line 1313 of file cycle.f90.

Referenced by adjust_nsst().

real function tfreez ( real  salinity)

Compute the freezing point of water as a function of salinity.

Constants taken from Gill, 1982.

Date
21 September 1994.
Author
Robert Grumbine
Parameters
[in]salinityThe salinity.
Returns
tfreez The freezing point of water.

Definition at line 1827 of file cycle.f90.

Referenced by adjust_nsst().