Subsections


Technical details

Here we show a more complete example namelist namobs and also show the NetCDF headers of the observation files that may be used with the observation operator

!-----------------------------------------------------------------------
&namobs       !  observation usage switch                               ('key_diaobs')
!-----------------------------------------------------------------------
   ln_t3d     = .false.    ! Logical switch for T profile observations
   ln_s3d     = .false.    ! Logical switch for S profile observations
   ln_ena     = .false.    ! Logical switch for ENACT insitu data set
   ln_cor     = .false.    ! Logical switch for Coriolis insitu data set
   ln_profb   = .false.    ! Logical switch for feedback insitu data set
   ln_sla     = .false.    ! Logical switch for SLA observations
   ln_sladt   = .false.    ! Logical switch for AVISO SLA data
   ln_slafb   = .false.    ! Logical switch for feedback SLA data
   ln_ssh     = .false.    ! Logical switch for SSH observations
   ln_sst     = .false.    ! Logical switch for SST observations
   ln_reysst  = .false.    ! Logical switch for Reynolds observations
   ln_ghrsst  = .false.    ! Logical switch for GHRSST observations
   ln_sstfb   = .false.    ! Logical switch for feedback SST data
   ln_sss     = .false.    ! Logical switch for SSS observations
   ln_seaice  = .false.    ! Logical switch for Sea Ice observations
   ln_vel3d   = .false.    ! Logical switch for velocity observations
   ln_velavcur= .false     ! Logical switch for velocity daily av. cur.
   ln_velhrcur= .false     ! Logical switch for velocity high freq. cur.
   ln_velavadcp = .false.  ! Logical switch for velocity daily av. ADCP
   ln_velhradcp = .false.  ! Logical switch for velocity high freq. ADCP
   ln_velfb   = .false.    ! Logical switch for feedback velocity data
   ln_grid_global = .false. ! Global distribtion of observations
   ln_grid_search_lookup = .false. !  Logical switch for obs grid search w/lookup table
   grid_search_file = 'grid_search'  !  Grid search lookup file header
! All of the *files* variables below are arrays. Use namelist_cfg to add more files
   enactfiles = 'enact.nc' !  ENACT input observation file names (specify full array in namelist_cfg)
   coriofiles = 'corio.nc' !  Coriolis input observation file name
   profbfiles = 'profiles_01.nc' ! Profile feedback input observation file name
   ln_profb_enatim = .false !        Enact feedback input time setting switch
   slafilesact = 'sla_act.nc' !  Active SLA input observation file names
   slafilespas = 'sla_pass.nc' ! Passive SLA input observation file names
   slafbfiles = 'sla_01.nc' ! slafbfiles: Feedback SLA input observation file names
   sstfiles = 'ghrsst.nc'   ! GHRSST input observation file names
   sstfbfiles = 'sst_01.nc' ! Feedback SST input observation file names
   seaicefiles = 'seaice_01.nc' ! Sea Ice input observation file names
   velavcurfiles = 'velavcurfile.nc'  ! Vel. cur. daily av. input file name
   velhrcurfiles = 'velhrcurfile.nc'  ! Vel. cur. high freq. input file name
   velavadcpfiles = 'velavadcpfile.nc' ! Vel. ADCP daily av. input file name
   velhradcpfiles = 'velhradcpfile.nc' ! Vel. ADCP high freq. input file name
   velfbfiles = 'velfbfile.nc' ! Vel. feedback input observation file name
   dobsini = 20000101.000000  !  Initial date in window YYYYMMDD.HHMMSS
   dobsend = 20010101.000000  !  Final date in window YYYYMMDD.HHMMSS
   n1dint = 0  !               Type of vertical interpolation method
   n2dint = 0  !               Type of horizontal interpolation method
   ln_nea = .false.   !        Rejection of observations near land switch
   nmsshc     = 0     !        MSSH correction scheme
   mdtcorr = 1.61     !        MDT  correction
   mdtcutoff = 65.0   !        MDT cutoff for computed correction
   ln_altbias = .false.    ! Logical switch for alt bias
   ln_ignmis  = .true.     ! Logical switch for ignoring missing files
   endailyavtypes = 820    ! ENACT daily average types - array (use namelist_cfg to set more values)
   ln_grid_global = .true.
   ln_grid_search_lookup = .false.
