source: LMDZ5/trunk/libf/phylmd/write_histrac.h @ 1891

Last change on this file since 1891 was 1813, checked in by idelkadi, 11 years ago
  1. transform phytrac into a module, in order to pass some variables

(tracer tendencies) to the standard physiq ouput codes.

  1. Correct a (big) bug in the call to phytrac.
  2. Include w*, and ALEs in the call to phytrac and traclmdz.

physiq.F

  • Bug correction in the call of phytrac from the physics u10m,v10m, ustar -> zu10m, zv10m, zustar

phytrac.F90 -> phytrac_mod.F90

  • Tranformation of routine phytrac into a module phytrac_mod, in order to tranfer the tracer tendencies from phytrac to

phys_output...

  • Inclusion of w*, Ale bl/wake in the call to phytrac and traclmdz

(to be used for dust emmission)

by respectively, vertical diffusion, thermal plumes and convection

  • desactivation of ini_histrac.h and write_histrac.h
  • USE phys_output_mod removed since it was creating a circular

dependency

between phytrac_mod and phys_output_mod.
So the automatic computation of ecrit_tra is desactivated

ini_histrac.h and write_histrac.h

Descactivated in phytrac but kept for backard compatibility
couchelimite -> iflag_vdf_trac>0

phys_output_ctrlout_mod.F90

New variables : o_dtr_vdf, o_dtr_the ... for output of tracer tendencies

phys_output_mod.F90

Default definition for these new output variables.

phys_output_write_F90.h

disapears, included directly in phys_output_write_mod.F90

phys_output_write_mod.F90

writing of the tracer tendencies

phys_state_var_mod.F90

New declaration (wstar)

traclmdz_mod.F90

  • Inclusion of w*, Ale bl/wake in the call to phytrac and traclmdz

