As a complement to CHAGAL, ASCS is a program to make vertical cross sections of
fields from ALADIN or even ARPEGE.
Those who have been to the COMPARE/PYREX workshop must have seen many pictures
made by ASCS on the panels.
ASCS is a program written in fortran 90. It is very cheap in CPU and memory,
so that you can execute it interactively on Andante.
ASCS has been written by Nedjeljka BRZOVIC (Croatia) and Ryad EL KHATIB
(METEO-FRANCE). The graphic interface is using NCAR facilities.
The source code is available on Andante in the directory :
/u/m/mrpm/mrpm602/ascs
It is composed of the following source files :
- ASCS_CI.f
- ASCS_H4.f
- ASCS_MAIN.f (main program)
- ASCS_PLOT.f
- ASCS_V2.f
In case you wish to make a modified version of ascs, then you should modify
one or more of these source files, and execute the file
build_scs
which will make a new executable file named ascs.
ASCS is using NCAR compiled on 32 bits together with the "auxilary" Arpege/Aladin library
compiled on 64 bits. Porting the original program from Cray platform to HP workstation has
just consisted in assuming that the interface with the auxilary library is based on 64 bits
variables (real, integer and logical). Should the auxilary library change, then only the main
program ASCS_MAIN.f would need to be modified (locate the occurence of the parameter "KIND").
Remember that running ascs on Andante needs Aladin files in IEEE format.
ASCS needs 2 files in input :
- a file Aladin containing the surface geopotential,
the model levels geopotential, plus any other field on model levels.
All these fields should be in grid-points. - a namelists file defining the adress of the input file Aladin, and the
characteristics of the required cross sections (standard input).
ASCS provides 2 files in output : - a listing of the execution of the program (standard output)
- a gmeta file of a set of vertical cross sections. The local name is gmeta.
The output domain is considered to be a vertical plane above the portion
of a big circle of the geographical sphere.
Before making the picture, ASCS is processing horizontal bilinear interpolations,
then vertical linear interpolations.
- CFD : input data file name ; default is ’undefined’
- ZSLAT1 : latitude of the first cross section point (in degrees) ; default is 0.
- ZSLAT2 : latitude of the last cross section point (in degrees) ; default is 0.
- ZSLON1 : longitude of the first cross section point (in degrees) ; default is 0.
- ZSLON2 : longitude of the last cross section point (in degrees) ; default is 0.
- CVARFA : variable name to be plotted ; default is ’undefined’
- CPREF : prefix of the variable name to be plotted ; default is ’S’
- ZMIN1 : minimal contour level ; default is 0.
- ZMAX1 : maximal contour level ; default is 0.
- DIFF1 : contour interval ; default is 0.
- ZDELTA : vertical dz for the output grid ; default is 500.
- KOPLEV : number of levels of the output grid ; default is 31
- CLSURFG : field name of surface geopotential ; default is ’SPECSURFGEOPOTENTIEL’
- CLALTGE : field name of upper air geopotentials ; default is ’GEOPOTENTIEL’
- LVECTOR : .TRUE. for vector field, .FALSE. for scalar field ; default is .FALSE.
- LWIND : .TRUE. to rotate the wind toward the cross section line ;
In that case, the component parallel to the cross section is named CNV,
while the component perpendicular to the cross section is named CNU ;
.FALSE. to rotate the wind toward the geographic north.
In that case, the zonal component is named CNU,
while the meridional component is named CNV
N.B. : LWIND is used only if LVECTOR=.TRUE. ; to plot
one component of any vector relatively to the originating
grid, set LVECTOR=.FALSE. (as for a scalar field)
; default is .FALSE. - INN : number of output point on horizontal line of cross section ; default is 48
- NULOUT : output unit number ; default is 0
- CNU : field name of the x-component of vector field (only used if LVECTOR)
; default is ’WIND.U.PHYS’ - CNV : field name of the y-component of vector field (only used if LVECTOR)
; default is ’WIND.V.PHYS’ - CLTITLB : title ; default is ’CROSS SECTION NAME’
First, run Fullpos to make the input datafile for cross-sections of potential temperature and
wind.
Excerpt of namelist for a model with 24 levels :
&NAMFPC
CFPFMT=’MODEL’,
LFPUVDZ=.T.,
CFP3DF(1)=’WIND.U.PHYS’,
CFP3DF(2)=’WIND.V.PHYS’,
CFP3DF(3)=’TEMPE_POTENT’,
CFP3DF(4)=’GEOPOTENTIEL’,
CFP2DF(1)=’SPECSURFGEOPOTENTIEL’,
LFITS=.FALSE.,
LFIT2D=.FALSE.,
NRFP3S=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,
&END
&NAMFPD
&END
&NAMFPG
&END
&NAMAFN
CNU=’WIND.U.PHYS’,
CNV=’WIND.V.PHYS’,
&END
Let us name this file ./ppfile
Then, type the namelists file for ASCS ; example (cross section over Pyrenees) :
cat <
&NAML
CLTITLB=’EXAMPLE - B1B4’
CFD=’./ppfile’,
KOPLEV=1300,
ZDELTA=10.,
ZSLAT1=44.19,
ZSLAT2=41.2,
ZSLON1=0.78,
ZSLON2=-0.2,
CPREF(1)=’S’,
CVARFA(1)=’TEMPE_POTENTIELLE’,
ZMIN1=250.,
ZMAX1=400.,
DIFF1=2.,
NULOUT=6,
INN=99,
&END
&NAML
CLTITLB=’EXAMPLE - B1B4’
CFD=’./ppfile’,
KOPLEV=1300,
ZDELTA=10.,
ZSLAT1=44.19,
ZSLAT2=41.2,
ZSLON1=0.78,
ZSLON2=-0.2,
CPREF(1)=’S’,
CVARFA(1)=’WIND.U.PHYS’,
CVARFA(2)=’WIND.V.PHYS’,
CNU=’WIND.U.PHYS’,
CNV=’WIND.V.PHYS’,
ZMIN1=-100.,
ZMAX1=100.,
DIFF1=1.,
LWIND=.TRUE.,
LVECTOR=.T.,
NULOUT=6,
INN=99,
&END
&NAML
CLTITLB=’EXAMPLE - B1B4’
CFD=’./ppfile’,
KOPLEV=1300,
ZDELTA=10.,
ZSLAT1=44.19,
ZSLAT2=41.2,
ZSLON1=0.78,
ZSLON2=-0.2,
CPREF(1)=’S’,
CVARFA(1)=’WIND.V.PHYS’,
CVARFA(2)=’WIND.U.PHYS’,
CNU=’WIND.U.PHYS’,
CNV=’WIND.V.PHYS’,
ZMIN1=-100.,
ZMAX1=100.,
DIFF1=1.,
LWIND=.TRUE.,
LVECTOR=.T.,
NULOUT=6,
INN=99,
&END
FIN
Finally, you can execute ascs as follows :
/u/m/mrpm/mrpm602/ascs/ascs namascs
You will get a listing file on unit 6 and a GMETA file named gmeta.