--- trunk/dyn3d/leapfrog.f 2014/03/12 21:16:36 90 +++ trunk/dyn3d/leapfrog.f 2014/04/04 11:30:34 96 @@ -53,7 +53,7 @@ REAL, intent(in):: time_0 - ! Variables local to the procedure: + ! Local: ! Variables dynamiques: @@ -61,11 +61,11 @@ REAL pk(iim + 1, jjm + 1, llm) ! exner au milieu des couches REAL pkf(iim + 1, jjm + 1, llm) ! exner filtr\'e au milieu des couches REAL phi(iim + 1, jjm + 1, llm) ! geopotential - REAL w((iim + 1) * (jjm + 1), llm) ! vitesse verticale + REAL w(iim + 1, jjm + 1, llm) ! vitesse verticale ! Variables dynamiques intermediaire pour le transport ! Flux de masse : - REAL pbaru((iim + 1) * (jjm + 1), llm), pbarv((iim + 1) * jjm, llm) + REAL pbaru(iim + 1, jjm + 1, llm), pbarv(iim + 1, jjm, llm) ! Variables dynamiques au pas - 1 REAL vcovm1(iim + 1, jjm, llm), ucovm1(iim + 1, jjm + 1, llm) @@ -82,9 +82,8 @@ REAL dtetadis(iim + 1, jjm + 1, llm) ! Tendances physiques - REAL dvfi((iim + 1) * jjm, llm), dufi((iim + 1) * (jjm + 1), llm) - REAL dtetafi(iim + 1, jjm + 1, llm), dqfi((iim + 1) * (jjm + 1), llm, nqmx) - real dpfi((iim + 1) * (jjm + 1)) + REAL dvfi(iim + 1, jjm, llm), dufi(iim + 1, jjm + 1, llm) + REAL dtetafi(iim + 1, jjm + 1, llm), dqfi(iim + 1, jjm + 1, llm, nqmx) ! Variables pour le fichier histoire @@ -100,7 +99,7 @@ REAL vcont((iim + 1) * jjm, llm), ucont((iim + 1) * (jjm + 1), llm) logical leapf - real dt + real dt ! time step, in s !--------------------------------------------------- @@ -166,27 +165,24 @@ finvmaold, dtvr, leapf=.false.) end if + forall (l = 1: llm + 1) p3d(:, :, l) = ap(l) + bp(l) * ps + CALL exner_hyb(ps, p3d, pks, pk, pkf) + 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, pkf) - rdaym_ini = itau * dtvr / daysec rdayvrai = rdaym_ini + day_ini time = REAL(mod(itau, day_step)) / day_step + time_0 IF (time > 1.) time = time - 1. - CALL calfis(rdayvrai, time, ucov, vcov, teta, q, ps, pk, phis, phi, & - w, dufi, dvfi, dtetafi, dqfi, dpfi, lafin = itau + 1 == itaufin) + CALL calfis(rdayvrai, time, ucov, vcov, teta, q, pk, phis, phi, w, & + dufi, dvfi, dtetafi, dqfi, lafin = itau + 1 == itaufin) ! Ajout des tendances physiques: - CALL addfi(ucov, vcov, teta, q, ps, dufi, dvfi, dtetafi, dqfi, dpfi) + 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