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 13945 for NEMO/branches/2020/dev_r13898_Tiling_Cleanup_MPI3/src/ICE – NEMO

Ignore:
Timestamp:
2020-12-01T17:42:56+01:00 (4 years ago)
Author:
mocavero
Message:

Added MPI3 version of new lbc_lnk in ICE

Location:
NEMO/branches/2020/dev_r13898_Tiling_Cleanup_MPI3/src/ICE
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13898_Tiling_Cleanup_MPI3/src/ICE/icedyn_adv_pra.F90

    r13906 r13945  
    273273         ! --- Lateral boundary conditions --- ! 
    274274         !     caution: for gradients (sx and sy) the sign changes 
     275#if defined key_mpi3 
     276         CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', z0ice , 'T', 1._wp, sxice , 'T', -1._wp, syice , 'T', -1._wp  & ! ice volume 
     277            &                                , sxxice, 'T', 1._wp, syyice, 'T',  1._wp, sxyice, 'T',  1._wp  & 
     278            &                                , z0snw , 'T', 1._wp, sxsn  , 'T', -1._wp, sysn  , 'T', -1._wp  & ! snw volume 
     279            &                                , sxxsn , 'T', 1._wp, syysn , 'T',  1._wp, sxysn , 'T',  1._wp  ) 
     280         CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', z0smi , 'T', 1._wp, sxsal , 'T', -1._wp, sysal , 'T', -1._wp  & ! ice salinity 
     281            &                                , sxxsal, 'T', 1._wp, syysal, 'T',  1._wp, sxysal, 'T',  1._wp  & 
     282            &                                , z0ai  , 'T', 1._wp, sxa   , 'T', -1._wp, sya   , 'T', -1._wp  & ! ice concentration 
     283            &                                , sxxa  , 'T', 1._wp, syya  , 'T',  1._wp, sxya  , 'T',  1._wp  ) 
     284         CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', z0oi  , 'T', 1._wp, sxage , 'T', -1._wp, syage , 'T', -1._wp  & ! ice age 
     285            &                                , sxxage, 'T', 1._wp, syyage, 'T',  1._wp, sxyage, 'T',  1._wp  ) 
     286         CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', z0es  , 'T', 1._wp, sxc0  , 'T', -1._wp, syc0  , 'T', -1._wp  & ! snw enthalpy 
     287            &                                , sxxc0 , 'T', 1._wp, syyc0 , 'T',  1._wp, sxyc0 , 'T',  1._wp  )  
     288         CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', z0ei  , 'T', 1._wp, sxe   , 'T', -1._wp, sye   , 'T', -1._wp  & ! ice enthalpy 
     289            &                                , sxxe  , 'T', 1._wp, syye  , 'T',  1._wp, sxye  , 'T',  1._wp  ) 
     290#else 
    275291         CALL lbc_lnk_multi( 'icedyn_adv_pra', z0ice , 'T', 1._wp, sxice , 'T', -1._wp, syice , 'T', -1._wp  & ! ice volume 
    276292            &                                , sxxice, 'T', 1._wp, syyice, 'T',  1._wp, sxyice, 'T',  1._wp  & 
     
    287303         CALL lbc_lnk_multi( 'icedyn_adv_pra', z0ei  , 'T', 1._wp, sxe   , 'T', -1._wp, sye   , 'T', -1._wp  & ! ice enthalpy 
    288304            &                                , sxxe  , 'T', 1._wp, syye  , 'T',  1._wp, sxye  , 'T',  1._wp  ) 
     305#endif 
    289306         IF ( ln_pnd_LEV ) THEN 
     307#if defined key_mpi3 
     308            CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', z0ap , 'T', 1._wp, sxap , 'T', -1._wp, syap , 'T', -1._wp  & ! melt pond fraction 
     309               &                                , sxxap, 'T', 1._wp, syyap, 'T',  1._wp, sxyap, 'T',  1._wp  & 
     310               &                                , z0vp , 'T', 1._wp, sxvp , 'T', -1._wp, syvp , 'T', -1._wp  & ! melt pond volume 
     311               &                                , sxxvp, 'T', 1._wp, syyvp, 'T',  1._wp, sxyvp, 'T',  1._wp  )  
     312#else 
    290313            CALL lbc_lnk_multi( 'icedyn_adv_pra', z0ap , 'T', 1._wp, sxap , 'T', -1._wp, syap , 'T', -1._wp  & ! melt pond fraction 
    291314               &                                , sxxap, 'T', 1._wp, syyap, 'T',  1._wp, sxyap, 'T',  1._wp  & 
    292315               &                                , z0vp , 'T', 1._wp, sxvp , 'T', -1._wp, syvp , 'T', -1._wp  & ! melt pond volume 
    293316               &                                , sxxvp, 'T', 1._wp, syyvp, 'T',  1._wp, sxyvp, 'T',  1._wp  )  
     317#endif 
    294318            IF ( ln_pnd_lids ) THEN 
     319#if defined key_mpi3 
     320               CALL lbc_lnk_nc_multi( 'icedyn_adv_pra', z0vl ,'T', 1._wp, sxvl ,'T', -1._wp, syvl ,'T', -1._wp  & ! melt pond lid volume 
     321                  &                                , sxxvl,'T', 1._wp, syyvl,'T',  1._wp, sxyvl,'T',  1._wp  )  
     322#else 
    295323               CALL lbc_lnk_multi( 'icedyn_adv_pra', z0vl ,'T', 1._wp, sxvl ,'T', -1._wp, syvl ,'T', -1._wp  & ! melt pond lid volume 
    296324                  &                                , sxxvl,'T', 1._wp, syyvl,'T',  1._wp, sxyvl,'T',  1._wp  )  
     325#endif 
    297326            ENDIF 
    298327         ENDIF 
  • NEMO/branches/2020/dev_r13898_Tiling_Cleanup_MPI3/src/ICE/icedyn_adv_umx.F90

    r13906 r13945  
    368368         ! --- Lateral boundary conditions --- ! 
    369369         IF    ( ln_pnd_LEV .AND. ln_pnd_lids ) THEN 
     370#if defined key_mpi3 
     371            CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pa_i,'T',1._wp, pv_i,'T',1._wp, pv_s,'T',1._wp, psv_i,'T',1._wp, poa_i,'T',1._wp & 
     372               &                                , pa_ip,'T',1._wp, pv_ip,'T',1._wp, pv_il,'T',1._wp ) 
     373#else 
    370374            CALL lbc_lnk_multi( 'icedyn_adv_umx', pa_i,'T',1._wp, pv_i,'T',1._wp, pv_s,'T',1._wp, psv_i,'T',1._wp, poa_i,'T',1._wp & 
    371375               &                                , pa_ip,'T',1._wp, pv_ip,'T',1._wp, pv_il,'T',1._wp ) 
     376#endif 
    372377         ELSEIF( ln_pnd_LEV .AND. .NOT.ln_pnd_lids ) THEN 
     378#if defined key_mpi3 
     379            CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pa_i,'T',1._wp, pv_i,'T',1._wp, pv_s,'T',1._wp, psv_i,'T',1._wp, poa_i,'T',1._wp & 
     380               &                                , pa_ip,'T',1._wp, pv_ip,'T',1._wp ) 
     381#else 
    373382            CALL lbc_lnk_multi( 'icedyn_adv_umx', pa_i,'T',1._wp, pv_i,'T',1._wp, pv_s,'T',1._wp, psv_i,'T',1._wp, poa_i,'T',1._wp & 
    374383               &                                , pa_ip,'T',1._wp, pv_ip,'T',1._wp ) 
     384#endif 
    375385         ELSE 
     386#if defined key_mpi3 
     387            CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pa_i,'T',1._wp, pv_i,'T',1._wp, pv_s,'T',1._wp, psv_i,'T',1._wp, poa_i,'T',1._wp ) 
     388#else 
    376389            CALL lbc_lnk_multi( 'icedyn_adv_umx', pa_i,'T',1._wp, pv_i,'T',1._wp, pv_s,'T',1._wp, psv_i,'T',1._wp, poa_i,'T',1._wp ) 
     390#endif 
    377391         ENDIF 
     392#if defined key_mpi3 
     393         CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pe_i, 'T', 1._wp ) 
     394         CALL lbc_lnk_nc_multi( 'icedyn_adv_umx', pe_s, 'T', 1._wp ) 
     395#else 
    378396         CALL lbc_lnk( 'icedyn_adv_umx', pe_i, 'T', 1._wp ) 
    379397         CALL lbc_lnk( 'icedyn_adv_umx', pe_s, 'T', 1._wp ) 
     398#endif 
    380399         ! 
    381400         !== Open water area ==! 
Note: See TracChangeset for help on using the changeset viewer.