/

This name list uses the "feedback" type observation file input format for profile, sea level anomaly and sea surface temperature data. All the observation files must be in NetCDF format. Some example headers (produced using ncdump -h) for profile data, sea level anomaly and sea surface temperature are in the following subsections.

Profile feedback type observation file header



netcdf profiles_01 {
dimensions:
N_OBS = 603 ;
N_LEVELS = 150 ;
N_VARS = 2 ;
N_QCF = 2 ;
N_ENTRIES = 1 ;
N_EXTRA = 1 ;
STRINGNAM = 8 ;
STRINGGRID = 1 ;
STRINGWMO = 8 ;
STRINGTYP = 4 ;
STRINGJULD = 14 ;
variables:
char VARIABLES(N_VARS, STRINGNAM) ;
VARIABLES:long_name = "List of variables in feedback files" ;
char ENTRIES(N_ENTRIES, STRINGNAM) ;
ENTRIES:long_name = "List of additional entries for each variable in feedback files" ;
char EXTRA(N_EXTRA, STRINGNAM) ;
EXTRA:long_name = "List of extra variables" ;
char STATION_IDENTIFIER(N_OBS, STRINGWMO) ;
STATION_IDENTIFIER:long_name = "Station identifier" ;
char STATION_TYPE(N_OBS, STRINGTYP) ;
STATION_TYPE:long_name = "Code instrument type" ;
double LONGITUDE(N_OBS) ;
LONGITUDE:long_name = "Longitude" ;
LONGITUDE:units = "degrees_east" ;
LONGITUDE:_Fillvalue = 99999.f ;
double LATITUDE(N_OBS) ;
LATITUDE:long_name = "Latitude" ;
LATITUDE:units = "degrees_north" ;
LATITUDE:_Fillvalue = 99999.f ;
double DEPTH(N_OBS, N_LEVELS) ;
DEPTH:long_name = "Depth" ;
DEPTH:units = "metre" ;
DEPTH:_Fillvalue = 99999.f ;
int DEPTH_QC(N_OBS, N_LEVELS) ;
DEPTH_QC:long_name = "Quality on depth" ;
DEPTH_QC:Conventions = "q where q =[0,9]" ;
DEPTH_QC:_Fillvalue = 0 ;
int DEPTH_QC_FLAGS(N_OBS, N_LEVELS, N_QCF) ;
DEPTH_QC_FLAGS:long_name = "Quality flags on depth" ;
DEPTH_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
double JULD(N_OBS) ;
JULD:long_name = "Julian day" ;
JULD:units = "days since JULD_REFERENCE" ;
JULD:Conventions = "relative julian days with decimal part (as parts of day)" ;
JULD:_Fillvalue = 99999.f ;
char JULD_REFERENCE(STRINGJULD) ;
JULD_REFERENCE:long_name = "Date of reference for julian days" ;
JULD_REFERENCE:Conventions = "YYYYMMDDHHMMSS" ;
int OBSERVATION_QC(N_OBS) ;
OBSERVATION_QC:long_name = "Quality on observation" ;
OBSERVATION_QC:Conventions = "q where q =[0,9]" ;
OBSERVATION_QC:_Fillvalue = 0 ;
int OBSERVATION_QC_FLAGS(N_OBS, N_QCF) ;
OBSERVATION_QC_FLAGS:long_name = "Quality flags on observation" ;
OBSERVATION_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
OBSERVATION_QC_FLAGS:_Fillvalue = 0 ;
int POSITION_QC(N_OBS) ;
POSITION_QC:long_name = "Quality on position (latitude and longitude)" ;
POSITION_QC:Conventions = "q where q =[0,9]" ;
POSITION_QC:_Fillvalue = 0 ;
int POSITION_QC_FLAGS(N_OBS, N_QCF) ;
POSITION_QC_FLAGS:long_name = "Quality flags on position" ;
POSITION_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
POSITION_QC_FLAGS:_Fillvalue = 0 ;
int JULD_QC(N_OBS) ;
JULD_QC:long_name = "Quality on date and time" ;
JULD_QC:Conventions = "q where q =[0,9]" ;
JULD_QC:_Fillvalue = 0 ;
int JULD_QC_FLAGS(N_OBS, N_QCF) ;
JULD_QC_FLAGS:long_name = "Quality flags on date and time" ;
JULD_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
JULD_QC_FLAGS:_Fillvalue = 0 ;
int ORIGINAL_FILE_INDEX(N_OBS) ;
ORIGINAL_FILE_INDEX:long_name = "Index in original data file" ;
ORIGINAL_FILE_INDEX:_Fillvalue = -99999 ;
float POTM_OBS(N_OBS, N_LEVELS) ;
POTM_OBS:long_name = "Potential temperature" ;
POTM_OBS:units = "Degrees Celsius" ;
POTM_OBS:_Fillvalue = 99999.f ;
float POTM_Hx(N_OBS, N_LEVELS) ;
POTM_Hx:long_name = "Model interpolated potential temperature" ;
POTM_Hx:units = "Degrees Celsius" ;
POTM_Hx:_Fillvalue = 99999.f ;
int POTM_QC(N_OBS) ;
POTM_QC:long_name = "Quality on potential temperature" ;
POTM_QC:Conventions = "q where q =[0,9]" ;
POTM_QC:_Fillvalue = 0 ;
int POTM_QC_FLAGS(N_OBS, N_QCF) ;
POTM_QC_FLAGS:long_name = "Quality flags on potential temperature" ;
POTM_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
POTM_QC_FLAGS:_Fillvalue = 0 ;
int POTM_LEVEL_QC(N_OBS, N_LEVELS) ;
POTM_LEVEL_QC:long_name = "Quality for each level on potential temperature" ;
POTM_LEVEL_QC:Conventions = "q where q =[0,9]" ;
POTM_LEVEL_QC:_Fillvalue = 0 ;
int POTM_LEVEL_QC_FLAGS(N_OBS, N_LEVELS, N_QCF) ;
POTM_LEVEL_QC_FLAGS:long_name = "Quality flags for each level on potential temperature" ;
POTM_LEVEL_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
POTM_LEVEL_QC_FLAGS:_Fillvalue = 0 ;
int POTM_IOBSI(N_OBS) ;
POTM_IOBSI:long_name = "ORCA grid search I coordinate" ;
int POTM_IOBSJ(N_OBS) ;
POTM_IOBSJ:long_name = "ORCA grid search J coordinate" ;
int POTM_IOBSK(N_OBS, N_LEVELS) ;
POTM_IOBSK:long_name = "ORCA grid search K coordinate" ;
char POTM_GRID(STRINGGRID) ;
POTM_GRID:long_name = "ORCA grid search grid (T,U,V)" ;
float PSAL_OBS(N_OBS, N_LEVELS) ;
PSAL_OBS:long_name = "Practical salinity" ;
PSAL_OBS:units = "PSU" ;
PSAL_OBS:_Fillvalue = 99999.f ;
float PSAL_Hx(N_OBS, N_LEVELS) ;
PSAL_Hx:long_name = "Model interpolated practical salinity" ;
PSAL_Hx:units = "PSU" ;
PSAL_Hx:_Fillvalue = 99999.f ;
int PSAL_QC(N_OBS) ;
PSAL_QC:long_name = "Quality on practical salinity" ;
PSAL_QC:Conventions = "q where q =[0,9]" ;
PSAL_QC:_Fillvalue = 0 ;
int PSAL_QC_FLAGS(N_OBS, N_QCF) ;
PSAL_QC_FLAGS:long_name = "Quality flags on practical salinity" ;
PSAL_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
PSAL_QC_FLAGS:_Fillvalue = 0 ;
int PSAL_LEVEL_QC(N_OBS, N_LEVELS) ;
PSAL_LEVEL_QC:long_name = "Quality for each level on practical salinity" ;
PSAL_LEVEL_QC:Conventions = "q where q =[0,9]" ;
PSAL_LEVEL_QC:_Fillvalue = 0 ;
int PSAL_LEVEL_QC_FLAGS(N_OBS, N_LEVELS, N_QCF) ;
PSAL_LEVEL_QC_FLAGS:long_name = "Quality flags for each level on practical salinity" ;
PSAL_LEVEL_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
PSAL_LEVEL_QC_FLAGS:_Fillvalue = 0 ;
int PSAL_IOBSI(N_OBS) ;
PSAL_IOBSI:long_name = "ORCA grid search I coordinate" ;
int PSAL_IOBSJ(N_OBS) ;
PSAL_IOBSJ:long_name = "ORCA grid search J coordinate" ;
int PSAL_IOBSK(N_OBS, N_LEVELS) ;
PSAL_IOBSK:long_name = "ORCA grid search K coordinate" ;
char PSAL_GRID(STRINGGRID) ;
PSAL_GRID:long_name = "ORCA grid search grid (T,U,V)" ;
float TEMP(N_OBS, N_LEVELS) ;
TEMP:long_name = "Insitu temperature" ;
TEMP:units = "Degrees Celsius" ;
TEMP:_Fillvalue = 99999.f ;

// global attributes:
:title = "NEMO observation operator output" ;
:Convention = "NEMO unified observation operator output" ;
}

