ObsSpaceData_mod

link to source code

Dependency Diagrams:

ObsSpaceData_mod.svg

Direct Dependency Diagram

ObsSpaceData_mod_rev.svg

Reverse Dependency Diagram

Description

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

Purpose

This module contains the definition of the structure named “struct_obs” and methods for accessing its data. An instance of struct_obs contains all information pertaining to a set of observation-space data.

This has evolved from the CMA structure, originated in work by D. Vasiljevic at ECMWF.


Very generally, obsSpaceData can be thought as two tables linked to one another.

A “Header” table:

headerIndex

Lat

Lon

1

2

n_header

and a “data” table:

dataIndex

Associated headerIndex

Obs Value

1

1

2

1

3

1

4

1

5

2

6

2

7

3

8

3

9

3

n_data


  • For satellite observations
    • One header contains information on lat/lon, azimuth, zenith angle and time.

    • Data entries contain: channels, measurement value, etc.

    ../_images/satellite.png

  • For radar observations
    • One header for each radar “ray”. Contains information on lat/lon of radar, elevation, azimuth, etc.

    • Data entries contain: range, altitude, Doppler velocity, etc.

    ../_images/radar.png

  • For gps radio occultation (GPS-RO)
    • One header for each profile. Contains information on lat/lon time, etc.

    • Data entries contain: bending angle, refractivity, etc.

    ../_images/gps_ro.png

  • For other observations types such as radiosondes and aircrafts, there is one data entry per header rentry.
    • headers contain information on lat/lon, time, etc.

    • Data entries contain measurement values.

    ../_images/others.png
What

The module “ObsSpaceData_mod” relies on three other modules:

  • IndexListDepot_mod

  • ObsColumnNames_mod

  • ObsDataColumn_mod

Note

Throughout this file:

  • Column_index is not (in general) indexed from one.

  • Each column index has an equivalent name, OBS_* as defined in ObsColumnNames_mod.

  • Active_index is indexed from one by definition (a column index).

  • row_index is indexed from one. It has no equivalent name.

  • bodyIndex, etc. is necessarily a row index

  • HeaderIndex, etc. is necessarily a row index

Quick access

Variables

obs_alt, obs_aqf1, obs_aqf2, obs_aqf3, obs_ass, obs_assimilated, obs_aza, obs_bcor, obs_bodyset_r, obs_btcl, obs_bx, obs_by, obs_bz, obs_cf1, obs_cf2, obs_cf3, obs_cf4, obs_cf5, obs_cf6, obs_cf7, obs_chid, obs_chm, obs_cla, obs_clf, obs_clwb, obs_clwo, obs_crps, obs_dat, obs_ecf, obs_etm, obs_etop, obs_flg, obs_fov, obs_fso, obs_geoi, obs_getbodyindex, obs_gqf, obs_gql, obs_haht, obs_hdd, obs_hdt, obs_he, obs_headset_r, obs_hind, obs_hpht, obs_idf, obs_infg, obs_ins, obs_ip, obs_ipc, obs_ipf, obs_ipt, obs_ity, obs_iwv, obs_jobs, obs_kfa, obs_lat, obs_latd, obs_lch, obs_lflg, obs_loci, obs_lon, obs_lond, obs_lyr, obs_m1c1, obs_m1c2, obs_m1c3, obs_m1c4, obs_m1c5, obs_m1c6, obs_m2c1, obs_m2c2, obs_m2c3, obs_m2c4, obs_m2c5, obs_m2c6, obs_m3c1, obs_m3c2, obs_m3c3, obs_m3c4, obs_m3c5, obs_m3c6, obs_m4c1, obs_m4c2, obs_m4c3, obs_m4c4, obs_m4c5, obs_m4c6, obs_m5c1, obs_m5c2, obs_m5c3, obs_m5c4, obs_m5c5, obs_m5c6, obs_m6c1, obs_m6c2, obs_m6c3, obs_m6c4, obs_m6c5, obs_m6c6, obs_m7c1, obs_m7c2, obs_m7c3, obs_m7c4, obs_m7c5, obs_m7c6, obs_missingvalue_r, obs_mws, obs_nco2, obs_nlv, obs_notassimilated, obs_oer, obs_oma, obs_oma0, obs_omam, obs_omp, obs_omp6, obs_ompe, obs_onm, obs_orbi, obs_ori, obs_pas, obs_phas, obs_pob, obs_ppp, obs_prfl, obs_prm, obs_qcf2, obs_qcv, obs_rain, obs_rane, obs_rans, obs_reg, obs_rele, obs_rln, obs_roqf, obs_rtp, obs_rzam, obs_s1c1, obs_s1c2, obs_s1c3, obs_s1c4, obs_s1c5, obs_s1c6, obs_s2c1, obs_s2c2, obs_s2c3, obs_s2c4, obs_s2c5, obs_s2c6, obs_s3c1, obs_s3c2, obs_s3c3, obs_s3c4, obs_s3c5, obs_s3c6, obs_s4c1, obs_s4c2, obs_s4c3, obs_s4c4, obs_s4c5, obs_s4c6, obs_s5c1, obs_s5c2, obs_s5c3, obs_s5c4, obs_s5c5, obs_s5c6, obs_s6c1, obs_s6c2, obs_s6c3, obs_s6c4, obs_s6c5, obs_s6c6, obs_s7c1, obs_s7c2, obs_s7c3, obs_s7c4, obs_s7c5, obs_s7c6, obs_sat, obs_saz, obs_sem, obs_sen, obs_set_current_body_list, obs_set_current_header_list, obs_sib, obs_sigi, obs_sigo, obs_sio, obs_st1, obs_styp, obs_sun, obs_swga, obs_swha, obs_swls, obs_swmt, obs_swq1, obs_swq2, obs_sza, obs_tec, obs_tflg, obs_trad, obs_ttyp, obs_var, obs_vcf, obs_vco, obs_vnm, obs_vtop, obs_work, obs_xtr, obs_zha, obs_zlqm, obs_zps, obs_ztgm, obs_ztm, obs_ztsr

Routines

obs_abort(), obs_allocate(), obs_bodyelem_i(), obs_bodyelem_r(), obs_bodyindex_mpiglobal(), obs_bodyprimarykey(), obs_bodyset_i(), obs_bodyset_r4(), obs_bodyset_r8(), obs_class_initialize(), obs_clean(), obs_clean2(), obs_columnactive_ib(), obs_columnactive_ih(), obs_columnactive_rb(), obs_columnactive_rh(), obs_columndatatype(), obs_columnindexfromname(), obs_columnindexfromname_ib(), obs_columnindexfromname_ih(), obs_columnindexfromname_rb(), obs_columnindexfromname_rh(), obs_columnindexfromnameforflavour(), obs_copy(), obs_deallocate(), obs_elem_c(), obs_enkf_prntbdy(), obs_enkf_prnthdr(), obs_expandtompiglobal(), obs_extractobsintbodycolumn(), obs_extractobsintheadercolumn(), obs_extractobsrealbodycolumn(), obs_extractobsrealbodycolumn_r4(), obs_extractobsrealheadercolumn(), obs_famexist(), obs_finalize(), obs_getbodyindex_depot(), obs_getbodyindex_private(), obs_getfamily(), obs_getheaderindex(), obs_getnchanavhrr(), obs_getnclassavhrr(), obs_headelem_i(), obs_headelem_r(), obs_headerindex_mpiglobal(), obs_headprimarykey(), obs_headset_i(), obs_headset_r4(), obs_headset_r8(), obs_initialize(), obs_iscolumnnamevalid(), obs_mpidistributeindices(), obs_mpilocal(), obs_mpiredistribute(), obs_numbody(), obs_numbody_max(), obs_numbody_mpiglobal(), obs_numheader(), obs_numheader_max(), obs_numheader_mpiglobal(), obs_print(), obs_prntbdy(), obs_prnthdr(), obs_reducetompilocal(), obs_set_c(), obs_set_current_body_list_all(), obs_set_current_body_list_from_family(), obs_set_current_body_list_from_header(), obs_set_current_header_list_all(), obs_set_current_header_list_from_family(), obs_setbodyprimarykey(), obs_setfamily(), obs_setheadprimarykey(), obs_sethind(), obs_squeeze(), obs_write(), obs_write_bdy(), obs_write_hdr(), obs_write_hx()

Needed modules

  • codeprecision_mod: MODULE codePrecision_mod (prefix=’pre’ category=’8. Low-level utilities and constants’)

  • obscolumnnames_mod: MODULE obsColumnNames_mod (prefix=’ocn’ category=’7. Low-level data objects and utilities’)

  • obsdatacolumn_mod: MODULE obsDataColumn_mod (prefix=’odc’ category=’7. Low-level data objects and utilities’)

  • indexlistdepot_mod: MODULE indexListDepot_mod (prefix=’ild’ category=’7. Low-level data objects and utilities’)

  • mathphysconstants_mod: MODULE mathPhysConstants_mod (prefix=’mpc’ category=’8. Low-level utilities and constants’)

Types

  • type  obsspacedata_mod/unknown_type

