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

Ignore:
Timestamp:
2006-05-11T17:24:19+02:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_061: SM: end of ctl_stop + mpi optimization in _bilap

File:
1 edited

Legend:

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

    r413 r474  
    133133         IF(lwp) WRITE(numout,*) 
    134134         IF(lwp) WRITE(numout,*) '          free surface formulation' 
    135          IF( lk_isl ) THEN 
    136             IF(lwp) WRITE(numout,cform_err) 
    137             IF(lwp) WRITE(numout,*) ' key_islands inconsistent with key_dynspg_flt' 
    138             nstop = nstop + 1 
    139          ENDIF 
     135         IF( lk_isl ) CALL ctl_stop( ' key_islands inconsistent with key_dynspg_flt' ) 
     136     
    140137      ELSEIF( lk_dynspg_rl ) THEN 
    141138         IF(lwp) WRITE(numout,*) 
    142139         IF(lwp) WRITE(numout,*) '          Rigid lid formulation' 
    143140      ELSE 
    144          IF(lwp) WRITE(numout,cform_err) 
    145          IF(lwp) WRITE(numout,*) '          Choose only one surface pressure gradient calculation: filtered or rigid-lid' 
    146          IF(lwp) WRITE(numout,*) '          Should not call this routine if dynspg_exp or dynspg_ts has been chosen' 
    147          nstop = nstop + 1 
    148       ENDIF 
    149       IF( lk_dynspg_flt .AND. lk_dynspg_rl ) THEN 
    150          IF(lwp) WRITE(numout,cform_err) 
    151          IF(lwp) WRITE(numout,*) '          Chose between free surface or rigid-lid, not both' 
    152          nstop = nstop + 1 
    153       ENDIF 
     141         CALL ctl_stop( '          Choose only one surface pressure gradient calculation: filtered or rigid-lid',   & 
     142              &         '          Should not call this routine if dynspg_exp or dynspg_ts has been chosen' ) 
     143      ENDIF 
     144      IF( lk_dynspg_flt .AND. lk_dynspg_rl ) & 
     145         CALL ctl_stop( '          Chose between free surface or rigid-lid, not both' ) 
    154146 
    155147      SELECT CASE ( nsolv ) 
     
    157149      CASE ( 1 )                ! preconditioned conjugate gradient solver 
    158150         IF(lwp) WRITE(numout,*) '          a preconditioned conjugate gradient solver is used' 
    159          IF( jpr2di /= 0 .AND. jpr2dj /= 0 ) THEN 
    160             IF(lwp) WRITE(numout,cform_err) 
    161             IF(lwp) WRITE(numout,*) ' jpr2di and jpr2dj should be equal to zero' 
    162             nstop = nstop + 1 
    163          ENDIF 
     151         IF( jpr2di /= 0 .AND. jpr2dj /= 0 ) & 
     152            CALL ctl_stop( ' jpr2di and jpr2dj should be equal to zero' ) 
    164153 
    165154      CASE ( 2 )                ! successive-over-relaxation solver 
    166155         IF(lwp) WRITE(numout,*) '          a successive-over-relaxation solver is used' 
    167          IF( jpr2di /= 0 .AND. jpr2dj /= 0 ) THEN 
    168             IF(lwp) WRITE(numout,cform_err) 
    169             IF(lwp) WRITE(numout,*) ' jpr2di and jpr2dj should be equal to zero' 
    170             nstop = nstop + 1 
    171          ENDIF 
     156         IF( jpr2di /= 0 .AND. jpr2dj /= 0 ) & 
     157             CALL ctl_stop( ' jpr2di and jpr2dj should be equal to zero' ) 
    172158 
    173159      CASE ( 3 )                ! FETI solver 
    174160         IF(lwp) WRITE(numout,*) '          the FETI solver is used' 
    175          IF( jpr2di /= 0 .AND. jpr2dj /= 0 ) THEN 
    176             IF(lwp) WRITE(numout,cform_err) 
    177             IF(lwp) WRITE(numout,*) ' jpr2di and jpr2dj should be equal to zero' 
    178             nstop = nstop + 1 
    179          ENDIF 
     161         IF( jpr2di /= 0 .AND. jpr2dj /= 0 ) & 
     162              CALL ctl_stop( ' jpr2di and jpr2dj should be equal to zero' ) 
     163            
    180164         IF( .NOT.lk_mpp ) THEN 
    181             IF(lwp) WRITE(numout,cform_err) 
    182             IF(lwp) WRITE(numout,*) ' The FETI algorithm is used only with the key_mpp_... option' 
    183             nstop = nstop + 1 
     165            CALL ctl_stop( ' The FETI algorithm is used only with the key_mpp_... option' ) 
    184166         ELSE 
    185167            IF( jpnij == 1 ) THEN 
    186                IF(lwp) WRITE(numout,cform_err) 
    187                IF(lwp) WRITE(numout,*) ' The FETI algorithm needs more than one processor' 
    188                nstop = nstop + 1 
     168               CALL ctl_stop( ' The FETI algorithm needs more than one processor' ) 
    189169            ENDIF 
    190170         ENDIF 
     
    194174         IF(lwp) WRITE(numout,*) '          with jpr2di =', jpr2di, ' and  jpr2dj =', jpr2dj 
    195175         IF( .NOT. lk_mpp .AND. jpr2di /= 0 .AND. jpr2dj /= 0 ) THEN 
    196             IF(lwp) WRITE(numout,cform_err) 
    197             IF(lwp) WRITE(numout,*) ' jpr2di and jpr2dj are not equal to zero' 
    198             IF(lwp) WRITE(numout,*) ' In this case this algorithm should be used only with the key_mpp_... option' 
    199             nstop = nstop + 1 
     176             CALL ctl_stop( ' jpr2di and jpr2dj are not equal to zero',   & 
     177             &              ' In this case this algorithm should be used only with the key_mpp_... option' ) 
    200178         ELSE 
    201179            IF( ( ( jperio == 1 .OR. jperio == 4 .OR. jperio == 6 ) .OR. ( jpni /= 1 ) ) & 
    202               &  .AND. ( jpr2di /= jpr2dj ) ) THEN   
    203                IF(lwp) WRITE(numout,cform_err) 
    204                IF(lwp) WRITE(numout,*) '          jpr2di should be equal to jpr2dj' 
    205                nstop = nstop + 1 
    206             ENDIF 
     180              &  .AND. ( jpr2di /= jpr2dj ) ) CALL ctl_stop( '          jpr2di should be equal to jpr2dj' ) 
    207181         ENDIF 
    208182 
    209183      CASE DEFAULT 
    210          IF(lwp) WRITE(numout,cform_err) 
    211          IF(lwp) WRITE(numout,*) '          bad flag value for nsolv = ', nsolv 
    212          nstop = nstop + 1 
     184         WRITE(ctmp1,*) '          bad flag value for nsolv = ', nsolv 
     185         CALL ctl_stop( ctmp1 ) 
    213186          
    214187      END SELECT 
     
    244217 
    245218         IF ( jpisl == 0 ) THEN 
    246              IF(lwp)WRITE(numout,cform_err) 
    247              IF(lwp)WRITE(numout,*) ' bad islands parameter jpisl =', jpisl 
    248              nstop = nstop + 1 
     219             WRITE(ctmp1,*) ' bad islands parameter jpisl =', jpisl 
     220             CALL ctl_stop( ctmp1 ) 
    249221         ENDIF 
    250222 
Note: See TracChangeset for help on using the changeset viewer.