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

Location:
trunk/LMDZ.COMMON/libf/dyn3dpar
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/dyn3dpar/gcm.F

    r1391 r1395  
    3434#ifdef CPP_PHYS
    3535      USE mod_grid_phy_lmdz
    36       USE mod_phys_lmdz_para, ONLY : klon_mpi_para_nb
     36!      USE mod_phys_lmdz_para, ONLY : klon_mpi_para_nb
    3737      USE mod_phys_lmdz_omp_data, ONLY: klon_omp
    3838      USE dimphy
     
    123123
    124124
    125       LOGICAL call_iniphys
    126       data call_iniphys/.true./
     125!      LOGICAL call_iniphys
     126!      data call_iniphys/.true./
    127127
    128128c      REAL alpha(ip1jmp1,llm),beta(ip1jmp1,llm)
     
    150150c    variables pour l'initialisation de la physique :
    151151c    ------------------------------------------------
    152       INTEGER ngridmx
    153       PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
    154       REAL zcufi(ngridmx),zcvfi(ngridmx)
    155       REAL latfi(ngridmx),lonfi(ngridmx)
    156       REAL airefi(ngridmx)
    157       SAVE latfi, lonfi, airefi
     152!      INTEGER ngridmx
     153!      PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
     154!      REAL zcufi(ngridmx),zcvfi(ngridmx)
     155!      REAL latfi(ngridmx),lonfi(ngridmx)
     156!      REAL airefi(ngridmx)
     157!      SAVE latfi, lonfi, airefi
    158158     
    159159      INTEGER :: ierr
     
    198198#ifdef CPP_PHYS
    199199        CALL init_phys_lmdz(iim,jjp1,llm,mpi_size,distrib_phys)
    200 #endif
     200!#endif
     201!      CALL set_bands
     202!#ifdef CPP_PHYS
     203      CALL Init_interface_dyn_phys
     204#endif
     205      CALL barrier
     206
    201207      CALL set_bands
    202 #ifdef CPP_PHYS
    203       CALL Init_interface_dyn_phys
    204 #endif
    205       CALL barrier
    206 
    207208      if (mpi_rank==0) call WriteBands
    208209      call SetDistrib(jj_Nb_Caldyn)
     
    213214
    214215#ifdef CPP_PHYS
    215 c$OMP PARALLEL
    216       call initcomgeomphy
    217 c$OMP END PARALLEL
     216!c$OMP PARALLEL
     217!      call initcomgeomphy
     218!c$OMP END PARALLEL
    218219#endif
    219220
     
    467468c   -------------------------------
    468469
    469       IF (call_iniphys.and.(iflag_phys==1.or.iflag_phys>=100)) THEN
    470          latfi(1)=rlatu(1)
    471          lonfi(1)=0.
    472          zcufi(1) = cu(1)
    473          zcvfi(1) = cv(1)
    474          DO j=2,jjm
    475             DO i=1,iim
    476                latfi((j-2)*iim+1+i)= rlatu(j)
    477                lonfi((j-2)*iim+1+i)= rlonv(i)
    478                zcufi((j-2)*iim+1+i) = cu((j-1)*iip1+i)
    479                zcvfi((j-2)*iim+1+i) = cv((j-1)*iip1+i)
    480             ENDDO
    481          ENDDO
    482          latfi(ngridmx)= rlatu(jjp1)
    483          lonfi(ngridmx)= 0.
    484          zcufi(ngridmx) = cu(ip1jm+1)
    485          zcvfi(ngridmx) = cv(ip1jm-iim)
     470      IF ((iflag_phys==1).or.(iflag_phys>=100)) THEN
     471!         latfi(1)=rlatu(1)
     472!         lonfi(1)=0.
     473!         zcufi(1) = cu(1)
     474!         zcvfi(1) = cv(1)
     475!         DO j=2,jjm
     476!            DO i=1,iim
     477!               latfi((j-2)*iim+1+i)= rlatu(j)
     478!               lonfi((j-2)*iim+1+i)= rlonv(i)
     479!               zcufi((j-2)*iim+1+i) = cu((j-1)*iip1+i)
     480!               zcvfi((j-2)*iim+1+i) = cv((j-1)*iip1+i)
     481!            ENDDO
     482!         ENDDO
     483!         latfi(ngridmx)= rlatu(jjp1)
     484!         lonfi(ngridmx)= 0.
     485!         zcufi(ngridmx) = cu(ip1jm+1)
     486!         zcvfi(ngridmx) = cv(ip1jm-iim)
    486487
    487488         ! build airefi(), mesh area on physics grid
    488          CALL gr_dyn_fi(1,iip1,jjp1,ngridmx,aire,airefi)
     489!         CALL gr_dyn_fi(1,iip1,jjp1,ngridmx,aire,airefi)
    489490         ! Poles are single points on physics grid
    490          airefi(1)=airefi(1)*iim
    491          airefi(ngridmx)=airefi(ngridmx)*iim
     491!         airefi(1)=airefi(1)*iim
     492!         airefi(ngridmx)=airefi(ngridmx)*iim
    492493
    493494! Physics
    494495#ifdef CPP_PHYS
    495          CALL iniphysiq(ngridmx,llm,daysec,day_ini,dtphys/nsplit_phys,
    496      &                latfi,lonfi,airefi,zcufi,zcvfi,rad,g,r,cpp,
     496!         CALL iniphysiq(ngridmx,llm,daysec,day_ini,dtphys/nsplit_phys,
     497!     &                latfi,lonfi,airefi,zcufi,zcvfi,rad,g,r,cpp,
     498!     &                iflag_phys)
     499         CALL iniphysiq(iim,jjm,llm,daysec,day_ini,dtphys/nsplit_phys,
     500     &                rlatu,rlonv,aire,cu,cv,rad,g,r,cpp,
    497501     &                iflag_phys)
    498502#endif
    499          call_iniphys=.false.
     503!         call_iniphys=.false.
    500504      ENDIF ! of IF (call_iniphys.and.(iflag_phys==1.or.iflag_phys>=100))
    501505
  • trunk/LMDZ.COMMON/libf/dyn3dpar/mod_interface_dyn_phys.F90

    r776 r1395  
    1212 
    1313  SUBROUTINE Init_interface_dyn_phys
    14     USE mod_phys_lmdz_mpi_data
     14    USE mod_phys_lmdz_mpi_data, ONLY: klon_mpi, is_north_pole, is_south_pole, &
     15                                      ii_begin, jj_begin, ii_end, jj_end
    1516    IMPLICIT NONE
    1617    include 'dimensions.h'   
Note: See TracChangeset for help on using the changeset viewer.