Variables

  • obsspacedata_mod/obs_alt [public]
  • obsspacedata_mod/obs_aqf1 [public]
  • obsspacedata_mod/obs_aqf2 [public]
  • obsspacedata_mod/obs_aqf3 [public]
  • obsspacedata_mod/obs_ass [public]
  • obsspacedata_mod/obs_assimilated [integer,parameter/public]

    OBS_ASS value for assimilated obs

  • obsspacedata_mod/obs_aza [public]
  • obsspacedata_mod/obs_bcor [public]
  • obsspacedata_mod/obs_bodyset_r [public]

    set a real body value in the observation object

  • obsspacedata_mod/obs_btcl [public]
  • obsspacedata_mod/obs_bx [public]
  • obsspacedata_mod/obs_by [public]
  • obsspacedata_mod/obs_bz [public]
  • obsspacedata_mod/obs_cf1 [public]
  • obsspacedata_mod/obs_cf2 [public]
  • obsspacedata_mod/obs_cf3 [public]
  • obsspacedata_mod/obs_cf4 [public]
  • obsspacedata_mod/obs_cf5 [public]
  • obsspacedata_mod/obs_cf6 [public]
  • obsspacedata_mod/obs_cf7 [public]
  • obsspacedata_mod/obs_chid [public]
  • obsspacedata_mod/obs_chm [public]
  • obsspacedata_mod/obs_cla [public]
  • obsspacedata_mod/obs_clf [public]
  • obsspacedata_mod/obs_clwb [public]
  • obsspacedata_mod/obs_clwo [public]
  • obsspacedata_mod/obs_crps [public]
  • obsspacedata_mod/obs_dat [public]
  • obsspacedata_mod/obs_ecf [public]
  • obsspacedata_mod/obs_etm [public]
  • obsspacedata_mod/obs_etop [public]
  • obsspacedata_mod/obs_flg [public]
  • obsspacedata_mod/obs_fov [public]
  • obsspacedata_mod/obs_fso [public]
  • obsspacedata_mod/obs_geoi [public]
  • obsspacedata_mod/obs_getbodyindex [public]

    obtain an element from the current body list

  • obsspacedata_mod/obs_gqf [public]
  • obsspacedata_mod/obs_gql [public]
  • obsspacedata_mod/obs_haht [public]
  • obsspacedata_mod/obs_hdd [public]
  • obsspacedata_mod/obs_hdt [public]
  • obsspacedata_mod/obs_he [public]
  • obsspacedata_mod/obs_headset_r [public]

    set a real header value in the observation object

  • obsspacedata_mod/obs_hind [public]
  • obsspacedata_mod/obs_hpht [public]
  • obsspacedata_mod/obs_idf [public]
  • obsspacedata_mod/obs_infg [public]
  • obsspacedata_mod/obs_ins [public]
  • obsspacedata_mod/obs_ip [public]
  • obsspacedata_mod/obs_ipc [public]
  • obsspacedata_mod/obs_ipf [public]
  • obsspacedata_mod/obs_ipt [public]
  • obsspacedata_mod/obs_ity [public]
  • obsspacedata_mod/obs_iwv [public]
  • obsspacedata_mod/obs_jobs [public]
  • obsspacedata_mod/obs_kfa [public]
  • obsspacedata_mod/obs_lat [public]
  • obsspacedata_mod/obs_latd [public]
  • obsspacedata_mod/obs_lch [public]
  • obsspacedata_mod/obs_lflg [public]
  • obsspacedata_mod/obs_loci [public]
  • obsspacedata_mod/obs_lon [public]
  • obsspacedata_mod/obs_lond [public]
  • obsspacedata_mod/obs_lyr [public]
  • obsspacedata_mod/obs_m1c1 [public]
  • obsspacedata_mod/obs_m1c2 [public]
  • obsspacedata_mod/obs_m1c3 [public]
  • obsspacedata_mod/obs_m1c4 [public]
  • obsspacedata_mod/obs_m1c5 [public]
  • obsspacedata_mod/obs_m1c6 [public]
  • obsspacedata_mod/obs_m2c1 [public]
  • obsspacedata_mod/obs_m2c2 [public]
  • obsspacedata_mod/obs_m2c3 [public]
  • obsspacedata_mod/obs_m2c4 [public]
  • obsspacedata_mod/obs_m2c5 [public]
  • obsspacedata_mod/obs_m2c6 [public]
  • obsspacedata_mod/obs_m3c1 [public]
  • obsspacedata_mod/obs_m3c2 [public]
  • obsspacedata_mod/obs_m3c3 [public]
  • obsspacedata_mod/obs_m3c4 [public]
  • obsspacedata_mod/obs_m3c5 [public]
  • obsspacedata_mod/obs_m3c6 [public]
  • obsspacedata_mod/obs_m4c1 [public]
  • obsspacedata_mod/obs_m4c2 [public]
  • obsspacedata_mod/obs_m4c3 [public]
  • obsspacedata_mod/obs_m4c4 [public]
  • obsspacedata_mod/obs_m4c5 [public]
  • obsspacedata_mod/obs_m4c6 [public]
  • obsspacedata_mod/obs_m5c1 [public]
  • obsspacedata_mod/obs_m5c2 [public]
  • obsspacedata_mod/obs_m5c3 [public]
  • obsspacedata_mod/obs_m5c4 [public]
  • obsspacedata_mod/obs_m5c5 [public]
  • obsspacedata_mod/obs_m5c6 [public]
  • obsspacedata_mod/obs_m6c1 [public]
  • obsspacedata_mod/obs_m6c2 [public]
  • obsspacedata_mod/obs_m6c3 [public]
  • obsspacedata_mod/obs_m6c4 [public]
  • obsspacedata_mod/obs_m6c5 [public]
  • obsspacedata_mod/obs_m6c6 [public]
  • obsspacedata_mod/obs_m7c1 [public]
  • obsspacedata_mod/obs_m7c2 [public]
  • obsspacedata_mod/obs_m7c3 [public]
  • obsspacedata_mod/obs_m7c4 [public]
  • obsspacedata_mod/obs_m7c5 [public]
  • obsspacedata_mod/obs_m7c6 [public]
  • obsspacedata_mod/obs_missingvalue_r [real,parameter/public]
  • obsspacedata_mod/obs_mws [public]
  • obsspacedata_mod/obs_nco2 [public]
  • obsspacedata_mod/obs_nlv [public]
  • obsspacedata_mod/obs_notassimilated [integer,parameter/public]

    OBS_ASS value for non assimilated obs

  • obsspacedata_mod/obs_oer [public]
  • obsspacedata_mod/obs_oma [public]
  • obsspacedata_mod/obs_oma0 [public]
  • obsspacedata_mod/obs_omam [public]
  • obsspacedata_mod/obs_omp [public]
  • obsspacedata_mod/obs_omp6 [public]
  • obsspacedata_mod/obs_ompe [public]
  • obsspacedata_mod/obs_onm [public]
  • obsspacedata_mod/obs_orbi [public]
  • obsspacedata_mod/obs_ori [public]
  • obsspacedata_mod/obs_pas [public]
  • obsspacedata_mod/obs_phas [public]
  • obsspacedata_mod/obs_pob [public]
  • obsspacedata_mod/obs_ppp [public]
  • obsspacedata_mod/obs_prfl [public]
  • obsspacedata_mod/obs_prm [public]
  • obsspacedata_mod/obs_qcf2 [public]
  • obsspacedata_mod/obs_qcv [public]
  • obsspacedata_mod/obs_rain [public]
  • obsspacedata_mod/obs_rane [public]
  • obsspacedata_mod/obs_rans [public]
  • obsspacedata_mod/obs_reg [public]
  • obsspacedata_mod/obs_rele [public]
  • obsspacedata_mod/obs_rln [public]
  • obsspacedata_mod/obs_roqf [public]
  • obsspacedata_mod/obs_rtp [public]
  • obsspacedata_mod/obs_rzam [public]
  • obsspacedata_mod/obs_s1c1 [public]
  • obsspacedata_mod/obs_s1c2 [public]
  • obsspacedata_mod/obs_s1c3 [public]
  • obsspacedata_mod/obs_s1c4 [public]
  • obsspacedata_mod/obs_s1c5 [public]
  • obsspacedata_mod/obs_s1c6 [public]
  • obsspacedata_mod/obs_s2c1 [public]
  • obsspacedata_mod/obs_s2c2 [public]
  • obsspacedata_mod/obs_s2c3 [public]
  • obsspacedata_mod/obs_s2c4 [public]
  • obsspacedata_mod/obs_s2c5 [public]
  • obsspacedata_mod/obs_s2c6 [public]
  • obsspacedata_mod/obs_s3c1 [public]
  • obsspacedata_mod/obs_s3c2 [public]
  • obsspacedata_mod/obs_s3c3 [public]
  • obsspacedata_mod/obs_s3c4 [public]
  • obsspacedata_mod/obs_s3c5 [public]
  • obsspacedata_mod/obs_s3c6 [public]
  • obsspacedata_mod/obs_s4c1 [public]
  • obsspacedata_mod/obs_s4c2 [public]
  • obsspacedata_mod/obs_s4c3 [public]
  • obsspacedata_mod/obs_s4c4 [public]
  • obsspacedata_mod/obs_s4c5 [public]
  • obsspacedata_mod/obs_s4c6 [public]
  • obsspacedata_mod/obs_s5c1 [public]
  • obsspacedata_mod/obs_s5c2 [public]
  • obsspacedata_mod/obs_s5c3 [public]
  • obsspacedata_mod/obs_s5c4 [public]
  • obsspacedata_mod/obs_s5c5 [public]
  • obsspacedata_mod/obs_s5c6 [public]
  • obsspacedata_mod/obs_s6c1 [public]
  • obsspacedata_mod/obs_s6c2 [public]
  • obsspacedata_mod/obs_s6c3 [public]
  • obsspacedata_mod/obs_s6c4 [public]
  • obsspacedata_mod/obs_s6c5 [public]
  • obsspacedata_mod/obs_s6c6 [public]
  • obsspacedata_mod/obs_s7c1 [public]
  • obsspacedata_mod/obs_s7c2 [public]
  • obsspacedata_mod/obs_s7c3 [public]
  • obsspacedata_mod/obs_s7c4 [public]
  • obsspacedata_mod/obs_s7c5 [public]
  • obsspacedata_mod/obs_s7c6 [public]
  • obsspacedata_mod/obs_sat [public]
  • obsspacedata_mod/obs_saz [public]
  • obsspacedata_mod/obs_sem [public]
  • obsspacedata_mod/obs_sen [public]
  • obsspacedata_mod/obs_set_current_body_list [public]

    set a body list for a family as current

  • obsspacedata_mod/obs_set_current_header_list [public]

    set a header list for a family as current

  • obsspacedata_mod/obs_sib [public]
  • obsspacedata_mod/obs_sigi [public]
  • obsspacedata_mod/obs_sigo [public]
  • obsspacedata_mod/obs_sio [public]
  • obsspacedata_mod/obs_st1 [public]
  • obsspacedata_mod/obs_styp [public]
  • obsspacedata_mod/obs_sun [public]
  • obsspacedata_mod/obs_swga [public]
  • obsspacedata_mod/obs_swha [public]
  • obsspacedata_mod/obs_swls [public]
  • obsspacedata_mod/obs_swmt [public]
  • obsspacedata_mod/obs_swq1 [public]
  • obsspacedata_mod/obs_swq2 [public]
  • obsspacedata_mod/obs_sza [public]
  • obsspacedata_mod/obs_tec [public]
  • obsspacedata_mod/obs_tflg [public]
  • obsspacedata_mod/obs_trad [public]
  • obsspacedata_mod/obs_ttyp [public]
  • obsspacedata_mod/obs_var [public]
  • obsspacedata_mod/obs_vcf [public]
  • obsspacedata_mod/obs_vco [public]
  • obsspacedata_mod/obs_vnm [public]
  • obsspacedata_mod/obs_vtop [public]
  • obsspacedata_mod/obs_work [public]
  • obsspacedata_mod/obs_xtr [public]
  • obsspacedata_mod/obs_zha [public]
  • obsspacedata_mod/obs_zlqm [public]
  • obsspacedata_mod/obs_zps [public]
  • obsspacedata_mod/obs_ztgm [public]
  • obsspacedata_mod/obs_ztm [public]
  • obsspacedata_mod/obs_ztsr [public]

Subroutines and functions

subroutine  obsspacedata_mod/obs_abort(cdmessage)
Purpose

To stop a job when an error occurred

Arguments

Arguments

cdmessage [character ,in] :: message to be printed

Called from

obs_allocate(), obs_class_initialize(), obs_columnindexfromname(), obs_columnindexfromnameforflavour(), obs_columndatatype(), obs_elem_c(), obs_expandtompiglobal(), obs_extractobsrealheadercolumn(), obs_extractobsintheadercolumn(), obs_getfamily(), obs_initialize(), obs_mpidistributeindices(), obs_reducetompilocal(), obs_set_c(), obs_setfamily(), obs_write_hdr()

subroutine  obsspacedata_mod/obs_allocate(obsdat, numheader_max, numbody_max[, silent_opt])
Purpose

Allocate arrays according to the parameters, numHeader_max and numBody_max. This is a private method.

Arguments
  • obsdat [struct_obs ,inout]

  • numheader_max [integer ,in]

  • numbody_max [integer ,in]

Options

silent_opt [logical ,in,]

Called from

obs_expandtompiglobal(), obs_initialize(), obs_reducetompilocal(), obs_squeeze(), obs_mpiredistribute()

Call to

obs_abort(), odc_allocate(), ild_initialize()

function  obsspacedata_mod/obs_bodyelem_i(obsdat, column_index, row_index)
Purpose

To control access to the observation object. Returns the (integer) value of the row_index’th ObsData element with the indicated column index from the “body”.