(to be used for dust emmission)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.3 KB
Line 
1!$Id $
2!***************************************
3!  ECRITURE DU FICHIER :  histrac.nc
4!***************************************
5  IF (ecrit_tra > 0.) THEN
6     
7     itau_w = itau_phy + nstep + start_time * day_step / iphysiq
8     
9     CALL histwrite_phy(nid_tra,.FALSE.,"phis",itau_w,pphis)
10     CALL histwrite_phy(nid_tra,.FALSE.,"aire",itau_w,airephy)
11     CALL histwrite_phy(nid_tra,.FALSE.,"zmasse",itau_w,zmasse)
12! RomP >>>
13     CALL histwrite_phy(nid_tra,.FALSE.,"sourceBE",itau_w,sourceBE)
14! RomP <<<
15
16!TRACEURS
17!----------------
18     DO it=1,nbtr
19        iiq=niadv(it+2)
20
21! CONCENTRATIONS
22        CALL histwrite_phy(nid_tra,.FALSE.,tname(iiq),itau_w,tr_seri(:,:,it))
23
24! TD LESSIVAGE       
25      IF (lessivage .AND. aerosol(it)) THEN
26        CALL histwrite_phy(nid_tra,.FALSE.,"fl"//tname(iiq),itau_w,flestottr(:,:,it))
27        CALL histwrite_phy(nid_tra,.FALSE.,"d_tr_ls_"//tname(iiq),itau_w,d_tr_ls(:,:,it))
28        IF(iflag_lscav .EQ. 3 .OR. iflag_lscav .EQ. 4) then
29          CALL histwrite_phy(nid_tra,.FALSE.,"d_tr_insc_"//tname(iiq),itau_w,d_tr_insc(:,:,it))
30          CALL histwrite_phy(nid_tra,.FALSE.,"d_tr_bcscav_"//tname(iiq),itau_w,d_tr_bcscav(:,:,it))
31          CALL histwrite_phy(nid_tra,.FALSE.,"d_tr_evls_"//tname(iiq),itau_w,d_tr_evapls(:,:,it))
32          CALL histwrite_phy(nid_tra,.FALSE.,"qpr_ls_"//tname(iiq),itau_w,qPrls(:,it))
33        ENDIF
34      ENDIF
35
36! TD THERMIQUES
37        IF (iflag_thermals.gt.0) THEN
38           CALL histwrite_phy(nid_tra,.FALSE.,"d_tr_th_"//tname(iiq),itau_w,d_tr_th(:,:,it))
39        ENDIF
40
41! TD CONVECTION
42        IF (iflag_con.GE.2) THEN
43           CALL histwrite_phy(nid_tra,.FALSE.,"d_tr_cv_"//tname(iiq),itau_w,d_tr_cv(:,:,it))
44        ENDIF
45
46! TD COUCHE-LIMITE
47      IF (iflag_vdf_trac>=0) THEN
48        CALL histwrite_phy(nid_tra,.FALSE.,"d_tr_cl_"//tname(iiq),itau_w,d_tr_cl(:,:,it))
49        CALL histwrite_phy(nid_tra,.FALSE.,"d_tr_dry_"//tname(iiq),itau_w,d_tr_dry(:,it))
50        CALL histwrite_phy(nid_tra,.FALSE.,"flux_tr_dry_"//tname(iiq),itau_w,flux_tr_dry(:,it))
51      ENDIF
52
53! TD radio-decroissance
54        CALL histwrite_phy(nid_tra,.FALSE.,"d_tr_dec_"//tname(iiq),itau_w,d_tr_dec(:,:,it))
55
56! RomP >>>
57        IF (iflag_con.EQ.30) THEN
58        CALL histwrite_phy(nid_tra,.FALSE.,"d_tr_cvMA_"//tname(iiq),itau_w,dtrcvMA(:,:,it))
59        CALL histwrite_phy(nid_tra,.FALSE.,"d_tr_trsp_"//tname(iiq),itau_w,d_tr_trsp(:,:,it))
60        CALL histwrite_phy(nid_tra,.FALSE.,"d_tr_sscav_"//tname(iiq),itau_w,d_tr_sscav(:,:,it))
61        CALL histwrite_phy(nid_tra,.FALSE.,"d_tr_sat_"//tname(iiq),itau_w,d_tr_sat(:,:,it))
62        CALL histwrite_phy(nid_tra,.FALSE.,"d_tr_uscav_"//tname(iiq),itau_w,d_tr_uscav(:,:,it))
63        CALL histwrite_phy(nid_tra,.FALSE.,"tr_pr_"//tname(iiq),itau_w,qPr(:,:,it))
64        CALL histwrite_phy(nid_tra,.FALSE.,"tr_aa_"//tname(iiq),itau_w,qPa(:,:,it))
65        CALL histwrite_phy(nid_tra,.FALSE.,"tr_mel_"//tname(iiq),itau_w,qMel(:,:,it))
66        CALL histwrite_phy(nid_tra,.FALSE.,"tr_di_"//tname(iiq),itau_w,qDi(:,:,it))
67        CALL histwrite_phy(nid_tra,.FALSE.,"tr_trspdi_"//tname(iiq),itau_w,qTrdi(:,:,it))
68        CALL histwrite_phy(nid_tra,.FALSE.,"zmfd1a_"//tname(iiq),itau_w,zmfd1a(:,:,it))
69        CALL histwrite_phy(nid_tra,.FALSE.,"zmfphi2_"//tname(iiq),itau_w,zmfphi2(:,:,it))
70        CALL histwrite_phy(nid_tra,.FALSE.,"zmfdam_"//tname(iiq),itau_w,zmfdam(:,:,it))
71        ENDIF
72        CALL histwrite_phy(nid_tra,.FALSE.,"dtrdyn_"//tname(iiq),itau_w,d_tr_dyn(:,:,it))
73! RomP <<<
74     ENDDO
75!---------------
76!
77!
78! VENT (niveau 1)   
79     CALL histwrite_phy(nid_tra,.FALSE.,"pyu1",itau_w,yu1)
80     CALL histwrite_phy(nid_tra,.FALSE.,"pyv1",itau_w,yv1)
81!
82! TEMPERATURE DU SOL
83     zx_tmp_fi2d(:)=ftsol(:,1)         
84     CALL histwrite_phy(nid_tra,.FALSE.,"ftsol1",itau_w,zx_tmp_fi2d)
85     zx_tmp_fi2d(:)=ftsol(:,2)
86     CALL histwrite_phy(nid_tra,.FALSE.,"ftsol2",itau_w,zx_tmp_fi2d)
87     zx_tmp_fi2d(:)=ftsol(:,3)
88     CALL histwrite_phy(nid_tra,.FALSE.,"ftsol3",itau_w,zx_tmp_fi2d)
89     zx_tmp_fi2d(:)=ftsol(:,4)
90     CALL histwrite_phy(nid_tra,.FALSE.,"ftsol4",itau_w,zx_tmp_fi2d)
91!     
92! NATURE DU SOL
93     zx_tmp_fi2d(:)=pctsrf(:,1)
94     CALL histwrite_phy(nid_tra,.FALSE.,"psrf1",itau_w,zx_tmp_fi2d)
95     zx_tmp_fi2d(:)=pctsrf(:,2)
96     CALL histwrite_phy(nid_tra,.FALSE.,"psrf2",itau_w,zx_tmp_fi2d)
97     zx_tmp_fi2d(:)=pctsrf(:,3)
98     CALL histwrite_phy(nid_tra,.FALSE.,"psrf3",itau_w,zx_tmp_fi2d)
99     zx_tmp_fi2d(:)=pctsrf(:,4)
100     CALL histwrite_phy(nid_tra,.FALSE.,"psrf4",itau_w,zx_tmp_fi2d)
101 
102! DIVERS   
103     CALL histwrite_phy(nid_tra,.FALSE.,"Mint",itau_w,Mint(:,:))
104     CALL histwrite_phy(nid_tra,.FALSE.,"frac_impa",itau_w,frac_impa(:,:))   
105     CALL histwrite_phy(nid_tra,.FALSE.,"frac_nucl",itau_w,frac_nucl(:,:))
106
107
108     CALL histwrite_phy(nid_tra,.FALSE.,"pplay",itau_w,pplay)     
109     CALL histwrite_phy(nid_tra,.FALSE.,"T",itau_w,t_seri)     
110     CALL histwrite_phy(nid_tra,.FALSE.,"mfu",itau_w,pmfu)
111     CALL histwrite_phy(nid_tra,.FALSE.,"mfd",itau_w,pmfd)
112     CALL histwrite_phy(nid_tra,.FALSE.,"en_u",itau_w,pen_u)
113     CALL histwrite_phy(nid_tra,.FALSE.,"en_d",itau_w,pen_d)
114     CALL histwrite_phy(nid_tra,.FALSE.,"de_d",itau_w,pde_d)
115     CALL histwrite_phy(nid_tra,.FALSE.,"de_u",itau_w,pde_u)
116     CALL histwrite_phy(nid_tra,.FALSE.,"coefh",itau_w,coefh)
117
118     IF (ok_sync) THEN
119!$OMP MASTER
120        CALL histsync(nid_tra)
121!$OMP END MASTER
122     ENDIF
123
124  ENDIF !ecrit_tra>0.
125
Note: See TracBrowser for help on using the repository browser.