C $Header: /u/gcmpack/MITgcm/pkg/monitor/mon_solution.F,v 1.4 2004/11/10 20:53:13 jmc Exp $ C $Name: $ #include "MONITOR_OPTIONS.h" C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP C !ROUTINE: MON_SOLUTION C !INTERFACE: SUBROUTINE MON_SOLUTION( I statsTemp, I myTime, myIter, myThid ) C !DESCRIPTION: C Checks that the solutions is within bounds C !USES: IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "DYNVARS.h" #include "GRID.h" #include "MONITOR.h" C !INPUT PARAMETERS: _RL statsTemp(*) _RL myTime INTEGER myIter INTEGER myThid CEOP C !LOCAL VARIABLES: CHARACTER*(MAX_LEN_MBUF) msgBuf _RL tMin,tMax,tMean,tSD,tDel2,tVol IF ( statsTemp(1) .LE. statsTemp(2) ) THEN C take statistics from the input argument "statsTemp": tMin = statsTemp(1) tMax = statsTemp(2) ELSE C Statistics for T CALL MON_STATS_RL( I Nr, theta, maskC,hFacC,rA,drF, O tMin,tMax,tMean,tSD,tDel2,tVol, I myThid ) ENDIF IF (tMax-tMin.GT.1.e3) THEN _BEGIN_MASTER(myThid) WRITE(msgBuf,'(A,1P2E12.3)') & 'SOLUTION IS HEADING OUT OF BOUNDS: tMin,tMax=',tMin,tMax CALL PRINT_MESSAGE(msgBuf,errorMessageUnit,SQUEEZE_RIGHT, 1) WRITE(msgBuf,'(A)') 'MON_SOLUTION: STOPPING CALCULATION' CALL PRINT_MESSAGE(msgBuf,errorMessageUnit,SQUEEZE_RIGHT, 1) _END_MASTER(myThid) C jmc: add this "if not ..." to avoid beeing stuck when using coupler; IF ( .NOT. useCoupler ) CALL EEDIE STOP 'MON_SOLUTION: STOPPED DUE TO EXTREME VALUES OF SOLUTION' ENDIF RETURN END