New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 6571 – NEMO

Changeset 6571


Ignore:
Timestamp:
2016-05-19T14:33:26+02:00 (8 years ago)
Author:
frrh
Message:

Remove references to key_oasis3mct since NEMO 3.6 base code ONLY
deals with OASIS3-MCT and it uses (the old) key_oasis3 to compile
the code for that.

Note this means we can no longer use standard OASIS3 at NEMO3.6!

Location:
branches/UKMO/dev_r5518_hadgem3_mct/NEMOGCM/NEMO/OPA_SRC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_hadgem3_mct/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90

    r6558 r6571  
    20192019      ! 
    20202020       
    2021 #if defined key_oasis3 || defined key_oasis3mct 
     2021#if defined key_oasis3 
    20222022      ! If we're trying to shut down cleanly then we need to consider the fact 
    20232023      ! that this could be part of an MPMD configuration - we don't want to 
  • branches/UKMO/dev_r5518_hadgem3_mct/NEMOGCM/NEMO/OPA_SRC/SBC/cpl_oasis3.F90

    r6558 r6571  
    2424   !!   cpl_finalize : finalize the coupled mode communication 
    2525   !!---------------------------------------------------------------------- 
    26 #if defined key_oasis3 || defined key_oasis3mct 
     26#if defined key_oasis3 
    2727   USE mod_oasis                    ! OASIS3-MCT module 
    2828#endif 
     
    3232   USE lbclnk                       ! ocean lateral boundary conditions (or mpp link) 
    3333    
    34 #if defined key_cpl_rootexchg 
    35    USE lib_mpp, only : mppsync 
    36    USE lib_mpp, only : mppscatter,mppgather 
    37 #endif  
    38  
    3934   IMPLICIT NONE 
    4035   PRIVATE 
     
    6257   INTEGER                    ::   ncomp_id          ! id returned by oasis_init_comp 
    6358   INTEGER                    ::   nerror            ! return error code 
    64 #if ! defined key_oasis3 && ! defined key_oasis3mct 
     59#if ! defined key_oasis3 
    6560   ! OASIS Variables not used. defined only for compilation purpose 
    6661   INTEGER                    ::   OASIS_Out         = -1 
     
    9893 
    9994   REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   exfld   ! Temporary buffer for receiving 
    100    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   tbuf  ! Temporary buffer for sending / receiving  
    10195   INTEGER, PUBLIC :: localComm  
    10296       
     
    167161      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~~~~' 
    168162      IF(lwp) WRITE(numout,*) 
    169        
    170       commRank = .false. 
    171       IF ( rootexchg ) THEN 
    172          IF ( nproc == localRoot ) commRank = .true. 
    173       ELSE 
    174          commRank = .true. 
    175       ENDIF 
    176163 
    177164      ncplmodel = kcplmodel 
     
    198185      ishape(:,2) = (/ 1, nlej-nldj+1 /) 
    199186      ! 
     187      ! ... Allocate memory for data exchange 
     188      ! 
     189      ALLOCATE(exfld(nlei-nldi+1, nlej-nldj+1), stat = nerror) 
     190      IF( nerror > 0 ) THEN 
     191         CALL oasis_abort ( ncomp_id, 'cpl_define', 'Failure in allocating exfld')   ;   RETURN 
     192      ENDIF       
    200193      ! 
    201194      ! ----------------------------------------------------------------- 
    202195      ! ... Define the partition  
    203196      ! ----------------------------------------------------------------- 
    204        
    205       IF ( rootexchg ) THEN 
    206       
    207       paral(1) = 2              ! box partitioning 
    208       paral(2) = 0              ! NEMO lower left corner global offset      
    209       paral(3) = jpiglo         ! local extent in i  
    210       paral(4) = jpjglo         ! local extent in j 
    211       paral(5) = jpiglo         ! global extent in x 
    212  
    213       ELSE  
    214        
     197             
    215198      paral(1) = 2                                              ! box partitioning 
    216199      paral(2) = jpiglo * (nldj-1+njmpp-1) + (nldi-1+nimpp-1)   ! NEMO lower left corner global offset     
     
    226209      ENDIF 
    227210       
    228       ENDIF 
    229       IF ( commRank )  CALL oasis_def_partition ( id_part, paral, nerror, jpiglo*jpjglo ) 
    230       
    231       ! ... Allocate memory for data exchange 
    232       ! 
    233       ALLOCATE(exfld(paral(3), paral(4)), stat = nerror) 
    234       IF( nerror > 0 ) THEN 
    235          CALL oasis_abort ( ncomp_id, 'cpl_define', 'Failure in allocating exfld')   ;   RETURN 
    236       ENDIF 
    237       IF ( rootexchg ) THEN 
    238 ! Should possibly use one of the work arrays for tbuf really 
    239          ALLOCATE(tbuf(jpi, jpj, jpnij), stat = nerror) 
    240          IF( nerror > 0 ) THEN 
    241              CALL oasis_abort ( ncomp_id, 'cpl_define', 'Failure in allocating tbuf') ; RETURN 
    242          ENDIF 
    243        ENDIF              
    244        ! 
    245        IF (commRank ) THEN 
     211      CALL oasis_def_partition ( id_part, paral, nerror ) 
    246212      ! 
    247213      ! ... Announce send variables.  
     
    335301         ENDIF 
    336302      END DO 
    337       ! 
    338       ENDIF  ! commRank=true  
    339303       
    340304      !------------------------------------------------------------------ 
     
    342306      !------------------------------------------------------------------ 
    343307       
    344       IF ( commRank ) THEN      
    345        
    346          CALL oasis_enddef(nerror) 
    347          IF( nerror /= OASIS_Ok )   CALL oasis_abort ( ncomp_id, 'cpl_define', 'Failure in oasis_enddef') 
    348       ENDIF 
     308      CALL oasis_enddef(nerror) 
     309      IF( nerror /= OASIS_Ok )   CALL oasis_abort ( ncomp_id, 'cpl_define', 'Failure in oasis_enddef') 
    349310      ! 
    350311   END SUBROUTINE cpl_define 
     
    363324      REAL(wp), DIMENSION(:,:,:), INTENT(in   ) ::   pdata 
    364325      !! 
    365       INTEGER                                   ::   jn,jc,jm     ! local loop index 
     326      INTEGER                                   ::   jc,jm     ! local loop index 
    366327      !!-------------------------------------------------------------------- 
    367328      ! 
     
    372333         
    373334            IF( ssnd(kid)%nid(jc,jm) /= -1 ) THEN 
    374                IF ( rootexchg ) THEN 
    375                   ! 
    376                   ! collect data on the local root process 
    377                   ! 
    378                   CALL mppgather (pdata(:,:,jc),localRoot,tbuf)  
    379                   CALL mppsync  
    380             
    381                   IF ( nproc == localRoot ) THEN 
    382                                 
    383                      DO jn = 1, jpnij 
    384                         exfld(nimppt(jn)-1+nldit(jn):nimppt(jn)+nleit(jn)-1,njmppt(jn)-1+nldjt(jn):njmppt(jn)+nlejt(jn)-1)= & 
    385                           tbuf(nldit(jn):nleit(jn),nldjt(jn):nlejt(jn),jn) 
    386                      ENDDO 
    387                 
    388                      ! snd data to OASIS3 
    389                      CALL oasis_put ( ssnd(kid)%nid(jc,jm), kstep, exfld, kinfo ) 
    390             
    391                   ENDIF 
    392             
    393                ELSE 
    394  
    395                    ! snd data to OASIS3 
    396                    CALL oasis_put ( ssnd(kid)%nid(jc,jm), kstep, pdata(nldi:nlei, nldj:nlej,jc), kinfo ) 
    397                ENDIF 
     335               CALL oasis_put ( ssnd(kid)%nid(jc,jm), kstep, pdata(nldi:nlei, nldj:nlej,jc), kinfo ) 
    398336                
    399337               IF ( ln_ctl ) THEN         
     
    433371      INTEGER                   , INTENT(  out) ::   kinfo     ! OASIS3 info argument 
    434372      !! 
    435       INTEGER                                   ::   jn,jc,jm     ! local loop index 
     373      INTEGER                                   ::   jc,jm     ! local loop index 
    436374      LOGICAL                                   ::   llaction, llfisrt 
    437375      !!-------------------------------------------------------------------- 
     
    447385 
    448386            IF( srcv(kid)%nid(jc,jm) /= -1 ) THEN 
    449                 
    450                ! 
    451                ! receive data from OASIS3 
    452                ! 
    453                IF ( commRank )  CALL oasis_get ( srcv(kid)%nid(jc,jm), kstep, exfld, kinfo ) 
    454         
    455                IF ( rootexchg )  CALL MPI_BCAST ( kinfo, 1, MPI_INTEGER, localRoot, localComm, nerror )                       
     387 
     388               CALL oasis_get ( srcv(kid)%nid(jc,jm), kstep, exfld, kinfo )    
    456389                
    457390               llaction =  kinfo == OASIS_Recvd   .OR. kinfo == OASIS_FromRest .OR.   & 
     
    464397                  kinfo = OASIS_Rcv 
    465398                  IF( llfisrt ) THEN  
    466                       
    467                      IF ( rootexchg ) THEN 
    468             
    469                         ! distribute data to processes 
    470                         ! 
    471                         IF ( nproc == localRoot ) THEN 
    472  
    473                            DO jn = 1, jpnij 
    474                               tbuf(nldit(jn):nleit(jn),nldjt(jn):nlejt(jn),jn)=          & 
    475                               exfld(nimppt(jn)-1+nldit(jn):nimppt(jn)+nleit(jn)-1,njmppt(jn)-1+nldjt(jn):njmppt(jn)+nlejt(jn)-1) 
    476                               ! NOTE: we are missing combining this with pmask (see else below) 
    477                            ENDDO 
    478                 
    479                         ENDIF 
    480  
    481                         CALL mppscatter (tbuf,localRoot,pdata(:,:,jc))  
    482                         CALL mppsync 
    483  
    484                      ELSE 
    485             
    486                         pdata(nldi:nlei, nldj:nlej, jc) = exfld(:,:) * pmask(nldi:nlei,nldj:nlej,jm) 
    487                 
    488                      ENDIF 
    489                       
     399                     pdata(nldi:nlei,nldj:nlej,jc) =                                 exfld(:,:) * pmask(nldi:nlei,nldj:nlej,jm)  
    490400                     llfisrt = .FALSE. 
    491401                  ELSE 
     
    565475#if defined key_oa3mct_v3 
    566476         CALL oasis_get_freqs(id, mop, 1, itmp, info) 
    567 #endif 
    568 #if defined key_oasis3 
    569          CALL oasis_get_freqs(id,      1, itmp, info) 
    570 #endif 
    571          cpl_freq = itmp(1) 
    572 #if defined key_oasis3mct 
     477#else 
     478!         CALL oasis_get_freqs(id,      1, itmp, info) 
    573479         cpl_freq = namflddti( id ) 
    574480#endif 
     
    588494      ! 
    589495      DEALLOCATE( exfld ) 
    590       IF ( rootexchg ) DEALLOCATE ( tbuf ) 
    591496      IF (nstop == 0) THEN 
    592497         CALL oasis_terminate( nerror )          
     
    597502   END SUBROUTINE cpl_finalize 
    598503 
    599 #if ! defined key_oasis3 && ! defined key_oasis3mct 
     504#if ! defined key_oasis3 
    600505 
    601506   !!---------------------------------------------------------------------- 
  • branches/UKMO/dev_r5518_hadgem3_mct/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r6558 r6571  
    3535   LOGICAL , PUBLIC ::   ln_blk_core    !: CORE bulk formulation 
    3636   LOGICAL , PUBLIC ::   ln_blk_mfs     !: MFS  bulk formulation 
    37 #if defined key_oasis3 || defined key_oasis3mct 
     37#if defined key_oasis3 
    3838   LOGICAL , PUBLIC ::   lk_oasis = .TRUE.  !: OASIS used 
    3939#else 
  • branches/UKMO/dev_r5518_hadgem3_mct/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r6558 r6571  
    4141   USE timing          ! Timing 
    4242   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    43 #if defined key_oasis3 || defined key_oasis3mct 
    44    USE mod_oasis                    ! OASIS3-MCT module 
    45 #endif 
    4643   USE eosbn2 
    4744   USE sbcrnf   , ONLY : l_rnfcpl 
Note: See TracChangeset for help on using the changeset viewer.