Postprocessing with FULL-POS
Introduction
FULL-POS is a powerful postprocessing package, which is part of the common ARPEGE/IFS cycle. FULL-POS is documented by
- Yessad (2011): This documentation describes the software FULL-POS doing post-processing on different kind of vertical levels. In particular, post-processable variables and organigramme are given. Some aspects of horizontal and vertical interpolators (which may be used in some other applications) are also described.
- ykfpos38.pdf: FULL-POS in cycle 38
- El Khatib (2002): Older documentation with a link to an old FULL-POS website.
FULL-POS is a special configuration (9xx) of the full model for setup and initialization. In other words it is a 0 hour forecast, with extra namelist settings for variables to (post)process and to write out. When generating initial or boundary files we are calling a special configuration of FULL-POS, e927.
ecf/config_exp.h
The use of FULL-POS is controlled by the POSTP
variable inecf/config_exp.h
:
POSTP="inline" # Postprocessing by Fullpos (inline|offline|none).
# See Setup_postp.pl for selection of fields.
# inline: this is run inside of the forecast
# offline: this is run in parallel to the forecast in a separate task
inline
is the default which means FULL-POS postprocessing is called from the forecast model as it runs. If you select offline
the model is called independently of the running forecast model using the forecast model output files as inputs to be postprocessed. By selecting none
no FULL-POS postprocessing will be carried out.
Output frequency by FULL-POS is controlled by PWRITUPTIMES
, FPOUTINT
and FREQ_RESET
:
# Postprocessing times (space separated list)
PWRITUPTIMES="03 06 09 12 15 18 21 24 30 36 42 48 54 60"
FPOUTINT="-1" # Regular interval if > 0. Not used if <= 0.
FREQ_RESET=3 # Reset frequency of max/min values in hours, controls NRAZTS
FULL-POS
The use of FULL-POS is controlled by the following namelists: NAMFPPHY
, NAMFPDY2
, NAMFPDYP
, NAMFPDYH
, NAMFPDYI
, NAMFPDYV
, NAMFPDYT
and NAMFPDYS
. These namelists can be used to make an accurate list of post- processed fields. It is possible to call FULL-POS when running the model. In such a configuration we can configure HARMONIE to write some parameters with a different frequency than the standard historical files produced.
However, with inline
postprocessing, it is possible to get, at each post-processing time step, exactly the fields you wish. In this case, you have to make other namelists file which will contain the selection of the fields you wish to get. First, you have to set in NAMCT0
the variable CNPPATH
as the directory where the selection files will be. Under this directory, the name of a selection file must be xxtDDDDHHMM
, where DDDDHHMM
specifies the date/time of the post-processing time step.
The management of FULL-POS and the creation of selection files is made easier for the user by scr/Select_postp.pl
.
Parameter selection
Some of the more relevant entries in this script:
- CFP2DF: names of the 2D dynamics fields to be post-processed. Names have at maximum 16 characters. By default CFP2DF contains blanks (no 2D dynamical field to post-process).
- CFP3DF: names of the 3D dynamics fields to be post-processed. Names have at maximum 12 characters. By default CFP3DF contains blanks (no 3D dynamical field to post-process).
- CFPPHY: names of the physical fields to be post-processed. Names have at maximum 16 characters. By default CFPPHY contains blanks (no physical field to post-process).
- CFPXFU: names of the instantaneous fluxes fields to be post-processed. Names have at maximum 16 characters. By default CFPXFU contains blanks (no instantaneous fluxes field to post-process).
- CFPCFU: names of the cumulated fluxes fields to be post-processed. Names have at maximum 16 characters. By default CFPCFU contains blanks (no cumulated fluxes field to post-process).
You can define the levels you wish to output using the following variable:
- NRFP3S: model levels to postprocess
- RFP3H: height above ground levels to postprocess
- RFP3P: pressure levels to postprocess
- RFP3PV: PV levels to postprocess
- RFP3I: temperature levels to postprocess
Add new output
This section provides a simple example on how to add a new parameter/vertical level for postprocessing in scr/Select_postp.pl
.
To add new "height above ground" output at 150m to the FULL-POS output, two changes are required:
- Add the new height, 150., to the
RFP3H
array - Add level array number to the
@namfpdyh_lev
level selection
cd $HOME/hm_home/levexp
$PATH_TO_HARMONIE/config-sh/Harmonie co scr/Select_postp.pl
cp scr/Select_postp.pl scr/Select_postp.pl.ori
### edit scr/Select_postp.pl
diff scr/Select_postp.pl scr/Select_postp.pl.ori
83c83
< RFP3H => ['20.','50.','100.','150.','250.','500.','750.','1000.','1250.','1500.','2000.','2500.','3000.'],
---
> RFP3H => ['20.','50.','100.','250.','500.','750.','1000.','1250.','1500.','2000.','2500.','3000.'],
132c132
< @namfpdyh_lev = (1,2,3,4,5,6,7,8,9,10,11,12,13) ;
---
> @namfpdyh_lev = (1,2,3,4,5,6,7,8,9,10,11,12) ;
Expert users
In the FULL-POS namelist NAMFPC
(variables explained in src/arp/module/yomfpc.F90
), the variables are placed into different categories:
LFPCAPEX
: if true XFU fields used for CAPE and CIN computation (withNFPCAPE
).LFPMOIS
: month allowed for climatology usage:- .F. => month of the model (forecast).
- .T. => month of the file.
NFPCLI
: usage level for climatology:- 0: no climatology
- 1: orography and land-sea mask of output only
- 2: all available climatological fields of the current month
- 3: shifting mean from the climatological fields of the current month to the ones of the closest month
NFPCAPE
: kind of computation for CAPE and CIN:- 1 => from bottom model layer
- 2 => from the most unstable layer
- 3 => from mto standard height (2 meters) as recomputed values
- 4 => from mto standard height (2 meters) out of fluxes (for analysis)
- CFPFMT: format of the output files, can take the following values:
- ’MODEL’ for output in spherical harmonics.
- ’GAUSS’ for output in grid-point space on Gaussian grid (covering the global sphere).
- ’LELAM’ for output on a grid of kind
ALADIN
(spectral or grid-point coefficients). - ’LALON’ for a grid of kind "latitudes * longitudes".
- CFPDOM: names of the subdomains. Names have at maximum 7 characters.
- If
CFPFMT=’GAUSS’
or’LELAM’
only one output domain is allowed. - If
CFPFMT=’LALON’
the maximum of output subdomains allowed is 10.
CFPDOM(1)=’000’
andCFPDOM(i)=’’ for i>1
. - If
L_READ_MODEL_DATE
: if:.TRUE.
read date from the model
The default FA-names for parameters in different categories can be found from src/arp/setup/suafn1.F90
L687.
It's worth mentioning some of the variables postprocessed by FULL-POS
- True vertical velocity w [VW]. (for NH ALADIN only).
- Potential vorticity P V [PV].
- Pressure coordinate vertical velocity ω [VV].
- Eta coordinate vertical velocity η [ETAD].
- Absolute vorticity ζ + f [ABS].
- Relative vorticity ζ [VOR].
- Divergence D [DIV].
- Satellite equivalents
- MSAT7 MVIRI channels 1 and 2 ([MSAT7C1] and [MSAT7C2]).
- MSAT8 MVIRI channels 1 to 8 ([MSAT8C1] to [MSAT8C8]).
- MSAT9 MVIRI channels 1 to 8 ([MSAT9C1] to [MSAT9C8]).
- GOES11 IMAGER channels 1 to 4 ([GOES11C1] to [GOES11C4]).
- GOES12 IMAGER channels 1 to 4 ([GOES12C1] to [GOES12C4]).
- MTSAT1 IMAGER channels 1 to 4 ([MTSAT1C1] to [MTSAT1C4]).
Problems
Problems may be encountered with FULL-POS when running on large domains. Here are some things to look out for:
- Increase the
MBX_SIZE
if you run out of MPI buffer space. - Increase number of cores if you run out of memory.
- Make sure
NFPROMA
andNFPROMA_DEP
are small and equal toNPROMA
. - Set
NSTRIN=NSTROUT=NPROC
innampar0
if one of the above mentioned doesn't help.