57 |
|
|
58 |
REAL pks((iim + 1) * (jjm + 1)) ! exner au sol |
REAL pks((iim + 1) * (jjm + 1)) ! exner au sol |
59 |
REAL pk(iim + 1, jjm + 1, llm) ! exner au milieu des couches |
REAL pk(iim + 1, jjm + 1, llm) ! exner au milieu des couches |
60 |
REAL pkf((iim + 1) * (jjm + 1), llm) ! exner filt.au milieu des couches |
REAL pkf(iim + 1, jjm + 1, llm) ! exner filtré au milieu des couches |
61 |
REAL phi(iim + 1, jjm + 1, llm) ! geopotential |
REAL phi(iim + 1, jjm + 1, llm) ! geopotential |
62 |
REAL w((iim + 1) * (jjm + 1), llm) ! vitesse verticale |
REAL w((iim + 1) * (jjm + 1), llm) ! vitesse verticale |
63 |
|
|
106 |
call assert(shape(ucov) == (/iim + 1, jjm + 1, llm/), "leapfrog") |
call assert(shape(ucov) == (/iim + 1, jjm + 1, llm/), "leapfrog") |
107 |
|
|
108 |
itaufin = nday * day_step |
itaufin = nday * day_step |
109 |
! "day_step" is a multiple of "iperiod", therefore "itaufin" is one too |
! "day_step" is a multiple of "iperiod", therefore so is "itaufin". |
110 |
|
|
111 |
dq = 0. |
dq = 0. |
112 |
|
|
129 |
massem1 = masse |
massem1 = masse |
130 |
psm1 = ps |
psm1 = ps |
131 |
finvmaold = masse |
finvmaold = masse |
132 |
CALL filtreg(finvmaold, jjm + 1, llm, - 2, 2, .TRUE., 1) |
CALL filtreg(finvmaold, jjm + 1, llm, - 2, 2, .TRUE.) |
133 |
end if |
end if |
134 |
|
|
135 |
! Calcul des tendances dynamiques: |
! Calcul des tendances dynamiques: |
224 |
|
|
225 |
IF (MOD(itau + 1, iperiod) == 0) THEN |
IF (MOD(itau + 1, iperiod) == 0) THEN |
226 |
! Écriture du fichier histoire moyenne: |
! Écriture du fichier histoire moyenne: |
227 |
CALL writedynav(nqmx, itau + 1, vcov, ucov, teta, pk, phi, q, & |
CALL writedynav(vcov, ucov, teta, pk, phi, q, masse, ps, phis, & |
228 |
masse, ps, phis) |
time = itau + 1) |
229 |
call bilan_dyn(ps, masse, pk, pbaru, pbarv, teta, phi, ucov, vcov, & |
call bilan_dyn(ps, masse, pk, pbaru, pbarv, teta, phi, ucov, vcov, & |
230 |
q(:, :, :, 1)) |
q(:, :, :, 1)) |
231 |
ENDIF |
ENDIF |