4 |
|
|
5 |
contains |
contains |
6 |
|
|
7 |
SUBROUTINE calfis(rdayvrai, heure, pucov, pvcov, pteta, q, pmasse, pps, & |
SUBROUTINE calfis(rdayvrai, heure, pucov, pvcov, teta, q, pmasse, pps, & |
8 |
ppk, pphis, pphi, pducov, pdvcov, pdteta, pdq, pw, pdufi, pdvfi, & |
ppk, pphis, pphi, pducov, pdvcov, pdq, pw, pdufi, pdvfi, pdhfi, pdqfi, & |
9 |
pdhfi, pdqfi, pdpsfi, lafin) |
pdpsfi, lafin) |
10 |
|
|
11 |
! From dyn3d/calfis.F, version 1.3 2005/05/25 13:10:09 |
! From dyn3d/calfis.F, version 1.3 2005/05/25 13:10:09 |
12 |
! Authors: P. Le Van, F. Hourdin |
! Authors: P. Le Van, F. Hourdin |
33 |
! Input : |
! Input : |
34 |
! pucov covariant zonal velocity |
! pucov covariant zonal velocity |
35 |
! pvcov covariant meridional velocity |
! pvcov covariant meridional velocity |
36 |
! pteta potential temperature |
! teta potential temperature |
37 |
! pps surface pressure |
! pps surface pressure |
38 |
! pmasse masse d'air dans chaque maille |
! pmasse masse d'air dans chaque maille |
39 |
! pts surface temperature (K) |
! pts surface temperature (K) |
66 |
|
|
67 |
REAL pvcov(iim + 1, jjm, llm) |
REAL pvcov(iim + 1, jjm, llm) |
68 |
REAL pucov(iim + 1, jjm + 1, llm) |
REAL pucov(iim + 1, jjm + 1, llm) |
69 |
REAL pteta(iim + 1, jjm + 1, llm) |
REAL, intent(in):: teta(iim + 1, jjm + 1, llm) |
70 |
REAL pmasse(iim + 1, jjm + 1, llm) |
REAL pmasse(iim + 1, jjm + 1, llm) |
71 |
|
|
72 |
REAL, intent(in):: q(iim + 1, jjm + 1, llm, nqmx) |
REAL, intent(in):: q(iim + 1, jjm + 1, llm, nqmx) |
77 |
|
|
78 |
REAL pdvcov(iim + 1, jjm, llm) |
REAL pdvcov(iim + 1, jjm, llm) |
79 |
REAL pducov(iim + 1, jjm + 1, llm) |
REAL pducov(iim + 1, jjm + 1, llm) |
|
REAL pdteta(iim + 1, jjm + 1, llm) |
|
80 |
REAL pdq(iim + 1, jjm + 1, llm, nqmx) |
REAL pdq(iim + 1, jjm + 1, llm, nqmx) |
81 |
|
|
82 |
REAL, intent(in):: pw(iim + 1, jjm + 1, llm) |
REAL, intent(in):: pw(iim + 1, jjm + 1, llm) |
86 |
|
|
87 |
REAL pdvfi(iim + 1, jjm, llm) |
REAL pdvfi(iim + 1, jjm, llm) |
88 |
REAL pdufi(iim + 1, jjm + 1, llm) |
REAL pdufi(iim + 1, jjm + 1, llm) |
89 |
REAL pdhfi(iim + 1, jjm + 1, llm) |
REAL, intent(out):: pdhfi(iim + 1, jjm + 1, llm) |
90 |
REAL pdqfi(iim + 1, jjm + 1, llm, nqmx) |
REAL pdqfi(iim + 1, jjm + 1, llm, nqmx) |
91 |
REAL pdpsfi(iim + 1, jjm + 1) |
REAL pdpsfi(iim + 1, jjm + 1) |
92 |
|
|
151 |
pksurcp = ppk(:, :, l) / cpp |
pksurcp = ppk(:, :, l) / cpp |
152 |
pls(:, :, l) = preff * pksurcp**(1./ kappa) |
pls(:, :, l) = preff * pksurcp**(1./ kappa) |
153 |
zplay(:, l) = pack(pls(:, :, l), dyn_phy) |
zplay(:, l) = pack(pls(:, :, l), dyn_phy) |
154 |
ztfi(:, l) = pack(pteta(:, :, l) * pksurcp, dyn_phy) |
ztfi(:, l) = pack(teta(:, :, l) * pksurcp, dyn_phy) |
155 |
ENDDO |
ENDDO |
156 |
|
|
157 |
! 43.bis traceurs |
! 43.bis traceurs |
246 |
forall(l= 1: llm) v(:, l) = pack(zvfi(:, :, l), dyn_phy) |
forall(l= 1: llm) v(:, l) = pack(zvfi(:, :, l), dyn_phy) |
247 |
|
|
248 |
!IM calcul PV a teta=350, 380, 405K |
!IM calcul PV a teta=350, 380, 405K |
249 |
CALL PVtheta(klon, llm, pucov, pvcov, pteta, ztfi, zplay, zplev, & |
CALL PVtheta(klon, llm, pucov, pvcov, teta, ztfi, zplay, zplev, & |
250 |
ntetaSTD, rtetaSTD, PVteta) |
ntetaSTD, rtetaSTD, PVteta) |
251 |
|
|
252 |
! Appel de la physique : |
! Appel de la physique : |