source: LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/write_histrac.h @ 1379

Last change on this file since 1379 was 1379, checked in by lguez, 14 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: 2.6 KB
Line 
1!$Id $
2!***************************************
3!  ECRITURE DU FICHIER :  histrac.nc
4!***************************************
5  IF (ecrit_tra > 0. .AND. config_inca == 'none') THEN
6     
7     itau_w = itau_phy + nstep
8     
9     CALL histwrite_phy(nid_tra,"phis",itau_w,pphis)
10     CALL histwrite_phy(nid_tra,"aire",itau_w,airephy)
11     CALL histwrite_phy(nid_tra,"zmasse",itau_w,zmasse)
12
13!TRACEURS
14!----------------
15     DO it=1,nbtr
16        iiq=niadv(it+2)
17
18! CONCENTRATIONS
19        CALL histwrite_phy(nid_tra,tname(iiq),itau_w,tr_seri(:,:,it))
20
21! TD LESSIVAGE       
22        IF (lessivage .AND. aerosol(it)) THEN
23           CALL histwrite_phy(nid_tra,"fl"//tname(iiq),itau_w,flestottr(:,:,it))
24        ENDIF
25
26! TD THERMIQUES
27        IF (iflag_thermals.gt.0) THEN
28           CALL histwrite_phy(nid_tra,"d_tr_th_"//tname(iiq),itau_w,d_tr_th(:,:,it))
29        ENDIF
30
31! TD CONVECTION
32        IF (iflag_con.GE.2) THEN
33           CALL histwrite_phy(nid_tra,"d_tr_cv_"//tname(iiq),itau_w,d_tr_cv(:,:,it))
34        ENDIF
35
36! TD COUCHE-LIMITE
37        CALL histwrite_phy(nid_tra,"d_tr_cl_"//tname(iiq),itau_w,d_tr_cl(:,:,it))
38     ENDDO
39!---------------
40!
41!
42! VENT (niveau 1)   
43     CALL histwrite_phy(nid_tra,"pyu1",itau_w,yu1)
44     CALL histwrite_phy(nid_tra,"pyv1",itau_w,yv1)
45!
46! TEMPERATURE DU SOL
47     zx_tmp_fi2d(:)=ftsol(:,1)         
48     CALL histwrite_phy(nid_tra,"ftsol1",itau_w,zx_tmp_fi2d)
49     zx_tmp_fi2d(:)=ftsol(:,2)
50     CALL histwrite_phy(nid_tra,"ftsol2",itau_w,zx_tmp_fi2d)
51     zx_tmp_fi2d(:)=ftsol(:,3)
52     CALL histwrite_phy(nid_tra,"ftsol3",itau_w,zx_tmp_fi2d)
53     zx_tmp_fi2d(:)=ftsol(:,4)
54     CALL histwrite_phy(nid_tra,"ftsol4",itau_w,zx_tmp_fi2d)
55!     
56! NATURE DU SOL
57     zx_tmp_fi2d(:)=pctsrf(:,1)
58     CALL histwrite_phy(nid_tra,"psrf1",itau_w,zx_tmp_fi2d)
59     zx_tmp_fi2d(:)=pctsrf(:,2)
60     CALL histwrite_phy(nid_tra,"psrf2",itau_w,zx_tmp_fi2d)
61     zx_tmp_fi2d(:)=pctsrf(:,3)
62     CALL histwrite_phy(nid_tra,"psrf3",itau_w,zx_tmp_fi2d)
63     zx_tmp_fi2d(:)=pctsrf(:,4)
64     CALL histwrite_phy(nid_tra,"psrf4",itau_w,zx_tmp_fi2d)
65 
66! DIVERS   
67     CALL histwrite_phy(nid_tra,"pplay",itau_w,pplay)     
68     CALL histwrite_phy(nid_tra,"T",itau_w,t_seri)     
69     CALL histwrite_phy(nid_tra,"mfu",itau_w,pmfu)
70     CALL histwrite_phy(nid_tra,"mfd",itau_w,pmfd)
71     CALL histwrite_phy(nid_tra,"en_u",itau_w,pen_u)
72     CALL histwrite_phy(nid_tra,"en_d",itau_w,pen_d)
73     CALL histwrite_phy(nid_tra,"de_d",itau_w,pde_d)
74     CALL histwrite_phy(nid_tra,"de_u",itau_w,pde_u)
75     CALL histwrite_phy(nid_tra,"coefh",itau_w,coefh)
76
77     IF (ok_sync) THEN
78!$OMP MASTER
79        CALL histsync(nid_tra)
80!$OMP END MASTER
81     ENDIF
82
83  ENDIF !ecrit_tra>0. .AND. config_inca == 'none'
84
Note: See TracBrowser for help on using the repository browser.