/[lmdze]/trunk/Sources/dyn3d/leapfrog.f
ViewVC logotype

Diff of /trunk/Sources/dyn3d/leapfrog.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 69 by guez, Mon Feb 18 16:33:12 2013 UTC revision 70 by guez, Mon Jun 24 15:39:52 2013 UTC
# Line 45  contains Line 45  contains
45      ! potential temperature      ! potential temperature
46    
47      REAL, intent(inout):: ps(:, :) ! (iim + 1, jjm + 1) pression au sol, en Pa      REAL, intent(inout):: ps(:, :) ! (iim + 1, jjm + 1) pression au sol, en Pa
48      REAL masse(:, :, :) ! (iim + 1, jjm + 1, llm) masse d'air      REAL, intent(inout):: masse(:, :, :) ! (iim + 1, jjm + 1, llm) masse d'air
49      REAL, intent(in):: phis(:, :) ! (iim + 1, jjm + 1) surface geopotential      REAL, intent(in):: phis(:, :) ! (iim + 1, jjm + 1) surface geopotential
50    
51      REAL, intent(inout):: q(:, :, :, :) ! (iim + 1, jjm + 1, llm, nqmx)      REAL, intent(inout):: q(:, :, :, :) ! (iim + 1, jjm + 1, llm, nqmx)
# Line 57  contains Line 57  contains
57    
58      ! Variables dynamiques:      ! Variables dynamiques:
59    
60      REAL pks((iim + 1) * (jjm + 1)) ! exner au sol      REAL pks(iim + 1, jjm + 1) ! exner au sol
61      REAL pk(iim + 1, jjm + 1, llm) ! exner au milieu des couches      REAL pk(iim + 1, jjm + 1, llm) ! exner au milieu des couches
62      REAL pkf(iim + 1, jjm + 1, llm) ! exner filtré au milieu des couches      REAL pkf(iim + 1, jjm + 1, llm) ! exner filtré au milieu des couches
63      REAL phi(iim + 1, jjm + 1, llm) ! geopotential      REAL phi(iim + 1, jjm + 1, llm) ! geopotential
# Line 135  contains Line 135  contains
135         end if         end if
136    
137         ! Calcul des tendances dynamiques:         ! Calcul des tendances dynamiques:
138         CALL geopot((iim + 1) * (jjm + 1), teta, pk, pks, phis, phi)         CALL geopot(teta, pk, pks, phis, phi)
139         CALL caldyn(itau, ucov, vcov, teta, ps, masse, pk, pkf, phis, phi, &         CALL caldyn(itau, ucov, vcov, teta, ps, masse, pk, pkf, phis, phi, &
140              dudyn, dv, dteta, dp, w, pbaru, pbarv, time_0, &              dudyn, dv, dteta, dp, w, pbaru, pbarv, time_0, &
141              conser=MOD(itau, iconser)==0)              conser=MOD(itau, iconser)==0)
# Line 147  contains Line 147  contains
147         IF (offline) CALL fluxstokenc(pbaru, pbarv, masse, teta, phi, phis, &         IF (offline) CALL fluxstokenc(pbaru, pbarv, masse, teta, phi, phis, &
148              dtvr, itau)              dtvr, itau)
149    
150         ! Integrations dynamique et traceurs:         ! Intégrations dynamique et traceurs:
151         CALL integrd(vcovm1, ucovm1, tetam1, psm1, massem1, dv, dudyn, dteta, &         CALL integrd(vcovm1, ucovm1, tetam1, psm1, massem1, dv, dudyn, dteta, &
152              dp, vcov, ucov, teta, q(:, :, :, :2), ps, masse, finvmaold, dt, &              dp, vcov, ucov, teta, q(:, :, :, :2), ps, masse, finvmaold, dt, &
153              leapf)              leapf)
# Line 158  contains Line 158  contains
158            CALL exner_hyb(ps, p3d, pks, pk, pkf)            CALL exner_hyb(ps, p3d, pks, pk, pkf)
159    
160            ! Calcul des tendances dynamiques:            ! Calcul des tendances dynamiques:
161            CALL geopot((iim + 1) * (jjm + 1), teta, pk, pks, phis, phi)            CALL geopot(teta, pk, pks, phis, phi)
162            CALL caldyn(itau + 1, ucov, vcov, teta, ps, masse, pk, pkf, phis, &            CALL caldyn(itau + 1, ucov, vcov, teta, ps, masse, pk, pkf, phis, &
163                 phi, dudyn, dv, dteta, dp, w, pbaru, pbarv, time_0, &                 phi, dudyn, dv, dteta, dp, w, pbaru, pbarv, time_0, &
164                 conser=.false.)                 conser=.false.)
# Line 185  contains Line 185  contains
185                 lafin = itau + 1 == itaufin)                 lafin = itau + 1 == itaufin)
186    
187            ! Ajout des tendances physiques:            ! Ajout des tendances physiques:
188            CALL addfi(nqmx, dtphys, ucov, vcov, teta, q, ps, dufi, dvfi, &            CALL addfi(nqmx, ucov, vcov, teta, q, ps, dufi, dvfi, dtetafi, &
189                 dtetafi, dqfi, dpfi)                 dqfi, dpfi)
190         ENDIF         ENDIF
191    
192         forall (l = 1: llm + 1) p3d(:, :, l) = ap(l) + bp(l) * ps         forall (l = 1: llm + 1) p3d(:, :, l) = ap(l) + bp(l) * ps
# Line 233  contains Line 233  contains
233         ENDIF         ENDIF
234    
235         IF (MOD(itau + 1, iecri * day_step) == 0) THEN         IF (MOD(itau + 1, iecri * day_step) == 0) THEN
236            CALL geopot((iim + 1) * (jjm + 1), teta, pk, pks, phis, phi)            CALL geopot(teta, pk, pks, phis, phi)
237            CALL writehist(itau, vcov, ucov, teta, phi, q, masse, ps)            CALL writehist(itau, vcov, ucov, teta, phi, q, masse, ps)
238         END IF         END IF
239      end do time_integration      end do time_integration
# Line 242  contains Line 242  contains
242           itau = itau_dyn + itaufin)           itau = itau_dyn + itaufin)
243    
244      ! Calcul des tendances dynamiques:      ! Calcul des tendances dynamiques:
245      CALL geopot((iim + 1) * (jjm + 1), teta, pk, pks, phis, phi)      CALL geopot(teta, pk, pks, phis, phi)
246      CALL caldyn(itaufin, ucov, vcov, teta, ps, masse, pk, pkf, phis, phi, &      CALL caldyn(itaufin, ucov, vcov, teta, ps, masse, pk, pkf, phis, phi, &
247           dudyn, dv, dteta, dp, w, pbaru, pbarv, time_0, &           dudyn, dv, dteta, dp, w, pbaru, pbarv, time_0, &
248           conser = MOD(itaufin, iconser) == 0)           conser = MOD(itaufin, iconser) == 0)

Legend:
Removed from v.69  
changed lines
  Added in v.70

  ViewVC Help
Powered by ViewVC 1.1.21