midas_pseudoSSTobs

link to source code

Dependency Diagrams:

midas_pseudoSSTobs.svg

Direct Dependency Diagram

program  midas_pseudosstobs
Purpose

Main program to produce pseudo SST observations in ice-covered areas. Pseudo SST observations are needed to prevent the propagation of analysis increments to the ice-covered areas, that may result in undesirable sea-ice melting.

Algorithm

Pseudo SST observations are assigned to the ice-covered water points. First, a global sea-ice analysis is read. The sea-ice analysis file contains a mandatory sea-water fraction field. The grid and land-ocean mask are read from the analysisgrid file.

Second, the number of ice-covered water points, including concerned inland water points, are computed. If the number of ice-covered water points is zero, an empty observation SQLite file is created. If not, the computation of pseudo observations starts.

First, the index array of ice-covered water points are randomly shuffled to prevent the insertion of pseudo observations at the same locations that would lead to spatial correlation of observations. Second, the pseudo observations of sea surface temperature \(T\) are inserted at every ice-covered inland water point \(k\), where the value of observations is computed as follows: \(T(k)=(1 - w(k)) * T_{fw} + w(k) * T_{s}\), where \(w(k)\) is the sea-water fraction at the point \(k\), \(T_{fw}\) is the temperature of fresh water below the ice, \(T_{s}\) is a temperature of the sea water below the ice. The pseudo observations are inserted into every \(N\)-th point of sea water ice-covered points, where the value of observation is defined as \(T_{s}\).

The computed observation values along with the corresponding coordinates are put into obsSpaceData. Finally, output SQLite files are created.

Input and Output Files

Description of file

analysisgrid

In - File defining sea-ice global grid

seaice_analysis

In - File containing LG and VF fields

obsfiles_sst_pseudo.updated/obssst_pseudo_$NNNN_$NNNN

Out - Pseudo obs file for each MPI task

Synopsis

Below is a summary of the pseudoSSTobs program calling sequence:

  • Initial setups:

    • Setup horizontal and vertical grid objects for “analysis grid” from analysisgrid.

    • Setup obsSpaceData object.

    • Setup gridStateVector module.

  • Computation

    • utl_randomOrderInt random shuffle the ice-covered point indices

    • oobs_computeObsData compute pseudo observation locations and values

      and save them in SQLite files.

Options

List of namelist blocks that can affect the pseudoSSTobs program.

  • The use of pseudoSSTobs program is controlled by the namelist block &pseudoSSTobs read by the pseudoSSTobs program.

  • iceFractionThreshold the sea-ice fraction threshold to define

    the presence of ice at each particular point

  • outputSST the value of \(T_{s}\) in K;

  • outputFreshWaterST the value of \(T_{fw}\) in K;

  • seaiceThinning pseudo observations are inserted into each \(N\)-th point,

    this parameter controls the observation thinning

  • outputFileName controls the output file names

  • etiket etiket to put into the table “resume” of output SQLite file

  • seaWaterThreshold a threshold to distinguish sea and fresh water

Module

Namelist

Description of what is controlled

oceanObservations_mod

pseudoSSTobs

parameters of pseudo SST observations

Needed modules

  • version_mod: MODULE version_mod (prefix=’ver’ category=’8. Low-level utilities and constants’)

  • ramdisk_mod: MODULE ramDisk_mod (prefix=’ram’ category=’8. Low-level utilities and constants’)

  • utilities_mod: MODULE utilities_mod (prefix=’utl’ category=’8. Low-level utilities and constants’)

  • horizontalcoord_mod: MODULE horizontalCoord_mod (prefix=’hco’ category=’7. Low-level data objects’)

  • verticalcoord_mod: MODULE verticalCoord_mod (prefix=’vco’ category=’7. Low-level data objects’)

  • midasmpi_mod: MODULE midasMpi_mod (prefix=’mmpi’ category=’8. Low-level utilities and constants’)

  • oceanobservations_mod: MODULE oceanObservations_mod (prefix=’oobs’ category=’1. High-level functionality’)

  • gridstatevector_mod: MODULE gridStateVector_mod (prefix=’gsv’ category=’6. High-level data objects’)

  • obsspacedata_mod: MODULE obsSpaceData_mod (prefix=’obs’ category=’6. High-level data objects’)

Routines called

ver_printnameandversion(), mmpi_initialize(), utl_tmg_start(), ram_setup(), oobs_pseudosst(), utl_tmg_stop(), utl_abort(), hco_setupfromfile(), vco_setupfromfile(), gsv_setup(), obs_class_initialize()