PROJETO FINEP / RAMS
FASE – ENGENHARIA REVERSA
"RELATÓRIO DO PROJETO BÁSICO"
FINEP / RAMS PROJECT
REVERSE ENGINNEERING PHASE
"BASIC DESIGN REPORT"
Contents
1. INTRODUCTION *
1.1. Scope *
1.2. References *
1.3. Definitions *
2. DATA FLOW DIAGRAMS *
2.1. Context Diagram *
2.2. RAMS *
2.3. Atmospheric Model *
2.4. Prognostic Model *
2.5. Meteorological Functions *
2.6. Dynamics Functions *
3. DATA STRUCTURES *
A. ANNEX *
A.1. Subroutines versus Variables modified (declared
in Commons) *
A.2. Subroutines versus Variables modified (not declared
in Common) *
A.3. Subroutines versus Variables passed as Arguments
*
INTRODUCTION
This documment has the objective to represent a functional
model of Regional Atmospheric
Modeling System (RAMS), based on Structured Analysis,
see reference /1/.
It was elaborated by a CASE tool, based on the documments
related in /2/, /3/, /4/, /5/ and /6/.
Scope
This document is organized into :
-
Chapter 2 - contains a set of data flow diagram which
represents the RAMS and its levels of decomposition
-
Chapter 3 - contains reports which describe the data
structure of each data flow and data store, represented on DFD.
-
Annex - contains reports related to subroutines and
which variable are modified .
1.2.
References
/1/ Modern Structure Analysis - Edward Yourdon /
1990
/2/ ASTER - RAMS version 3b User's Guide
/3/ ASTER - RAMS (source code version 4.2.5)
/4/ ELEBRA Static Analysis Reports cod. 1208.001.001.1,
doc. 106, rev. 00
/5/ ELEBRA Detailed Design Reports cod. 1208.001.001.1,
doc. 163, rev. 01
/6/ ELEBRA Data Dictionary of Shared Variables cod.
1208.001.001.1, doc. 170, rev. 00
Definitions
CASE Computer Aided Software Enginneering
CPTEC Centro de Previsão do Tempo e Estudos
Climáticos
DFD Data Flow Diagram
RAMS Regional Atmospheric Modeling System
2.
DATA FLOW DIAGRAMS
2.1.
Context Diagram
Description Report
Name
Description
CPTEC
It represents an external interface, which gives
the current state of the atmosphere, i.e., the values of certain specified
meteorological quantities to the RAMS.
Operator
t represents an external interface, Man Machine
Interface, which contains the post - processing model visualization,
and the visualization software utilities.
RAMS
The Regional Atmospheric Modelling System (RAMS)
is a highly versatile numerical code developed by scientists at Colorado
State University and the ASTER division of Mission Research Corporation
for simulating and forescasting meteorological fenomena,
and for depicting the results. Its major component
are:
- Atmospherical model which performs the actual
simulations;
- Data analysis package which prepares initial data
for the atmospheric model from
observed meteorological data;
- Post - processing model visualization which interfaces
atmospheric will be consider as external).
see reference /2/.
2.2.
RAMS
Description Report
Name
Description
Atmospheric Model
The atmospheric model is constructed around the
full set of primitive dynamical equations which
govern atmospheric motions, and supplements these
equations with optional parameterizations for turbulent
diffusion, solar and terrestrial radiation, moist processes including
the formation and interaction of clouds and precipitating liquid
and ice hydrometeors, sensible and latent heat exchange between
the atmosphere, multiple soil layers, a vegetation canopy,
and surface water, the kinematic efffects of
terrain, and cumulus convection.
see reference /2/.
Data Preparation (DPREP)
Data Preparation (DPREP) reads observational data
(upper air soundings, land surface, ship, buoy
and pressure level data) of arbitrary format
and write the data out files in a standard RAMS format.
see reference /5/ - Volume I
2.3.
Atmospheric Model
Description Report
Name
Description
Isentropic Analysis (ISAN)
The ISAN (ISentropic ANalysis) contains all the
files concerned with the analysis part of the code. The main purpose of
it, roughly speaking, is to prepare the initial data for the RAMS model
to be run. It represents the functions implemented by the subroutine isan_driver
and all of the modules called by it. see reference /5/ - Volume II
Prognostic (Model)
The prognostic component of RAMS, advances gridded
fields of atmospheric velocity, pressure, potencial temperature, and optionally,
moisture and other variables from an initial stage through a series of
discrete time steps to a future state based on a closed set of differential
equations which describe the physical laws governing the atmosphere. A
prognostic soil and vegetation model may optionally interact with the modeled
atmosphere as a lower boundary condition. The model domain may be either
two- or three-dimensional and a small two-dimensional domain may be set
up to function as a one-dimensional (vertical only) model. see reference
/2/.
2.4.
Prognostic Model
Description Report
Name
Description
Meteorological Functions
It represents the meteorological functions indeed.
see reference /5/ - Volume III
RAMS Initialization
It representes the main computational functions
like initialization and management, implemented
by the modules:
- rams_master
- initlz
- model
- timestep
see reference /5/ - Volume III
2.5.
Meteorological Functions
Description Report
Name
Description
Boundary
It represents the boundary function, implemented
by the module datassim and all other modules
called by it.
see reference /5/ - Volume III
Cumulus
It represents the cumulus function, implemented
by the module cuparm and all other modules called
by it.
see reference /5/ - Volume III
Dynamics
It represents the following meteorological function:
- coriolis
- advection
- time advance
- buoyancy
- acoustic
Friction
It represents the friction function, implemented
by the module rayft and all other modules called
by it.
see reference /5/ - Volume III
Microphysics
It represents the microphysics function, implemented
by the module micro and all other modules called
by it.
see reference /5/ - Volume III
Radiation
It represents the radiation function, implemented
by the module radiate and all other modules called
by it.
see reference /5/ - Volume III
Surface
It represents the surface fluxes function, implemented
by the module sfclyr and all other mmodules called
by it.
see reference /5/ - Volume III
Thermodynamics
It represents the thermodynamic function, implemented
by the module thermo
and all other modules called by it.
see reference /5/ - Volume III
Turbulence
It represents the surface turbulence function, implemented
by the module diffuse and all other modules called
by it.
see reference /5/ - Volume III
2.6.
Dynamics Functions
Description Report
Name
Description
Acoustic
It represents the acoustic function, implemented
by the module acoustc and all other modules called
by it.
see reference /5/ - Volume III
Advection
It represents the advection function, implemented
by the module advect and all other modules called
by it.
see reference /5/ - Volume III
Buoyancy
It represents the buoyancy function, implemented
by the module buoyancy and all other modules
called by it.
see reference /5/ - Volume III
Coriolis
It represents the coriolis function, implemented
by the module corlos and all other modules called
by it.
see reference /5/ - Volume III
Time Advance
It represents the time advance function, implemented
by the module predtr and all other modules called
by it.
see reference /5/ - Volume III
3.
DATA STRUCTURES
Data Structure Report
Name
Structure
Boundary_vctemp
nudge_vctemp
+
varhyd_vctemp
Commons
Prognostic_Commons
+
Isan_Commons
Commons_Init
rcommonsH
+
ascomsH
+
micphysH
+
rconfigH
+
rconstantsH
+
rmicparH
+
rnestH
+
rnodeH
+
rparaH
+
rvtablesH
+
sub_namesH
+
varnamesH
+
vcomm2H
+
mod_sub_namesH
+
radcom
+
cpars
+
cptend
+
cpenv
+
cpcon
+
conre1
+
nread
+
snding
+
sndingc
Coriolis_vctemp
corlsu_vctemp
+
corlsv_vctemp
Cumulus_Cp
conpar_cpars
+
conpar_cpenv
+
cu_environ_cpars
+
cu_environ_cpenv
+
cu_environ_cpcon
+
kuocp_cptend
+
kuocp_cpars
+
kuocp_cpenv
+
kuocp_cpcon
+
cp2mod_cptend
+
cp2mod_cpenv
+
cp2mod_vctemp
Dynamics_Out
Coriolis_Out
+
Advection_Out
+
Time_Advance_Out
+
Buoyancy_Out
+
Acoustic_Out
Dynamics_rcommonsH
Coriolis_vctemp
+
advwts_advctn
Isan_Commons
isan_driver_Commons
+
isan_file_inv_Commons
+
prstage_Commons
+
get_press_Commons
+
pressio_Commons
+
isnstage_Commons
+
input_rawi_Commons
+
sndproc_Commons
+
sfcproc_Commons
+
vterp_i_Commons
+
vterp_s_Commons
+
first_rams_Commons
+
isenio_Commons
+
sigzio_Commons
+
isnzig_Commons
MODEL_Config
rams_in
+
vtable
+
patch_table
+
empostgeo
+
kbarf
+
ct20
Meteorofunctions_Commons
sfcrad_vctemp
+
leaftw_vctemp
+
Dynamics_rcommonsH
+
Boundary_vctemp
+
rayf_vctemp
+
Turbulence_rcommonsH
+
Radiation_radcom
+
Cumulus_Cp
Meteorofunctions_Out
Thermodynamics_Out
+
Radiation_Out
+
Surface_Out
+
Coriolis_Out
+
Advection_Out
+
Time_Advance_Out
+
Buoyancy_Out
+
Acoustic_Out
+
Boundary_Out
+
Cumulus_Out
+
Friction_Out
+
Turbulence_Out
+
Microphysics_Out
Meteorological_Data
pressure_level_data
+
surface_data
+
sounding_data
Prognostic_Commons
Commons_Init
+
Meteorofunctions_Commons
Prognostic_Data
l1a_a
Radiation_radcom
radcomp_radcom
+
zen_radcom
Turbulence_rcommonsH
bruvais_stuff
+
bruvais_vctemp
+
mxdefm_all
+
mxdefm_vctemp
+
tkemy_vctemp
+
diffvel1_vctemp
+
diffsclr1_vctemp
+
diffvel2_vctemp
advwts_advctn
advwtx<real4<array
+
advwty<real4<array
+
advwtz<real4<array
ascomsH
cntrl
+
cntrlc
+
ctcon
+
isan_proc
+
isan_proc_8
+
isan_proc_n
+
lambert
+
nprdat
+
oparms
+
pcmisc
+
pcst1
+
pcst3
+
pcst3a
+
pcstc
+
pcstsz
+
plscr
+
pltparms
+
sta
+
stach
+
trans
bruvais_stuff
pi<real4<array
+
prt<real4<array
+
rc<real4<array
+
temp<real4<array
bruvais_vctemp
vctr1<real4<array
+
vctr11<real4<array
+
vctr12<real4<array
+
vctr2<real4<array
+
vctr20<real4<array
+
vctr21<real4<array
+
vctr22<real4<array
+
vctr23<real4<array
+
vctr3<real4<array
+
vctr32<real4<array
+
vctr4<real4<array
conpar_cpars
contim<real4
+
icpltfl<int4
+
icprtfl<int4
+
wconmin<real4
conpar_cpenv
dncon<real4<array
+
picon<real4<array
+
prcon<real4<array
+
rvcon<real4<array
+
thtcon<real4<array
+
tmpcon<real4<array
+
ucon<real4<array
+
vcon<real4<array
+
wcon<real4<array
+
zcon<real4<array
+
zzcon<real4<array
corlsu_vctemp
vctr2<real4<array
corlsv_vctemp
vctr2<real4<array
cp2mod_cpenv
qvct1<real4<array
+
qvct2<real4<array
+
qvct3<real4<array
+
qvct4<real4<array
cp2mod_cptend
frcon<real4<array
+
ftcon<real4<array
cp2mod_vctemp
vctr5<real4<array
+
vctr6<real4<array
cross
ncross3
+
icrtyp3
+
icra3
+
icrb3
+
icrl3
+
ncrfld3
+
icrfld3
+
thcon3
+
acon3
cu_environ_cpars
cdzmin<real4
+
dzhigh<real4
+
dzlow<real4
+
igo<int4
+
kcon<int4
+
ketl<int4
+
klcl<int4
+
kmt<int4
+
zmid<real4
cu_environ_cpcon
theu<real4<array
cu_environ_cpenv
pe<real4<array
+
pke<real4<array
+
rhoe<real4<array
+
rve<real<4<array
+
te<real4<array
+
thve<real4<array
+
zc<real4<array
+
ze<real4<array
diffsclr1_vctemp
vctr1<real4<array
diffvel1_vctemp
vctr1<real4<array
+
vctr2<real4<array
diffvel2_vctemp
vctr1<real4<array
+
vctr2<real4<array
first_rams_Commons
first_rams_all
+
first_rams_oparms
get_press_Commons
get_press_lambert
+
get_press_cntrl
+
get_press_trans
initlz_isan_driver
a<real4<dummy<array
+
b<real4<dummy<array
+
name_name<char<dummy
initlz_thermo
a<real4<dummy<array
+
nzp<int4<in<common<dompts
offset:32
+
nxp<int4<in<common<dompts
offset:0
+
nyp<int4<in<common<dompts
offset:16
+
cte=1
+
nxp<int4<in<common<dompts
offset:0
+
cte=1
+
nyp<int4<in<common<dompts
offset:16
+
'THRM_ONLY'
input_rawi_Commons
input_rawi_snding
+
input_rawi_trans
isan_control
mstage
+
isan_inc
+
guess1st
+
i1st_flg
+
iupa_flg
+
isfc_flg
+
iapr
+
iarawi
+
iasrfce
+
ifnprs
+
ioflgp
+
ifnisn
+
ioflgi
+
ifnsig
+
ioflgs
+
ifnvar
+
ioflgv
isan_driver_Commons
isan_driver_lambert
+
isan_driver_cntrl
+
isan_driver_all
+
isan_driver_oparms
+
isan_driver_nprdat
+
isan_driver_ioparm
+
isan_driver_trans
+
isan_driver_ioinfo
+
isan_driver_conre1
isan_file_inv_Commons
isan_file_inv_all
+
isan_file_inv_isan_proc
+
isan_file_inv_isan_proc_n
isan_graph
ipltprs
+
ipltisn
+
ipltsig
+
ipltsta
+
ilft1i
+
irgt1i
+
ibot1j
+
itop1j
+
nplev
+
iplev
+
nfldu1
+
ifldu1
+
conu1
+
ivelu1
+
ilft3i
+
irgt3i
+
ibot3j
+
itop3j
+
iup3beg
+
iup3end
+
iup3inc
+
nfldu3
+
ifldu3
+
conu3
+
ivelu3
+
nflds3
+
iflds3
+
cons3
+
ivels3
+
iszbeg
+
iszend
+
iszinc
+
nfldsz
+
ifldsz
+
consz
+
ivelsz
+
npltraw
+
nstis3
+
istis3
+
cross
isan_isentropic
nisn
+
levth
+
nigrids
+
topsigz
+
hybbot
+
sfcinf
+
sigzwt
+
nfeedvar
+
maxsta
+
maxsfc
+
nonlys
+
idonlys
+
notsta
+
notid
+
stasep
+
istaplt
+
istarep
+
iupper
+
igridfl
+
gridwt
+
gobsep
+
gobrad
+
wvlnth
+
swvlnth
+
respon
isenio_Commons
isenio_lambert
+
isenio_oparms
isnstage_Commons
isnstage_cntrlc
+
isnstage_indmx3
+
isnstage_sta
isnzig_Commons
isnzig_vctemp
kuocp_cpars
envshr<real4
+
igo<int4
+
kct<int4
+
ketl<int4
+
klfc<int4
+
preff<real4
+
supply<real4
kuocp_cpcon
thcon<real4<array
+
thd<real4<array
+
theu<real4<array
+
thu<real4<array
+
wtd<real4<array
kuocp_cpenv
qvct1<real4
kuocp_cptend
cprecip<real4
+
frcon<real4
+
ftcon<real4
+
vheat<real4
+
vmdry<real4
+
vmois<real4
leaftw_vctemp
vctr1<real4<array
+
vctr14<real4<array
+
vctr16<real<array
+
vctr18<real<array
+
vctr2<real<array
+
vctr3<real<array
+
vctr4<real<array
+
vctr5<real<array
+
vctr6<real<array
+
vctr7<real<array
micphysH
micphys
microphysics
level
+
inucprg
+
icloud
+
irain
+
ipris
+
isnow
+
iaggr
+
igraup
+
ihail
+
cparm
+
rparm
+
pparm
+
sparm
+
aparm
+
gparm
+
hparm
+
gnu
model_file_info
initial
+
varfpfx
+
nudlat
+
tnudlat
+
tnudcent
+
tnudtop
+
znudtop
+
timstr
+
hfilin
+
iotput
+
hfilout
+
afilout
+
frqhis
+
frqanl
+
kwrite
+
frqprt
+
initfld
+
sfcfiles
+
sstfpfx
+
itoptflg
+
isstflg
+
ivegtflg
+
isoilflg
+
nofilflg
+
iupdsst
+
itoptfn
+
isstfn
+
ivegtfn
+
isoilfn
+
silavwt
+
toptwvl
+
mkcoltab
+
coltabfn
model_grids
runtype
+
timeunit
+
timmax
+
imonth1
+
idate1
+
iyear1
+
itime1
+
ngrids
+
nnxp
+
nnyp
+
nnzp
+
nzg
+
nzs
+
nxtnest
+
ihtran
+
deltax
+
deltay
+
deltaz
+
dzrat
+
dzmax
+
zz
+
dtlong
+
nratio
+
nstratx
+
nstraty
+
nndtrat
+
nestz1
+
nstratz1
+
nestz2
+
nstratz2
+
polelat
+
polelon
+
centlat
+
centlon
+
ninest
+
njnest
+
nknest
+
nnsttop
+
nnstbot
+
gridu
+
gridv
model_options
naddsc
+
icorflg
+
ibnd
+
jbnd
+
cphas
+
lsflg
+
nfpt
+
distim
+
iswrtyp
+
ilwrtyp
+
radfrq
+
lonrad
+
nnqparm
+
confrq
+
wcldbs
+
npatch
+
nvegpat
+
isfcl
+
nvgcon
+
tvgoff
+
pctlcon
+
nslcon
+
zrough
+
albedo
+
seatmp
+
dthcon
+
drtcon
+
soildz
+
slz
+
slmstr
+
stgoff
+
idiffk
+
csx
+
csz
+
xkhkm
+
zkhkm
+
akmin
+
microphysics
model_print
nplt
+
iplfld
+
ixsctn
+
isbval
model_sound
ipsflg
+
itsflg
+
irtsflg
+
iusflg
+
hs
+
ps
+
ts
+
rts
+
us
+
vs
mxdefm_all
rmax<real4
+
rmin<real4
mxdefm_vctemp
vctr1<real4<array
+
vctr2<real4<array
nudge_vctemp
vctr1<real4<array
+
vctr10<real4<array
+
vctr11<real4<array
+
vctr2<real4<array
+
vctr3<real4<array
+
vctr4<real4<array
+
vctr5<real4<array
prep_in
ipress
+
irawi
+
isurface
+
natimes
+
iahour
+
iadate
+
iamonth
+
iayear
+
iapr
+
iarawi
+
iasrfce
+
ifnpress
+
ifnrawi
+
ifnsfc
+
nprx
+
npry
+
nprz
+
pdata
+
wplon
+
splat
+
levpr
+
obslat1
+
obslat2
+
obslon1
+
obslon2
+
istaplt
+
istarep
+
nplev
+
iplev
pressio_Commons
pressio_lambert
+
pressio_cntrl
+
pressio_nprdat
prstage_Commons
prstage_cntrl
+
prstage_nprdat
radcomp_radcom
dn0r<real4<array
+
dzmr<real4<array
+
dztr<real4<array
+
fthrs<real4<array
+
pird<real4<array
+
prd<real4<array
+
rtr<real4<array
+
rvr<real4<array
+
temprd<real4<array
rams_in
model_grids
+
model_file_info
+
model_options
+
model_sound
+
model_print
+
isan_control
+
isan_isentropic
+
isan_graph
rayf_vctemp
vctr2<real4<array
rcommonsH
allch
+
advctn
+
all
+
bndcon
+
cntrlr
+
dompts
+
filchr
+
files
+
grid
+
grpnts
+
hisgrd
+
index2
+
index3
+
index4s
+
indmx3
+
indtrc
+
ioinfo
+
ioparm
+
option
+
prtchr
+
sigmaz
+
soil2
+
soundg
+
spacing
+
sst2
+
sstchr
+
stuff
+
topccom
+
topocom
+
var2
+
varchr
+
vctemp
+
veg2
+
micphysH
+
rconfigH
rnestH
nest
rnodeH
buff_sizes
+
machinfo
+
pnode
+
pnoden
+
requests
rparaH
parac
+
parac2
+
parallel
rvtablesH
index2n
+
index3n
+
index4sn
+
mpvtable
+
nbndind
+
vtabch
+
vtabls
+
vtabopt
sfcproc_Commons
sfcproc_stach
+
sfcproc_sta
sfcrad_vctemp
vctr32<real4<array
sigzio_Commons
sigzio_lambert
+
sigzio_oparms
sndproc_Commons
sndproc_stach
+
sndproc_sta
timestep_Dynamics
timestep_corlos
+
timestep_acoustc
+
timestep_buoyancy
+
timestep_advect
+
timestep_predtr
timestep_Meteorofunctions
timestep_thermo
+
timestep_radiate
+
timestep_sfclyr
+
timestep_Dynamics
+
timestep_datassim
+
timestep_cuparm
+
timestep_rayft
+
timestep_diffuse
+
timestep_micro
timestep_acoustc
a<real4<dummy<array
+
iter<int4
timestep_advect
a<real4<dummy<array
+
'V'
+
mzp<int4<in<common<pnode
+
mxp<int4<in<common<pnode
+
myp<int4<in<common<pnode
+
ia<int4<in<common<pnode
+
iz<int4<in<common<pnode
+
ja<int4<in<common<pnode
+
jz<int4<in<common<pnode
+
jz1<int4<in<common<pnode
+
izu<int4<in<common<pnode
+
i0<int4<in<common<pnode
+
j0<int4<in<common<pnode
timestep_buoyancy
a<real4<dummy<array
timestep_corlos
a<real4<dummy<array
+
mzp<int4<in<common<pnode
+
mxp<int4<in<common<pnode
+
myp<int4<in<common<pnode
+
ia<int4<in<common<pnode
+
iz<int4<in<common<pnode
+
ja<int4<in<common<pnode
+
jz<int4<in<common<pnode
+
izu<int4<in<common<pnode
+
jzv<int4<in<common<pnode
timestep_cuparm
a<real4<dummy<array
timestep_datassim
a<real4<dummy<array
timestep_diffuse
a<real4<dummy<array
+
[cte=1
|
cte=2
|
cte=3]
timestep_micro
a<real4<dummy<array
+
mzp<int4<in<common<pnode
+
mxp<int4<in<common<pnode
+
myp<int4<in<common<pnode
+
ia<int4<in<common<pnode
+
iz<int4<in<common<pnode
+
ja<int4<in<common<pnode
+
jz<int4<in<common<pnode
timestep_predtr
a<real4<dummy<array
timestep_radiate
a<real4<dummy<array
+
mzp<int4<in<common<pnode
+
mxp<int4<in<common<pnode
+
myp<int4<in<common<pnode
+
ia<int4<in<common<pnode
+
iz<int4<in<common<pnode
+
ja<int4<in<common<pnode
+
jz<int4<in<common <pnode
timestep_rayft
a<real4<dummy<array
timestep_sfclyr
a<real4<dummy<array
+
mzp<int4<in<common<pnode
+
mxp<int4<in<common<pnode
+
myp<int4<in<common<pnode
+
ia<int4<in<common<pnode
+
iz<int4<in<common<pnode
+
ja<int4<in<common<pnode
+
jz<int4<in<common <pnode
+
ibcon<int4<in<common<pnode
timestep_thermo
a<real4<dummy<array
+
mzp<int4<in<common<pnode
+
mxp<int4<in<common<pnode
+
myp<int4<in<common<pnode
+
['THRM_ONLY'
|
'NOMICRO']
tkemy_vctemp
vctr1<real4<array
+
vctr30<real4<array
+
vctr31<real4array
+
vctr32<real4<array
+
vctr33<real4<array
+
vctr5<real4<array
+
vctr9<real4<array
varhyd_vctemp
vctr30<real4<array
+
vctr31real4<array
vterp_i_Commons
vterp_i_nprdat
vterp_s_Commons
vterp_s_nprdat
zen_radcom
cdec<real4
+
declin<real4
+
jday<int4
+
sdec<real4
+
tdec<real4
Copyright, 1998 Elebra cod.1208.001.001.1 doc.162 rev.0 Date 08/98