Arguments
  • obsdat [struct_obs ,in]

  • column_index [integer ,in]

  • row_index [integer ,in]

Return

value_i [integer ]

Called from

findobs(), aer_dayssincelastobs(), bgck_data(), bgck_gpsro(), csrbg_readobsfromobsspace(), amsuabtest10rttovrejectcheck(), amsuabtest1topographycheck(), amsuabtest2landseaqualifiercheck(), amsuabtest3terraintypecheck(), amsuabtest4fieldofviewcheck(), amsuabtest5zenithanglecheck(), amsuabtest6zenangleandfovconsistencycheck(), amsuabtest7landseaqualifyerandmodellandseaconsistencycheck(), amsuabtest9uncorrectedtbcheck(), amsuabtest11radiancegrossvaluecheck(), amsuatest12grodyclwcheck(), amsubtest12drynessindexcheck(), amsuatest13grodyscatteringindexcheck(), amsubtest13bennartzscatteringindexcheck(), amsuatest14roguecheck(), amsubtest14roguecheck(), amsuabtest15channelselectionwithtovutil(), amsuatest16excludeextremescattering(), atmsmwhs2test1flagbit7check(), atmsmwhs2test2topographycheck(), atmsmwhs2test3uncorrectedtbcheck(), atmstest4roguecheck(), mwhs2test4roguecheck(), atmsmwhs2test5channelselectionusingtovutil(), mwbg_firstqccheckatms(), mwbg_reviewallcritforfinalflagsatms(), mwbg_reviewallcritforfinalflagsmwhs2(), ocebg_bgchecksst(), ocebg_bgcheckseaice(), ssbg_updateobsspaceaftersatqc(), ssbg_inovqcssmis(), ssbg_updateobsspaceafterinovqc(), bcc_applyaibcor(), bcc_applygpbcor(), bcc_applyuabcor(), bcs_computepredictorbiases(), bcs_calcbias(), bcs_dumpbiastosqliteafterthinning(), bcs_computeresidualsstatistics(), bcs_removeoutliers(), bcs_calcbias_tl(), bcs_calcbias_ad(), bcs_removebiascorrection(), bcs_filterobs(), bcs_applybiascorrection(), bcs_getradiosondeweight(), bcs_do_regression(), bcs_outputcvomppred(), brpf_setscalech(), brpr_updateburp(), cfn_calcjo(), enkf_rejecthighlatir(), eob_setpsvobserrinv(), eob_setsimobserrinv(), eob_setvertlocation(), eob_setsimobsval(), eob_setmeanomp(), eob_sethpht(), eob_backgroundcheck(), eob_removeobsnearland(), eob_setsigisigo(), eob_hubernorm(), eob_rejectradnearsfc(), fso_ensemble(), sumfso(), inn_perturbobs(), irbg_doqualitycontrol(), diaf_writesqldiagfile(), oer_fillobserrors(), oer_inflateerrallsky(), chanisallsky(), readoerfromobsfileforsw(), oer_sw(), oer_seterrgpsro(), oer_seterrgpsgb(), oer_seterrbackscatanisice(), filt_suprep(), filt_toposurface(), filt_toporadiosonde(), filt_topoaisw(), filt_topoprofiler(), filt_topoaladin(), filt_topotovs(), filt_surfacewind(), filt_radvel(), filt_gpsro(), filt_backscatanisice(), filt_topochemistry(), oop_vobslyrs(), oop_ppp_nl(), oop_zzz_nl(), oop_sfc_nl(), oop_sst_nl(), oop_hydro_nl(), oop_ice_nl(), oop_radvel_nl(), oop_gpsro_nl(), oop_gpsgb_nl(), oop_tovs_nl(), oop_had(), oop_calcgpsrojacobian(), oop_calcgpsgbjacobian(), oop_icescaling(), obs_clean(), obs_clean2(), obs_expandtompiglobal(), obs_extractobsintbodycolumn(), obs_extractobsrealheadercolumn(), obs_extractobsintheadercolumn(), obs_getfamily(), obs_prntbdy(), obs_reducetompilocal(), obs_squeeze(), obs_mpiredistribute(), obs_setfamily(), osd_calcinflation(), osd_getindices(), osd_obsdiagnostics(), osd_readsqrthpht(), setfgefam(), setfgefamz(), setfgett(), setfgesurf(), setfgedif(), setfgegps(), ose_calcompstddevch(), ose_fillompstddevch(), ose_ompstddevexistsforallch(), oss_get_comboidlist(), oti_timebinning(), obsu_updatesourcevariablesflag(), obsu_setassflg(), obsu_computevertcoordsurfobs(), obsu_setgbgpserror(), ovt_windspeeddirectiontouv(), ovt_uvtowindspeeddirection_residual(), ovt_vistologvis(), ovt_vistologvis_residual(), ovt_preciptologprecip(), ovt_preciptologprecip_residual(), ovt_adjusthumgz(), odbf_readmidasbodytable(), odbf_insertinmidasbodytable(), rmat_rsqrtinverseallobs(), res_compute(), res_computead(), sqlr_readsqlite(), sqlr_updatesqlite(), sqlr_insertsqlite(), sqlr_writepseudosstobs(), pressureprofilemonotonicitycheck(), thn_surfaceintime(), thn_gpsrovertical(), thn_radiosonde(), tvs_setupalloc(), tvs_getchanprof(), tvs_countradiances(), tvs_gethiremissivities(), tvs_rttov(), tvs_printdetailledomfstatistics(), var1d_setup(), vqc_setup(), vqc_nltl(), vqc_ad(), vqc_listrej(), midas_prepcma

Call to

odc_columnelem()

function  obsspacedata_mod/obs_bodyelem_r(obsdat, column_index, row_index)
Purpose

Get a real-valued body observation-data element To control access to the observation object. Returns the (real) value of the row_index’th ObsData element with the indicated column index from the “body”.

Arguments
  • obsdat [struct_obs ,in]

  • column_index [integer ,in]

  • row_index [integer ,in]

Return

value_r [real ]

Called from

aer_computeanlerrorstd(), bgck_data(), bgck_gpsro(), csrbg_readobsfromobsspace(), csrbg_updateobsspaceafterqc(), extractparamforgrodyrun(), extractparamforbennartzrun(), amsuabtest10rttovrejectcheck(), amsuabtest1topographycheck(), amsuabtest2landseaqualifiercheck(), amsuabtest3terraintypecheck(), amsuabtest4fieldofviewcheck(), amsuabtest5zenithanglecheck(), amsuabtest6zenangleandfovconsistencycheck(), amsuabtest7landseaqualifyerandmodellandseaconsistencycheck(), amsuabtest9uncorrectedtbcheck(), amsuabtest11radiancegrossvaluecheck(), amsuatest12grodyclwcheck(), amsubtest12drynessindexcheck(), amsuatest13grodyscatteringindexcheck(), amsubtest13bennartzscatteringindexcheck(), amsuatest14roguecheck(), amsubtest14roguecheck(), amsuabtest15channelselectionwithtovutil(), amsuatest16excludeextremescattering(), atmsmwhs2test1flagbit7check(), atmsmwhs2test2topographycheck(), atmsmwhs2test3uncorrectedtbcheck(), atmstest4roguecheck(), mwhs2test4roguecheck(), atmsmwhs2test5channelselectionusingtovutil(), mwbg_grossvaluecheck(), mwbg_firstqccheckatms(), mwbg_nrlfilteratms(), mwbg_nrlfiltermwhs2(), mwbg_flagdatausingnrlcritatms(), mwbg_flagdatausingnrlcritmwhs2(), mwbg_reviewallcritforfinalflagsatms(), mwbg_reviewallcritforfinalflagsmwhs2(), ocebg_bgchecksst(), ocebg_bgcheckseaice(), ssbg_satqcssmis(), ssbg_updateobsspaceaftersatqc(), ssbg_inovqcssmis(), ssbg_updateobsspaceafterinovqc(), bcc_applyaibcor(), bcc_applygpbcor(), bcc_applyuabcor(), bcs_calcbias(), bcs_dumpbiastosqliteafterthinning(), bcs_computeresidualsstatistics(), bcs_removeoutliers(), bcs_calcbias_tl(), bcs_calcbias_ad(), bcs_removebiascorrection(), bcs_filterobs(), bcs_applybiascorrection(), bcs_getradiosondeweight(), bcs_do_regression(), bcs_outputcvomppred(), bcs_getchannelindex(), brpf_setscalech(), brpr_updateburp(), brpr_addcloudparametersandemissivity(), cfn_calcjo(), cfn_sumjo(), eob_calcrandpert(), eob_backgroundcheck(), eob_setsigisigo(), eob_hubernorm(), fso_ensemble(), sumfso(), inn_perturbobs(), irbg_doqualitycontrol(), diaf_writesqldiagfile(), oer_fillobserrors(), oer_inflateerrallsky(), oer_sw(), oer_seterrgpsro(), oer_seterrgpsgb(), filt_suprep(), filt_toposurface(), filt_toporadiosonde(), filt_topoaisw(), filt_topoprofiler(), filt_topoaladin(), filt_surfacewind(), filt_radvel(), filt_gpsro(), filt_topochemistry(), oop_vobslyrs(), oop_ppp_nl(), oop_zzz_nl(), oop_sfc_nl(), oop_sst_nl(), oop_hydro_nl(), oop_ice_nl(), oop_radvel_nl(), oop_gpsro_nl(), oop_gpsgb_nl(), oop_tovs_nl(), oop_had(), oop_calcgpsrojacobian(), oop_calcgpsgbjacobian(), obs_clean(), obs_clean2(), obs_expandtompiglobal(), obs_extractobsrealbodycolumn(), obs_extractobsrealbodycolumn_r4(), obs_prntbdy(), obs_reducetompilocal(), obs_squeeze(), obs_mpiredistribute(), osd_calcinflation(), osd_getindices(), osd_obsdiagnostics(), ose_computestddev(), ose_compute_hbht_ensemble(), setfgefam(), setfgefamz(), setfgett(), setfgesurf(), setfgedif(), setfgegps(), ose_calcompstddevch(), ose_fillompstddevch(), ose_ompstddevexistsforallch(), obsu_updatesourcevariablesflag(), obsu_setgbgpserror(), ovt_windspeeddirectiontouv(), ovt_uvtowindspeeddirection_residual(), ovt_vistologvis(), ovt_vistologvis_residual(), ovt_preciptologprecip(), ovt_preciptologprecip_residual(), ovt_adjusthumgz(), odbf_readmidasbodytable(), odbf_adjustvalues(), odbf_insertinmidasbodytable(), rmat_rsqrtinverseallobs(), res_compute(), res_computead(), slp_calclatlonro(), sqlr_updatesqlite(), sqlr_insertsqlite(), sqlr_writepseudosstobs(), sstb_getgriddedobs(), sstb_getbiascorrection(), thn_gpsrovertical(), thn_radiosonde(), tvslin_rttov_tl(), tvslin_rttov_ad(), tvs_gethiremissivities(), tvs_printdetailledomfstatistics(), tvs_getchannelnumindexfromppp(), vqc_setup(), vqc_nltl(), vqc_ad(), vqc_listrej(), midas_diaghbht, midas_prepcma

Call to

odc_columnelem()

function  obsspacedata_mod/obs_bodyprimarykey(obsdat, row_index)
Purpose

Get the body primary key value.

Arguments
  • obsdat [struct_obs ,in]

  • row_index [integer ,in]

