Ignore:
Timestamp:
Aug 18, 2011, 12:09:27 PM (13 years ago)
Author:
emillour
Message:

Ehouarn: Mise a jour des dynamiques (seq et ) pour suivre
les changements et developpements de LMDZ5 terrestre
(mise a niveau avec LMDZ5 trunk, rev 1560). Ce qui ne devrais pas changer grand chose au fonctionnement de base du GCM).
Modification importante: correction du bug sur le cumul des flux de masse pour le transport des traceurs (mais dans les faits semble avoir peu d'impact).
(voir "commit_importants.log" pour les details des ajouts et modifications).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/dyn3d/leapfrog.F

    r130 r270  
    152152      logical ok_sync
    153153      parameter (ok_sync = .true.)
     154      logical physic
    154155
    155156      data callinigrads/.true./
     
    222223
    223224      itau = 0
     225      physic=.true.
     226      if (iflag_phys==0.or.iflag_phys==2) physic=.false.
     227
    224228c      iday = day_ini+itau/day_step
    225229c      time = REAL(itau-(iday-day_ini)*day_step)/day_step+time_0
     
    322326      ! Purely Matsuno time stepping
    323327         IF( MOD(itau,iconser) .EQ.0.AND.  forward    ) conser = .TRUE.
    324          IF( MOD(itau,idissip ).EQ.0.AND..NOT.forward ) apdiss = .TRUE.
     328         IF( MOD(itau,dissip_period ).EQ.0.AND..NOT.forward )
     329     s        apdiss = .TRUE.
    325330         IF( MOD(itau,iphysiq ).EQ.0.AND..NOT.forward
    326      s          .and. iflag_phys.EQ.1                 ) apphys = .TRUE.
     331     s          .and. physic                        ) apphys = .TRUE.
    327332      ELSE
    328333      ! Leapfrog/Matsuno time stepping
    329334         IF( MOD(itau   ,iconser) .EQ. 0              ) conser = .TRUE.
    330          IF( MOD(itau+1,idissip)  .EQ. 0              ) apdiss = .TRUE.
    331          IF( MOD(itau+1,iphysiq).EQ.0.AND.iflag_phys.EQ.1) apphys=.TRUE.
     335         IF( MOD(itau+1,dissip_period).EQ.0 .AND. .NOT. forward )
     336     s        apdiss = .TRUE.
     337         IF( MOD(itau+1,iphysiq).EQ.0.AND.physic       ) apphys=.TRUE.
    332338      END IF
    333339
     
    357363c   -------------------------------------------------------------
    358364
    359       IF( forward. OR . leapf )  THEN
    360 
     365!      IF( forward. OR . leapf )  THEN
     366      IF((.not.forward).OR. leapf )  THEN
     367        ! Ehouarn: gather mass fluxes during backward Matsuno or LF step
    361368         CALL caladvtrac(q,pbaru,pbarv,
    362369     *        p, masse, dq,  teta,
     
    497504          ENDDO
    498505        ENDDO ! of DO l=1,llm
    499           call friction(ucov,vcov,dtvr)
    500506   
    501        if (planet_type.eq."giant") then
    502           ! Intrinsic heat flux
    503           ! Aymeric -- for giant planets
    504           if (ihf .gt. 1.e-6) then
    505           !print *, '**** INTRINSIC HEAT FLUX ****', ihf
    506             DO ij=1,ip1jmp1
    507               teta(ij,1) = teta(ij,1)
    508      &        + dtvr * aire(ij) * ihf / cpp / masse(ij,1)
    509             ENDDO
    510           !print *, '**** d teta '
    511           !print *, dtvr * aire(ijb:ije) * ihf / cpp / masse(ijb:ije,1)
    512           endif
    513        endif
     507        if (planet_type.eq."giant") then
     508          ! add an intrinsic heat flux at the base of the atmosphere
     509          teta(:,1)=teta(:,1)+dtvr*aire(:)*ihf/cpp/masse(:,1)
     510        endif
     511
     512        call friction(ucov,vcov,dtvr)
    514513
    515514   
Note: See TracChangeset for help on using the changeset viewer.