1 | ! $Id: physiq.F 1565 2011-08-31 12:53:29Z jghattas $ |
---|
2 | !#define IO_DEBUG |
---|
3 | |
---|
4 | SUBROUTINE physiq (nlon,nlev, & |
---|
5 | & debut,lafin,jD_cur, jH_cur,pdtphys, & |
---|
6 | & paprs,pplay,pphi,pphis,presnivs,clesphy0, & |
---|
7 | & u,v,t,qx, & |
---|
8 | & flxmass_w, & |
---|
9 | & d_u, d_v, d_t, d_qx, d_ps & |
---|
10 | & , dudyn & |
---|
11 | & , PVteta) |
---|
12 | |
---|
13 | USE dimphy |
---|
14 | USE infotrac |
---|
15 | USE comgeomphy |
---|
16 | |
---|
17 | IMPLICIT none |
---|
18 | !====================================================================== |
---|
19 | ! Objet: Moniteur general de la physique du modele |
---|
20 | !====================================================================== |
---|
21 | ! |
---|
22 | ! Arguments: |
---|
23 | ! |
---|
24 | ! nlon----input-I-nombre de points horizontaux |
---|
25 | ! nlev----input-I-nombre de couches verticales, doit etre egale a klev |
---|
26 | ! debut---input-L-variable logique indiquant le premier passage |
---|
27 | ! lafin---input-L-variable logique indiquant le dernier passage |
---|
28 | ! jD_cur -R-jour courant a l'appel de la physique (jour julien) |
---|
29 | ! jH_cur -R-heure courante a l'appel de la physique (jour julien) |
---|
30 | ! pdtphys-input-R-pas d'integration pour la physique (seconde) |
---|
31 | ! paprs---input-R-pression pour chaque inter-couche (en Pa) |
---|
32 | ! pplay---input-R-pression pour le mileu de chaque couche (en Pa) |
---|
33 | ! pphi----input-R-geopotentiel de chaque couche (g z) (reference sol) |
---|
34 | ! pphis---input-R-geopotentiel du sol |
---|
35 | ! presnivs-input_R_pressions approximat. des milieux couches ( en PA) |
---|
36 | ! u-------input-R-vitesse dans la direction X (de O a E) en m/s |
---|
37 | ! v-------input-R-vitesse Y (de S a N) en m/s |
---|
38 | ! t-------input-R-temperature (K) |
---|
39 | ! qx------input-R-humidite specifique (kg/kg) et d'autres traceurs |
---|
40 | ! d_t_dyn-input-R-tendance dynamique pour "t" (K/s) |
---|
41 | ! d_q_dyn-input-R-tendance dynamique pour "q" (kg/kg/s) |
---|
42 | ! flxmass_w -input-R- flux de masse verticale |
---|
43 | ! d_u-----output-R-tendance physique de "u" (m/s/s) |
---|
44 | ! d_v-----output-R-tendance physique de "v" (m/s/s) |
---|
45 | ! d_t-----output-R-tendance physique de "t" (K/s) |
---|
46 | ! d_qx----output-R-tendance physique de "qx" (kg/kg/s) |
---|
47 | ! d_ps----output-R-tendance physique de la pression au sol |
---|
48 | !IM |
---|
49 | ! PVteta--output-R-vorticite potentielle a des thetas constantes |
---|
50 | !====================================================================== |
---|
51 | #include "dimensions.h" |
---|
52 | #include "comcstphy.h" |
---|
53 | |
---|
54 | integer jjmp1 |
---|
55 | parameter (jjmp1=jjm+1-1/jjm) |
---|
56 | integer iip1 |
---|
57 | parameter (iip1=iim+1) |
---|
58 | |
---|
59 | INTEGER ivap ! indice de traceurs pour vapeur d'eau |
---|
60 | PARAMETER (ivap=1) |
---|
61 | INTEGER iliq ! indice de traceurs pour eau liquide |
---|
62 | PARAMETER (iliq=2) |
---|
63 | |
---|
64 | ! |
---|
65 | ! |
---|
66 | ! Variables argument: |
---|
67 | ! |
---|
68 | INTEGER nlon |
---|
69 | INTEGER nlev |
---|
70 | REAL, intent(in):: jD_cur, jH_cur |
---|
71 | |
---|
72 | REAL pdtphys |
---|
73 | LOGICAL debut, lafin |
---|
74 | REAL paprs(klon,klev+1) |
---|
75 | REAL pplay(klon,klev) |
---|
76 | REAL pphi(klon,klev) |
---|
77 | REAL pphis(klon) |
---|
78 | REAL presnivs(klev) |
---|
79 | REAL znivsig(klev) |
---|
80 | real pir |
---|
81 | |
---|
82 | REAL u(klon,klev) |
---|
83 | REAL v(klon,klev) |
---|
84 | REAL t(klon,klev),theta(klon,klev) |
---|
85 | REAL qx(klon,klev,nqtot) |
---|
86 | REAL flxmass_w(klon,klev) |
---|
87 | REAL omega(klon,klev) ! vitesse verticale en Pa/s |
---|
88 | REAL d_u(klon,klev) |
---|
89 | REAL d_v(klon,klev) |
---|
90 | REAL d_t(klon,klev) |
---|
91 | REAL d_qx(klon,klev,nqtot) |
---|
92 | REAL d_ps(klon) |
---|
93 | real da(klon,klev),phi(klon,klev,klev),mp(klon,klev) |
---|
94 | !IM definition dynamique o_trac dans phys_output_open |
---|
95 | ! type(ctrl_out) :: o_trac(nqtot) |
---|
96 | !FH! REAL PVteta(klon,nbteta) |
---|
97 | REAL PVteta(klon,1) |
---|
98 | REAL dudyn(iim+1,jjmp1,klev) |
---|
99 | |
---|
100 | INTEGER longcles |
---|
101 | PARAMETER ( longcles = 20 ) |
---|
102 | |
---|
103 | real temp_newton(klon,klev) |
---|
104 | integer k |
---|
105 | logical, save :: first=.true. |
---|
106 | |
---|
107 | REAL clesphy0( longcles ) |
---|
108 | |
---|
109 | d_u=0. |
---|
110 | d_v=0. |
---|
111 | d_t=0. |
---|
112 | d_qx=0. |
---|
113 | d_ps=0. |
---|
114 | |
---|
115 | d_u(:,1)=-u(:,1)/86400. |
---|
116 | do k=1,klev |
---|
117 | temp_newton(:,k)=280.+cos(rlatd(:))*40.-pphi(:,k)/rg*6.e-3 |
---|
118 | d_t(:,k)=(temp_newton(:,k)-t(:,k))/1.e5 |
---|
119 | enddo |
---|
120 | |
---|
121 | |
---|
122 | print*,'COUCOU PHYDEV' |
---|
123 | return |
---|
124 | end |
---|