1 |
guez |
34 |
module ini_histrac_m |
2 |
|
|
|
3 |
|
|
implicit none |
4 |
|
|
|
5 |
|
|
contains |
6 |
|
|
|
7 |
guez |
61 |
|
8 |
guez |
34 |
subroutine ini_histrac(nid_tra, pdtphys, nq_phys, lessivage) |
9 |
|
|
|
10 |
|
|
! From phylmd/ini_histrac.h, version 1.10 2006/02/21 08:08:30 |
11 |
|
|
|
12 |
|
|
use dimens_m, only: iim, jjm, llm |
13 |
|
|
USE calendar, only: ymds2ju |
14 |
guez |
61 |
USE histbeg_totreg_m, ONLY : histbeg_totreg |
15 |
|
|
USE histdef_m, ONLY : histdef |
16 |
|
|
USE histend_m, ONLY : histend |
17 |
|
|
USE histvert_m, ONLY : histvert |
18 |
guez |
34 |
use temps, only: annee_ref, day_ref, itau_phy |
19 |
|
|
use iniadvtrac_m, only: niadv, tnom, ttext |
20 |
|
|
use dimphy, only: klon |
21 |
|
|
use clesphys, only: ecrit_tra |
22 |
|
|
use grid_change, only: gr_phy_write_2d |
23 |
|
|
use phyetat0_m, only: rlon, rlat |
24 |
guez |
66 |
use disvert_m, only: presnivs |
25 |
guez |
34 |
|
26 |
|
|
INTEGER, intent(out):: nid_tra |
27 |
|
|
real, intent(in):: pdtphys ! pas d'integration pour la physique (s) |
28 |
|
|
|
29 |
|
|
integer, intent(in):: nq_phys |
30 |
|
|
! (nombre de traceurs auxquels on applique la physique) |
31 |
|
|
|
32 |
|
|
logical, intent(in):: lessivage |
33 |
|
|
|
34 |
|
|
! Variables local to the procedure: |
35 |
|
|
|
36 |
|
|
REAL zjulian |
37 |
|
|
REAL zx_lat(iim, jjm+1) |
38 |
|
|
INTEGER nhori, nvert |
39 |
|
|
REAL zsto, zout |
40 |
|
|
integer it, iq, iiq |
41 |
|
|
|
42 |
|
|
!--------------------------------------------------------- |
43 |
|
|
|
44 |
|
|
CALL ymds2ju(annee_ref, month=1, day=day_ref, sec=0.0, julian=zjulian) |
45 |
|
|
zx_lat(:, :) = gr_phy_write_2d(rlat) |
46 |
|
|
CALL histbeg_totreg("histrac", rlon(2:iim+1), zx_lat(1, :), & |
47 |
|
|
1, iim, 1, jjm+1, itau_phy, zjulian, pdtphys, nhori, nid_tra) |
48 |
|
|
CALL histvert(nid_tra, "presnivs", "Vertical levels", "mb", llm, & |
49 |
|
|
presnivs, nvert) |
50 |
|
|
|
51 |
|
|
zsto = pdtphys |
52 |
|
|
zout = pdtphys * REAL(ecrit_tra) |
53 |
|
|
|
54 |
|
|
CALL histdef(nid_tra, "phis", "Surface geop. height", "-", & |
55 |
|
|
iim, jjm+1, nhori, 1, 1, 1, -99, & |
56 |
|
|
"once", zsto, zout) |
57 |
|
|
CALL histdef(nid_tra, "aire", "Grid area", "-", & |
58 |
|
|
iim, jjm+1, nhori, 1, 1, 1, -99, & |
59 |
|
|
"once", zsto, zout) |
60 |
|
|
CALL histdef(nid_tra, "zmasse", "column density of air in cell", & |
61 |
|
|
"kg m-2", iim, jjm + 1, nhori, llm, 1, llm, nvert, "ave(X)", & |
62 |
|
|
zsto, zout) |
63 |
|
|
|
64 |
|
|
DO it = 1, nq_phys |
65 |
|
|
! champ 2D |
66 |
|
|
iq=it+2 |
67 |
|
|
iiq=niadv(iq) |
68 |
|
|
CALL histdef(nid_tra, tnom(iq), ttext(iiq), "U/kga", iim, jjm+1, & |
69 |
|
|
nhori, llm, 1, llm, nvert, "ave(X)", zsto, zout) |
70 |
|
|
if (lessivage) THEN |
71 |
|
|
CALL histdef(nid_tra, "fl"//tnom(iq), "Flux "//ttext(iiq), & |
72 |
|
|
"U/m2/s", iim, jjm+1, nhori, llm, 1, llm, nvert, & |
73 |
|
|
"ave(X)", zsto, zout) |
74 |
|
|
endif |
75 |
|
|
|
76 |
|
|
!---Ajout Olivia |
77 |
|
|
CALL histdef(nid_tra, "d_tr_th_"//tnom(iq), & |
78 |
|
|
"tendance thermique"// ttext(iiq), "?", & |
79 |
|
|
iim, jjm+1, nhori, llm, 1, llm, nvert, & |
80 |
|
|
"ave(X)", zsto, zout) |
81 |
|
|
CALL histdef(nid_tra, "d_tr_cv_"//tnom(iq), & |
82 |
|
|
"tendance convection"// ttext(iiq), "?", & |
83 |
|
|
iim, jjm+1, nhori, llm, 1, llm, nvert, & |
84 |
|
|
"ave(X)", zsto, zout) |
85 |
|
|
CALL histdef(nid_tra, "d_tr_cl_"//tnom(iq), & |
86 |
|
|
"tendance couche limite"// ttext(iiq), "?", & |
87 |
|
|
iim, jjm+1, nhori, llm, 1, llm, nvert, & |
88 |
|
|
"ave(X)", zsto, zout) |
89 |
|
|
!---fin Olivia |
90 |
|
|
|
91 |
|
|
ENDDO |
92 |
|
|
|
93 |
|
|
CALL histdef(nid_tra, "pplay", "", "-", & |
94 |
|
|
iim, jjm+1, nhori, llm, 1, llm, nvert, & |
95 |
|
|
"inst(X)", zout, zout) |
96 |
|
|
CALL histdef(nid_tra, "T", "temperature", "K", iim, jjm+1, nhori, llm, & |
97 |
|
|
1, llm, nvert, "inst(X)", zout, zout) |
98 |
|
|
|
99 |
|
|
CALL histend(nid_tra) |
100 |
|
|
|
101 |
|
|
end subroutine ini_histrac |
102 |
|
|
|
103 |
|
|
end module ini_histrac_m |