global_cycle  1.7.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...
 
program sfc_drv
 Stand alone surface/NSST cycle driver for the cubed-sphere grid. More...
 
subroutine sfcdrv (LUGB, IDIM, JDIM, LSM, LENSFC, LSOIL, DELTSFC, IY, IM, ID, IH, FH, IALB, USE_UFO, DO_NSST, DO_SFCCYCLE, DO_LNDINC, 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 782 of file cycle.f90.

References dtzm_point(), nsst_water_reset(), utils::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 1191 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 1344 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 1670 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 1730 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 1553 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 1622 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 1865 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 1775 of file cycle.f90.

References utils::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 1507 of file cycle.f90.

Referenced by adjust_nsst().

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.

There are three main options (which can be called in combination):

  1. Update the surface fields with sfccylce (do_sfccycle = .true.)
  2. Update the land states with increments read in from file (do_lndinc = .true.) Designed to work with either: 2a. A land increment file created by the GSI on the Gaussian grid. The increments are interpolated here to the model grid, using the same method as for the NST increments. This is currently implemented for applying soil temperature increments calculated from the EnKF assimilation of T2m (but this is not a requirement - any GSI-generated soil temperature increment file can be applied here). 2b. A land increment file created by JEDI, on the native model grid (cube sphere tiles). This is currently implemented for snow depth updates for the Noah model.
  3. Update the NSST field, several options:

3a. Update the 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 NST_FILE to the name of the GSI increment file.

3b. 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 NST_FILE="NULL".

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.
  • $NST_FILE Gaussian GSI file which contains NSST TREF increments
  • $LND_SOI_FILE Gaussian GSI file which contains soil state increments
  • xainc.$NNN The cubed-sphere increment file (contains increments calculated by JEDI on the native model grid).

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. Next four should match the gfs_physics_nml
  • LSM Integer code for LSM (as in GFS_TYPES) 1 - Noah (note: added for land_da_adjust layers, however sfcsub routine (and likely others) assume the noah lsm
  • 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. -DO_SFCCYCLE Call sfccycle routine to update surface fields -DO_LNDINC Read in land increment files, and add increments to relevant states. -DO_SOI_INC Do land increments to soil states. -DO_SNO_INC Do land increments to snow states.
  • 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). -NST_FILE path/name of the gaussian GSI file which contains NSST TREF increments. -LND_SOI_FILE path/name of the gaussian GSI file which contains soil state increments.

-2005-02-03: Iredell for global_analysis -2014-11-30: xuli 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. -2020-02-17: Clara Draper Added soil state increments capability.

Author
Mark Iredell NOAA/EMC
Returns
0 for success, error code otherwise.

Definition at line 106 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)  LSM,
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)  DO_SFCCYCLE,
logical, intent(in)  DO_LNDINC,
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
  • SWE .. Snow water equivalent
  • 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
  • SND .. 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]LSMInteger code for the land surface model 1 - Noah
[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]DO_SFCCYCLECall sfccycle routine to update surface fields
[in]DO_LNDINCRead in land increment files, and add increments to requested states.
[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 304 of file cycle.f90.

References land_increments::add_increment_snow(), land_increments::add_increment_soil(), adjust_nsst(), land_increments::apply_land_da_adjustments_snd(), land_increments::apply_land_da_adjustments_stc(), land_increments::calculate_landinc_mask(), get_sal_clm(), get_tf_clm(), num_parthds(), read_write_data::read_data(), read_write_data::read_gsi_data(), read_write_data::read_lat_lon_orog(), 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 1416 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 1932 of file cycle.f90.

Referenced by adjust_nsst(), and land_increments::apply_land_da_adjustments_stc().