Ignore:
Timestamp:
Mar 12, 2015, 12:45:17 PM (10 years ago)
Author:
emillour
Message:

All GCMS:
Some cleanup and tidying on the dynamics/physics interface.
Essentially affects the "iniphysiq" routine in all physics packages.
EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/dyn3d/gcm.F

    r1130 r1395  
    55     &                       nday_r, idissip, iconser, ecritstart,
    66     &                       ecritphy
    7       use comgeomphy, only: initcomgeomphy
     7!      use comgeomphy, only: initcomgeomphy
    88      IMPLICIT NONE
    99
     
    143143c    variables pour l'initialisation de la physique :
    144144c    ------------------------------------------------
    145       INTEGER ngridmx
    146       PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
    147       REAL zcufi(ngridmx),zcvfi(ngridmx)
    148       REAL latfi(ngridmx),lonfi(ngridmx)
    149       REAL airefi(ngridmx)
    150       SAVE latfi, lonfi, airefi
    151       INTEGER i,j
     145!      INTEGER ngridmx
     146!      PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
     147!      REAL zcufi(ngridmx),zcvfi(ngridmx)
     148!      REAL latfi(ngridmx),lonfi(ngridmx)
     149!      REAL airefi(ngridmx)
     150!      SAVE latfi, lonfi, airefi
     151!      INTEGER i,j
    152152
    153153c-----------------------------------------------------------------------
     
    168168!#ifdef CPP_PHYS
    169169      CALL init_phys_lmdz(iim,jjp1,llm,1,(/(jjm-1)*iim+2/))
    170       call initcomgeomphy
     170!      call initcomgeomphy ! now done in iniphysiq
    171171!#endif
    172172!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    227227
    228228!      IF (call_iniphys.and.(iflag_phys==1.or.iflag_phys>=100)) THEN
    229          latfi(1)=rlatu(1)
    230          lonfi(1)=0.
    231          zcufi(1) = cu(1)
    232          zcvfi(1) = cv(1)
    233          DO j=2,jjm
    234             DO i=1,iim
    235                latfi((j-2)*iim+1+i)= rlatu(j)
    236                lonfi((j-2)*iim+1+i)= rlonv(i)
    237                zcufi((j-2)*iim+1+i) = cu((j-1)*iip1+i)
    238                zcvfi((j-2)*iim+1+i) = cv((j-1)*iip1+i)
    239             ENDDO
    240          ENDDO
    241          latfi(ngridmx)= rlatu(jjp1)
    242          lonfi(ngridmx)= 0.
    243          zcufi(ngridmx) = cu(ip1jm+1)
    244          zcvfi(ngridmx) = cv(ip1jm-iim)
    245 
    246          ! build airefi(), mesh area on physics grid
    247          CALL gr_dyn_fi(1,iip1,jjp1,ngridmx,aire,airefi)
    248          ! Poles are single points on physics grid
    249          airefi(1)=airefi(1)*iim
    250          airefi(ngridmx)=airefi(ngridmx)*iim
     229!         latfi(1)=rlatu(1)
     230!         lonfi(1)=0.
     231!         zcufi(1) = cu(1)
     232!         zcvfi(1) = cv(1)
     233!         DO j=2,jjm
     234!            DO i=1,iim
     235!               latfi((j-2)*iim+1+i)= rlatu(j)
     236!               lonfi((j-2)*iim+1+i)= rlonv(i)
     237!               zcufi((j-2)*iim+1+i) = cu((j-1)*iip1+i)
     238!               zcvfi((j-2)*iim+1+i) = cv((j-1)*iip1+i)
     239!            ENDDO
     240!         ENDDO
     241!         latfi(ngridmx)= rlatu(jjp1)
     242!         lonfi(ngridmx)= 0.
     243!         zcufi(ngridmx) = cu(ip1jm+1)
     244!         zcvfi(ngridmx) = cv(ip1jm-iim)
     245!
     246!         ! build airefi(), mesh area on physics grid
     247!         CALL gr_dyn_fi(1,iip1,jjp1,ngridmx,aire,airefi)
     248!         ! Poles are single points on physics grid
     249!         airefi(1)=airefi(1)*iim
     250!         airefi(ngridmx)=airefi(ngridmx)*iim
    251251
    252252! Initialisation de la physique: pose probleme quand on tourne
     
    254254! Il faut une cle CPP_PHYS
    255255!#ifdef CPP_PHYS
    256 !         CALL iniphysiq(ngridmx,llm,daysec,day_ini,dtphys/nsplit_phys,
    257          CALL iniphysiq(ngridmx,llm,daysec,day_ini,dtphys,
    258      &                latfi,lonfi,airefi,zcufi,zcvfi,rad,g,r,cpp,
     256!         CALL iniphysiq(iim,jjm,llm,daysec,day_ini,dtphys/nsplit_phys,
     257         CALL iniphysiq(iim,jjm,llm,daysec,day_ini,dtphys,
     258     &                rlatu,rlonv,aire,cu,cv,rad,g,r,cpp,
    259259     &                1)
    260260!     &                iflag_phys)
Note: See TracChangeset for help on using the changeset viewer.