Ignore:
Timestamp:
Feb 3, 2012, 11:07:08 AM (12 years ago)
Author:
Ehouarn Millour
Message:

Correction to enforce having 1+1=2 in the dynamics.
Still not sure why changing surface pressure during dissipation step leads to having 1+1!=2. But clearly there is no reason to recompute polar surface pressure during a dissipation step.
EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/dyn3d/leapfrog.F

    r1592 r1614  
    221221c   ----------------------------------
    222222
    223    1  CONTINUE
     223   1  CONTINUE ! Matsuno Forward step begins here
    224224
    225225      jD_cur = jD_ref + day_ini - day_ref +                             &
     
    261261      CALL filtreg ( finvmaold ,jjp1, llm, -2,2, .TRUE., 1 )
    262262
    263    2  CONTINUE
     263   2  CONTINUE ! Matsuno backward or leapfrog step begins here
    264264
    265265c-----------------------------------------------------------------------
     
    304304c   --------------------------------
    305305
     306      ! compute geopotential phi()
    306307      CALL geopot  ( ip1jmp1, teta  , pk , pks,  phis  , phi   )
    307308
     
    537538        ENDDO
    538539
    539         DO ij =  1,iim
    540           tppn(ij)  = aire(  ij    ) * ps (  ij    )
    541           tpps(ij)  = aire(ij+ip1jm) * ps (ij+ip1jm)
    542         ENDDO
    543           tpn  = SSUM(iim,tppn,1)/apoln
    544           tps  = SSUM(iim,tpps,1)/apols
    545 
    546         DO ij = 1, iip1
    547           ps(  ij    ) = tpn
    548           ps(ij+ip1jm) = tps
    549         ENDDO
    550 
     540        if (1 == 0) then
     541!!! Ehouarn: lines here 1) kill 1+1=2 in the dynamics
     542!!!                     2) should probably not be here anyway
     543!!! but are kept for those who would want to revert to previous behaviour
     544           DO ij =  1,iim
     545             tppn(ij)  = aire(  ij    ) * ps (  ij    )
     546             tpps(ij)  = aire(ij+ip1jm) * ps (ij+ip1jm)
     547           ENDDO
     548             tpn  = SSUM(iim,tppn,1)/apoln
     549             tps  = SSUM(iim,tpps,1)/apols
     550
     551           DO ij = 1, iip1
     552             ps(  ij    ) = tpn
     553             ps(ij+ip1jm) = tps
     554           ENDDO
     555        endif ! of if (1 == 0)
    551556
    552557      END IF ! of IF(apdiss)
     
    664669
    665670              CLOSE(99)
     671              !!! Ehouarn: Why not stop here and now?
    666672            ENDIF ! of IF (itau.EQ.itaufin)
    667673
Note: See TracChangeset for help on using the changeset viewer.