Changeset 10417


Ignore:
Timestamp:
2018-12-19T15:14:45+01:00 (20 months ago)
Author:
smasson
Message:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: suppress the use of nstop out of ctl_stop, see #2133

Location:
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/BDY/bdyini.F90

    r10402 r10417  
    12031203            END DO 
    12041204            IF( icount /= 0 ) THEN 
    1205                IF(lwp) WRITE(numout,*) 
    1206                IF(lwp) WRITE(numout,*) ' E R R O R : Some ',cgrid(igrd),' grid points,',   & 
     1205               WRITE(ctmp1,*) ' E R R O R : Some ',cgrid(igrd),' grid points,',   & 
    12071206                  ' are not boundary points (flagu calculation). Check nbi, nbj, indices for boundary set ',ib_bdy 
    1208                IF(lwp) WRITE(numout,*) ' ========== ' 
    1209                IF(lwp) WRITE(numout,*) 
    1210                nstop = nstop + 1 
     1207               WRITE(ctmp2,*) ' ========== ' 
     1208               CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    12111209            ENDIF  
    12121210         END DO 
     
    12381236            END DO 
    12391237            IF( icount /= 0 ) THEN 
    1240                IF(lwp) WRITE(numout,*) 
    1241                IF(lwp) WRITE(numout,*) ' E R R O R : Some ',cgrid(igrd),' grid points,',   & 
     1238               WRITE(ctmp1,*) ' E R R O R : Some ',cgrid(igrd),' grid points,',   & 
    12421239                  ' are not boundary points (flagv calculation). Check nbi, nbj, indices for boundary set ',ib_bdy 
    1243                IF(lwp) WRITE(numout,*) ' ========== ' 
    1244                IF(lwp) WRITE(numout,*) 
    1245                nstop = nstop + 1 
     1240               WRITE(ctmp2,*) ' ========== ' 
     1241               CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    12461242            ENDIF  
    12471243         END DO 
     
    13761372                     icorns(ib2,1) = npckgw(ib1) 
    13771373                  ELSEIF ((jpisft(ib2)==jpiwob(ib1)).AND.(jpjwft(ib1)==jpjsob(ib2))) THEN 
    1378                      IF(lwp) WRITE(numout,*) 
    1379                      IF(lwp) WRITE(numout,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
    1380                      &                                     jpisft(ib2), jpjwft(ib1) 
    1381                      IF(lwp) WRITE(numout,*) ' ==========  Not allowed yet' 
    1382                      IF(lwp) WRITE(numout,*) '             Crossing problem with West segment: ',npckgw(ib1), &  
    1383                      &                                                    ' and South segment: ',npckgs(ib2) 
    1384                      IF(lwp) WRITE(numout,*) 
    1385                      nstop = nstop + 1 
     1374                     WRITE(ctmp1,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
     1375                        &                                     jpisft(ib2), jpjwft(ib1) 
     1376                     WRITE(ctmp2,*) ' ==========  Not allowed yet' 
     1377                     WRITE(ctmp3,*) '             Crossing problem with West segment: ',npckgw(ib1), &  
     1378                        &                                        ' and South segment: ',npckgs(ib2) 
     1379                     CALL ctl_stop( ' ', ctmp1, ctmp2, ctmp3, ' ' ) 
    13861380                  ELSE 
    1387                      IF(lwp) WRITE(numout,*) 
    1388                      IF(lwp) WRITE(numout,*) ' E R R O R : Check South and West Open boundary indices' 
    1389                      IF(lwp) WRITE(numout,*) ' ==========  Crossing problem with West segment: ',npckgw(ib1) , & 
    1390                      &                                                    ' and South segment: ',npckgs(ib2) 
    1391                      IF(lwp) WRITE(numout,*) 
    1392                      nstop = nstop+1 
     1381                     WRITE(ctmp1,*) ' E R R O R : Check South and West Open boundary indices' 
     1382                     WRITE(ctmp2,*) ' ==========  Crossing problem with West segment: ',npckgw(ib1) , & 
     1383                        &                                         ' and South segment: ',npckgs(ib2) 
     1384                     CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    13931385                  END IF 
    13941386               END IF 
     
    14121404                     icorns(ib2,2) = npckge(ib1) 
    14131405                  ELSEIF ((jpjeft(ib1)==jpjsob(ib2)).AND.(jpisdt(ib2)==jpieob(ib1)+1)) THEN 
    1414                      IF(lwp) WRITE(numout,*) 
    1415                      IF(lwp) WRITE(numout,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
    1416                      &                                     jpisdt(ib2), jpjeft(ib1) 
    1417                      IF(lwp) WRITE(numout,*) ' ==========  Not allowed yet' 
    1418                      IF(lwp) WRITE(numout,*) '             Crossing problem with East segment: ',npckge(ib1), & 
    1419                      &                                                    ' and South segment: ',npckgs(ib2) 
    1420                      IF(lwp) WRITE(numout,*) 
    1421                      nstop = nstop + 1 
     1406                     WRITE(ctmp1,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
     1407                        &                                     jpisdt(ib2), jpjeft(ib1) 
     1408                     WRITE(ctmp2,*) ' ==========  Not allowed yet' 
     1409                     WRITE(ctmp3,*) '             Crossing problem with East segment: ',npckge(ib1), & 
     1410                        &                                        ' and South segment: ',npckgs(ib2) 
     1411                     CALL ctl_stop( ' ', ctmp1, ctmp2, ctmp3, ' ' ) 
    14221412                  ELSE 
    1423                      IF(lwp) WRITE(numout,*) 
    1424                      IF(lwp) WRITE(numout,*) ' E R R O R : Check South and East Open boundary indices' 
    1425                      IF(lwp) WRITE(numout,*) ' ==========  Crossing problem with East segment: ',npckge(ib1), & 
    1426                      &                                                    ' and South segment: ',npckgs(ib2) 
    1427                      IF(lwp) WRITE(numout,*) 
    1428                      nstop = nstop + 1 
     1413                     WRITE(ctmp1,*) ' E R R O R : Check South and East Open boundary indices' 
     1414                     WRITE(ctmp2,*) ' ==========  Crossing problem with East segment: ',npckge(ib1), & 
     1415                     &                                           ' and South segment: ',npckgs(ib2) 
     1416                     CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    14291417                  END IF 
    14301418               END IF 
     
    14481436                     icornn(ib2,1) = npckgw(ib1) 
    14491437                  ELSEIF ((jpjwdt(ib1)==jpjnob(ib2)+1).AND.(jpinft(ib2)==jpiwob(ib1))) THEN 
    1450                      IF(lwp) WRITE(numout,*) 
    1451                      IF(lwp) WRITE(numout,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
     1438                     WRITE(ctmp1,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
    14521439                     &                                     jpinft(ib2), jpjwdt(ib1) 
    1453                      IF(lwp) WRITE(numout,*) ' ==========  Not allowed yet' 
    1454                      IF(lwp) WRITE(numout,*) '             Crossing problem with West segment: ',npckgw(ib1), & 
     1440                     WRITE(ctmp2,*) ' ==========  Not allowed yet' 
     1441                     WRITE(ctmp3,*) '             Crossing problem with West segment: ',npckgw(ib1), & 
    14551442                     &                                                    ' and North segment: ',npckgn(ib2) 
    1456                      IF(lwp) WRITE(numout,*) 
    1457                      nstop = nstop + 1 
     1443                     CALL ctl_stop( ' ', ctmp1, ctmp2, ctmp3, ' ' ) 
    14581444                  ELSE 
    1459                      IF(lwp) WRITE(numout,*) 
    1460                      IF(lwp) WRITE(numout,*) ' E R R O R : Check North and West Open boundary indices' 
    1461                      IF(lwp) WRITE(numout,*) ' ==========  Crossing problem with West segment: ',npckgw(ib1), & 
     1445                     WRITE(ctmp1,*) ' E R R O R : Check North and West Open boundary indices' 
     1446                     WRITE(ctmp2,*) ' ==========  Crossing problem with West segment: ',npckgw(ib1), & 
    14621447                     &                                                    ' and North segment: ',npckgn(ib2) 
    1463                      IF(lwp) WRITE(numout,*) 
    1464                      nstop = nstop + 1 
     1448                     CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    14651449                  END IF 
    14661450               END IF 
     
    14841468                     icornn(ib2,2) = npckge(ib1) 
    14851469                  ELSEIF ((jpjedt(ib1)==jpjnob(ib2)+1).AND.(jpindt(ib2)==jpieob(ib1)+1)) THEN 
    1486                      IF(lwp) WRITE(numout,*) 
    1487                      IF(lwp) WRITE(numout,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
     1470                     WRITE(ctmp1,*) ' E R R O R : Found an acute open boundary corner at point (i,j)= ', & 
    14881471                     &                                     jpindt(ib2), jpjedt(ib1) 
    1489                      IF(lwp) WRITE(numout,*) ' ==========  Not allowed yet' 
    1490                      IF(lwp) WRITE(numout,*) '             Crossing problem with East segment: ',npckge(ib1), & 
    1491                      &                                                    ' and North segment: ',npckgn(ib2) 
    1492                      IF(lwp) WRITE(numout,*) 
    1493                      nstop = nstop + 1 
     1472                     WRITE(ctmp2,*) ' ==========  Not allowed yet' 
     1473                     WRITE(ctmp3,*) '             Crossing problem with East segment: ',npckge(ib1), & 
     1474                     &                                           ' and North segment: ',npckgn(ib2) 
     1475                     CALL ctl_stop( ' ', ctmp1, ctmp2, ctmp3, ' ' ) 
    14941476                  ELSE 
    1495                      IF(lwp) WRITE(numout,*) 
    1496                      IF(lwp) WRITE(numout,*) ' E R R O R : Check North and East Open boundary indices' 
    1497                      IF(lwp) WRITE(numout,*) ' ==========  Crossing problem with East segment: ',npckge(ib1), & 
    1498                      &                                                    ' and North segment: ',npckgn(ib2) 
    1499                      IF(lwp) WRITE(numout,*) 
    1500                      nstop = nstop + 1 
     1477                     WRITE(ctmp1,*) ' E R R O R : Check North and East Open boundary indices' 
     1478                     WRITE(ctmp2,*) ' ==========  Crossing problem with East segment: ',npckge(ib1), & 
     1479                     &                                           ' and North segment: ',npckgn(ib2) 
     1480                     CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    15011481                  END IF 
    15021482               END IF 
     
    15241504         IF (ztestmask(1)==1) THEN  
    15251505            IF (icornw(ib,1)==0) THEN 
    1526                IF(lwp) WRITE(numout,*) 
    1527                IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckgw(ib) 
    1528                IF(lwp) WRITE(numout,*) ' ==========  does not start on land or on a corner'                                                   
    1529                IF(lwp) WRITE(numout,*) 
    1530                nstop = nstop + 1 
     1506               WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckgw(ib) 
     1507               WRITE(ctmp2,*) ' ==========  does not start on land or on a corner'                                                   
     1508               CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    15311509            ELSE 
    15321510               ! This is a corner 
     
    15381516         IF (ztestmask(2)==1) THEN 
    15391517            IF (icornw(ib,2)==0) THEN 
    1540                IF(lwp) WRITE(numout,*) 
    1541                IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckgw(ib) 
    1542                IF(lwp) WRITE(numout,*) ' ==========  does not end on land or on a corner'                                                   
    1543                IF(lwp) WRITE(numout,*) 
    1544                nstop = nstop + 1 
     1518               WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckgw(ib) 
     1519               WRITE(ctmp2,*) ' ==========  does not end on land or on a corner'                                                   
     1520               CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    15451521            ELSE 
    15461522               ! This is a corner 
     
    15681544         IF (ztestmask(1)==1) THEN 
    15691545            IF (icorne(ib,1)==0) THEN 
    1570                IF(lwp) WRITE(numout,*) 
    1571                IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckge(ib) 
    1572                IF(lwp) WRITE(numout,*) ' ==========  does not start on land or on a corner'                                                   
    1573                IF(lwp) WRITE(numout,*) 
    1574                nstop = nstop + 1  
     1546               WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckge(ib) 
     1547               WRITE(ctmp2,*) ' ==========  does not start on land or on a corner'                                                   
     1548               CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    15751549            ELSE 
    15761550               ! This is a corner 
     
    15821556         IF (ztestmask(2)==1) THEN 
    15831557            IF (icorne(ib,2)==0) THEN 
    1584                IF(lwp) WRITE(numout,*) 
    1585                IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckge(ib) 
    1586                IF(lwp) WRITE(numout,*) ' ==========  does not end on land or on a corner'                                                   
    1587                IF(lwp) WRITE(numout,*) 
    1588                nstop = nstop + 1 
     1558               WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckge(ib) 
     1559               WRITE(ctmp2,*) ' ==========  does not end on land or on a corner'                                                   
     1560               CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    15891561            ELSE 
    15901562               ! This is a corner 
     
    16111583 
    16121584         IF ((ztestmask(1)==1).AND.(icorns(ib,1)==0)) THEN 
    1613             IF(lwp) WRITE(numout,*) 
    1614             IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckgs(ib) 
    1615             IF(lwp) WRITE(numout,*) ' ==========  does not start on land or on a corner'                                                   
    1616             IF(lwp) WRITE(numout,*) 
    1617             nstop = nstop + 1 
     1585            WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckgs(ib) 
     1586            WRITE(ctmp2,*) ' ==========  does not start on land or on a corner'                                                   
     1587            CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    16181588         ENDIF 
    16191589         IF ((ztestmask(2)==1).AND.(icorns(ib,2)==0)) THEN 
    1620             IF(lwp) WRITE(numout,*) 
    1621             IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckgs(ib) 
    1622             IF(lwp) WRITE(numout,*) ' ==========  does not end on land or on a corner'                                                   
    1623             IF(lwp) WRITE(numout,*) 
    1624             nstop = nstop + 1 
     1590            WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckgs(ib) 
     1591            WRITE(ctmp2,*) ' ==========  does not end on land or on a corner'                                                   
     1592            CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    16251593         ENDIF 
    16261594      END DO 
     
    16411609 
    16421610         IF ((ztestmask(1)==1).AND.(icornn(ib,1)==0)) THEN 
    1643             IF(lwp) WRITE(numout,*) 
    1644             IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckgn(ib) 
    1645             IF(lwp) WRITE(numout,*) ' ==========  does not start on land'                                                   
    1646             IF(lwp) WRITE(numout,*) 
    1647             nstop = nstop + 1 
     1611            WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckgn(ib) 
     1612            WRITE(ctmp2,*) ' ==========  does not start on land'                                                   
     1613            CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    16481614         ENDIF 
    16491615         IF ((ztestmask(2)==1).AND.(icornn(ib,2)==0)) THEN 
    1650             IF(lwp) WRITE(numout,*) 
    1651             IF(lwp) WRITE(numout,*) ' E R R O R : Open boundary segment ', npckgn(ib) 
    1652             IF(lwp) WRITE(numout,*) ' ==========  does not end on land'                                                   
    1653             IF(lwp) WRITE(numout,*) 
    1654             nstop = nstop + 1 
     1616            WRITE(ctmp1,*) ' E R R O R : Open boundary segment ', npckgn(ib) 
     1617            WRITE(ctmp2,*) ' ==========  does not end on land'                                                   
     1618            CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    16551619         ENDIF 
    16561620      END DO 
     
    16911655      ! 
    16921656      IF( itest>0 ) THEN 
    1693          IF(lwp) WRITE(numout,*) ' E R R O R : Segments ', ib1, 'and ', ib2 
    1694          IF(lwp) WRITE(numout,*) ' ==========  have different open bdy schemes'                                                   
    1695          IF(lwp) WRITE(numout,*) 
    1696          nstop = nstop + 1 
     1657         WRITE(ctmp1,*) ' E R R O R : Segments ', ib1, 'and ', ib2 
     1658         WRITE(ctmp2,*) ' ==========  have different open bdy schemes'                                                   
     1659         CALL ctl_stop( ' ', ctmp1, ctmp2, ' ' ) 
    16971660      ENDIF 
    16981661      ! 
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DIA/diaharm.F90

    r10068 r10417  
    2222   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2323   USE timing          ! preformance summary 
     24   USE lib_mpp           ! MPP library 
    2425 
    2526   IMPLICIT NONE 
     
    126127      ! 
    127128      IF (nb_ana > jpmax_harmo) THEN 
    128         IF(lwp) WRITE(numout,*) ' E R R O R dia_harm_init : nb_ana must be lower than jpmax_harmo, stop' 
    129         IF(lwp) WRITE(numout,*) ' jpmax_harmo= ', jpmax_harmo 
    130         nstop = nstop + 1 
     129         WRITE(ctmp1,*) 'Can not use XIOS in iom_g0d, file: '//TRIM(clname)//', var:'//TRIM(cdvar) 
     130         WRITE(ctmp2,*) ' jpmax_harmo= ', jpmax_harmo 
     131         CALL ctl_stop( 'dia_harm_init', ctmp1, ctmp2 ) 
    131132      ENDIF 
    132133 
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/IOM/iom.F90

    r10397 r10417  
    286286!Warn if variable is not in defined in rst_wfields 
    287287   IF(.NOT.llis_set) THEN 
    288       IF(lwp) THEN 
    289          write(numout,cform_err) 
    290          write(numout,*) 'iom_set_rstw_var_active: variable ', field ,' is available for writing but not defined'  
    291       ENDIF 
    292         nstop = nstop + 1 
     288      WRITE(ctmp1,*) 'iom_set_rstw_var_active: variable ', field ,' is available for writing but not defined'  
     289      CALL ctl_stop( 'iom_set_rstw_var_active:', ctmp1 ) 
    293290   ENDIF 
    294291#else 
     
    518515 
    519516        IF( i-1 > max_rst_fields) THEN 
    520         IF(lwp) write(numout,*) 'E R R O R : iom_set_rst_vars SIZE of RST_FIELD array is too small' 
    521         nstop = nstop + 1 
     517           WRITE(ctmp1,*) 'E R R O R : iom_set_rst_vars SIZE of RST_FIELD array is too small' 
     518           CALL ctl_stop( 'iom_set_rst_vars:', ctmp1 ) 
    522519        ENDIF 
    523520   END SUBROUTINE iom_set_rst_vars 
     
    950947         CALL iom_swap( TRIM(cxios_context) ) 
    951948#else 
    952          nstop = nstop + 1  
    953          clinfo = 'Can not use XIOS in iom_g0d, file: '//trim(clname)//', var:'//trim(cdvar) 
     949         WRITE(ctmp1,*) 'Can not use XIOS in iom_g0d, file: '//trim(clname)//', var:'//trim(cdvar) 
     950         CALL ctl_stop( 'iom_g0d', ctmp1 ) 
    954951#endif 
    955952      ENDIF 
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/LBC/lib_mpp.F90

    r10407 r10417  
    267267         ! 
    268268      ELSEIF ( PRESENT(localComm) .AND. .NOT. mpi_was_called ) THEN 
     269         WRITE(ldtxt(ii),cform_err)                                                    ;   ii = ii + 1 
    269270         WRITE(ldtxt(ii),*) ' lib_mpp: You cannot provide a local communicator '          ;   ii = ii + 1 
    270271         WRITE(ldtxt(ii),*) '          without calling MPI_Init before ! '                ;   ii = ii + 1 
     
    18361837      ! 
    18371838      nstop = nstop + 1 
    1838       IF(lwp) THEN 
    1839          WRITE(numout,cform_err) 
    1840          IF( PRESENT(cd1 ) )   WRITE(numout,*) TRIM(cd1) 
    1841          IF( PRESENT(cd2 ) )   WRITE(numout,*) TRIM(cd2) 
    1842          IF( PRESENT(cd3 ) )   WRITE(numout,*) TRIM(cd3) 
    1843          IF( PRESENT(cd4 ) )   WRITE(numout,*) TRIM(cd4) 
    1844          IF( PRESENT(cd5 ) )   WRITE(numout,*) TRIM(cd5) 
    1845          IF( PRESENT(cd6 ) )   WRITE(numout,*) TRIM(cd6) 
    1846          IF( PRESENT(cd7 ) )   WRITE(numout,*) TRIM(cd7) 
    1847          IF( PRESENT(cd8 ) )   WRITE(numout,*) TRIM(cd8) 
    1848          IF( PRESENT(cd9 ) )   WRITE(numout,*) TRIM(cd9) 
    1849          IF( PRESENT(cd10) )   WRITE(numout,*) TRIM(cd10) 
    1850       ENDIF 
     1839 
     1840      ! force to open ocean.output file 
     1841      IF( numout == 6 ) CALL ctl_opn( numout, 'ocean.output', 'APPEND', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. ) 
     1842        
     1843      WRITE(numout,cform_err) 
     1844      IF( PRESENT(cd1 ) )   WRITE(numout,*) TRIM(cd1) 
     1845      IF( PRESENT(cd2 ) )   WRITE(numout,*) TRIM(cd2) 
     1846      IF( PRESENT(cd3 ) )   WRITE(numout,*) TRIM(cd3) 
     1847      IF( PRESENT(cd4 ) )   WRITE(numout,*) TRIM(cd4) 
     1848      IF( PRESENT(cd5 ) )   WRITE(numout,*) TRIM(cd5) 
     1849      IF( PRESENT(cd6 ) )   WRITE(numout,*) TRIM(cd6) 
     1850      IF( PRESENT(cd7 ) )   WRITE(numout,*) TRIM(cd7) 
     1851      IF( PRESENT(cd8 ) )   WRITE(numout,*) TRIM(cd8) 
     1852      IF( PRESENT(cd9 ) )   WRITE(numout,*) TRIM(cd9) 
     1853      IF( PRESENT(cd10) )   WRITE(numout,*) TRIM(cd10) 
     1854 
    18511855                               CALL FLUSH(numout    ) 
    18521856      IF( numstp     /= -1 )   CALL FLUSH(numstp    ) 
     
    18551859      ! 
    18561860      IF( cd1 == 'STOP' ) THEN 
    1857          IF(lwp) WRITE(numout,*)  'huge E-R-R-O-R : immediate stop' 
     1861         WRITE(numout,*)  'huge E-R-R-O-R : immediate stop' 
    18581862         CALL mppstop(ld_force_abort = .true.) 
    18591863      ENDIF 
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/TRA/eosbn2.F90

    r10170 r10417  
    664664         ! 
    665665      CASE DEFAULT 
    666          IF(lwp) WRITE(numout,cform_err) 
    667          IF(lwp) WRITE(numout,*) '          bad flag value for neos = ', neos 
    668          nstop = nstop + 1 
     666         WRITE(ctmp1,*) '          bad flag value for neos = ', neos 
     667         CALL ctl_stop( 'rab_3d:', ctmp1 ) 
    669668         ! 
    670669      END SELECT 
     
    779778         ! 
    780779      CASE DEFAULT 
    781          IF(lwp) WRITE(numout,cform_err) 
    782          IF(lwp) WRITE(numout,*) '          bad flag value for neos = ', neos 
    783          nstop = nstop + 1 
     780         WRITE(ctmp1,*) '          bad flag value for neos = ', neos 
     781         CALL ctl_stop( 'rab_2d:', ctmp1 ) 
    784782         ! 
    785783      END SELECT 
     
    879877         ! 
    880878      CASE DEFAULT 
    881          IF(lwp) WRITE(numout,cform_err) 
    882          IF(lwp) WRITE(numout,*) '          bad flag value for neos = ', neos 
    883          nstop = nstop + 1 
     879         WRITE(ctmp1,*) '          bad flag value for neos = ', neos 
     880         CALL ctl_stop( 'rab_0d:', ctmp1 ) 
    884881         ! 
    885882      END SELECT 
     
    10401037         ! 
    10411038      CASE DEFAULT 
    1042          IF(lwp) WRITE(numout,cform_err) 
    1043          IF(lwp) WRITE(numout,*) '          bad flag value for neos = ', neos 
    1044          nstop = nstop + 1 
     1039         WRITE(ctmp1,*) '          bad flag value for neos = ', neos 
     1040         CALL ctl_stop( 'eos_fzp_2d:', ctmp1 ) 
    10451041         ! 
    10461042      END SELECT       
     
    10871083         ! 
    10881084      CASE DEFAULT 
    1089          IF(lwp) WRITE(numout,cform_err) 
    1090          IF(lwp) WRITE(numout,*) '          bad flag value for neos = ', neos 
    1091          nstop = nstop + 1 
     1085         WRITE(ctmp1,*) '          bad flag value for neos = ', neos 
     1086         CALL ctl_stop( 'eos_fzp_0d:', ctmp1 ) 
    10921087         ! 
    10931088      END SELECT 
     
    12131208         ! 
    12141209      CASE DEFAULT 
    1215          IF(lwp) WRITE(numout,cform_err) 
    1216          IF(lwp) WRITE(numout,*) '          bad flag value for neos = ', neos 
    1217          nstop = nstop + 1 
     1210         WRITE(ctmp1,*) '          bad flag value for neos = ', neos 
     1211         CALL ctl_stop( 'eos_pen:', ctmp1 ) 
    12181212         ! 
    12191213      END SELECT 
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/stpctl.F90

    r10368 r10417  
    121121      ENDIF 
    122122      ! 
    123       IF( lk_mpp .AND. ln_ctl ) THEN 
     123      IF( ln_ctl ) THEN 
    124124         CALL mpp_max( "stpctl", zmax )          ! max over the global domain 
    125125         nstop = NINT( zmax(7) )                 ! nstop indicator sheared among all local domains 
     
    160160            is2(:) = MAXLOC( tsn(:,:,:,jp_sal), mask = tmask(:,:,:) == 1._wp ) + (/ nimpp - 1, njmpp - 1, 0 /) 
    161161         ENDIF 
    162          IF( numout == 6 )   &   ! force to open ocean.output file 
    163             CALL ctl_opn( numout, 'ocean.output', 'APPEND', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. ) 
    164  
    165          WRITE(numout,cform_err) 
    166          WRITE(numout,*) ' stp_ctl: |ssh| > 10 m  or  |U| > 10 m/s  or  S <= 0  or  S >= 100  or  NaN encounter in the tests' 
    167          WRITE(numout,*) ' ======= ' 
    168          IF( lk_mpp .AND. .NOT. ln_ctl ) WRITE(numout,*) 'E R R O R message from sub-domain: ', narea 
    169          WRITE(numout,9100) kt,   zmax(1), ih(1) , ih(2) 
    170          WRITE(numout,9200) kt,   zmax(2), iu(1) , iu(2) , iu(3) 
    171          WRITE(numout,9300) kt, - zmax(3), is1(1), is1(2), is1(3) 
    172          WRITE(numout,9400) kt,   zmax(4), is2(1), is2(2), is2(3) 
    173          WRITE(numout,*) 
    174          WRITE(numout,*) '          output of last computed fields in output.abort.nc file' 
     162          
     163         WRITE(ctmp1,*) ' stp_ctl: |ssh| > 10 m  or  |U| > 10 m/s  or  S <= 0  or  S >= 100  or  NaN encounter in the tests' 
     164         WRITE(ctmp2,9100) kt,   zmax(1), ih(1) , ih(2) 
     165         WRITE(ctmp3,9200) kt,   zmax(2), iu(1) , iu(2) , iu(3) 
     166         WRITE(ctmp4,9300) kt, - zmax(3), is1(1), is1(2), is1(3) 
     167         WRITE(ctmp5,9400) kt,   zmax(4), is2(1), is2(2), is2(3) 
     168         WRITE(ctmp6,*) '      ===> output of last computed fields in output.abort.nc file' 
    175169          
    176170         CALL dia_wri_state( 'output.abort' )     ! create an output.abort file 
    177171          
    178          IF( ln_ctl ) THEN 
    179             kindic = -3 
    180             nstop = nstop + 1                            ! increase nstop by 1 (on all local domains) 
     172         IF( .NOT. ln_ctl ) THEN 
     173            WRITE(ctmp8,*) 'E R R O R message from sub-domain: ', narea 
     174            CALL ctl_stop( 'STOP', ctmp1, ' ', ctmp8, ' ', ctmp2, ctmp3, ctmp4, ctmp5, ctmp6 ) 
    181175         ELSE 
    182             CALL ctl_stop() 
    183             CALL mppstop(ld_force_abort = .true.) 
     176            CALL ctl_stop( ctmp1, ' ', ctmp2, ctmp3, ctmp4, ctmp5, ' ', ctmp6, ' ' ) 
    184177         ENDIF 
     178 
     179         kindic = -3 
    185180         ! 
    186181      ENDIF 
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/TOP/TRP/trdmxl_trc.F90

    r10402 r10417  
    776776 
    777777      IF( ( lk_trdmxl_trc ) .AND. ( MOD( nitend-nittrc000+1, nn_trd_trc ) /= 0 ) ) THEN 
    778          WRITE(numout,cform_err) 
    779          WRITE(numout,*) '                Your nitend parameter, nitend = ', nitend 
    780          WRITE(numout,*) '                is no multiple of the trends diagnostics frequency        ' 
    781          WRITE(numout,*) '                          you defined, nn_trd_trc   = ', nn_trd_trc 
    782          WRITE(numout,*) '                This will not allow you to restart from this simulation.  ' 
    783          WRITE(numout,*) '                You should reconsider this choice.                        '  
    784          WRITE(numout,*)  
    785          WRITE(numout,*) '                N.B. the nitend parameter is also constrained to be a     ' 
    786          WRITE(numout,*) '                multiple of the sea-ice frequency parameter (typically 5) ' 
    787          nstop = nstop + 1 
     778         WRITE(ctmp1,*) '                Your nitend parameter, nitend = ', nitend 
     779         WRITE(ctmp2,*) '                is no multiple of the trends diagnostics frequency        ' 
     780         WRITE(ctmp3,*) '                          you defined, nn_trd_trc   = ', nn_trd_trc 
     781         WRITE(ctmp4,*) '                This will not allow you to restart from this simulation.  ' 
     782         WRITE(ctmp5,*) '                You should reconsider this choice.                        '  
     783         WRITE(ctmp6,*)  
     784         WRITE(ctmp7,*) '                N.B. the nitend parameter is also constrained to be a     ' 
     785         WRITE(ctmp8,*) '                multiple of the sea-ice frequency parameter (typically 5) ' 
     786         CALL ctl_stop( ctmp1, ctmp2, ctmp3, ctmp4, ctmp5, ctmp6, ctmp7, ctmp8 ) 
    788787      ENDIF 
    789788 
     
    795794 
    796795      IF( ( ln_trcadv_muscl .OR. ln_trcadv_muscl2 ) .AND. .NOT. ln_trdmxl_trc_instant ) THEN 
    797          WRITE(numout,cform_err) 
    798          WRITE(numout,*) '                Currently, you can NOT use simultaneously tracer MUSCL    ' 
    799          WRITE(numout,*) '                advection and window averaged diagnostics of ML trends.   ' 
    800          WRITE(numout,*) '                WHY? Everything in trdmxl_trc is coded for leap-frog, and ' 
    801          WRITE(numout,*) '                MUSCL scheme is Euler forward for passive tracers (note   ' 
    802          WRITE(numout,*) '                that MUSCL is leap-frog for active tracers T/S).          ' 
    803          WRITE(numout,*) '                In particuliar, entrainment trend would be FALSE. However ' 
    804          WRITE(numout,*) '                this residual is correct for instantaneous ML diagnostics.' 
    805          WRITE(numout,*)  
    806          nstop = nstop + 1 
     796         WRITE(ctmp1,*) '                Currently, you can NOT use simultaneously tracer MUSCL    ' 
     797         WRITE(ctmp2,*) '                advection and window averaged diagnostics of ML trends.   ' 
     798         WRITE(ctmp3,*) '                WHY? Everything in trdmxl_trc is coded for leap-frog, and ' 
     799         WRITE(ctmp4,*) '                MUSCL scheme is Euler forward for passive tracers (note   ' 
     800         WRITE(ctmp5,*) '                that MUSCL is leap-frog for active tracers T/S).          ' 
     801         WRITE(ctmp6,*) '                In particuliar, entrainment trend would be FALSE. However ' 
     802         WRITE(ctmp7,*) '                this residual is correct for instantaneous ML diagnostics.' 
     803         CALL ctl_stop( ctmp1, ctmp2, ctmp3, ctmp4, ctmp5, ctmp6, ctmp7 ) 
    807804      ENDIF 
    808805 
Note: See TracChangeset for help on using the changeset viewer.