Home page  
Home   Your Room   Login   Contact   Feedback   Site Map   Search:  
Discover this product  
About Us
Overview
Getting here
Committees
Products
Forecasts
Order Data
Order Software
Services
Computing
Archive
PrepIFS
Research
Modelling
Reanalysis
Seasonal
Publications
Newsletters
Manuals
Library
News&Events
Calendar
Employment
Open Tenders
   
Home > Research > Ifsdocs > OBSERVATIONS >  
   

IFS documentation Front Page


Table of contents
Chapter 1. Non-IFS observation processing (OBSPROC): General overview

Chapter 2. Observations: Types, variables and error statistics

Chapter 3. CMA creation (MAKEMA)

Chapter 4. The FEEBACK task

Chapter 5. The TOOLS task

Chapter 6. Central-memory array (CMA) structure/format

Chapter 7. BUFR feedback data structure/format

Chapter 8. SIMULATED-observations data structure/format

Chapter 9. NAMELISTS

Chapter 10. Processing of scatterometer data

REFERENCES
 
  Next Section
Previous Section


4.2 Calling tree structure




After invoking the OBSPROC, via program AAOBPPRO, the subroutine CNTOBSPR is called. As explained in Section 1.5, after finding out that the FEEDBACK task is requested, the CNTOBSPR branches itself to that section (Fig. 1.3 ).


If the FEEDBACK task is to be carried out in a parallel mode, subroutine PREPROC_MPP_BUFDBACK is called first; this routine performs a number of activities. These activities are mainly concerned with preparing for the matchup of the ECMA and the CCMA and for later collection of output BUFR feed-back data. This is achieved by a number of calls to the OBSORT subroutines. The next step is to call master feed-back routine BUFDBACK (more details in the next section).


Once the BUFDBACK has finished and handed back the control to the CNTOBSPR the only thing left to do is some tiding up. In the single-task case this simply consists of closing the remaining files. However, in the parallel case subroutine POSTPROC_MPP_BUFDBACK is called. It is via this subroutine, which in turn calls several OBSORT subroutines, that the gathering of the BUFR-feed-back data scattered across PEs is done. The aim of collecting BUFR-feed-back data is to output as many BUFR files as there were in the input when the assimilation cycle started.


4.2.1 BUFDBACK




BUFDBACK flow diagram is shown in Figure 4.1. The main purpose of the BUFDBACK subroutine is threefold:
1)   to initialize various FEEDBACK-task parameters and switches,
2)   to print out the chosen run setup, and
3)   to invoking either the single-task (BFDBASIN) or the parallel (BFDBAMPP) version of the FEEDBACK task.


The initialization of parameters and switches consists of defining:
  •   numerical limits (SULIM);
  •   variables' numbers (SUVNMB);
  •   level/layers structure (SULEVLAY);
  •   CMA observation and code types (SUCMOCTP);
  •   BUFR observation types and subtypes (SUBUOCTP);
  •   observation events (SUEVENTS);
  •   observation flags (SUFLTXT);
  •   various observation processing codes (SUCODES);
  •   BUFR data structure and format (SETBUFR);
  •   CMA data structure and format (SUCMA);
  •   valid satellite ids (SUSATID);
  •   satellite retrieval types (SUSATRET);
  •   appropriate setting for BUFR software (BUPRQ).


Then, the chosen run set-up is printed by calling the PREAMB subroutine. Finally, either the BFDBAMPP or BFDBASIN subroutine is called.
Figure 4.1 Subroutine BUFDBACK Flow Diagram



4.2.2 BFDBAMPP and BFDBASIN




The idea in both of these routines is to prepare for the actual scanning of the ECMA file, during which all relevant information is taken, and then appended onto the input initial BUFR feed-back (output of the MAKECMA task). Both subroutines are divided in 5 sections.:
1)   preparation,
2)   initialization of input/output files,
3)   creation of BUFR feed-back,
4)   finishing off input/output file processing, and
5)   returning to the caller.


