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 784 for trunk/NEMO/OPA_SRC/SOL/solver.F90 – NEMO

Ignore:
Timestamp:
2008-01-08T12:05:25+01:00 (16 years ago)
Author:
rblod
Message:

merge solsor and solsor_e, see ticket #45

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/SOL/solver.F90

    r719 r784  
    152152 
    153153      CASE ( 2 )                ! successive-over-relaxation solver 
    154          IF(lwp) WRITE(numout,*) '          a successive-over-relaxation solver is used' 
    155          IF( jpr2di /= 0 .AND. jpr2dj /= 0 ) & 
    156              CALL ctl_stop( ' jpr2di and jpr2dj should be equal to zero' ) 
     154         IF(lwp) WRITE(numout,*) '          a successive-over-relaxation solver with extra outer halo is used' 
     155         IF(lwp) WRITE(numout,*) '          with jpr2di =', jpr2di, ' and  jpr2dj =', jpr2dj 
     156         IF( .NOT. lk_mpp .AND. jpr2di /= 0 .AND. jpr2dj /= 0 ) THEN 
     157             CALL ctl_stop( ' jpr2di and jpr2dj are not equal to zero',   & 
     158             &              ' In this case this algorithm should be used only with the key_mpp_... option' ) 
     159         ELSE 
     160            IF( ( ( jperio == 1 .OR. jperio == 4 .OR. jperio == 6 ) .OR. ( jpni /= 1 ) ) & 
     161              &  .AND. ( jpr2di /= jpr2dj ) ) CALL ctl_stop( '          jpr2di should be equal to jpr2dj' ) 
     162         ENDIF 
    157163 
    158164      CASE ( 3 )                ! FETI solver 
     
    169175         ENDIF 
    170176          
    171       CASE ( 4 )                ! successive-over-relaxation solver with extra outer halo 
    172          IF(lwp) WRITE(numout,*) '          a successive-over-relaxation solver with extra outer halo is used' 
    173          IF(lwp) WRITE(numout,*) '          with jpr2di =', jpr2di, ' and  jpr2dj =', jpr2dj 
    174          IF( .NOT. lk_mpp .AND. jpr2di /= 0 .AND. jpr2dj /= 0 ) THEN 
    175              CALL ctl_stop( ' jpr2di and jpr2dj are not equal to zero',   & 
    176              &              ' In this case this algorithm should be used only with the key_mpp_... option' ) 
    177          ELSE 
    178             IF( ( ( jperio == 1 .OR. jperio == 4 .OR. jperio == 6 ) .OR. ( jpni /= 1 ) ) & 
    179               &  .AND. ( jpr2di /= jpr2dj ) ) CALL ctl_stop( '          jpr2di should be equal to jpr2dj' ) 
    180          ENDIF 
    181  
    182177      CASE DEFAULT 
    183178         WRITE(ctmp1,*) '          bad flag value for nsolv = ', nsolv 
     
    186181      END SELECT 
    187182 
    188       IF( nbit_cmp == 1 .AND. nsolv /= 2 ) THEN 
    189          CALL ctl_stop( ' Reproductibility tests (nbit_cmp=1) require the SOR solver: nsolv = 2' ) 
     183      IF( nbit_cmp == 1 ) THEN 
     184         IF( nsolv /= 2 ) THEN 
     185            CALL ctl_stop( ' Reproductibility tests (nbit_cmp=1) require the SOR solver: nsolv = 2' ) 
     186         ELSE IF( MAX( jpr2di, jpr2dj ) > 0 ) THEN 
     187            CALL ctl_stop( ' Reproductibility tests (nbit_cmp=1) require jpr2di = jpr2dj = 0' ) 
     188         END IF  
    190189      END IF 
    191190 
Note: See TracChangeset for help on using the changeset viewer.