Return

primarykey [integer ]

Called from

odbf_readmidasbodytable(), odbf_insertinmidasbodytable(), sqlr_updatesqlite(), sqlr_insertsqlite()

function  obsspacedata_mod/obs_bodyindex_mpiglobal(obsdat, row_index)
Purpose

Get the mpiglobal body row_index. To control access to the mpiglobal row_index into the “body”.

Arguments
  • obsdat [struct_obs ,in]

  • row_index [integer ,in]

Return

value [integer ]

subroutine  obsspacedata_mod/obs_bodyset_i(obsdat, column_index, row_index, value_i)
Purpose

Set an integer-valued body observation-data element. To control access to the observation object. Sets the (integer) value of the row_index’th ObsData element with the indicated column index from the “body”.

Arguments
  • obsdat [struct_obs ,inout]

  • column_index [integer ,in]

  • row_index [integer ,in]

  • value_i [integer ,in]

Called from

bgck_data(), bgck_gpsro(), csrbg_updateobsspaceafterqc(), amsuabtest10rttovrejectcheck(), amsuabtest1topographycheck(), amsuabtest2landseaqualifiercheck(), amsuabtest3terraintypecheck(), amsuabtest4fieldofviewcheck(), amsuabtest5zenithanglecheck(), amsuabtest6zenangleandfovconsistencycheck(), amsuabtest7landseaqualifyerandmodellandseaconsistencycheck(), amsuabtest9uncorrectedtbcheck(), amsuabtest11radiancegrossvaluecheck(), amsuatest12grodyclwcheck(), amsubtest12drynessindexcheck(), amsuatest13grodyscatteringindexcheck(), amsubtest13bennartzscatteringindexcheck(), amsuatest14roguecheck(), amsubtest14roguecheck(), amsuabtest15channelselectionwithtovutil(), amsuatest16excludeextremescattering(), mwbg_tovcheckamsua(), mwbg_tovcheckamsub(), atmsmwhs2test1flagbit7check(), atmsmwhs2test2topographycheck(), atmsmwhs2test3uncorrectedtbcheck(), atmstest4roguecheck(), mwhs2test4roguecheck(), atmsmwhs2test5channelselectionusingtovutil(), mwbg_tovcheckatms(), mwbg_tovcheckmwhs2(), mwbg_reviewallcritforfinalflagsatms(), mwbg_reviewallcritforfinalflagsmwhs2(), ocebg_bgchecksst(), ocebg_bgcheckseaice(), ssbg_updateobsspaceaftersatqc(), ssbg_updateobsspaceafterinovqc(), bcc_applyaibcor(), bcc_applygpbcor(), bcc_applyuabcor(), bcs_removeoutliers(), bcs_filterobs(), bcs_applybiascorrection(), brpf_setscalech(), write_body(), enkf_rejecthighlatir(), eob_readfromfiles(), eob_setpsvobserrinv(), eob_setsimobserrinv(), eob_backgroundcheck(), eob_removeobsnearland(), eob_rejectradnearsfc(), irbg_doqualitycontrol(), oer_fillobserrors(), filt_suprep(), filt_toposurface(), filt_toporadiosonde(), filt_topoaisw(), filt_topoprofiler(), filt_topoaladin(), filt_topotovs(), filt_surfacewind(), filt_radvel(), filt_gpsro(), filt_backscatanisice(), filt_iceconcentration(), filt_topochemistry(), oop_vobslyrs(), oop_zzz_nl(), oop_gpsgb_nl(), obs_clean(), obs_clean2(), obs_expandtompiglobal(), obs_mpiredistribute(), obs_sethind(), oti_flagobsoutsidewindow(), obsu_updatesourcevariablesflag(), obsu_setassflg(), obsu_computevertcoordsurfobs(), obsu_setgbgpserror(), ovt_windspeeddirectiontouv(), ovt_uvtowindspeeddirection_residual(), ovt_vistologvis(), ovt_vistologvis_residual(), ovt_preciptologprecip(), ovt_preciptologprecip_residual(), odbf_readmidasbodytable(), odbf_copytoobsspacebody(), odbf_adjustvalues(), oobs_computeobsdata(), sqlr_readsqlite(), sqlr_addextradatarow(), pressureprofilemonotonicitycheck(), latlonchecksanlgrid(), s2c_rejectzeroweightobs(), latlonchecks(), thn_surfaceintime(), thn_gpsrovertical(), thn_radiosonde(), rejectobs(), tvs_setupalloc(), vqc_listrej(), midas_prepcma

Call to

odc_columnset()

subroutine  obsspacedata_mod/obs_bodyset_r4(obsdat, column_index, row_index, value_r4)
Purpose

Set a real-valued body observation-data element. To control access to the observation object. Sets the (real) value of the row_index’th ObsData element with the indicated column index from the “body”.

Arguments
  • obsdat [struct_obs ,inout]

  • column_index [integer ,in]

  • row_index [integer ,in]

  • value_r4 [real ,in]

Call to

odc_columnset()

subroutine  obsspacedata_mod/obs_bodyset_r8(obsdat, column_index, row_index, value_r8)
Purpose

Set a real-valued body observation-data element. To control access to the observation object. Sets the (real) value of the row_index’th ObsData element with the indicated column index from the “body”.

Arguments
  • obsdat [struct_obs ,inout]

  • column_index [integer ,in]

  • row_index [integer ,in]

  • value_r8 [real ,in]

Call to

odc_columnset()

subroutine  obsspacedata_mod/obs_class_initialize(obscolumnmode_in)
Purpose

Set observation-data class variables. Set variables that take the same value for all instances of the class.

Arguments

obscolumnmode_in [character ,in] :: mode controlling subset of columns activated in all objects

Called from

inn_setupobs(), midas_prepcma, midas_pseudosstobs, midas_thinning

Call to

odc_class_initialize(), obs_abort()

subroutine  obsspacedata_mod/obs_clean(obsdat, hx, nens, nobsout, qcvar[, checkzha_opt])
Purpose

remove all observations from the obsdat that will not be assimilated.

Arguments

Arguments
  • nobsout [integer ,in] :: unit number for the ASCII output

  • qcvar [logical ,in] :: input logical indicating if the input obsdat data have benefited from a qc-var procedure

  • obsdat [struct_obs ,inout]

  • hx (*,*) [real ,inout]

  • nens [integer ,in]

The logic applied

A body (and its associated header) will be retained if these three conditions are all met:

    1. either of:

    • 1a) btest(obsdat%intBodies%columns(OBS_FLG,jdata),12)

    • 1b) .not. qcvar (the 5th parameter of obs_clean)

    1. obsdat% intBodies%columns(OBS_ASS,jdata) == 1

    1. obsdat%realBodies%columns(OBS_ZHA,jdata) >= 0.0

Options

checkzha_opt [logical ,in,]

Called from

midas_prepcma

Call to

obs_headelem_i(), obs_bodyelem_i(), obs_bodyelem_r(), obs_bodyset_i(), odc_numactivecolumn(), odc_columnindexfromactiveindex(), obs_headset_i(), obs_headelem_r()

subroutine  obsspacedata_mod/obs_clean2(obsdat)
Purpose

remove all observations from the obsdat that will not be assimilated. modified version of obs_clean, used by MIDAS

Arguments

obsdat [struct_obs ,inout]

Called from

inn_setupobs()

Call to

obs_headelem_i(), obs_bodyelem_i(), odc_numactivecolumn(), odc_columnindexfromactiveindex(), obs_bodyset_i(), obs_bodyelem_r(), obs_headset_i(), obs_headelem_r(), obs_squeeze()

function  obsspacedata_mod/obs_columnactive_ib(obsdat, column_index)
Purpose

Return the active status for a column

Arguments
  • obsdat [struct_obs ,inout]

  • column_index [integer ,in]

Return

columnactive [logical ]

Called from

odbf_readmidasbodytable(), odbf_copytoobsspacebody()

function  obsspacedata_mod/obs_columnactive_ih(obsdat, column_index)
Purpose

Return the active status for a column

Arguments
  • obsdat [struct_obs ,inout]

  • column_index [integer ,in]

Return

columnactive [logical ]

Called from

brpr_readburp(), write_header(), writeinfo(), setinfotomissing(), inn_setupobs(), setobsmpistrategy(), odbf_copytoobsspacehead(), sqlr_readsqlite()

function  obsspacedata_mod/obs_columnactive_rb(obsdat, column_index)
Purpose

Return the active status for a column

Arguments
  • obsdat [struct_obs ,inout]

  • column_index [integer ,in]

Return

columnactive [logical ]

Called from

brpf_readfile(), brpr_updateburp(), write_body(), diaf_writesqldiagfile(), odbf_readmidasbodytable(), odbf_copytoobsspacebody(), odbf_adjustvalues(), sqlr_readsqlite(), sqlr_addextradatarow(), tvs_rttov()

function  obsspacedata_mod/obs_columnactive_rh(obsdat, column_index)
Purpose

Return the active status for a column

Arguments
  • obsdat [struct_obs ,inout]

  • column_index [integer ,in]

Return

columnactive [logical ]

Called from

brpr_readburp(), writeinfo(), setinfotomissing(), odbf_copytoobsspacehead(), sqlr_readsqlite_avhrr()

function  obsspacedata_mod/obs_columnindexfromname(column_name)
Purpose

Situations do occur where the client knows only the name of a column, but needs to know its index. This method supplies the index.

Arguments

column_name [character ,in]

Return

column_index_out [integer ]

Called from

odbf_readmidasbodytable(), odbf_copytoobsspacehead(), odbf_copytoobsspacebody(), getcreatetableinsertqueries()

Call to

obs_abort()

function  obsspacedata_mod/obs_iscolumnnamevalid(column_name)
Purpose

Check if the obsSpaceData column name is valid.

Arguments

column_name [character ,in]

Return

isvalid [logical ]

Called from

odbf_setup()

Call to

odc_initallcolumnflavours()

function  obsspacedata_mod/obs_columnindexfromnameforflavour(odc_flavour, column_name)
Purpose

Situations do occur where the client knows only the name of a column, but needs to know its index. This method supplies the index.

Arguments
  • odc_flavour [struct_odc_flavour ,in]

  • column_name [character ,in]

Return

column_index_out [integer ]

Called from

obs_columnindexfromname_ib(), obs_columnindexfromname_ih(), obs_columnindexfromname_rb(), obs_columnindexfromname_rh()

Call to

obs_abort()

function  obsspacedata_mod/obs_columnindexfromname_ib(column_name)
Purpose

This wrapper around obs_columnIndexFromName selects the data-column flavour.

Arguments

column_name [character ,in]

Return

column_index [integer ]

Call to

obs_columnindexfromnameforflavour()

function  obsspacedata_mod/obs_columnindexfromname_ih(column_name)
Purpose

This wrapper around obs_columnIndexFromName selects the data-column flavour.

Arguments

column_name [character ,in]

Return

column_index [integer ]

Call to

obs_columnindexfromnameforflavour()

function  obsspacedata_mod/obs_columnindexfromname_rb(column_name)
Purpose

This wrapper around obs_columnIndexFromName selects the data-column flavour.

Arguments

column_name [character ,in]

Return

column_index [integer ]

Call to

obs_columnindexfromnameforflavour()

function  obsspacedata_mod/obs_columnindexfromname_rh(column_name)
Purpose

This wrapper around obs_columnIndexFromName selects the data-column flavour.

Arguments

column_name [character ,in]

