burpRead_mod

link to source code

Dependency Diagrams:

burpRead_mod.svg

Direct Dependency Diagram

burpRead_mod_rev.svg

Reverse Dependency Diagram

Description

MODULE burpRead_mod (prefix=’brpr’ category=’3. Observation input/output’)

Purpose

To read and update BURP observation files. Data is stored in obsSpaceData object.

Quick access

Routines

brpacma_nml(), brpr_addcloudparametersandemissivity(), brpr_addelementstoburp(), brpr_burpclean(), brpr_gettyperesume(), brpr_readburp(), brpr_updateburp(), brpr_updatemissingobsflags(), find_index(), getburpreportaddresses(), getelementidsread(), isflagblock(), isgroupeddata(), isobsblock(), setinfotomissing(), write_al(), write_body(), write_header(), write_qi(), writeinfo()

Needed modules

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

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

  • burp_module

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

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

  • earthconstants_mod: MODULE earthConstants_mod (prefix=’ec’ category=’8. Low-level utilities and constants’)

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

  • obsutil_mod: MODULE obsUtil_mod (prefix=’obsu’ category=’3. Observation input/output’)

  • obsvariabletransforms_mod: MODULE obsVariableTransforms_mod (prefix=’ovt’ category=’4. Data Object transformations’)

  • obsfilter_mod: MODULE obsFilter_mod (prefix=’filt’ category=’5. Observation operators’)

  • tovsnl_mod: MODULE tovsNL_mod (prefix=’tvs’ category=’5. Observation operators’)

  • kdtree2_mod: MODULE kdTree2_mod (prefix=’kdtree2’ category=’8. Low-level utilities and constants’)

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

Variables

Subroutines and functions

function  burpread_mod/brpr_gettyperesume()
Return

brpr_gettyperesume [character ]

Called from

midas_prepcma

subroutine  burpread_mod/brpr_updateburp(obsdat, familytype, brp_file, filenumb)
Purpose

To update variables relative to assimilation in burp files

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

  • familytype [character ,in] :: type of family(‘UA’,’SF’,’AI’,’SW’,’TO’, …)

  • brp_file [character ,in] :: name of burp file

  • filenumb [integer ,in]

Called from

brpf_updatefile()

Call to

brpacma_nml(), utl_abort(), obs_numheader(), obs_headelem_i(), find_index(), obs_elem_c(), obs_bodyelem_i(), obs_bodyelem_r(), obs_columnactive_rb(), kdtree2_destroy(), kdtree2_create(), kdtree2_r_nearest(), codtyp_get_codtyp()

subroutine  burpread_mod/brpacma_nml(nml_section[, besilent_opt])
Arguments

nml_section [character ,in]

Options

besilent_opt [logical ,in,]

Called from

brpr_updateburp(), brpr_readburp(), getelementidsread()

Call to

utl_abort()

subroutine  burpread_mod/brpr_readburp(obsdat, familytype, brp_file, filenumb)
Purpose

Select variables relative to airs in burp file. Read burp file.

Arguments
  • obsdat [struct_obs ,inout]

  • familytype [character ,in]

  • brp_file [character ,in] :: name of burp file

  • filenumb [integer ,in]

Called from

brpf_readfile()

Call to

brpacma_nml(), utl_abort(), ovt_setup(), obs_getnclassavhrr(), obs_getnchanavhrr(), write_body(), write_header(), obs_numheader(), obs_headset_i(), obs_columnactive_ih(), obs_setfamily(), obs_headelem_i(), writeinfo(), setinfotomissing(), write_qi(), write_al(), obs_columnactive_rh()

function  burpread_mod/write_body(obsdat, famtyp, elev, vertcoord, vcoord_type, obsvalue, qcflag, nele, nval, liste_ele, dataqcflaglev, datacloudfraclev, rolat, rolon[, surf_emis_opt[, biascorrection_opt]])
Arguments
  • obsdat [struct_obs ,inout]

  • famtyp [character ]

  • elev [real ]

  • vertcoord (*) [real ,in,allocatable]

  • vcoord_type [integer ,in]

  • obsvalue (*,*) [real ,in,allocatable]

  • qcflag (*,*) [integer ,in,allocatable]

  • nele [integer ]

  • nval [integer ]

  • liste_ele (*) [integer ]

  • dataqcflaglev (*) [integer ,in]

  • datacloudfraclev (*) [integer ,in]

  • rolat (*) [real ,in]

  • rolon (*) [real ,in]

Options
  • surf_emis_opt (*) [real ,in,allocatable]

  • biascorrection_opt (*,*) [real ,in,allocatable]

Return

write_body [integer ]

Called from

brpr_readburp()

Call to

obs_numheader(), obs_numbody(), utl_abort(), obs_bodyset_i(), obs_columnactive_rb(), filt_bufrcodeassimilated(), ovt_bufrcodeskipped(), ovt_getdestinationbufrcode(), ovt_iswindobs()

subroutine  burpread_mod/write_header(obsdat, stnid, lat, lon, date, time, codtyp, status, elev, filenumb[, phase_opt])
Arguments
  • obsdat [struct_obs ,inout]

  • stnid [character ,in]

  • lat [real ,in]

  • lon [real ,in]

  • date [integer ,in]

  • time [integer ,in]

  • codtyp [integer ,in]

  • status [integer ,in]

  • elev [real ,in]

  • filenumb [integer ,in]