BFDBAMPP subroutine flow diagram is shown in Figure 4.2.
Figure 4.2 Subroutine BFDBAMPP Flow Diagram



The preparation section is appreciably different for parallel and single-task mode. In the single-task case this section is non-existent. However, in the parallel case the provision a match-up of the ECMA and the CCMA is needed; this is carried out by calling the OBSORT subroutine LIB_OBSORT. This is called the MATCHUP sub-task. As explained earlier, the MAKECMA task produces the ECMA for the IFS screening run. On the other hand, the IFS screening selects only a subset of data (both in terms of reports and pieces of information) and passes them as CCMA to the IFS minimization run. The CCMA is about 1/10 of the ECMA. Once the analysis has finished there is a need to update the original ECMA with all relevant information stored in the CCMA. This update is carried out by calling the LIB_OBSORT with the match-up options chosen.


In the second step (input/output file initialization) the same subroutines as in the MAKECMA task are called. Thus, BUFR input/output files are initialized by the INIIBUFF and INIOBUFF subroutines, the CMA file is opened up (if at all) by INICMAIO and diagnostic/debugging files are initialized by calling INIDEBDE, INIDEBEN and INIDEBRE.


Third step is to perform the actual feed-back. In order to do this the control is handed down to the main data-scanning subroutine SCANCMA (more details in the next subsection). Upon its completion the control is returned so that the diagnostics print-out (CAMSTA and BUFRSTA) and the closing of files can take place.


It is worth explaining here in more detail what is happening with CMA data at this stage, in relation whether it is a parallel or single-task run. In the single-task case the CMA file is initialized by calling the INICMAIO subroutine, which in turn may call the CMALOAD subroutine if the CMA data are to be memory resident (the NAMCMA namelist switch LICMAMER=.T.). However, in a parallel run with the MATCHUP option (LMATCHUP=.T.) the CMA files (ECMA and CCMA) would have already been read by the MATCHUP sub-task and the ECMA updated. Within the MATCHUP context the updated ECMA could be written out and/or passed down, as an internal array, for further use. The NAMRUN namelist switch LFWRICMA controls this option. If the ECMA was written out, its initialization would be very similar as the one in the single-task case. On the other hand, if it is passed as an internal array, only the ECMA DDRs are handled explicitly at this stage. There is another NAMRUN namelist switch LFREACMA, which can be used to read the updated ECMA rather then to use internally available one.


4.2.3 SCANCMA




The aim of this subroutine, which flow diagram is shown in Figure 4.3 and Figure 4.4, is to loop over the updated ECMA and the initial BUFR feed-back reports (with one to one correspondence) and to pass from CMA all data assimilation observation related informations to BUFR. SCANCMA is divided into 6 logical sections:
1)   The initial pre-set is carried out. This consists of a number of steps. For example, it prepares for a possible BUFR feed-back compression, prints some messages, initializes some local variables etc.. Finally, a loop over CMA time slots is started.
2)   A loop over the CAMA and BUFR reports is started. A pair of CMA and BUFR reports are then read in. Regardless whether the ECMA and/or BUFR may be file- or memory-resident, reports are made available by calling the GETICMAR (to get a CMA report) and GETIBUFR (to get a BUFR report) subroutines. These reports are then checked to see if they correspond to each other.
3)   After establishing the CMA-BUFR correspondence, some input BUFR-report information is saved, since they are needed later for BUFR encoding.
4)   Depending which CMA observation type is considered, SCANCMA branches off to one of the basic feed-back observation-handling routines. It is in these routines, or in those that they may be calling, that the actual feed-back is done (more details in the next subsection). These routines are:
  •   SYNOPOUT (SYNOP);
  •   AIREPOUT (AIREP);
  •   SATOBOUT (SATOB);
  •   DRIBUOUT (DRIBU);
  •   TEMPOUT (TEMP);
  •   PILOTOUT (PILOT);
  •   HRTOVOUT (high resolution TOVS);
  •   RAD1COUT (level 1C);
  •   TOSAOUT (standard SATEM/TOVS);
  •   SSMISOUT (SSMI);
  •   PAOBOUT (POAB); and
  •   SCATSOUT (SCATTEROMETER).
  There is one routine for each CMA observation type, as their names imply, (with the exception of SATEMs).