Return

column_index [integer ]

Call to

obs_columnindexfromnameforflavour()

function  obsspacedata_mod/obs_columndatatype(columnindex)
Purpose

return the data type of column, either ‘real’ or ‘integer’

Arguments

columnindex [integer ,in]

Return

datatype [character ]

Called from

odbf_readmidasbodytable(), odbf_copytoobsspacehead(), odbf_copytoobsspacebody(), odbf_insertinmidasheadertable(), odbf_insertinmidasbodytable(), getcreatetableinsertqueries(), sqlr_addcolumn()

Call to

obs_abort()

subroutine  obsspacedata_mod/obs_copy(obs_a, obs_b)
Purpose

copy an obsdat object

Arguments

Arguments
  • obs_a [struct_obs ,in] :: input object

  • obs_b [struct_obs ,inout] :: a copy of obs_a

Note

this method assumes that obs_b has already been initialized

Called from

obs_mpiredistribute()

subroutine  obsspacedata_mod/obs_deallocate(obsdat)
Purpose

De-allocate arrays. This is a private method.

Arguments

obsdat [struct_obs ,inout]

Called from

obs_expandtompiglobal(), obs_finalize(), obs_reducetompilocal(), obs_squeeze(), obs_mpiredistribute()

Call to

odc_deallocate(), ild_finalize()

function  obsspacedata_mod/obs_elem_c(obsdat, name, row_index)
Purpose

Get a character-string-valued observation-data element. To control access to the observation object. Returns the (character) value of the ObsData element with the indicated name and row_index.

Arguments
  • obsdat [struct_obs ,in]

  • name [character ,in]

  • row_index [integer ,in]

Return

value [character ]

Called from

bgck_data(), csrbg_readobsfromobsspace(), amsuabtest10rttovrejectcheck(), amsuabtest1topographycheck(), amsuabtest2landseaqualifiercheck(), amsuabtest3terraintypecheck(), amsuabtest4fieldofviewcheck(), amsuabtest5zenithanglecheck(), amsuabtest6zenangleandfovconsistencycheck(), amsuabtest7landseaqualifyerandmodellandseaconsistencycheck(), amsuabtest9uncorrectedtbcheck(), amsuabtest11radiancegrossvaluecheck(), amsuatest12grodyclwcheck(), amsubtest12drynessindexcheck(), amsuatest13grodyscatteringindexcheck(), amsubtest13bennartzscatteringindexcheck(), amsuatest14roguecheck(), amsubtest14roguecheck(), amsuabtest15channelselectionwithtovutil(), amsuatest16excludeextremescattering(), atmsmwhs2test1flagbit7check(), atmsmwhs2test2topographycheck(), atmsmwhs2test3uncorrectedtbcheck(), atmstest4roguecheck(), mwhs2test4roguecheck(), atmsmwhs2test5channelselectionusingtovutil(), ocebg_bgchecksst(), ocebg_bgcheckseaice(), ssbg_satqcssmis(), ssbg_inovqcssmis(), bcc_applyaibcor(), bcc_applygpbcor(), bcc_applyuabcor(), brpr_updateburp(), cfn_sumjo(), diaf_writesqldiagfile(), oer_fillobserrors(), oer_sw(), filt_surfacewind(), filt_iceconcentration(), filt_topochemistry(), oop_gpsgb_nl(), oop_calcgpsgbjacobian(), obs_prnthdr(), osd_obsdiagnostics(), osd_readsqrthpht(), setfgesurf(), setfgegps(), ose_calcompstddevch(), ose_fillompstddevch(), oss_get_comboidlist(), oti_setup(), sqlr_writepseudosstobs(), sstb_getgriddedobs(), sstb_getbiascorrection(), s2c_getfootprintradius(), thn_surfaceintime(), thn_radiosonde(), vqc_listrej()

Call to

obs_abort()

subroutine  obsspacedata_mod/obs_enkf_prntbdy(obsdat, kstn, kulout)
Purpose

print all data records associated with an observation

Arguments

Arguments
  • kstn [integer ,in] :: no. of station

  • kulout [integer ,in] :: unit used for printing

  • obsdat [struct_obs ,in]

Called from

obs_print()

Call to

obs_headelem_i()

subroutine  obsspacedata_mod/obs_enkf_prnthdr(obsdata, kobs, kulout)
Purpose

printing of the header of an observation record

Arguments

Arguments
  • kobs [integer ,in] :: no. of observation

  • kulout [integer ,in] :: unit used for optional printing

  • obsdata [struct_obs ,in]

Called from

obs_print()

Call to

obs_headelem_i(), obs_headelem_r()

subroutine  obsspacedata_mod/obs_expandtompiglobal(obsdat)
Purpose

restore Global array realBodies and intBodies. To reconstitute the mpi-global observation object by gathering the necessary data from all processors (to all processors).

Note

for the character data cstnid(:), this is converted to integers with IACHAR and back to characters with ACHAR, to facilitate this gather through rpn_comm_allreduce

Arguments

obsdat [struct_obs ,inout]

Called from

midas_analysiserroroi, midas_diaghbht, midas_obsimpact, midas_prepcma, midas_var, midas_var1d

Call to

obs_abort(), obs_numheader_mpiglobal(), obs_numbody_mpiglobal(), obs_numheader(), obs_numbody(), obs_bodyelem_i(), obs_bodyset_i(), odc_numactivecolumn(), odc_columnindexfromactiveindex(), obs_headelem_i(), obs_headelem_r(), obs_bodyelem_r(), obs_deallocate(), obs_allocate()

subroutine  obsspacedata_mod/obs_extractobsrealbodycolumn(realbodycolumn, obsspacedata, obscolumnindex)
Purpose

Extract contents of a real body column into a vector.

Arguments
  • realbodycolumn (*) [real ,out]

  • obsspacedata [struct_obs ,in]

  • obscolumnindex [integer ,in]

Called from

eob_setlatlonobs(), eob_setobserrinv(), eob_setvertlocation(), eob_setdeteryb()

Call to

obs_numbody(), obs_bodyelem_r()

subroutine  obsspacedata_mod/obs_extractobsrealbodycolumn_r4(realbodycolumn, obsspacedata, obscolumnindex)
Purpose

Extract contents of a real body column into a vector.

Arguments
  • realbodycolumn (*) [real ,out]

  • obsspacedata [struct_obs ,in]

  • obscolumnindex [integer ,in]

Called from

eob_setyb(), eob_setya()

Call to

obs_numbody(), obs_bodyelem_r()

subroutine  obsspacedata_mod/obs_extractobsintbodycolumn(intbodycolumn, obsspacedata, obscolumnindex)
Purpose

Extract contents of an integer body column into a vector.

Arguments
  • intbodycolumn (*) [integer ,out]

  • obsspacedata [struct_obs ,in]

  • obscolumnindex [integer ,in]

Called from

eob_writetofiles(), eob_readfromfiles(), eob_setvertlocation(), eob_setassflag()

Call to

obs_numbody(), obs_bodyelem_i()

subroutine  obsspacedata_mod/obs_extractobsrealheadercolumn(realheadercolumn, obsspacedata, obscolumnindex)
Purpose

Extract contents of a real header column into a vector. Note that the output can be either in the form of a vector with length equal to the number of rows in the body OR header table.

Arguments
  • realheadercolumn (*) [real ,out]

  • obsspacedata [struct_obs ,in]

  • obscolumnindex [integer ,in]

Called from

eob_setlatlonobs(), inn_setupcolumnsontrllev()

Call to

obs_numbody(), obs_bodyelem_i(), obs_headelem_r(), obs_numheader(), obs_abort()

subroutine  obsspacedata_mod/obs_extractobsintheadercolumn(intheadercolumn, obsspacedata, obscolumnindex)
Purpose

Extract contents of an integer header column into a vector. Note that the output can be either in the form of a vector with length equal to the number of rows in the body OR header table.

Arguments
  • intheadercolumn (*) [integer ,out]

  • obsspacedata [struct_obs ,in]

  • obscolumnindex [integer ,in]

Called from

eob_setvertlocation()

Call to

obs_numbody(), obs_bodyelem_i(), obs_headelem_i(), obs_numheader(), obs_abort()

subroutine  obsspacedata_mod/obs_finalize(obsdat)
Purpose

De-allocate memory and clean up the object. De-allocate object arrays, and perform any other clean-up that is necessary before object deletion.

Arguments

obsdat [struct_obs ,inout]

Called from

obs_mpiredistribute(), oobs_computeobsdata(), midas_analysiserroroi, midas_diaghbht, midas_gencoeff, midas_ominusf, midas_obsimpact, midas_obsselection, midas_prepcma, midas_sstbias, midas_thinning, midas_var, midas_var1d

Call to

obs_deallocate()

function  obsspacedata_mod/obs_getbodyindex_depot(obsdat)
Purpose

Return the next element from the current body list

Arguments

obsdat [struct_obs ,inout]

Return

row_index [integer ]

function  obsspacedata_mod/obs_getbodyindex_private(private_list)
Purpose

Return the next element from the supplied private body list

Arguments

private_list [struct_index_list ,inout,pointer]

Return

row_index [integer ]

function  obsspacedata_mod/obs_getfamily(obsdat[, headerindex_opt[, bodyindex_opt]])
Purpose

Return the family for the indicated header, or else for the indicated body.

Arguments

obsdat [struct_obs ,in]

Options
  • headerindex_opt [integer ,in,]

  • bodyindex_opt [integer ,in,]

Return

obs_getfamily [character ]

Called from

cfn_sumjo(), eob_setpsvobserrinv(), eob_setsimobserrinv(), eob_setsimobsval(), sumfso(), inn_perturbobs(), diaf_getobsfamilylistmpiglobal(), oer_fillobserrors(), readoerfromobsfileforsw(), obs_famexist(), setfgesurf(), oti_timebinning(), odbf_adjustvalues(), s2c_getfootprintradius(), vqc_nltl(), vqc_ad()

Call to

obs_bodyelem_i(), obs_abort()

function  obsspacedata_mod/obs_getnclassavhrr()
Purpose

to get the number of AVHRR radiance classes

Return

obs_getnclassavhrr [integer ]

Called from

brpr_readburp()

function  obsspacedata_mod/obs_getnchanavhrr()
Purpose

to get the number of AVHRR channels

Return

obs_getnchanavhrr [integer ]

Called from

brpr_readburp(), sqlr_readsqlite_avhrr()

function  obsspacedata_mod/obs_getheaderindex(obsdat)
Purpose

Return the next element from the current header list.

Arguments

obsdat [struct_obs ,inout]

Return

row_index [integer ]

Called from

