--- trunk/dyn3d/leapfrog.f 2014/04/02 12:59:54 95 +++ trunk/dyn3d/leapfrog.f 2014/08/29 13:00:05 103 @@ -15,7 +15,7 @@ use caladvtrac_m, only: caladvtrac use caldyn_m, only: caldyn USE calfis_m, ONLY: calfis - USE comconst, ONLY: daysec, dtphys, dtvr + USE comconst, ONLY: daysec, dtvr USE comgeom, ONLY: aire_2d, apoln, apols USE disvert_m, ONLY: ap, bp USE conf_gcm_m, ONLY: day_step, iconser, iperiod, iphysiq, nday, offline, & @@ -120,8 +120,8 @@ else ! Matsuno dt = dtvr - if (ok_guide .and. (itaufin - itau - 1) * dtvr > 21600.) & - call guide(itau, ucov, vcov, teta, q, masse, ps) + if (ok_guide .and. itaufin - itau - 1 > day_step / 4) & + call guide(itau, ucov, vcov, teta, q, ps) vcovm1 = vcov ucovm1 = ucov tetam1 = teta @@ -148,11 +148,11 @@ dp, vcov, ucov, teta, q(:, :, :, :2), ps, masse, finvmaold, dt, & leapf) + forall (l = 1: llm + 1) p3d(:, :, l) = ap(l) + bp(l) * ps + CALL exner_hyb(ps, p3d, pks, pk, pkf) + if (.not. leapf) then ! Matsuno backward - forall (l = 1: llm + 1) p3d(:, :, l) = ap(l) + bp(l) * ps - CALL exner_hyb(ps, p3d, pks, pk, pkf) - ! Calcul des tendances dynamiques: CALL geopot(teta, pk, pks, phis, phi) CALL caldyn(itau + 1, ucov, vcov, teta, ps, masse, pk, pkf, phis, & @@ -163,14 +163,14 @@ CALL integrd(vcovm1, ucovm1, tetam1, psm1, massem1, dv, dudyn, & dteta, dp, vcov, ucov, teta, q(:, :, :, :2), ps, masse, & finvmaold, dtvr, leapf=.false.) + + forall (l = 1: llm + 1) p3d(:, :, l) = ap(l) + bp(l) * ps + CALL exner_hyb(ps, p3d, pks, pk, pkf) end if IF (MOD(itau + 1, iphysiq) == 0 .AND. iflag_phys /= 0) THEN ! Calcul des tendances physiques: - forall (l = 1: llm + 1) p3d(:, :, l) = ap(l) + bp(l) * ps - CALL exner_hyb(ps, p3d, pks, pk) - rdaym_ini = itau * dtvr / daysec rdayvrai = rdaym_ini + day_ini time = REAL(mod(itau, day_step)) / day_step + time_0 @@ -183,9 +183,6 @@ CALL addfi(ucov, vcov, teta, q, dufi, dvfi, dtetafi, dqfi) ENDIF - forall (l = 1: llm + 1) p3d(:, :, l) = ap(l) + bp(l) * ps - CALL exner_hyb(ps, p3d, pks, pk, pkf) - IF (MOD(itau + 1, idissip) == 0) THEN ! Dissipation horizontale et verticale des petites \'echelles