Ignore:
Timestamp:
2017-03-30T16:04:54+02:00 (4 years ago)
Author:
cetlod
Message:

trunk:clear stop with output.abort created after numerical explosion of ssh, see shaconemo ticket #66

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/stpctl.F90

    r6140 r7852  
    2121   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2222   USE lib_mpp         ! distributed memory computing 
     23   USE lib_fortran     ! Fortran routines library  
    2324 
    2425   IMPLICIT NONE 
     
    5152      INTEGER  ::   ji, jj, jk             ! dummy loop indices 
    5253      INTEGER  ::   ii, ij, ik             ! local integers 
    53       REAL(wp) ::   zumax, zsmin, zssh2    ! local scalars 
     54      REAL(wp) ::   zumax, zsmin, zssh2, zsshmax    ! local scalars 
    5455      INTEGER, DIMENSION(3) ::   ilocu     !  
    5556      INTEGER, DIMENSION(2) ::   ilocs     !  
     
    146147      ENDIF 
    147148      ! 
    148       zssh2 = SUM( sshn(:,:) * sshn(:,:) * tmask_i(:,:) ) 
    149       IF( lk_mpp )   CALL mpp_sum( zssh2 )      ! sum over the global domain 
     149      zsshmax = 0.e0 
     150      DO jj = 1, jpj 
     151         DO ji = 1, jpi 
     152            IF( tmask(ji,jj,1) == 1) zsshmax = MAX( zsshmax, ABS(sshn(ji,jj)) ) 
     153         END DO 
     154      END DO 
     155      IF( lk_mpp )   CALL mpp_max( zsshmax )                ! min over the global domain 
    150156      ! 
    151       IF(lwp) WRITE(numsol,9300) kt, zssh2, zumax, zsmin      ! ssh statistics 
     157      IF( MOD( kt, nwrite ) == 1 .AND. lwp )   WRITE(numout,*) ' ==>> time-step= ',kt,' ssh max:', zsshmax 
    152158      ! 
    153 9200  FORMAT('it:', i8, ' iter:', i4, ' r: ',e16.10, ' b: ',e16.10 ) 
    154 9300  FORMAT(' it :', i8, ' ssh2: ', e16.10, ' Umax: ',e16.10,' Smin: ',e16.10) 
     159      IF( zsshmax > 10.e0 ) THEN  
     160         IF (lk_mpp) THEN 
     161            CALL mpp_maxloc( ABS(sshn(:,:)),tmask(:,:,1),zsshmax,ii,ij) 
     162         ELSE 
     163            ilocs = MAXLOC( ABS(sshn(:,:)) ) 
     164            ii = ilocs(1) + nimpp - 1 
     165            ij = ilocs(2) + njmpp - 1 
     166         ENDIF 
     167         ! 
     168         IF(lwp) THEN 
     169            WRITE(numout,cform_err) 
     170            WRITE(numout,*) 'stp_ctl : the ssh is larger than 10m' 
     171            WRITE(numout,*) '======= ' 
     172            WRITE(numout,9600) kt, zsshmax, ii, ij 
     173            WRITE(numout,*) 
     174            WRITE(numout,*) '          output of last fields in numwso' 
     175         ENDIF 
     176         kindic = -3 
     177      ENDIF 
     1789600  FORMAT (' kt=',i6,' max ssh: ',1pg11.4,', i j: ',2i5) 
     179      ! 
     180      zssh2 = glob_sum( sshn(:,:) * sshn(:,:) ) 
     181      ! 
     182      IF(lwp) WRITE(numsol,9700) kt, zssh2, zumax, zsmin      ! ssh statistics 
     183      ! 
     1849700  FORMAT(' it :', i8, ' ssh2: ', d23.16, ' Umax: ',d23.16,' Smin: ',d23.16) 
    155185      ! 
    156186   END SUBROUTINE stp_ctl 
Note: See TracChangeset for help on using the changeset viewer.