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
  • TabularUnified trunk/LMDZ.GENERIC/libf/dyn3d/gcm.F

    r1216 r1395  
    55      use control_mod, only: nday, day_step, iperiod, iphysiq,
    66     &                       iconser, ecritphy, idissip
    7       use comgeomphy, only: initcomgeomphy
     7!      use comgeomphy, only: initcomgeomphy
    88      IMPLICIT NONE
    99
     
    159159c    variables pour l'initialisation de la physique :
    160160c    ------------------------------------------------
    161       INTEGER ngridmx
    162       PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
    163       REAL zcufi(ngridmx),zcvfi(ngridmx)
    164       REAL latfi(ngridmx),lonfi(ngridmx)
    165       REAL airefi(ngridmx)
    166       SAVE latfi, lonfi, airefi
    167       INTEGER i,j
     161!      INTEGER ngridmx
     162!      PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
     163!      REAL zcufi(ngridmx),zcvfi(ngridmx)
     164!      REAL latfi(ngridmx),lonfi(ngridmx)
     165!      REAL airefi(ngridmx)
     166!      SAVE latfi, lonfi, airefi
     167!      INTEGER i,j
    168168
    169169c-----------------------------------------------------------------------
     
    183183!#ifdef CPP_PHYS
    184184      CALL init_phys_lmdz(iim,jjp1,llm,1,(/(jjm-1)*iim+2/))
    185       call initcomgeomphy
     185!      call initcomgeomphy ! now done in iniphysiq
    186186!#endif
    187187!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    231231
    232232!      IF (call_iniphys.and.(iflag_phys==1.or.iflag_phys>=100)) THEN
    233          latfi(1)=rlatu(1)
    234          lonfi(1)=0.
    235          zcufi(1) = cu(1)
    236          zcvfi(1) = cv(1)
    237          DO j=2,jjm
    238             DO i=1,iim
    239                latfi((j-2)*iim+1+i)= rlatu(j)
    240                lonfi((j-2)*iim+1+i)= rlonv(i)
    241                zcufi((j-2)*iim+1+i) = cu((j-1)*iip1+i)
    242                zcvfi((j-2)*iim+1+i) = cv((j-1)*iip1+i)
    243             ENDDO
    244          ENDDO
    245          latfi(ngridmx)= rlatu(jjp1)
    246          lonfi(ngridmx)= 0.
    247          zcufi(ngridmx) = cu(ip1jm+1)
    248          zcvfi(ngridmx) = cv(ip1jm-iim)
    249 
    250          ! build airefi(), mesh area on physics grid
    251          CALL gr_dyn_fi(1,iip1,jjp1,ngridmx,aire,airefi)
    252          ! Poles are single points on physics grid
    253          airefi(1)=airefi(1)*iim
    254          airefi(ngridmx)=airefi(ngridmx)*iim
     233!         latfi(1)=rlatu(1)
     234!         lonfi(1)=0.
     235!         zcufi(1) = cu(1)
     236!         zcvfi(1) = cv(1)
     237!         DO j=2,jjm
     238!            DO i=1,iim
     239!               latfi((j-2)*iim+1+i)= rlatu(j)
     240!               lonfi((j-2)*iim+1+i)= rlonv(i)
     241!               zcufi((j-2)*iim+1+i) = cu((j-1)*iip1+i)
     242!               zcvfi((j-2)*iim+1+i) = cv((j-1)*iip1+i)
     243!            ENDDO
     244!         ENDDO
     245!         latfi(ngridmx)= rlatu(jjp1)
     246!         lonfi(ngridmx)= 0.
     247!         zcufi(ngridmx) = cu(ip1jm+1)
     248!         zcvfi(ngridmx) = cv(ip1jm-iim)
     249!
     250!         ! build airefi(), mesh area on physics grid
     251!         CALL gr_dyn_fi(1,iip1,jjp1,ngridmx,aire,airefi)
     252!         ! Poles are single points on physics grid
     253!         airefi(1)=airefi(1)*iim
     254!         airefi(ngridmx)=airefi(ngridmx)*iim
    255255
    256256! Initialisation de la physique: pose probleme quand on tourne
     
    258258! Il faut une cle CPP_PHYS
    259259!#ifdef CPP_PHYS
    260 !         CALL iniphysiq(ngridmx,llm,daysec,day_ini,dtphys/nsplit_phys,
    261          CALL iniphysiq(ngridmx,llm,daysec,day_ini,dtphys,
    262      &                latfi,lonfi,airefi,zcufi,zcvfi,rad,g,r,cpp,
     260!         CALL iniphysiq(iim,jjm,llm,daysec,day_ini,dtphys/nsplit_phys,
     261         CALL iniphysiq(iim,jjm,llm,daysec,day_ini,dtphys,
     262     &                rlatu,rlonv,aire,cu,cv,rad,g,r,cpp,
    263263     &                1)
    264264!     &                iflag_phys)
Note: See TracChangeset for help on using the changeset viewer.