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 869 for trunk/NEMO/LIM_SRC_3/limitd_me.F90 – NEMO

Ignore:
Timestamp:
2008-03-26T10:21:54+01:00 (16 years ago)
Author:
rblod
Message:

Parallelisation of LIM3. This commit seems to ensure the reproducibility mono/mpp. See ticket #77.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/LIM_SRC_3/limitd_me.F90

    r868 r869  
    3030   USE limcons 
    3131   USE prtctl           ! Print control 
     32   USE lib_mpp 
    3233  
    3334   IMPLICIT NONE 
     
    187188 
    188189        LOGICAL   ::           & 
    189            iterate_ridging,    &  ! if true, repeat the ridging 
    190190           asum_error              ! flag for asum .ne. 1 
     191 
     192        INTEGER :: iterate_ridging ! if true, repeat the ridging 
    191193 
    192194        REAL(wp) ::  &          
     
    282284!-----------------------------------------------------------------------------! 
    283285      niter = 1                 ! iteration counter 
    284       iterate_ridging = .true. 
    285  
    286  
    287       DO WHILE ( iterate_ridging .AND. niter < nitermax ) 
     286      iterate_ridging = 1 
     287 
     288 
     289      DO WHILE ( iterate_ridging > 0 .AND. niter < nitermax ) 
    288290 
    289291      DO jj = 1, jpj 
     
    349351! rates were reduced above), ridge again with new rates. 
    350352 
    351       iterate_ridging = .false. 
     353      iterate_ridging = 0 
    352354 
    353355      DO jj = 1, jpj 
     
    357359               opning(ji,jj)      = 0.0 
    358360            ELSE 
    359                iterate_ridging    = .true. 
     361               iterate_ridging    = 1 
    360362               divu_adv(ji,jj)    = (1.0 - asum(ji,jj)) / rdt_ice 
    361363               closing_net(ji,jj) = MAX(0.0, -divu_adv(ji,jj)) 
     
    365367      END DO 
    366368 
     369      IF( lk_mpp ) CALL mpp_max(iterate_ridging) 
     370 
    367371! Repeat if necessary. 
    368372! NOTE: If strength smoothing is turned on, the ridging must be 
     
    372376      niter = niter + 1 
    373377 
    374       IF (iterate_ridging) THEN 
     378      IF (iterate_ridging == 1) THEN 
    375379         IF (niter .GT. nitermax) THEN 
    376380            WRITE(numout,*) ' ALERTE : non-converging ridging scheme ' 
     
    708712         CALL lbc_lnk( strength, 'T', 1. ) 
    709713 
    710          DO jj = 1, jpj - 1 
    711             DO ji = 1, jpi - 1 
     714         DO jj = 2, jpj - 1 
     715            DO ji = 2, jpi - 1 
    712716               IF ( ( asum(ji,jj) - ato_i(ji,jj) ) .GT. epsi11) THEN ! ice is 
    713717                                                                     ! present 
     
    727731         END DO 
    728732 
    729          DO jj = 1, jpj - 1 
    730             DO ji = 1, jpi - 1 
     733         DO jj = 2, jpj - 1 
     734            DO ji = 2, jpi - 1 
    731735               strength(ji,jj) = zworka(ji,jj) 
    732736            END DO 
    733737         END DO 
     738         CALL lbc_lnk( strength, 'T', 1. ) 
    734739 
    735740      ENDIF ! ksmooth 
     
    17601765      ! Abort model in case of negative area. 
    17611766      !----------------------------------------------------------------- 
    1762          IF( MAXVAL(a_i(:,:,jl)) .LT. -epsi11 ) THEN 
     1767         IF( MINVAL(a_i(:,:,jl)) .LT. -epsi11 ) THEN 
    17631768            DO jj = 1, jpj 
    17641769               DO ji = 1, jpi 
Note: See TracChangeset for help on using the changeset viewer.