bgck_data(), bgck_gpsro(), csrbg_bgcheckcsr(), mwbg_computemwhs2surfacetype(), mwbg_bgcheckmw(), ssbg_computessmissurfacetype(), ssbg_bgcheckssmis(), bcc_applyaibcor(), bcc_applygpbcor(), bcc_applyuabcor(), bcs_computepredictorbiases(), bcs_calcbias(), bcs_dumpbiastosqliteafterthinning(), bcs_computeresidualsstatistics(), bcs_removeoutliers(), bcs_calcbias_tl(), bcs_gettrialpredictors(), bcs_calcbias_ad(), bcs_filterobs(), bcs_getradiosondeweight(), bcs_do_regression(), bcs_outputcvomppred(), getinitialidobsdata(), brpf_updatefile(), brpr_addcloudparametersandemissivity(), irbg_bgcheckir(), irbg_doqualitycontrol(), diaf_writesqldiagfile(), oer_seterrgpsro(), oer_seterrgpsgb(), oer_seterrbackscatanisice(), obsf_updatemissingobsflags(), filt_toposurface(), filt_toporadiosonde(), filt_topoprofiler(), filt_topoaladin(), filt_topotovs(), filt_surfacewind(), filt_radvel(), filt_gpsro(), filt_iceconcentration(), filt_topochemistry(), oop_sfc_nl(), oop_sst_nl(), oop_hydro_nl(), oop_radvel_nl(), oop_gpsro_nl(), oop_gpsgb_nl(), oop_tovs_nl(), oop_calcgpsrojacobian(), oop_calcgpsgbjacobian(), obs_set_current_body_list_from_family(), obs_set_current_body_list_all(), osd_obsdiagnostics(), osd_readsqrthpht(), setfgefam(), setfgefamz(), setfgedif(), setfgegps(), ose_calcompstddevch(), ose_fillompstddevch(), ose_ompstddevexistsforallch(), oss_get_comboidlist(), sqlr_writepseudosstobs(), sqlu_getinitialidobsdata(), pressureprofilemonotonicitycheck(), thn_surfaceintime(), thn_gpsrovertical(), thn_radiosonde(), tvs_setupalloc(), tvs_printdetailledomfstatistics(), vqc_listrej()

function  obsspacedata_mod/obs_headelem_i(obsdat, column_index, row_index)
Purpose

Get an integer-valued header observation-data element. To control access to the observation object. Returns the (integer) value of the row_index’th ObsData element with the indicated column index from the “header”.

Arguments
  • obsdat [struct_obs ,in]

  • column_index [integer ,in]

  • row_index [integer ,in]

Return

value_i [integer ]

Called from

findobs(), aer_dayssincelastobs(), bgck_data(), bgck_gpsro(), csrbg_bgcheckcsr(), csrbg_readobsfromobsspace(), csrbg_updateobsspaceafterqc(), extractparamforgrodyrun(), extractparamforbennartzrun(), amsuabtest10rttovrejectcheck(), amsuabtest1topographycheck(), amsuabtest2landseaqualifiercheck(), amsuabtest3terraintypecheck(), amsuabtest4fieldofviewcheck(), amsuabtest5zenithanglecheck(), amsuabtest6zenangleandfovconsistencycheck(), amsuabtest7landseaqualifyerandmodellandseaconsistencycheck(), amsuabtest9uncorrectedtbcheck(), amsuabtest11radiancegrossvaluecheck(), amsuatest12grodyclwcheck(), amsubtest12drynessindexcheck(), amsuatest13grodyscatteringindexcheck(), amsubtest13bennartzscatteringindexcheck(), amsuatest14roguecheck(), amsubtest14roguecheck(), amsuabtest15channelselectionwithtovutil(), amsuatest16excludeextremescattering(), mwbg_tovcheckamsua(), mwbg_tovcheckamsub(), resetqccases(), setterraintypetoseaice(), grody(), atmsmwhs2test1flagbit7check(), atmsmwhs2test2topographycheck(), atmsmwhs2test3uncorrectedtbcheck(), atmstest4roguecheck(), mwhs2test4roguecheck(), atmsmwhs2test5channelselectionusingtovutil(), mwbg_tovcheckatms(), mwbg_tovcheckmwhs2(), mwbg_computemwhs2surfacetype(), mwbg_grossvaluecheck(), mwbg_firstqccheckatms(), mwbg_firstqccheckmwhs2(), mwbg_nrlfilteratms(), mwbg_nrlfiltermwhs2(), mwbg_flagdatausingnrlcritatms(), mwbg_flagdatausingnrlcritmwhs2(), mwbg_reviewallcritforfinalflagsatms(), mwbg_reviewallcritforfinalflagsmwhs2(), iftovsexist(), mwbg_bgcheckmw(), ocebg_bgchecksst(), ocebg_bgcheckseaice(), ssbg_computessmissurfacetype(), ssbg_satqcssmis(), ssbg_updateobsspaceaftersatqc(), ssbg_inovqcssmis(), ssbg_updateobsspaceafterinovqc(), ssbg_bgcheckssmis(), bcc_applyaibcor(), bcc_applyuabcor(), bcs_computepredictorbiases(), bcs_calcbias(), bcs_dumpbiastosqliteafterthinning(), bcs_computeresidualsstatistics(), bcs_removeoutliers(), bcs_calcbias_tl(), bcs_gettrialpredictors(), bcs_calcbias_ad(), bcs_filterobs(), bcs_getradiosondeweight(), bcs_do_regression(), bcs_outputcvomppred(), getinitialidobsdata(), brpf_setscalech(), brpr_updateburp(), brpr_readburp(), writeinfo(), brpr_addcloudparametersandemissivity(), cfn_sumjo(), enkf_modifyamsubobserror(), enkf_rejecthighlatir(), eob_setpsvobserrinv(), eob_setsimobserrinv(), eob_setsimobsval(), eob_backgroundcheck(), eob_removeobsnearland(), eob_hubernorm(), fso_ensemble(), sumfso(), irbg_bgcheckir(), irbg_doqualitycontrol(), diaf_writesqldiagfile(), oer_fillobserrors(), readoerfromobsfileforsw(), oer_sw(), oer_seterrgpsro(), oer_seterrgpsgb(), oer_seterrbackscatanisice(), obsf_updatemissingobsflags(), filt_suprep(), filt_topotovs(), filt_surfacewind(), filt_gpsro(), filt_iceconcentration(), filt_topochemistry(), oop_vobslyrs(), oop_zzz_nl(), oop_ice_nl(), oop_gpsro_nl(), oop_gpsgb_nl(), oop_tovs_nl(), oop_calcgpsrojacobian(), oop_calcgpsgbjacobian(), oop_icescaling(), obs_clean(), obs_clean2(), obs_enkf_prntbdy(), obs_enkf_prnthdr(), obs_expandtompiglobal(), obs_extractobsintheadercolumn(), obs_mpidistributeindices(), obs_prntbdy(), obs_prnthdr(), obs_reducetompilocal(), obs_squeeze(), obs_mpiredistribute(), obs_set_current_body_list_from_family(), obs_set_current_body_list_from_header(), obs_set_current_body_list_all(), obs_sethind(), obs_write_bdy(), obs_write_hdr(), obs_write_hx(), osd_getindices(), osd_obsdiagnostics(), osd_readsqrthpht(), setfgefamz(), setfgedif(), setfgegps(), ose_calcompstddevch(), ose_fillompstddevch(), ose_ompstddevexistsforallch(), oss_get_comboidlist(), oti_timebinning(), oti_setup(), oti_flagobsoutsidewindow(), obsu_updatesourcevariablesflag(), obsu_computevertcoordsurfobs(), obsu_setgbgpserror(), ovt_windspeeddirectiontouv(), ovt_uvtowindspeeddirection_residual(), ovt_vistologvis(), ovt_vistologvis_residual(), ovt_preciptologprecip(), ovt_preciptologprecip_residual(), ovt_adjusthumgz(), odbf_readfile(), odbf_readmidasbodytable(), odbf_copytoobsspacebody(), odbf_adjustvalues(), odbf_insertinmidasheadertable(), odbf_insertinmidasbodytable(), rmat_rsqrtinverseallobs(), slp_calclatlontovs(), sqlr_updatesqlite(), sqlr_addcloudparametersandemissivity(), sqlr_insertsqlite(), sqlr_writepseudosstobs(), sqlu_getinitialidobsdata(), sstb_getgriddedobs(), sstb_getbiascorrection(), pressureprofilemonotonicitycheck(), latlonchecksanlgrid(), s2c_setupinterpinfo(), s2c_getfootprintradius(), s2c_rejectzeroweightobs(), latlonchecks(), gettovsfootprintradius(), thn_surfaceintime(), thn_radiosonde(), tvs_setupalloc(), tvs_getchanprof(), tvs_countradiances(), tvs_changedstypvalue(), tvs_gethiremissivities(), tvs_rttov(), tvs_printdetailledomfstatistics(), var1d_setup(), vqc_setup(), vqc_nltl(), vqc_listrej(), midas_prepcma

Call to

odc_columnelem()

function  obsspacedata_mod/obs_headelem_r(obsdat, column_index, row_index)
Purpose

Get a real-valued header observation-data element. To control access to the observation object. Returns the (real) value of the row_index’th ObsData element with the indicated column index from the “header”.

Arguments
  • obsdat [struct_obs ,in]

  • column_index [integer ,in]

  • row_index [integer ,in]

Return

value_r [real ]

Called from

findobs(), dumpbmatrices(), bmat1d_bsqrthi(), bmat1d_bsqrthiad(), bgck_data(), bgck_gpsro(), csrbg_readobsfromobsspace(), amsuabtest5zenithanglecheck(), amsuabtest6zenangleandfovconsistencycheck(), amsuatest12grodyclwcheck(), amsuatest13grodyscatteringindexcheck(), amsubtest13bennartzscatteringindexcheck(), amsuatest14roguecheck(), amsubtest14roguecheck(), grody(), atmstest4roguecheck(), mwhs2test4roguecheck(), mwbg_readgeophysicfieldsandinterpolate(), atmsmwhs2landicemask(), mwbg_firstqccheckatms(), mwbg_firstqccheckmwhs2(), mwbg_nrlfilteratms(), mwbg_nrlfiltermwhs2(), mwbg_flagdatausingnrlcritatms(), mwbg_flagdatausingnrlcritmwhs2(), mwbg_reviewallcritforfinalflagsatms(), mwbg_reviewallcritforfinalflagsmwhs2(), ocebg_bgchecksst(), ssbg_computessmissurfacetype(), ssbg_satqcssmis(), ssbg_inovqcssmis(), bcc_applyuabcor(), bcs_dumpbiastosqliteafterthinning(), bcs_getpredictors(), brpr_addcloudparametersandemissivity(), enkf_modifyamsubobserror(), enkf_rejecthighlatir(), eob_removeobsnearland(), setobsmpistrategy(), irbg_doqualitycontrol(), diaf_writesqldiagfile(), oer_fillobserrors(), oer_inflateerrallsky(), oer_sw(), oer_seterrgpsro(), filt_toporadiosonde(), filt_topoprofiler(), filt_surfacewind(), filt_radvel(), filt_gpsro(), filt_backscatanisice(), oop_vobslyrs(), oop_ppp_nl(), oop_radvel_nl(), oop_gpsro_nl(), oop_gpsgb_nl(), oop_calcgpsrojacobian(), oop_calcgpsgbjacobian(), obs_clean(), obs_clean2(), obs_enkf_prnthdr(), obs_expandtompiglobal(), obs_extractobsrealheadercolumn(), obs_prnthdr(), obs_reducetompilocal(), obs_squeeze(), obs_mpiredistribute(), obs_write_hdr(), osd_getindices(), osd_obsdiagnostics(), osd_readsqrthpht(), setfgefamz(), setfgedif(), setfgegps(), ose_calcompstddevch(), ose_fillompstddevch(), obsu_computevertcoordsurfobs(), odbf_adjustvalues(), odbf_insertinmidasheadertable(), slp_calclatlontovs(), findintersectlatlon(), slp_calclatlonro(), slp_calclatlonradar(), sqlr_addcloudparametersandemissivity(), sqlr_writepseudosstobs(), sstb_getgriddedobs(), sstb_getbiascorrection(), latlonchecksanlgrid(), s2c_setupinterpinfo(), s2c_bgcheck_bilin(), thn_surfaceintime(), thn_radiosonde(), tvs_fillprofiles(), tvs_getcorrectedsatelliteazimuth(), var1d_transfercolumntoygrid(), vqc_setup(), vqc_listrej(), midas_prepcma

