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 13570 for NEMO/branches – NEMO

Changeset 13570 for NEMO/branches


Ignore:
Timestamp:
2020-10-06T16:49:27+02:00 (4 years ago)
Author:
mocavero
Message:

Added key_mpi3 to activate/deactivate the use of MPI3 neighborhood collectives lbc routines - ticket #2496

Location:
NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/ICE/icedyn_rhg_evp.F90

    r13561 r13570  
    184184         zfmask(ji,jj) = tmask(ji,jj,1) * tmask(ji+1,jj,1) * tmask(ji,jj+1,1) * tmask(ji+1,jj+1,1) 
    185185      END_2D 
     186#if defined key_mpi3 
    186187      CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zfmask, 'F', 1._wp) 
     188#else 
     189      CALL lbc_lnk( 'icedyn_rhg_evp', zfmask, 'F', 1._wp) 
     190#endif 
    187191 
    188192      ! Lateral boundary conditions on velocity (modify zfmask) 
     
    209213         ENDIF 
    210214      END DO 
     215#if defined key_mpi3 
    211216      CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zfmask, 'F', 1._wp ) 
     217#else 
     218      CALL lbc_lnk( 'icedyn_rhg_evp', zfmask, 'F', 1._wp ) 
     219#endif 
    212220 
    213221      !------------------------------------------------------------------------------! 
     
    300308 
    301309      END_2D 
     310#if defined key_mpi3 
    302311      CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zmf, 'T', 1.0_wp, zdt_m, 'T', 1.0_wp ) 
     312#else 
     313      CALL lbc_lnk_multi( 'icedyn_rhg_evp', zmf, 'T', 1.0_wp, zdt_m, 'T', 1.0_wp ) 
     314#endif 
    303315      ! 
    304316      !                                  !== Landfast ice parameterization ==! 
     
    319331            tau_icebfr(ji,jj) = - rn_icebfr * MAX( 0._wp, vt_i(ji,jj) - zvCr ) * EXP( -rn_crhg * ( 1._wp - at_i(ji,jj) ) ) 
    320332         END_2D 
     333#if defined key_mpi3 
    321334         CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', tau_icebfr(:,:), 'T', 1.0_wp ) 
     335#else 
     336         CALL lbc_lnk( 'icedyn_rhg_evp', tau_icebfr(:,:), 'T', 1.0_wp ) 
     337#endif 
    322338         ! 
    323339      ELSE                               !-- no landfast 
     
    395411           
    396412         END_2D 
     413#if defined key_mpi3 
    397414         CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zp_delt, 'T', 1.0_wp ) 
     415#else 
     416         CALL lbc_lnk( 'icedyn_rhg_evp', zp_delt, 'T', 1.0_wp ) 
     417#endif 
    398418         DO_2D( 1, 0, 1, 0 ) 
    399419 
     
    483503               ENDIF 
    484504            END_2D 
     505#if defined key_mpi3 
    485506            CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', v_ice, 'V', -1.0_wp ) 
     507#else 
     508            CALL lbc_lnk( 'icedyn_rhg_evp', v_ice, 'V', -1.0_wp ) 
     509#endif 
    486510            ! 
    487511#if defined key_agrif 
     
    532556               ENDIF 
    533557            END_2D 
     558#if defined key_mpi3 
    534559            CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', u_ice, 'U', -1.0_wp ) 
     560#else 
     561            CALL lbc_lnk( 'icedyn_rhg_evp', u_ice, 'U', -1.0_wp ) 
     562#endif 
    535563            ! 
    536564#if defined key_agrif 
     
    583611               ENDIF 
    584612            END_2D 
     613#if defined key_mpi3 
    585614            CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', u_ice, 'U', -1.0_wp ) 
     615#else 
     616            CALL lbc_lnk( 'icedyn_rhg_evp', u_ice, 'U', -1.0_wp ) 
     617#endif 
    586618            ! 
    587619#if defined key_agrif 
     
    632664               ENDIF 
    633665            END_2D 
     666#if defined key_mpi3 
    634667            CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', v_ice, 'V', -1.0_wp ) 
     668#else 
     669            CALL lbc_lnk( 'icedyn_rhg_evp', v_ice, 'V', -1.0_wp ) 
     670#endif 
    635671            ! 
    636672#if defined key_agrif 
     
    693729 
    694730      END_2D 
     731#if defined key_mpi3 
    695732      CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', pshear_i, 'T', 1.0_wp, pdivu_i, 'T', 1.0_wp, pdelta_i, 'T', 1.0_wp ) 
     733#else 
     734      CALL lbc_lnk_multi( 'icedyn_rhg_evp', pshear_i, 'T', 1.0_wp, pdivu_i, 'T', 1.0_wp, pdelta_i, 'T', 1.0_wp ) 
     735#endif 
    696736       
    697737      ! --- Store the stress tensor for the next time step --- ! 
     738#if defined key_mpi3 
    698739      CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zs1, 'T', 1.0_wp, zs2, 'T', 1.0_wp, zs12, 'F', 1.0_wp ) 
     740#else 
     741      CALL lbc_lnk_multi( 'icedyn_rhg_evp', zs1, 'T', 1.0_wp, zs2, 'T', 1.0_wp, zs12, 'F', 1.0_wp ) 
     742#endif 
    699743      pstress1_i (:,:) = zs1 (:,:) 
    700744      pstress2_i (:,:) = zs2 (:,:) 
     
    713757         & iom_use('utau_bi') .OR. iom_use('vtau_bi') ) THEN 
    714758         ! 
     759#if defined key_mpi3 
    715760         CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', ztaux_oi, 'U', -1.0_wp, ztauy_oi, 'V', -1.0_wp, ztaux_ai, 'U', -1.0_wp, ztauy_ai, 'V', -1.0_wp, & 
    716761            &                                  ztaux_bi, 'U', -1.0_wp, ztauy_bi, 'V', -1.0_wp ) 
     762#else 
     763         CALL lbc_lnk_multi( 'icedyn_rhg_evp', ztaux_oi, 'U', -1.0_wp, ztauy_oi, 'V', -1.0_wp, ztaux_ai, 'U', -1.0_wp, ztauy_ai, 'V', -1.0_wp, & 
     764            &                                  ztaux_bi, 'U', -1.0_wp, ztauy_bi, 'V', -1.0_wp ) 
     765#endif 
    717766         ! 
    718767         CALL iom_put( 'utau_oi' , ztaux_oi * zmsk00 ) 
     
    751800            zsig3(ji,jj) = zdum2**2 * ( ( pstress1_i(ji,jj) + strength(ji,jj) )**2 + ( rn_ecc * zshear )**2 ) 
    752801         END_2D 
     802#if defined key_mpi3 
    753803         CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zsig1, 'T', 1.0_wp, zsig2, 'T', 1.0_wp, zsig3, 'T', 1.0_wp ) 
     804#else 
     805         CALL lbc_lnk_multi( 'icedyn_rhg_evp', zsig1, 'T', 1.0_wp, zsig2, 'T', 1.0_wp, zsig3, 'T', 1.0_wp ) 
     806#endif 
    754807         ! 
    755808         CALL iom_put( 'isig1' , zsig1 ) 
     
    768821         & iom_use('corstrx') .OR. iom_use('corstry') .OR. iom_use('intstrx') .OR. iom_use('intstry') ) THEN 
    769822         ! 
     823#if defined key_mpi3 
    770824         CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zspgU, 'U', -1.0_wp, zspgV, 'V', -1.0_wp, & 
    771825            &                                  zCorU, 'U', -1.0_wp, zCorV, 'V', -1.0_wp, zfU, 'U', -1.0_wp, zfV, 'V', -1.0_wp ) 
     826#else 
     827         CALL lbc_lnk_multi( 'icedyn_rhg_evp', zspgU, 'U', -1.0_wp, zspgV, 'V', -1.0_wp, & 
     828            &                                  zCorU, 'U', -1.0_wp, zCorV, 'V', -1.0_wp, zfU, 'U', -1.0_wp, zfV, 'V', -1.0_wp ) 
     829#endif 
    772830 
    773831         CALL iom_put( 'dssh_dx' , zspgU * zmsk00 )   ! Sea-surface tilt term in force balance (x) 
     
    801859         END_2D 
    802860 
     861#if defined key_mpi3 
    803862         CALL lbc_lnk_nc_multi( 'icedyn_rhg_evp', zdiag_xmtrp_ice, 'U', -1.0_wp, zdiag_ymtrp_ice, 'V', -1.0_wp, & 
    804863            &                                  zdiag_xmtrp_snw, 'U', -1.0_wp, zdiag_ymtrp_snw, 'V', -1.0_wp, & 
    805864            &                                  zdiag_xatrp    , 'U', -1.0_wp, zdiag_yatrp    , 'V', -1.0_wp ) 
     865#else 
     866         CALL lbc_lnk_multi( 'icedyn_rhg_evp', zdiag_xmtrp_ice, 'U', -1.0_wp, zdiag_ymtrp_ice, 'V', -1.0_wp, & 
     867            &                                  zdiag_xmtrp_snw, 'U', -1.0_wp, zdiag_ymtrp_snw, 'V', -1.0_wp, & 
     868            &                                  zdiag_xatrp    , 'U', -1.0_wp, zdiag_yatrp    , 'V', -1.0_wp ) 
     869#endif 
    806870 
    807871         CALL iom_put( 'xmtrpice' , zdiag_xmtrp_ice )   ! X-component of sea-ice mass transport (kg/s) 
  • NEMO/branches/2020/dev_r13296_HPC-07_mocavero_mpi3/src/OCE/TRA/traadv_fct.F90

    r13561 r13570  
    237237               END_2D 
    238238            END DO 
    239             CALL lbc_lnk_nc_multi( 'traadv_fct', zltu, 'T', 1.0_wp , zltv, 'T', 1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
     239#if defined key_mpi3 
     240            CALL lbc_lnk_nc_multi( 'traadv_fct', zltu, 'T', 1.0_wp , zltv, 'T', 1.0_wp, ncsten=.FALSE. )   ! Lateral boundary cond. (unchanged sgn) 
     241#else 
     242            CALL lbc_lnk_multi( 'traadv_fct', zltu, 'T', 1.0_wp , zltv, 'T', 1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
     243#endif 
    240244            ! 
    241245            DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
     
    254258               ztv(ji,jj,jk) = ( pt(ji  ,jj+1,jk,jn,Kmm) - pt(ji,jj,jk,jn,Kmm) ) * vmask(ji,jj,jk) 
    255259            END_3D 
    256             CALL lbc_lnk_nc_multi( 'traadv_fct', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
     260#if defined key_mpi3 
     261            CALL lbc_lnk_nc_multi( 'traadv_fct', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp, ncsten=.FALSE. )   ! Lateral boundary cond. (unchanged sgn) 
     262#else 
     263            CALL lbc_lnk_multi( 'traadv_fct', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
     264#endif 
    257265            ! 
    258266            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     
    306314         END IF 
    307315         ! 
    308          CALL lbc_lnk_nc_multi( 'traadv_fct', zwi, 'T', 1.0_wp, zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp,  zwz, 'W',  1.0_wp ) 
     316#if defined key_mpi3 
     317         CALL lbc_lnk_nc_multi( 'traadv_fct', zwi, 'T', 1.0_wp, zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp,  zwz, 'W',  1.0_wp, ncsten=.FALSE. ) 
     318#else 
     319         CALL lbc_lnk_multi( 'traadv_fct', zwi, 'T', 1.0_wp, zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp,  zwz, 'W',  1.0_wp ) 
     320#endif 
    309321         ! 
    310322         !        !==  monotonicity algorithm  ==! 
     
    440452         END_2D 
    441453      END DO 
    442       CALL lbc_lnk_nc_multi( 'traadv_fct', zbetup, 'T', 1.0_wp , zbetdo, 'T', 1.0_wp )   ! lateral boundary cond. (unchanged sign) 
     454#if defined key_mpi3 
     455      CALL lbc_lnk_nc_multi( 'traadv_fct', zbetup, 'T', 1.0_wp , zbetdo, 'T', 1.0_wp, ncsten=.FALSE. )   ! lateral boundary cond. (unchanged sign) 
     456#else 
     457      CALL lbc_lnk_multi( 'traadv_fct', zbetup, 'T', 1.0_wp , zbetdo, 'T', 1.0_wp )   ! lateral boundary cond. (unchanged sign) 
     458#endif 
    443459 
    444460      ! 3. monotonic flux in the i & j direction (paa & pbb) 
     
    462478         pcc(ji,jj,jk+1) = pcc(ji,jj,jk+1) * ( zc * za + ( 1._wp - zc) * zb ) 
    463479      END_3D 
    464       CALL lbc_lnk_nc_multi( 'traadv_fct', paa, 'U', -1.0_wp , pbb, 'V', -1.0_wp ) ! lateral boundary condition (changed sign) 
     480#if defined key_mpi3 
     481      CALL lbc_lnk_nc_multi( 'traadv_fct', paa, 'U', -1.0_wp , pbb, 'V', -1.0_wp, ncsten=.FALSE. ) ! lateral boundary condition (changed sign) 
     482#else 
     483      CALL lbc_lnk_multi( 'traadv_fct', paa, 'U', -1.0_wp , pbb, 'V', -1.0_wp ) ! lateral boundary condition (changed sign) 
     484#endif 
    465485      ! 
    466486   END SUBROUTINE nonosc 
Note: See TracChangeset for help on using the changeset viewer.