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