Options

phase_opt [integer ,in,]

Called from

brpr_readburp()

Call to

obs_numheader(), obs_headset_i(), obs_set_c(), obs_columnactive_ih()

subroutine  burpread_mod/write_qi(obsdat, qi1value, qi2value, mtvalue, lsvalue, havalue, gavalue)
Arguments
  • obsdat [struct_obs ,inout]

  • qi1value [integer ,in]

  • qi2value [integer ,in]

  • mtvalue [integer ,in]

  • lsvalue [integer ,in]

  • havalue [integer ,in]

  • gavalue [integer ,in]

Called from

brpr_readburp()

Call to

obs_numheader(), obs_headset_i()

subroutine  burpread_mod/write_al(obsdat, azimuth)
Arguments
  • obsdat [struct_obs ,inout]

  • azimuth [real ,in]

Called from

brpr_readburp()

Call to

obs_numheader()

subroutine  burpread_mod/writeinfo(obsdat, famtyp, rinfo, liste_info, nele_info)
Purpose

Write values in obsSpaceData related to the info block

Arguments
  • obsdat [struct_obs ,inout]

  • famtyp [character ,in]

  • rinfo (nele_info) [real ,in]

  • liste_info (nele_info) [integer ,in]

  • nele_info [integer ,in,]

Called from

brpr_readburp()

Call to

obs_numheader(), obs_headelem_i(), utl_abort(), obsu_cvt_obs_instrum(), obs_headset_i(), obs_columnactive_ih(), obs_columnactive_rh()

subroutine  burpread_mod/setinfotomissing(obsdat)
Purpose

Set the obsSpaceData column related to the info block with missing values

Arguments

obsdat [struct_obs ,inout]

Called from

brpr_readburp()

Call to

obs_numheader(), obs_headset_i(), obs_columnactive_ih(), obs_columnactive_rh()

function  burpread_mod/find_index(list, element)
Arguments
  • list (*) [integer ,in]

  • element [integer ,in]

Return

find_index [integer ]

Called from

brpr_updateburp()

subroutine  burpread_mod/brpr_addcloudparametersandemissivity(obsspacedata, fileindex, burpfile)
Purpose

Add to the input BURP file number fileIndex cloud parameters and emissivity.

Arguments
  • obsspacedata [struct_obs ,inout] :: obsSpacedata structure

  • fileindex [integer ,in] :: number of the burp file to update

  • burpfile [character ,in]

Called from

obsf_addcloudparametersandemissivity()

Call to

obs_getheaderindex(), obs_headelem_i(), tvs_isidburphyperspectral(), utl_abort(), obs_headelem_r(), tvs_changedstypvalue(), obs_bodyelem_r(), tvs_isidburpinst(), tvs_isinstrumallskyttassim(), tvs_getinstrumentid(), codtyp_get_name(), tvs_isinstrumallskyhuassim()

subroutine  burpread_mod/brpr_updatemissingobsflags(burpfile)
Purpose

Open burp file and set missing data flags to 2048.

Arguments

burpfile [character ,in]

Called from

obsf_updatemissingobsflags()

subroutine  burpread_mod/brpr_addelementstoburp(inputfilename, familytype[, besilent_opt])
Purpose

to add element(s) for bias correction to data block of DERIALT BURP file

Arguments
  • inputfilename [character ,in]

  • familytype [character ,in]

Options

besilent_opt [logical ,in,]

Called from

obsf_readfiles()

Call to

utl_isnamelistpresent(), utl_abort(), codtyp_get_name(), tvs_getinstrumentid(), tvs_isinstrumusingclw(), tvs_isinstrumusinghydrometeors(), tvs_isinstrumallskyttassim(), tvs_isinstrumallskyhuassim(), isobsblock(), isflagblock()

subroutine  burpread_mod/brpr_burpclean(inputfilename, familytype)
Purpose

to remove observations that are flagged not to be assimilated

Arguments
  • inputfilename [character ,in]

  • familytype [character ,in]

Called from

obsf_cleanobsfiles()

Call to

getburpreportaddresses(), isgroupeddata(), getelementidsread(), isflagblock(), isobsblock()

subroutine  burpread_mod/getburpreportaddresses(filename, addresses)
Purpose

Initial scan of file to get number of reports. Store address of each report in array addresses(numReports).

Arguments
  • filename [character ,in]

  • addresses (*) [integer ,inout,allocatable]

Called from

brpr_burpclean()

function  burpread_mod/isgroupeddata(burpfile, address)
Arguments
  • burpfile [burp_file ,inout]

  • address (*) [integer ,in]

Return

isgrouped [logical ]

Called from

brpr_burpclean()

Call to

utl_abort()

function  burpread_mod/isflagblock(familytype, btyp)
Arguments
  • familytype [character ,in]

  • btyp [integer ,in]

Return

isflag [logical ]

Called from

brpr_addelementstoburp(), brpr_burpclean()

function  burpread_mod/isobsblock(familytype, btyp)
Arguments
  • familytype [character ,in]

  • btyp [integer ,in]

Return

isobs [logical ]

Called from

brpr_addelementstoburp(), brpr_burpclean()

subroutine  burpread_mod/getelementidsread(familytype, elementids)
Arguments
  • familytype [character ,in]

  • elementids (*) [integer ,out,allocatable]

Called from

brpr_burpclean()

Call to

brpacma_nml(), utl_abort()