Ignore:
Timestamp:
Jul 24, 2015, 7:32:31 PM (9 years ago)
Author:
lguez
Message:

Bug fix. maase, pbaru and pbarv cannot be intent(in) in caldyn0
because they are modified in caldyn0 (masse is computed by massdair
and pbaru, pbarv are computed by flumass). Also masse is already
computed in etat0dyn_netcdf, and the difference with the computation
in caldyn0 is the averaging at the poles. If we do not want to lose
this averaging, we should not overwrite masse with an output argument
from caldyn0. So the simplest thing to do is to downgrade masse from
argument to local variable of caldyn0. We also simply downgrade pbaru,
pbarv from arguments to local variables of caldyn0.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/dyn3d_common/caldyn0.F90

    r2293 r2334  
    1 SUBROUTINE caldyn0(itau,ucov,vcov,teta,ps,masse,pk,phis,phi,w,pbaru,pbarv,time)
     1SUBROUTINE caldyn0(itau,ucov,vcov,teta,ps,pk,phis,phi,w,time)
    22!
    33!-------------------------------------------------------------------------------
     
    2020  REAL,    INTENT(IN)  :: teta (ip1jmp1  ,llm)      !--- POTENTIAL TEMPERATURE
    2121  REAL,    INTENT(IN)  :: ps   (ip1jmp1)            !--- GROUND PRESSURE
    22   REAL,    INTENT(IN)  :: masse(ip1jmp1  ,llm)      !--- MASS IN EACH CELL
    2322  REAL,    INTENT(IN)  :: pk   (iip1,jjp1,llm)      !--- PRESSURE
    2423  REAL,    INTENT(IN)  :: phis (ip1jmp1)            !--- GROUND GEOPOTENTIAL
    2524  REAL,    INTENT(IN)  :: phi  (ip1jmp1  ,llm)      !--- 3D GEOPOTENTIAL
    2625  REAL,    INTENT(OUT) :: w    (ip1jmp1  ,llm)      !--- VERTICAL WIND
    27   REAL,    INTENT(IN)  :: pbaru(ip1jmp1  ,llm)      !--- U MASS FLUX
    28   REAL,    INTENT(IN)  :: pbarv(ip1jm    ,llm)      !--- V MASS FLUX
    2926  REAL,    INTENT(IN)  :: time                      !--- TIME
    3027!===============================================================================
    3128! Local variables:
     29  REAL masse(ip1jmp1  ,llm)      !--- MASS IN EACH CELL
     30  REAL pbaru(ip1jmp1  ,llm)      !--- U MASS FLUX
     31  REAL pbarv(ip1jm    ,llm)      !--- V MASS FLUX
    3232  REAL, DIMENSION(ip1jmp1,llmp1) :: p
    3333  REAL, DIMENSION(ip1jmp1,llm)   :: ucont, massebx, ang, ecin, convm, bern
Note: See TracChangeset for help on using the changeset viewer.