C $Header: /u/gcmpack/MITgcm/pkg/bulk_force/bulkf_diags.F,v 1.8 2005/05/15 03:04:56 jmc Exp $
C $Name: $
#include "BULK_FORCE_OPTIONS.h"
CStartOfInterface
SUBROUTINE BULKF_DIAGS( myTime, myIter, myThid )
C /==========================================================\
C | SUBROUTINE BULKF_DIAGS |
C | o Do BULKF diagnostic output |
C |==========================================================|
C \==========================================================/
cswdblk modified for bulk formula -- Dec 01
IMPLICIT NONE
C === Global variables ===
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "BULKF.h"
#include "BULKF_PARAMS.h"
#include "BULKF_DIAG.h"
C == Routine arguments ==
C myTime - Current time of simulation ( s )
C myIter - Iteration number
C myThid - Number of this instance
_RL myTime
INTEGER myIter
INTEGER myThid
CEndOfInterface
#ifdef ALLOW_BULK_FORCE
#ifdef ALLOW_TIMEAVE
C == Function
LOGICAL DIFFERENT_MULTIPLE
EXTERNAL
C == Local variables ==
INTEGER bi, bj
CHARACTER*(MAX_LEN_MBUF) suff
C Dump files and restart average computation if needed
IF ( DIFFERENT_MULTIPLE(blk_taveFreq,myTime,deltaTClock)
& ) THEN
C Normalize by integrated time
DO bj = myByLo(myThid), myByHi(myThid)
DO bi = myBxLo(myThid), myBxHi(myThid)
CALL TIMEAVE_NORMALIZ(BULK_Qnet_AVE,BULKF_timeave, 1 ,
& bi,bj,myThid)
CALL TIMEAVE_NORMALIZ(BULK_EmPmR_AVE,BULKF_timeave, 1 ,
& bi,bj,myThid)
CALL TIMEAVE_NORMALIZ(BULK_fu_AVE,BULKF_timeave, 1 ,
& bi,bj,myThid)
CALL TIMEAVE_NORMALIZ(BULK_fv_AVE,BULKF_timeave, 1 ,
& bi,bj,myThid)
CALL TIMEAVE_NORMALIZ(BULK_latent_AVE,BULKF_timeave, 1 ,
& bi,bj,myThid)
CALL TIMEAVE_NORMALIZ(BULK_sensible_AVE,BULKF_timeave, 1 ,
& bi,bj,myThid)
CALL TIMEAVE_NORMALIZ(BULK_evap_AVE,BULKF_timeave, 1 ,
& bi,bj,myThid)
CALL TIMEAVE_NORMALIZ(BULK_flwup_AVE,BULKF_timeave, 1 ,
& bi,bj,myThid)
CALL TIMEAVE_NORMALIZ(BULK_flwupnet_AVE,BULKF_timeave, 1 ,
& bi,bj,myThid)
CALL TIMEAVE_NORMALIZ(BULK_solar_AVE,BULKF_timeave, 1 ,
& bi,bj,myThid)
CALL TIMEAVE_NORMALIZ(BULK_ssq_AVE,BULKF_timeave, 1 ,
& bi,bj,myThid)
ENDDO
ENDDO
_BEGIN_MASTER(myThid)
WRITE(suff,'(I10.10)') myIter
CALL WRITE_FLD_XY_RL('BULK_Qnet.',suff,BULK_Qnet_AVE,
& myIter,myThid)
CALL WRITE_FLD_XY_RL('BULK_EmPmR.',suff,
& BULK_EmPmR_AVE,myIter,myThid)
CALL WRITE_FLD_XY_RL('BULK_fu.',suff,
& BULK_fu_AVE,myIter,myThid)
CALL WRITE_FLD_XY_RL('BULK_fv.',suff,
& BULK_fv_AVE,myIter,myThid)
CALL WRITE_FLD_XY_RL('BULK_latent.',suff,
& BULK_latent_AVE,myIter,myThid)
CALL WRITE_FLD_XY_RL('BULK_sensible.',suff,
& BULK_sensible_AVE,myIter,myThid)
CALL WRITE_FLD_XY_RL('BULK_evap.',suff,
& BULK_evap_AVE,myIter,myThid)
CALL WRITE_FLD_XY_RL('BULK_flwup.',suff,
& BULK_flwup_AVE,myIter,myThid)
CALL WRITE_FLD_XY_RL('BULK_flwupnet.',suff,
& BULK_flwupnet_AVE,myIter,myThid)
CALL WRITE_FLD_XY_RL('BULK_solar.',suff,
& BULK_solar_AVE,myIter,myThid)
CALL WRITE_FLD_XY_RL('BULK_ssq.',suff,
& BULK_ssq_AVE,myIter,myThid)
_END_MASTER(myThid)
C Reset averages to zero
DO bj = myByLo(myThid), myByHi(myThid)
DO bi = myBxLo(myThid), myBxHi(myThid)
CALL TIMEAVE_RESET(BULK_Qnet_AVE,1,bi,bj,myThid)
CALL TIMEAVE_RESET(BULK_EmPmR_AVE,1,bi,bj,myThid)
CALL TIMEAVE_RESET(BULK_fu_AVE,1,bi,bj,myThid)
CALL TIMEAVE_RESET(BULK_fv_AVE,1,bi,bj,myThid)
CALL TIMEAVE_RESET(BULK_latent_AVE,1,bi,bj,myThid)
CALL TIMEAVE_RESET(BULK_sensible_AVE,1,bi,bj,myThid)
CALL TIMEAVE_RESET(BULK_evap_AVE,1,bi,bj,myThid)
CALL TIMEAVE_RESET(BULK_flwup_AVE,1,bi,bj,myThid)
CALL TIMEAVE_RESET(BULK_flwupnet_AVE,1,bi,bj,myThid)
CALL TIMEAVE_RESET(BULK_solar_AVE,1,bi,bj,myThid)
CALL TIMEAVE_RESET(BULK_ssq_AVE,1,bi,bj,myThid)
BULKF_TimeAve(1,bi,bj)=0.
ENDDO
ENDDO
ENDIF
#endif /* ALLOW_TIMEAVE */
#endif /* ALLOW_BULKF */
RETURN
END