Ignore:
Timestamp:
Apr 5, 2016, 10:51:51 AM (9 years ago)
Author:
emillour
Message:

Generic GCM: Towards a cleaner separation between physics and dynamics

  • Got rid of references to "dimensions.h" from physics packages: use nbp_lon (=iim), nbp_lat (=jjp1) and nbp_lev from module mod_grid_phy_lmdz (in phy_common) instead.
  • Removed module "comhdiff_mod.F90", as it is only used by module surf_heat_transp_mod.F90, moved module variables there.
  • Addedin "surf_heat_transp_mod" local versions of some arrays and routines (from dyn3d) required to compute gradient, divergence, etc. on the global dynamics grid. As before, the slab ocean only works in serial.

EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/libf/phystd/mass_redistribution.F90

    r1526 r1529  
    1       SUBROUTINE mass_redistribution(ngrid,nlayer,nq,ptimestep,   &
     1SUBROUTINE mass_redistribution(ngrid,nlayer,nq,ptimestep,   &
    22                       rnat,pcapcal,pplay,pplev,pt,ptsrf,pq,pqs,     &
    33                       pu,pv,pdt,pdtsrf,pdq,pdu,pdv,pdmassmr,  &
     
    224224!        Van Leer scheme:
    225225         w(1:nlayer+1)=-zmflux(1:nlayer+1)*ptimestep
    226          call vl1d(zzt,2.,zzmass,w,ztm)
    227          call vl1d(zzu ,2.,zzmass,w,zum)
    228          call vl1d(zzv ,2.,zzmass,w,zvm)
     226         call vl1d(nlayer,zzt,2.,zzmass,w,ztm)
     227         call vl1d(nlayer,zzu,2.,zzmass,w,zum)
     228         call vl1d(nlayer,zzv,2.,zzmass,w,zvm)
    229229         do iq=1,nq
    230230           zq1(1:nlayer)=zzq(1:nlayer,iq)
     
    232232!               print*,iq
    233233!               print*,zq1
    234            call vl1d(zq1,2.,zzmass,w,zqm1)
     234           call vl1d(nlayer,zq1,2.,zzmass,w,zqm1)
    235235           do l=2,nlayer
    236236              zzq(l,iq)=zq1(l)
     
    281281      END DO  ! loop on ig
    282282
    283       return
    284       end
    285 
    286 
     283CONTAINS
    287284
    288285! *****************************************************************
    289       SUBROUTINE vl1d(q,pente_max,zzmass,w,qm)
     286      SUBROUTINE vl1d(llm,q,pente_max,zzmass,w,qm)
    290287!
    291288!   
     
    299296!
    300297!   --------------------------------------------------------------------
     298     
    301299      IMPLICIT NONE
    302 
    303 #include "dimensions.h"
    304300
    305301!   Arguments:
    306302!   ----------
     303      integer,intent(in) :: llm
    307304      real zzmass(llm),pente_max
    308305      REAL q(llm),qm(llm+1)
     
    406403!         end if
    407404
    408       return
    409       end
     405       END SUBROUTINE vl1d
     406
     407END SUBROUTINE mass_redistribution
Note: See TracChangeset for help on using the changeset viewer.