Call to

odc_columnelem()

function  obsspacedata_mod/obs_headprimarykey(obsdat, row_index)
Purpose

Get the header primary key value.

Arguments
  • obsdat [struct_obs ,in]

  • row_index [integer ,in]

Return

primarykey [integer ]

Called from

odbf_copytoobsspacebody(), odbf_insertinmidasheadertable(), odbf_insertinmidasbodytable(), sqlr_readsqlite_avhrr(), sqlr_updatesqlite(), sqlr_addcloudparametersandemissivity(), sqlr_insertsqlite()

function  obsspacedata_mod/obs_headerindex_mpiglobal(obsdat, row_index)
Purpose

Get the mpiglobal header row index. To control access to the mpiglobal row_index into the “header”.

Arguments
  • obsdat [struct_obs ,in]

  • row_index [integer ,in]

Return

value [integer ]

subroutine  obsspacedata_mod/obs_headset_i(obsdat, column_index, row_index, value_i)
Purpose

set an integer-valued header observation-data element. To control access to the observation object. Sets the (integer) value of the row_index’th ObsData element with the indicated column index from the “header”.

Arguments
  • obsdat [struct_obs ,inout]

  • column_index [integer ,in]

  • row_index [integer ,in]

  • value_i [integer ,in]

Called from

bgck_data(), mwbg_tovcheckamsua(), mwbg_tovcheckamsub(), resetqccases(), setterraintypetoseaice(), mwbg_computemwhs2surfacetype(), mwbg_flagdatausingnrlcritatms(), mwbg_flagdatausingnrlcritmwhs2(), mwbg_reviewallcritforfinalflagsatms(), mwbg_reviewallcritforfinalflagsmwhs2(), ocebg_bgchecksst(), ssbg_computessmissurfacetype(), ssbg_satqcssmis(), ssbg_updateobsspaceaftersatqc(), ssbg_updateobsspaceafterinovqc(), bcc_applyaibcor(), brpf_readfile(), brpr_readburp(), write_header(), write_qi(), writeinfo(), setinfotomissing(), setobsmpistrategy(), irbg_doqualitycontrol(), obs_clean(), obs_clean2(), oti_flagobsoutsidewindow(), odbf_readfile(), odbf_setsurfacetype(), odbf_copytoobsspaceheadchar(), odbf_copytoobsspaceheaddate(), odbf_copytoobsspacehead(), odbf_copytoobsspacebody(), odbf_adjustvalues(), oobs_computeobsdata(), sqlf_readfile(), sqlr_readsqlite(), pressureprofilemonotonicitycheck(), latlonchecksanlgrid(), s2c_rejectzeroweightobs(), latlonchecks(), vqc_listrej()

Call to

odc_columnset()

subroutine  obsspacedata_mod/obs_headset_r4(obsdat, column_index, row_index, value_r4)
Purpose

set a real header value in the observation object. To control access to the observation object. Sets the (real) value of the row_index’th ObsData element with the indicated column index from the “header”.

Arguments
  • obsdat [struct_obs ,inout]

  • column_index [integer ,in]

  • row_index [integer ,in]

  • value_r4 [real ,in]

Call to

odc_columnset()

subroutine  obsspacedata_mod/obs_headset_r8(obsdat, column_index, row_index, value_r8)
Purpose

set a real header value in the observation object. To control access to the observation object. Sets the (real) value of the row_index’th ObsData element with the indicated column index from the “header”.

Arguments
  • obsdat [struct_obs ,inout]

  • column_index [integer ,in]

  • row_index [integer ,in]

  • value_r8 [real ,in]

Call to

odc_columnset()

subroutine  obsspacedata_mod/obs_initialize(obsdat[, numheader_max_opt[, numbody_max_opt[, mpi_local_opt[, silent_opt]]]])
Purpose

Set an observation-data module to a known state. Initialize object variables, and allocate arrays according to the parameters, header_max and body_max.

Arguments

obsdat [struct_obs ,inout] :: inout allows detection of 2nd call

Options
  • numheader_max_opt [integer ,in,] :: number of header elements allocated

  • numbody_max_opt [integer ,in,] :: total no. of body elements allocated

  • mpi_local_opt [logical ,in,]

  • silent_opt [logical ,in,]

Called from

inn_setupobs(), obs_mpiredistribute(), oobs_pseudosst(), oobs_computeobsdata(), midas_prepcma, midas_thinning

Call to

obs_abort(), obs_allocate()

subroutine  obsspacedata_mod/obs_mpidistributeindices(obsdat)
Purpose

Compute headerIndex_mpiglobal and bodyIndex_mpiglobal: this determines how obs are distributed over MPI processes and is needed for converting from mpiglobal to mpilocal and vice versa. The header indices are distributed following the chosen strategy, currently either “round robin” or by latitude bands.

Note

this subroutine is called before converting from mpiglobal to mpilocal

Comments

In principle this method could have obtained my_mpi_id by use’ing the module, mpi. However, it queries rpn_comm for itself because the mpi module belongs to the 3dvar code, whereas the present module is shared code.

Arguments

obsdat [struct_obs ,inout]

Called from

obs_reducetompilocal()

Call to

obs_abort(), obs_headelem_i()

function  obsspacedata_mod/obs_mpilocal(obsdat)
Purpose
returns true if the object contains only data that are

needed by the current mpi PE; false if it contains all data.

To provide the state of the internal variable, mpiLocal. This method exists primarily to facilitate unit tests on this module.

Arguments

obsdat [struct_obs ,in]

Return

obs_mpilocal [logical ]

Called from

bcs_dumpbiastosqliteafterthinning(), diaf_writesqldiagfile(), obsf_writeascidump(), sqlr_writepseudosstobs(), sqlr_writeemptypseudosstobsfile()

function  obsspacedata_mod/obs_numbody(obsdat)
Purpose

returns the number of mpi-local bodies recorded. To provide the number of bodies that are currently recorded in the mpi-local observation-data object.

Arguments

obsdat [struct_obs ,in]

Return

obs_numbody [integer ]

Called from

findobs(), aer_computeanlerrorstd(), brpf_readfile(), write_body(), cfn_calcjo(), cfn_sumjo(), eob_setsigisigo(), eob_rejectradnearsfc(), sumfso(), inn_perturbobs(), omf_ominusfens(), obsf_readfiles(), setheadbodyprimarykeycolumns(), filt_suprep(), filt_toposurface(), filt_toporadiosonde(), filt_topoaisw(), filt_topoprofiler(), filt_topoaladin(), filt_topotovs(), filt_surfacewind(), filt_topochemistry(), oop_vobslyrs(), oop_tovs_nl(), obs_expandtompiglobal(), obs_extractobsrealbodycolumn(), obs_extractobsrealbodycolumn_r4(), obs_extractobsintbodycolumn(), obs_extractobsrealheadercolumn(), obs_extractobsintheadercolumn(), obs_reducetompilocal(), obs_mpiredistribute(), osd_calcinflation(), ose_computestddev(), ose_compute_hbht_ensemble(), setfgett(), setfgesurf(), obsu_updatesourcevariablesflag(), obsu_setassflg(), ovt_uvtowindspeeddirection_residual(), ovt_vistologvis_residual(), ovt_preciptologprecip_residual(), odbf_readfile(), res_compute(), res_computead(), sqlf_readfile(), sqlr_readsqlite(), vqc_nltl(), vqc_ad(), midas_diaghbht, midas_ensembleh, midas_letkf, midas_prepcma

function  obsspacedata_mod/obs_numbody_max(obsdat)
Purpose

returns the dimensioned mpi-local number of bodies. To provide the dimension for the number of bodies in the mpi-local observation-data object.

Arguments

obsdat [struct_obs ,in]

Return

obs_numbody_max [integer ]

function  obsspacedata_mod/obs_numbody_mpiglobal(obsdat)
Purpose
returns the number of bodies recorded in the

entire mpi-global obs object.

To provide the number of bodies that are currently recorded in the entire mpi-global observation-data object.

Arguments

obsdat [struct_obs ,in]

Return

obs_numbody_mpiglobal [integer ]

Called from

obs_expandtompiglobal()

function  obsspacedata_mod/obs_numheader(obsdat)
Purpose

returns the number of mpi-local headers recorded. To provide the number of headers that are currently recorded in the observation-data object.

Arguments

obsdat [struct_obs ,in]

Return

obs_numheader [integer ]

Called from

aer_analysiserror(), findobs(), aer_dayssincelastobs(), bmat1d_setupbens(), mwbg_bgcheckmw(), ocebg_bgchecksst(), ocebg_bgcheckseaice(), ssbg_satqcssmis(), bcs_getradiosondeweight(), brpf_readfile(), brpr_updateburp(), brpr_readburp(), write_body(), write_header(), write_qi(), write_al(), writeinfo(), setinfotomissing(), cfn_sumjo(), enkf_modifyamsubobserror(), enkf_rejecthighlatir(), eob_backgroundcheck(), eob_removeobsnearland(), eob_hubernorm(), fso_ensemble(), inn_setupcolumnsontrllev(), setobsmpistrategy(), quasinewtonminimization(), omf_ominusf(), omf_ominusfens(), diaf_getobsfamilylistmpiglobal(), oer_fillobserrors(), readoerfromobsfileforsw(), oer_seterrbackscatanisice(), obsf_readfiles(), obsf_writehx(), setheadbodyprimarykeycolumns(), obs_expandtompiglobal(), obs_extractobsrealheadercolumn(), obs_extractobsintheadercolumn(), obs_reducetompilocal(), obs_mpiredistribute(), obs_sethind(), obs_famexist(), ose_computestddev(), oti_timebinning(), ovt_transformobsvalues(), ovt_transformresiduals(), odbf_readfile(), odbf_readmidasbodytable(), odbf_insertinmidasheadertable(), odbf_insertinmidasbodytable(), rmat_rsqrtinverseallobs(), sqlf_readfile(), sqlr_readsqlite(), sqlr_updatesqlite(), sqlr_addcloudparametersandemissivity(), sqlr_insertsqlite(), sstb_getgriddedobs(), sstb_getbiascorrection(), latlonchecksanlgrid(), s2c_tl(), s2c_ad(), s2c_nl(), s2c_rejectzeroweightobs(), tvs_setupalloc(), var1d_setup(), vqc_setup(), midas_analysiserroroi, midas_diaghbht, midas_ensembleh, midas_letkf, midas_ominusf, midas_obsimpact, midas_obsselection, midas_prepcma, midas_sstbias, midas_var, midas_var1d

function  obsspacedata_mod/obs_numheader_max(obsdat)
Purpose

returns the dimensioned mpi-local number of headers. To provide the dimension for the number of headers in the mpi-local observation-data object.

Arguments

obsdat [struct_obs ,in]

Return

obs_numheader_max [integer ]

function  obsspacedata_mod/obs_numheader_mpiglobal(obsdat)
Purpose
returns the number of headers recorded in

the entire mpi-global obs object.

To provide the number of headers that are currently recorded in the entire mpi-global observation-data object.

Arguments

obsdat [struct_obs ,in]

Return

obs_numheader_mpiglobal [integer ]

