17 |
USE calfis_m, ONLY: calfis |
USE calfis_m, ONLY: calfis |
18 |
USE comconst, ONLY: daysec, dtphys, dtvr |
USE comconst, ONLY: daysec, dtphys, dtvr |
19 |
USE comgeom, ONLY: aire_2d, apoln, apols |
USE comgeom, ONLY: aire_2d, apoln, apols |
20 |
USE comvert, ONLY: ap, bp |
USE disvert_m, ONLY: ap, bp |
21 |
USE conf_gcm_m, ONLY: day_step, iconser, iperiod, iphysiq, nday, offline |
USE conf_gcm_m, ONLY: day_step, iconser, iperiod, iphysiq, nday, offline, & |
22 |
|
iflag_phys, ok_guide |
23 |
USE dimens_m, ONLY: iim, jjm, llm, nqmx |
USE dimens_m, ONLY: iim, jjm, llm, nqmx |
24 |
use dissip_m, only: dissip |
use dissip_m, only: dissip |
25 |
USE dynetat0_m, ONLY: day_ini |
USE dynetat0_m, ONLY: day_ini |
30 |
USE guide_m, ONLY: guide |
USE guide_m, ONLY: guide |
31 |
use inidissip_m, only: idissip |
use inidissip_m, only: idissip |
32 |
use integrd_m, only: integrd |
use integrd_m, only: integrd |
|
USE logic, ONLY: iflag_phys, ok_guide |
|
33 |
use nr_util, only: assert |
use nr_util, only: assert |
34 |
USE pressure_var, ONLY: p3d |
USE pressure_var, ONLY: p3d |
35 |
USE temps, ONLY: itau_dyn |
USE temps, ONLY: itau_dyn |
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), dt_app = dtvr * iperiod) |
q(:, :, :, 1)) |
231 |
ENDIF |
ENDIF |
232 |
end do time_integration |
end do time_integration |
233 |
|
|