Sea level anomaly feedback type observation file header



netcdf sla_01 {
dimensions:
N_OBS = 41301 ;
N_LEVELS = 1 ;
N_VARS = 1 ;
N_QCF = 2 ;
N_ENTRIES = 1 ;
N_EXTRA = 1 ;
STRINGNAM = 8 ;
STRINGGRID = 1 ;
STRINGWMO = 8 ;
STRINGTYP = 4 ;
STRINGJULD = 14 ;
variables:
char VARIABLES(N_VARS, STRINGNAM) ;
VARIABLES:long_name = "List of variables in feedback files" ;
char ENTRIES(N_ENTRIES, STRINGNAM) ;
ENTRIES:long_name = "List of additional entries for each variable in feedback files" ;
char EXTRA(N_EXTRA, STRINGNAM) ;
EXTRA:long_name = "List of extra variables" ;
char STATION_IDENTIFIER(N_OBS, STRINGWMO) ;
STATION_IDENTIFIER:long_name = "Station identifier" ;
char STATION_TYPE(N_OBS, STRINGTYP) ;
STATION_TYPE:long_name = "Code instrument type" ;
double LONGITUDE(N_OBS) ;
LONGITUDE:long_name = "Longitude" ;
LONGITUDE:units = "degrees_east" ;
LONGITUDE:_Fillvalue = 99999.f ;
double LATITUDE(N_OBS) ;
LATITUDE:long_name = "Latitude" ;
LATITUDE:units = "degrees_north" ;
LATITUDE:_Fillvalue = 99999.f ;
double DEPTH(N_OBS, N_LEVELS) ;
DEPTH:long_name = "Depth" ;
DEPTH:units = "metre" ;
DEPTH:_Fillvalue = 99999.f ;
int DEPTH_QC(N_OBS, N_LEVELS) ;
DEPTH_QC:long_name = "Quality on depth" ;
DEPTH_QC:Conventions = "q where q =[0,9]" ;
DEPTH_QC:_Fillvalue = 0 ;
int DEPTH_QC_FLAGS(N_OBS, N_LEVELS, N_QCF) ;
DEPTH_QC_FLAGS:long_name = "Quality flags on depth" ;
DEPTH_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
double JULD(N_OBS) ;
JULD:long_name = "Julian day" ;
JULD:units = "days since JULD_REFERENCE" ;
JULD:Conventions = "relative julian days with decimal part (as parts of day)" ;
JULD:_Fillvalue = 99999.f ;
char JULD_REFERENCE(STRINGJULD) ;
JULD_REFERENCE:long_name = "Date of reference for julian days" ;
JULD_REFERENCE:Conventions = "YYYYMMDDHHMMSS" ;
int OBSERVATION_QC(N_OBS) ;
OBSERVATION_QC:long_name = "Quality on observation" ;
OBSERVATION_QC:Conventions = "q where q =[0,9]" ;
OBSERVATION_QC:_Fillvalue = 0 ;
int OBSERVATION_QC_FLAGS(N_OBS, N_QCF) ;
OBSERVATION_QC_FLAGS:long_name = "Quality flags on observation" ;
OBSERVATION_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
OBSERVATION_QC_FLAGS:_Fillvalue = 0 ;
int POSITION_QC(N_OBS) ;
POSITION_QC:long_name = "Quality on position (latitude and longitude)" ;
POSITION_QC:Conventions = "q where q =[0,9]" ;
POSITION_QC:_Fillvalue = 0 ;
int POSITION_QC_FLAGS(N_OBS, N_QCF) ;
POSITION_QC_FLAGS:long_name = "Quality flags on position" ;
POSITION_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
POSITION_QC_FLAGS:_Fillvalue = 0 ;
int JULD_QC(N_OBS) ;
JULD_QC:long_name = "Quality on date and time" ;
JULD_QC:Conventions = "q where q =[0,9]" ;
JULD_QC:_Fillvalue = 0 ;
int JULD_QC_FLAGS(N_OBS, N_QCF) ;
JULD_QC_FLAGS:long_name = "Quality flags on date and time" ;
JULD_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
JULD_QC_FLAGS:_Fillvalue = 0 ;
int ORIGINAL_FILE_INDEX(N_OBS) ;
ORIGINAL_FILE_INDEX:long_name = "Index in original data file" ;
ORIGINAL_FILE_INDEX:_Fillvalue = -99999 ;
float SLA_OBS(N_OBS, N_LEVELS) ;
SLA_OBS:long_name = "Sea level anomaly" ;
SLA_OBS:units = "metre" ;
SLA_OBS:_Fillvalue = 99999.f ;
float SLA_Hx(N_OBS, N_LEVELS) ;
SLA_Hx:long_name = "Model interpolated sea level anomaly" ;
SLA_Hx:units = "metre" ;
SLA_Hx:_Fillvalue = 99999.f ;
int SLA_QC(N_OBS) ;
SLA_QC:long_name = "Quality on sea level anomaly" ;
SLA_QC:Conventions = "q where q =[0,9]" ;
SLA_QC:_Fillvalue = 0 ;
int SLA_QC_FLAGS(N_OBS, N_QCF) ;
SLA_QC_FLAGS:long_name = "Quality flags on sea level anomaly" ;
SLA_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
SLA_QC_FLAGS:_Fillvalue = 0 ;
int SLA_LEVEL_QC(N_OBS, N_LEVELS) ;
SLA_LEVEL_QC:long_name = "Quality for each level on sea level anomaly" ;
SLA_LEVEL_QC:Conventions = "q where q =[0,9]" ;
SLA_LEVEL_QC:_Fillvalue = 0 ;
int SLA_LEVEL_QC_FLAGS(N_OBS, N_LEVELS, N_QCF) ;
SLA_LEVEL_QC_FLAGS:long_name = "Quality flags for each level on sea level anomaly" ;
SLA_LEVEL_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
SLA_LEVEL_QC_FLAGS:_Fillvalue = 0 ;
int SLA_IOBSI(N_OBS) ;
SLA_IOBSI:long_name = "ORCA grid search I coordinate" ;
int SLA_IOBSJ(N_OBS) ;
SLA_IOBSJ:long_name = "ORCA grid search J coordinate" ;
int SLA_IOBSK(N_OBS, N_LEVELS) ;
SLA_IOBSK:long_name = "ORCA grid search K coordinate" ;
char SLA_GRID(STRINGGRID) ;
SLA_GRID:long_name = "ORCA grid search grid (T,U,V)" ;
float MDT(N_OBS, N_LEVELS) ;
MDT:long_name = "Mean Dynamic Topography" ;
MDT:units = "metre" ;
MDT:_Fillvalue = 99999.f ;

// global attributes:
:title = "NEMO observation operator output" ;
:Convention = "NEMO unified observation operator output" ;
}