5)   After the control is returned from one of the basic feed-back routines it is checked whether the report is for BUFR compression. If so, subroutine PREPLCOM is called to add it onto a temporary storage which, when full, is passed to subroutine ENCPFM for encoding. ENCPFM is just a cover routine with a further call to encode the compressed BUFR data. At the present time, BUFR compression is applied for TOVS, SSMI, ATOVS and SCATTEROMETER data only. A BUFR report not meant to be compressed is encoded straight away using the BUFR encoder routine ENCBUFR. The encoded BUFR message is then added either onto a file or to an array, depending on whether the output feed-back BUFR is file- or memory-resident. This is done by calling the subroutine ADDBUFRR. At this stage a few diagnostics parameters/arrays are updated and, if required, reports printed.
6)   Before finishing the processing in SCANCMA, the temporary storage (for the BUFR feed-back reports that are meant to be compressed) is checked again and any remaining reports compressed and encoded.


BUFR feed-back compression is controlled by a number of switches and parameters. There are 4 switches and 12 adjustable parameters; 3 for TOVS, 3 for SSMI, 3 for ATOVS and 3 for SCATTEROMETER data. Switches are held in the NAMFDBAC namelist, whereas parameters are held in the NAMBUFR namelist. These switches are: LBUFRCOM, LTOVSCOM, LSSMICOM and LSCATCOM. LBUFRCOM is the master compression switch, whereas the others control compression of TOVS/ATOVS, SSMI and SCATTEROMETER data. The idea with the adjustable parameters is to be able to adjust them from time to time. They control: number of elements in the BUFR report, the number of reports (packet size) to form one BUFR message and the number of platforms (station id's) to be compressed. The TOVS compression-related parameters are NPTSELM, NPTSPKT and NPTSPFM, whereas the ATOVS compression-related parameters are NPATSELM, NPATSPKT and NPATSPFM. The SSMI parameters are: NPSMELM, NPSMPKT and NPSMPFM and the SCATTEROMETER parameters are NPSCELM, NPSCPKT and NPSCPFM.
Figure 4.3 Subroutine SCANCMA Flow Diagram

Figure 4.4 Subroutine SCANCMA BUFR Observation Type Branch Off Flow Diagram






4.2.4 Basic feed-back handling routines




Basic feed-back handling routines, listed in the previous sub-section more or less have a very similar strategy (see Figure 4.4).


After some initial pre-set, information related to a particular report as a whole is searched for, and the feed-back appended onto to a BUFR report by calling the REPEVST subroutine. The report feed-back information comprises:
(a)   flags;
(b)   events 1;
(c)   blacklist events;
(d)   events 2; and
(e)   status.


Whether they are fed back at all is controlled by the master switch LFBREVST from the NAMFDBAC namelist. Feed-back of reports events no 1, blacklist events, events no. 2 and status is controlled by further four NAMFDBAC namelist switches: LFBREVE1, LFBRBLEV, LFBREVE2 and LFBRSTAT, respectively.


However, in the case of TOVS, ATOVS, SCATTEROMETER and SSMI observations additional subroutines TOVSPRES, ATOVSPRES, PRESCAFB and PRSSMIFB are called first at this stage. TOVSPRES, ATOVSPRES and PRSSMIFB deal with feeding back the `pre-SAT'/`pre-SSMI' and 1D VAR related information stored mostly in the optional part of the TOVS, ATOVS and SSMI CMA-report header. This is controlled by LPRESAFB, LPREASFB and LPRESSFB switches from the NAMFDBAC namelist. In the case of SCATTEROMETER data it is a different set of informations to deal with and switch LPRESCFB is used for that.


The next step is to feed-back analysis variables. Depending on observation type, a different subroutine may be called. In the case of the conventional single-level reports FINSINP is called, whereas for the conventional multi-level reports FINADDM is called. Thus, SYNOPOUT, AIREPOUT, SATOBOUT, DRIBUOUT and PAOBOUT would be calling FINSINP, whereas TEMPOUT and PILOTOUT would be calling FINADDM. However, in the case of high resolution TOVS (handling routine TOSAOUT), ATOVS or standard SATEM/TOVS (handling routine TOSAOUT) further granulation takes place by calling the TOVSTHPW, ATOVSTHPW and RADIAOUT subroutines. In the case of SCATTEROMETER and SSMI reports, the feeding back of the analysis variables is done in-line; hence, SSMISOUT and SCATSOUT have no further calls.


Finally, in the last step the analysis variables' flags, events, status, error statistics, departures, etc. are fed back. This is achieved via the DATESFD subroutine call (see next subsection), after which the control is handed back to the calling subroutine.


4.2.5 DATESFD


Figure 4.5 Subroutine DATESFD Flow Diagram



This subroutine, for which the flow diagram is shown in Figure 4.5, deals with feeding back several different types of informations:
(a)   analysis quality control flags are fed back by calling the worker DATUMFLG subroutine,
(b)   analysis variables' events are fed back by calling the DATUMEVS subroutine,
(c)   analysis variables' status is dealt with by calling the DATUMSTA subroutine,
(d)   analysis variables' quality control constants are fed back via a call to the QCCON12 subroutine,
(e)   analysis variable's error statistics are dealt with by calling the DATUMEST subroutine,
(f)   analysis variables' difference statistics (departures) are handled by calling a few extra routines
  •   first-guess departures are handled by the FGNSDEV subroutine,
  •   depending on whether it is a feed-back for the incremental or for the standard variational run, the subroutine INCNSDEV or STDNSDEV may be called, respectively.


Furthermore, there are a number of switches which control what flags, events departures etc. are fed back. All these switches are held in the NAMFDBAC namelist.


The feed-back of analysis quality-control flags is controlled by six switches. The master switch is LFBDFLAG and it controls whether to feed back the flags at all. The other five switches control the feed-back of a particular set of flags. These sets of flags are the first-guess, the analysis, the blacklist, the departure and the final-check flags. Their corresponding switches are LFBDFGFL, LFBDANFL, LFBDBLFL, LFBDDEFL and LFBDFIFL.


The feed-back of analysis variables' events and status is controlled by five switches; these are LFBDEVST, LFBDEVE1, LFBDBLEV, LFBDEVE2, LFBDSTAT. The master switch is LFBDEVST, whereas the others control the feed-back of the variables' events no. 1, the blacklist events, the variables' events no. 2 and the variables' status, respectively.


For the analysis variables' quality-control constants the feed-back is controlled by LFBDQCCO switch.


When it comes to feeding back the analysis variables' error statistics, five switches are used. Again, there is a master switch (LFBDERRS) and a switch for each type of observation-error statistics. Thus, the feed-back of the final, prescribed, persistence, representativeness and first-guess errors is controlled by LFBDFIER, LFBDOBER, LFBDPEER and LFBDREER switches, respectively.


The feed-back of departures is handled by nine switches. However, what departures may be available depends on whether it is an incremental or a non-incremental variational analysis. There is only one master switch (LFBDDEPT), regardless of the variational analysis type. Both types have first-guess and analysis departures, and they are handled by the LFBDFGDE and LFBDANDE switches, respectively. Additionally, the incremental variational analysis has four `update' departures: very initial; initial hi-resolution; initial low-resolution; and final low-resolution departures, and they are controlled by LFBDUIDE, LFBDUHDE, LFBDULID, LFBDULFD, respectively. Furthermore, in both the incremental and the standard cases some additional departures (if present) may be fed back too. These additional departures are those which may have been saved at various stages in the minimization process and their feed-back is controlled by LFBDSIDE switch.





Next Section
Previous Section



 

Top of page 16.04.2002
 
   Page Details         © ECMWF
shim shim shim