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 8578 – NEMO

Changeset 8578


Ignore:
Timestamp:
2017-10-02T19:24:20+02:00 (6 years ago)
Author:
clem
Message:

reduce communications

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icedyn_rhg_evp.F90

    r8575 r8578  
    355355         CALL lbc_lnk( zds, 'F', 1. ) 
    356356 
    357          DO jj = 2, jpjm1 
    358             DO ji = 2, jpim1 ! no vector loop 
     357         DO jj = 2, jpj    ! loop to jpi,jpj to avoid making a communication for zs1,zs2,zs12 
     358            DO ji = 2, jpi ! no vector loop 
    359359 
    360360               ! shear**2 at T points (doc eq. A16) 
     
    400400            END DO 
    401401         END DO 
    402          CALL lbc_lnk_multi( zs1, 'T', 1., zs2, 'T', 1., zs12, 'F', 1. ) 
    403   
    404402 
    405403         ! --- Ice internal stresses (Appendix C of Hunke and Dukowicz, 2002) --- ! 
     
    651649         END DO 
    652650      END DO            
    653       CALL lbc_lnk( zds, 'F', 1. ) 
    654651       
    655652      DO jj = 2, jpjm1 
     
    685682       
    686683      ! --- Store the stress tensor for the next time step --- ! 
     684      CALL lbc_lnk_multi( zs1, 'T', 1., zs2, 'T', 1., zs12, 'F', 1. ) 
    687685      pstress1_i (:,:) = zs1 (:,:) 
    688686      pstress2_i (:,:) = zs2 (:,:) 
     
    700698 
    701699      ! --- divergence, shear and strength --- ! 
    702       IF( iom_use('idive')  )   CALL iom_put( "idive"  , pdivu_i(:,:)   * zswi(:,:) )   ! divergence 
    703       IF( iom_use('ishear') )   CALL iom_put( "ishear" , pshear_i(:,:)  * zswi(:,:) )   ! shear 
     700      IF( iom_use('idive')  )   CALL iom_put( "idive"  , pdivu_i(:,:)  * zswi(:,:) )   ! divergence 
     701      IF( iom_use('ishear') )   CALL iom_put( "ishear" , pshear_i(:,:) * zswi(:,:) )   ! shear 
    704702      IF( iom_use('icestr') )   CALL iom_put( "icestr" , strength(:,:) * zswi(:,:) )   ! Ice strength 
    705703 
     
    724722!!                                                                                                               ! (scheme converges if this value is ~1, see Bouillon et al 2009 (eq. 11)) 
    725723               zsig1(ji,jj) = 0.5_wp * zdum2 * ( pstress1_i(ji,jj) )          ! compressive stress, see Bouillon et al. 2015 
    726                zsig2(ji,jj) = 0.5_wp * zdum2 * ( zshear )                    ! shear stress 
     724               zsig2(ji,jj) = 0.5_wp * zdum2 * ( zshear )                     ! shear stress 
    727725               zsig3(ji,jj) = zdum2**2 * ( ( pstress1_i(ji,jj) + strength(ji,jj) )**2 + ( rn_ecc * zshear )**2 ) 
    728726            END DO 
     
    757755                
    758756               ! Stress terms of the momentum equation (N/m2) 
    759                zdiag_dssh_dx(ji,jj) = zspgU(ji,jj) * rswitch    ! sea surface slope stress term 
     757               zdiag_dssh_dx(ji,jj) = zspgU(ji,jj) * rswitch     ! sea surface slope stress term 
    760758               zdiag_dssh_dy(ji,jj) = zspgV(ji,jj) * rswitch 
    761759                
    762                zdiag_corstrx(ji,jj) = zCorx(ji,jj) * rswitch    ! Coriolis stress term 
     760               zdiag_corstrx(ji,jj) = zCorx(ji,jj) * rswitch     ! Coriolis stress term 
    763761               zdiag_corstry(ji,jj) = zCory(ji,jj) * rswitch 
    764762                
    765                zdiag_intstrx(ji,jj) = zfU(ji,jj)   * rswitch    ! internal stress term 
     763               zdiag_intstrx(ji,jj) = zfU(ji,jj)   * rswitch     ! internal stress term 
    766764               zdiag_intstry(ji,jj) = zfV(ji,jj)   * rswitch 
    767765                
Note: See TracChangeset for help on using the changeset viewer.