The mean dynamic topography (MDT) must be provided in a separate file defined on the model grid called slaReferenceLevel.nc. The MDT is required in order to produce the model equivalent sea level anomaly from the model sea surface height. Below is an example header for this file (on the ORCA025 grid).



dimensions:
x = 1442 ;
y = 1021 ;
variables:
float nav_lon(y, x) ;
nav_lon:units = "degrees_east" ;
float nav_lat(y, x) ;
nav_lat:units = "degrees_north" ;
float sossheig(y, x) ;
sossheig:_FillValue = -1.e+30f ;
sossheig:coordinates = "nav_lon nav_lat" ;
sossheig:long_name = "Mean Dynamic Topography" ;
sossheig:units = "metres" ;
sossheig:grid = "orca025T" ;

Sea surface temperature feedback type observation file header



netcdf sst_01 {
dimensions:
N_OBS = 33099 ;
N_LEVELS = 1 ;
N_VARS = 1 ;
N_QCF = 2 ;
N_ENTRIES = 1 ;
STRINGNAM = 8 ;
STRINGGRID = 1 ;
STRINGWMO = 8 ;
STRINGTYP = 4 ;
STRINGJULD = 14 ;
variables:
char VARIABLES(N_VARS, STRINGNAM) ;
VARIABLES:long_name = "List of variables in feedback files" ;
char ENTRIES(N_ENTRIES, STRINGNAM) ;
ENTRIES:long_name = "List of additional entries for each variable in feedback files" ;
char STATION_IDENTIFIER(N_OBS, STRINGWMO) ;
STATION_IDENTIFIER:long_name = "Station identifier" ;
char STATION_TYPE(N_OBS, STRINGTYP) ;
STATION_TYPE:long_name = "Code instrument type" ;
double LONGITUDE(N_OBS) ;
LONGITUDE:long_name = "Longitude" ;
LONGITUDE:units = "degrees_east" ;
LONGITUDE:_Fillvalue = 99999.f ;
double LATITUDE(N_OBS) ;
LATITUDE:long_name = "Latitude" ;
LATITUDE:units = "degrees_north" ;
LATITUDE:_Fillvalue = 99999.f ;
double DEPTH(N_OBS, N_LEVELS) ;
DEPTH:long_name = "Depth" ;
DEPTH:units = "metre" ;
DEPTH:_Fillvalue = 99999.f ;
int DEPTH_QC(N_OBS, N_LEVELS) ;
DEPTH_QC:long_name = "Quality on depth" ;
DEPTH_QC:Conventions = "q where q =[0,9]" ;
DEPTH_QC:_Fillvalue = 0 ;
int DEPTH_QC_FLAGS(N_OBS, N_LEVELS, N_QCF) ;
DEPTH_QC_FLAGS:long_name = "Quality flags on depth" ;
DEPTH_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
double JULD(N_OBS) ;
JULD:long_name = "Julian day" ;
JULD:units = "days since JULD_REFERENCE" ;
JULD:Conventions = "relative julian days with decimal part (as parts of day)" ;
JULD:_Fillvalue = 99999.f ;
char JULD_REFERENCE(STRINGJULD) ;
JULD_REFERENCE:long_name = "Date of reference for julian days" ;
JULD_REFERENCE:Conventions = "YYYYMMDDHHMMSS" ;
int OBSERVATION_QC(N_OBS) ;
OBSERVATION_QC:long_name = "Quality on observation" ;
OBSERVATION_QC:Conventions = "q where q =[0,9]" ;
OBSERVATION_QC:_Fillvalue = 0 ;
int OBSERVATION_QC_FLAGS(N_OBS, N_QCF) ;
OBSERVATION_QC_FLAGS:long_name = "Quality flags on observation" ;
OBSERVATION_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
OBSERVATION_QC_FLAGS:_Fillvalue = 0 ;
int POSITION_QC(N_OBS) ;
POSITION_QC:long_name = "Quality on position (latitude and longitude)" ;
POSITION_QC:Conventions = "q where q =[0,9]" ;
POSITION_QC:_Fillvalue = 0 ;
int POSITION_QC_FLAGS(N_OBS, N_QCF) ;
POSITION_QC_FLAGS:long_name = "Quality flags on position" ;
POSITION_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
POSITION_QC_FLAGS:_Fillvalue = 0 ;
int JULD_QC(N_OBS) ;
JULD_QC:long_name = "Quality on date and time" ;
JULD_QC:Conventions = "q where q =[0,9]" ;
JULD_QC:_Fillvalue = 0 ;
int JULD_QC_FLAGS(N_OBS, N_QCF) ;
JULD_QC_FLAGS:long_name = "Quality flags on date and time" ;
JULD_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
JULD_QC_FLAGS:_Fillvalue = 0 ;
int ORIGINAL_FILE_INDEX(N_OBS) ;
ORIGINAL_FILE_INDEX:long_name = "Index in original data file" ;
ORIGINAL_FILE_INDEX:_Fillvalue = -99999 ;
float SST_OBS(N_OBS, N_LEVELS) ;
SST_OBS:long_name = "Sea surface temperature" ;
SST_OBS:units = "Degree centigrade" ;
SST_OBS:_Fillvalue = 99999.f ;
float SST_Hx(N_OBS, N_LEVELS) ;
SST_Hx:long_name = "Model interpolated sea surface temperature" ;
SST_Hx:units = "Degree centigrade" ;
SST_Hx:_Fillvalue = 99999.f ;
int SST_QC(N_OBS) ;
SST_QC:long_name = "Quality on sea surface temperature" ;
SST_QC:Conventions = "q where q =[0,9]" ;
SST_QC:_Fillvalue = 0 ;
int SST_QC_FLAGS(N_OBS, N_QCF) ;
SST_QC_FLAGS:long_name = "Quality flags on sea surface temperature" ;
SST_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
SST_QC_FLAGS:_Fillvalue = 0 ;
int SST_LEVEL_QC(N_OBS, N_LEVELS) ;
SST_LEVEL_QC:long_name = "Quality for each level on sea surface temperature" ;
SST_LEVEL_QC:Conventions = "q where q =[0,9]" ;
SST_LEVEL_QC:_Fillvalue = 0 ;
int SST_LEVEL_QC_FLAGS(N_OBS, N_LEVELS, N_QCF) ;
SST_LEVEL_QC_FLAGS:long_name = "Quality flags for each level on sea surface temperature" ;
SST_LEVEL_QC_FLAGS:Conventions = "NEMOVAR flag conventions" ;
SST_LEVEL_QC_FLAGS:_Fillvalue = 0 ;
int SST_IOBSI(N_OBS) ;
SST_IOBSI:long_name = "ORCA grid search I coordinate" ;
int SST_IOBSJ(N_OBS) ;
SST_IOBSJ:long_name = "ORCA grid search J coordinate" ;
int SST_IOBSK(N_OBS, N_LEVELS) ;
SST_IOBSK:long_name = "ORCA grid search K coordinate" ;
char SST_GRID(STRINGGRID) ;
SST_GRID:long_name = "ORCA grid search grid (T,U,V)" ;

// global attributes:
:title = "NEMO observation operator output" ;
:Convention = "NEMO unified observation operator output" ;
}

Gurvan Madec and the NEMO Team
NEMO European Consortium2017-02-17