source: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/ini_histrac.h @ 4295

Last change on this file since 4295 was 1379, checked in by lguez, 15 years ago

Added optional ozone tracer with chemistry parameterized by Daniel
Cariolle. This tracer is passive: it has no influence on the rest of
the simulation.

Added variable "zmasse" in file "histrac.nc". Corrected long name of
variable "pplay" in "histrac.nc". Changed name of variable "t" to "T"
in "histrac.nc", corrected long name and unit.

In "phytrac", moved definition of "zmasse" toward the beginning of the
procedure, so that "zmasse" can be given as argument to
"traclmdz". Also added arguments "julien", "gmtime" and "xlon" to
"traclmdz". The four additional arguments are required for the ozone
tracer.

In module "traclmdz_mod", factorized declaration "implicit none" that
was in each procedure. There is now an equivalent single declaration
at the module level.

In procedure "traclmdz", removed variable "delp". Use "zmasse * rg"
instead since we now have "zmasse" as an argument.

Tests. Compilations on Brodie only, with optimization options "-debug"
and "-dev", parallelization options "none", "mpi", "omp" and
"mpi_omp", this revision and revision 1373. Run cases with and without
ozone tracer, 1 and 2 MPI processes, 1 and 2 OpenMP
threads. Comparisons of all cases are ok, except for strange
variations in variables "d_tr_cl_RN" and "d_tr_cl_PB" of file
"histrac.nc", variables "RN" and "PB" of "restart.nc", variables
"trs_RN" and "trs_PB" of "restartphy.nc". Relative variations of these
variables between cases are of order 1e-7 or less, after one day of
simulation.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.1 KB
RevLine 
[524]1!
[1279]2! $Id $
[524]3!
[1279]4  IF (ecrit_tra>0. .AND. config_inca == 'none') THEN
5!$OMP MASTER
6     CALL ymds2ju(annee_ref, 1, day_ref, 0.0, zjulian)
7     CALL histbeg_phy("histrac", itau_phy, zjulian, pdtphys,nhori, nid_tra)
8     CALL histvert(nid_tra, "presnivs", "Vertical levels", "mb",klev, presnivs, nvert)
[524]9
[1279]10     zsto = pdtphys
11     zout = ecrit_tra
12     CALL histdef(nid_tra, "phis", "Surface geop. height", "-",   &
13          iim,jj_nb,nhori, 1,1,1, -99, 32,"once",  zsto,zout)
14     CALL histdef(nid_tra, "aire", "Grid area", "-",              &
15          iim,jj_nb,nhori, 1,1,1, -99, 32,"once",  zsto,zout)
[1379]16     CALL histdef(nid_tra, "zmasse", "column density of air in cell", &
17          "kg m-2", iim, jj_nb, nhori, klev, 1, klev, nvert, 32, "ave(X)", &
18          zsto,zout)
[524]19
[1279]20!TRACEURS
21!----------------
22     DO it = 1,nbtr
23        iiq = niadv(it+2)
[524]24
[1279]25! CONCENTRATIONS
26        CALL histdef(nid_tra, tname(iiq), ttext(iiq), "U/kga",    &
27             iim,jj_nb,nhori, klev,1,klev,nvert, 32,"ave(X)", zsto,zout)
[549]28
[1279]29! TD LESSIVAGE
30        IF (lessivage .AND. aerosol(it)) THEN
31           CALL histdef(nid_tra, "fl"//tname(iiq),"Flux "//ttext(iiq), &
32                "U/m2/s",iim,jj_nb,nhori, klev,1,klev,nvert, 32,       &
33                "ave(X)", zsto,zout)
34        END IF
[549]35
[1279]36! TD THERMIQUES
37        IF (iflag_thermals.gt.0) THEN
38           CALL histdef(nid_tra, "d_tr_th_"//tname(iiq),      &
39                "tendance thermique"// ttext(iiq), "?",       &
40                iim,jj_nb,nhori, klev,1,klev,nvert, 32,       &
41                "ave(X)", zsto,zout)
42        ENDIF
[549]43
[1279]44! TD CONVECTION
45        IF (iflag_con.GE.2) THEN
46           CALL histdef(nid_tra, "d_tr_cv_"//tname(iiq),   &
47                "tendance convection"// ttext(iiq), "?",   &
48                iim,jj_nb,nhori, klev,1,klev,nvert, 32,    &
49                "ave(X)", zsto,zout)
50        ENDIF
[524]51
[1279]52! TD COUCHE-LIMITE
53        CALL histdef(nid_tra, "d_tr_cl_"//tname(iiq),      &
54             "tendance couche limite"// ttext(iiq), "?",   &
55             iim,jj_nb,nhori, klev,1,klev,nvert, 32,       &
56             "ave(X)", zsto,zout)
57     ENDDO
58!---------------   
59!
60! VENT (niveau 1)
61     CALL histdef(nid_tra, "pyu1", "Vent niv 1", "-",      &
62          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
63          "inst(X)",  zout,zout)     
64     CALL histdef(nid_tra, "pyv1", "Vent niv 1", "-",      &
65          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
66          "inst(X)",  zout,zout)
[524]67
[1279]68! TEMPERATURE DU SOL
69     CALL histdef(nid_tra, "ftsol1", "temper sol", "-",    &
70          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
71          "inst(X)",  zout,zout)
72     CALL histdef(nid_tra, "ftsol2", "temper sol", "-",    &
73          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
74          "inst(X)",  zout,zout)
75     CALL histdef(nid_tra, "ftsol3", "temper sol", "-",    &
76          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
77          "inst",  zout,zout)
78     CALL histdef(nid_tra, "ftsol4", "temper sol", "-",    &
79          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
80          "inst(X)",  zout,zout)
81
82! NATURE DU SOL
83     CALL histdef(nid_tra, "psrf1", "nature sol", "-",     &
84          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
85          "inst(X)",  zout,zout)
86     CALL histdef(nid_tra, "psrf2", "nature sol", "-",     &
87          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
88          "inst(X)",  zout,zout)
89     CALL histdef(nid_tra, "psrf3", "nature sol", "-",     &
90          iim,jj_nb,nhori, 1,1,1, -99, 32,                 &
91          "inst(X)",  zout,zout)
92     CALL histdef(nid_tra, "psrf4", "nature sol", "-",     &
93          iim,jj_nb,nhori, 1,1,1, -99, 32,                 & 
94          "inst(X)",  zout,zout)
95! DIVERS
[1379]96     CALL histdef(nid_tra, "pplay", "pressure","-",        &
[1279]97          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
98          "inst(X)", zout,zout)
[1379]99     CALL histdef(nid_tra, "T", "temperature","K",         &
[1279]100          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
101          "inst(X)", zout,zout)
102     CALL histdef(nid_tra, "mfu", "flux u mont","-",       &
103          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
104          "ave(X)", zsto,zout)
105     CALL histdef(nid_tra, "mfd", "flux u decen","-",      &
106          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
107          "ave(X)", zsto,zout)
108     CALL histdef(nid_tra, "en_u", "flux u mont","-",      &
109          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
110          "ave(X)", zsto,zout)
111     CALL histdef(nid_tra, "en_d", "flux u mont","-",      &
112          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
113          "ave(X)", zsto,zout)
114     CALL histdef(nid_tra, "de_d", "flux u mont","-",      &
115          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
116          "ave(X)", zsto,zout)
117     CALL histdef(nid_tra, "de_u", "flux u decen","-",     &
118          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
119          "ave(X)", zsto,zout)
120     CALL histdef(nid_tra, "coefh", "turbulent coef","-",  &
121          iim,jj_nb,nhori, klev,1,klev,nvert, 32,          &
122          "ave(X)", zsto,zout)   
123     
124     CALL histend(nid_tra)
125!$OMP END MASTER
126  END IF ! ecrit_tra>0. .AND. config_inca == 'none'
127 
Note: See TracBrowser for help on using the repository browser.