Called from

obs_expandtompiglobal()

subroutine  obsspacedata_mod/obs_print(obsdat, nobsout)
Purpose

print the contents of the obsdat to an ASCII file

Arguments

Arguments
  • obsdat [struct_obs ,in] :: obsSpaceData object

  • nobsout [integer ,in] :: unit used for printing

Called from

obsf_writeascidump(), midas_prepcma

Call to

obs_enkf_prnthdr(), obs_enkf_prntbdy()

subroutine  obsspacedata_mod/obs_prntbdy(obsdat, index_header[, unitout_opt])
Purpose

Print all data records associated with an observation

Arguments

Arguments
  • obsdat [struct_obs ,in] :: obsSpaceData object

  • index_header [integer ,in] :: index of the group of observations to be printed :unitout: unit number on which to print

Options

unitout_opt [integer ,in,] :: variable output unit facilitates unit testing

Called from

quasinewtonminimization(), midas_ominusf, midas_obsselection

Call to

obs_headelem_i(), obs_bodyelem_i(), obs_bodyelem_r()

subroutine  obsspacedata_mod/obs_prnthdr(obsdata, index_hd[, unitout_opt])
Purpose

Printing of the header of an observation record

Arguments

Arguments
  • obsdata [struct_obs ,in] :: obsSpaceData object

  • index_hd [integer ,in] :: index of the header to be printed

Options

unitout_opt [integer ,in,] :: variable output unit facilitates unit testing

Called from

quasinewtonminimization(), midas_ominusf, midas_obsselection

Call to

obs_headelem_i(), obs_headelem_r(), obs_elem_c()

subroutine  obsspacedata_mod/obs_reducetompilocal(obsdat)
Purpose
re-construct observation data object by

giving local Obs TAG.

To retain in the observation object only those data that are pertinent to the present mpi processor, i.e. convert from mpiglobal to mpilocal.

Arguments

obsdat [struct_obs ,inout]

Called from

inn_setupobs()

Call to

obs_abort(), obs_mpidistributeindices(), obs_headelem_i(), obs_numheader(), obs_numbody(), odc_numactivecolumn(), odc_columnindexfromactiveindex(), obs_headelem_r(), odc_activeindexfromcolumnindex(), obs_bodyelem_r(), obs_bodyelem_i(), obs_deallocate(), obs_allocate()

subroutine  obsspacedata_mod/obs_squeeze(obsdat)
Purpose

re-construct observation data object to save memory

Arguments

obsdat [struct_obs ,inout]

Called from

inn_setupobs(), obs_clean2()

Call to

odc_numactivecolumn(), odc_columnindexfromactiveindex(), obs_headelem_r(), obs_headelem_i(), obs_bodyelem_r(), obs_bodyelem_i(), odc_activeindexfromcolumnindex(), obs_deallocate(), obs_allocate()

subroutine  obsspacedata_mod/obs_mpiredistribute(obsdat_inout, target_ip_index)
Purpose

Redistribute obs over mpi tasks according to mpi task id stored in the integer header column “target_ip_index”

Arguments
  • obsdat_inout [struct_obs ,inout]

  • target_ip_index [integer ,in]

Called from

inn_setupobs(), midas_analysiserroroi, midas_diaghbht, midas_obsimpact, midas_var, midas_var1d

Call to

obs_numheader(), obs_numbody(), obs_headelem_i(), obs_initialize(), odc_numactivecolumn(), odc_columnindexfromactiveindex(), obs_headelem_r(), odc_activeindexfromcolumnindex(), obs_bodyelem_i(), obs_bodyelem_r(), obs_bodyset_i(), obs_deallocate(), obs_allocate(), obs_copy(), obs_finalize()

subroutine  obsspacedata_mod/obs_set_c(obsdat, name, row_index, value)
Purpose

set a character(len=9) in the observation object To control access to the observation object.

Arguments
  • obsdat [struct_obs ,inout]

  • name [character ,in]

  • row_index [integer ,in]

  • value [character ,in]

Called from

write_header(), odbf_copytoobsspaceheadchar(), oobs_computeobsdata(), sqlr_readsqlite()

Call to

obs_abort()

subroutine  obsspacedata_mod/obs_set_current_body_list_from_family(obsdat, family[, list_is_empty_opt[, current_list_opt]])
Purpose

Create a row_index list from the indicated family and place it in the body depot.

Arguments
  • obsdat [struct_obs ,inout,target]

  • family [character ,in]

Options
  • list_is_empty_opt [logical ,out,]

  • current_list_opt [struct_index_list ,out,pointer]

Call to

ild_get_empty_index_list(), obs_getheaderindex(), obs_headelem_i()

subroutine  obsspacedata_mod/obs_set_current_body_list_from_header(obsdat, header[, list_is_empty_opt[, current_list_opt]])
Purpose

Create a row_index list from the indicated header and place it in the body depot.

Arguments
  • obsdat [struct_obs ,inout,target]

  • header [integer ,in]

Options
  • list_is_empty_opt [logical ,out,]

  • current_list_opt [struct_index_list ,out,pointer]

Call to

ild_get_empty_index_list(), obs_headelem_i()

subroutine  obsspacedata_mod/obs_set_current_body_list_all(obsdat[, list_is_empty_opt[, current_list_opt]])
Purpose

Create a row_index list containing all bodies and place it in the body depot.

Arguments

obsdat [struct_obs ,inout,target]

Options
  • list_is_empty_opt [logical ,out,]

  • current_list_opt [struct_index_list ,out,pointer]

Call to

ild_get_empty_index_list(), obs_getheaderindex(), obs_headelem_i()

subroutine  obsspacedata_mod/obs_set_current_header_list_from_family(obsdat, family)
Purpose

Find or create a row_index list for the indicated family and place it in the header depot.

Arguments
  • obsdat [struct_obs ,inout,target]

  • family [character ,in]

Call to

ild_get_empty_index_list()

subroutine  obsspacedata_mod/obs_set_current_header_list_all(obsdat)
Purpose

Find or create a row_index list for all headers and place it in the header depot.

Arguments

obsdat [struct_obs ,inout,target]

Call to

ild_get_empty_index_list()

subroutine  obsspacedata_mod/obs_setbodyprimarykey(obsdat, bodyindex, primarykey)
Purpose

Set to the indicated value the body primary key for the indicated body.

Arguments
  • obsdat [struct_obs ,inout]

  • bodyindex [integer ,in]

  • primarykey [integer ,in]

Called from

setheadbodyprimarykeycolumns(), odbf_copytoobsspacebody(), sqlr_readsqlite()

subroutine  obsspacedata_mod/obs_setheadprimarykey(obsdat, headerindex, primarykey)
Purpose

Set to the indicated value the header primary key for the indicated header.

Arguments
  • obsdat [struct_obs ,inout]

  • headerindex [integer ,in]

  • primarykey [integer ,in]

Called from

setheadbodyprimarykeycolumns(), odbf_copytoobsspacehead(), sqlr_readsqlite()

subroutine  obsspacedata_mod/obs_setfamily(obsdat, family_in[, headerindex_opt[, bodyindex_opt]])
Purpose

Set to the indicated value the family for the indicated header, or else for the indicated body.

Arguments
  • obsdat [struct_obs ,inout]

  • family_in [character ,in]

Options
  • headerindex_opt [integer ,in,]

  • bodyindex_opt [integer ,in,]

Called from

brpf_readfile(), brpr_readburp(), odbf_readfile(), oobs_computeobsdata(), sqlf_readfile(), sqlr_readsqlite()

Call to

obs_bodyelem_i(), obs_abort()

subroutine  obsspacedata_mod/obs_sethind(obsspacedata)
Purpose

Set the header index in the body table

Arguments

obsspacedata [struct_obs ,inout]

Called from

obsf_readfiles()

Call to

obs_numheader(), obs_headelem_i(), obs_bodyset_i()

subroutine  obsspacedata_mod/obs_write(obsdat, hx, nens, nobshdrout, nobsbdyout, nobshxout, nobsdimout)
Purpose

Write the obsdat info to unformatted files.

Note

the body information is written in the order that it will be used by sekfeta.f

Arguments
  • obsdat [struct_obs ,in]

  • hx (*,*) [real ,in]

  • nens [integer ,in]

  • nobshdrout [integer ,in]

  • nobsbdyout [integer ,in]

  • nobshxout [integer ,in]

  • nobsdimout [integer ,in]

Called from

midas_prepcma

Call to

obs_write_hdr(), obs_write_bdy(), obs_write_hx()

subroutine  obsspacedata_mod/obs_write_bdy(obsdat, kobs, kulout)
Purpose

write the data records associated with a station in unformatted form.

Arguments

Arguments
  • obsdat [struct_obs ,in] :: obsSpaceData object

  • kobs [integer ,in] :: no. of observation

  • kulout [integer ,in] :: unit used for writing

Called from

obs_write()

Call to

obs_headelem_i()

subroutine  obsspacedata_mod/obs_write_hdr(obsdat, kobs, kulout, irealbodies, nrealbodies)
Purpose

writing of the header of a station record

Arguments

Arguments
  • obsdat [struct_obs ,in] :: obsSpaceData object

  • kobs [integer ,in] :: no. of observation

  • kulout [integer ,in] :: unit used for output :irealBodies: location in the sorted realBodies :nrealBodies: number of observations for this header

  • irealbodies [integer ,in]

  • nrealbodies [integer ,out]

Called from

obs_write()

Call to

obs_abort(), obs_headelem_i(), odc_columnindexfromactiveindex(), odc_numactivecolumn(), obs_headelem_r()

subroutine  obsspacedata_mod/obs_write_hx(obsdat, hx, kobs, kulout)
Purpose

write the interpolated values associated with a station in unformatted form.

Arguments

Arguments
  • obsdat [struct_obs ,in] :: obsSpaceData object

  • hx (*,*) [real ,in] :: interpolated values

  • kobs [integer ,in] :: no. of station

  • kulout [integer ,in] :: unit used for writing

Called from

obsf_writehx(), obs_write()

Call to

obs_headelem_i()

function  obsspacedata_mod/obs_famexist(obsdat, family[, localmpi_opt])
Purpose

Check if any observations of a particular family are present in obsdat. Returned result will be the MPI local value if the optional argument local_mpi is set to .true., will be the MPI global value otherwise.

Arguments

Arguments
  • obsdat [struct_obs ,in] :: ObsSpaceData structure

  • family [character ,in] :: Obs family :localMPI_opt: return MPI local result; optional, default is .false.

Options

localmpi_opt [logical ,in,]

Return

obs_famexist [logical ] :: Logical indicating if ‘family’ is part of the list

Called from

bgck_bgcheck_conv(), inn_setupobs(), inn_computeinnovation(), omf_ominusf(), omf_ominusfens(), oer_setobserrors(), filt_backscatanisice(), filt_iceconcentration(), filt_topochemistry(), oop_tovs_nl(), oop_chm_nl(), osd_calcinflation(), osd_update_obsfile(), osd_obspostproc(), ose_setstaticerrorstddev(), ose_setompstddevch(), thn_thinsurface(), thn_thinraobs(), thn_thinaircraft(), thn_thinsatwinds(), thn_thingpsro(), thn_thingbgps(), thn_thinaladin(), thn_thincsr(), thn_thinscat(), thn_thintovs(), thn_thinhyper(), midas_analysiserroroi, midas_obsselection, midas_prepcma, midas_thinning

Call to

obs_numheader(), obs_getfamily()