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

Changeset 1561


Ignore:
Timestamp:
2009-07-30T10:50:07+02:00 (15 years ago)
Author:
ctlod
Message:

Fix output state following an error state trapped by stpctl.F90, see ticket: #496

Location:
trunk/NEMO/OPA_SRC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/DIA/diawri.F90

    r1546 r1561  
    7474   !!---------------------------------------------------------------------- 
    7575# if defined key_iomput 
    76    SUBROUTINE dia_wri( kt, kindic ) 
     76   SUBROUTINE dia_wri( kt ) 
    7777      !!--------------------------------------------------------------------- 
    7878      !!                  ***  ROUTINE dia_wri  *** 
     
    8787      !!---------------------------------------------------------------------- 
    8888      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
    89       INTEGER, INTENT( in ) ::   kindic  !  
    9089      !!---------------------------------------------------------------------- 
    9190      !  
     
    112111 
    113112#else 
    114    SUBROUTINE dia_wri( kt, kindic ) 
     113   SUBROUTINE dia_wri( kt ) 
    115114      !!--------------------------------------------------------------------- 
    116115      !!                  ***  ROUTINE dia_wri  *** 
     
    123122      !!      At each time step call histdef to compute the mean if ncessary 
    124123      !!      Each nwrite time step, output the instantaneous or mean fields 
    125       !!      IF kindic <0, output of fields before the model interruption. 
    126       !!      IF kindic =0, time step loop 
    127       !!      IF kindic >0, output of fields before the time step loop 
    128124      !! 
    129125      !! History : 
     
    140136      !! * Arguments 
    141137      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
    142       INTEGER, INTENT( in ) ::   kindic  !  
    143138 
    144139      !! * Local declarations 
     
    199194      ! 1. Define NETCDF files and fields at beginning of first time step 
    200195      ! ----------------------------------------------------------------- 
    201  
    202       IF(ll_print) WRITE(numout,*) 'dia_wri kt = ', kt, ' kindic ', kindic 
    203196 
    204197      IF( kt == nit000 ) THEN 
     
    525518      ! 3. Close all files 
    526519      ! --------------------------------------- 
    527       IF( kt == nitend .OR. kindic < 0 ) THEN 
     520      IF( kt == nitend ) THEN 
    528521         CALL histclo( nid_T ) 
    529522         CALL histclo( nid_U ) 
     
    658651      ! ----------------- 
    659652      CALL histclo( id_i ) 
     653#if ! defined key_iomput 
     654      IF( ninist /= 1  ) THEN 
     655         CALL histclo( nid_T ) 
     656         CALL histclo( nid_U ) 
     657         CALL histclo( nid_V ) 
     658         CALL histclo( nid_W ) 
     659      ENDIF 
     660#endif 
    660661 
    661662   END SUBROUTINE dia_wri_state 
  • trunk/NEMO/OPA_SRC/step.F90

    r1546 r1561  
    242242      ! diagnostics and outputs             (ua, va, ta, sa used as workspace) 
    243243      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    244                          CALL dia_wri( kstp, indic )  ! ocean model: outputs 
     244                         CALL dia_wri( kstp )         ! ocean model: outputs 
    245245      IF( lk_floats  )   CALL flo_stp( kstp )         ! drifting Floats 
    246246      IF( lk_diahth  )   CALL dia_hth( kstp )         ! Thermocline depth (20 degres isotherm depth) 
  • trunk/NEMO/OPA_SRC/stpctl.F90

    r1528 r1561  
    1818   USE sol_oce         ! ocean space and time domain variables  
    1919   USE in_out_manager  ! I/O manager 
    20    USE diawri          ! ocean output file  
    2120   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2221   USE lib_mpp         ! distributed memory computing 
     
    8786      IF( MOD( kt, nwrite ) == 1 .AND. lwp )   WRITE(numout,*) ' ==>> time-step= ',kt,' abs(U) max: ', zumax 
    8887      ! 
    89       IF( zumax > 20.) THEN 
     88      IF( zumax > 20.e0 ) THEN 
    9089         IF( lk_mpp ) THEN 
    9190            CALL mpp_maxloc(ABS(un),umask,zumax,ii,ij,ik) 
     
    104103            WRITE(numout,*) '          output of last fields in numwso' 
    105104         ENDIF 
    106          IF( kindic >= 0 ) THEN      ! create a abort file (only if not already done) 
    107             kindic  = -3 
    108             CALL dia_wri( kt, kindic ) 
    109          ENDIF 
     105         kindic = -3 
    110106      ENDIF 
    1111079400  FORMAT (' kt=',i6,' max abs(U): ',1pg11.4,', i j k: ',3i5) 
     
    141137            WRITE(numout,*) '          output of last fields in numwso' 
    142138         ENDIF 
    143          IF( kindic >= 0 ) THEN      ! create a abort file (only if not already done) 
    144             kindic  = -3 
    145             CALL dia_wri( kt, kindic ) 
    146          ENDIF 
     139         kindic = -3 
    147140      ENDIF 
    1481419500  FORMAT (' kt=',i6,' min SSS: ',1pg11.4,', i j: ',2i5) 
     
    154147         IF(lwp) WRITE(numsol,9200) kt, niter, res, SQRT(epsr)/eps      ! Solver 
    155148         ! 
    156          IF( kindic < 0 ) THEN                                          ! create a abort file if problem found  
     149         IF( kindic < 0 .AND. zsmin > 0.e0 .AND. zumax <= 20.e0 ) THEN                                          ! create a abort file if problem found  
    157150            IF(lwp) THEN 
    158151               WRITE(numout,*) ' stpctl: the elliptic solver DO not converge or explode' 
     
    163156               WRITE(numout,*) ' ======  ' 
    164157            ENDIF 
    165             CALL dia_wri( kt, kindic ) 
    166158         ENDIF 
    167159         ! 
Note: See TracChangeset for help on using the changeset viewer.