C $Header: /u/gcmpack/MITgcm/pkg/seaice/seaice_obcs_output.F,v 1.4 2017/03/24 23:53:17 jmc Exp $
C $Name: $
#include "SEAICE_OPTIONS.h"
#ifdef ALLOW_OBCS
#include "OBCS_OPTIONS.h"
#endif
CBOP
C !ROUTINE: SEAICE_OBCS_OUTPUT
C !INTERFACE:
SUBROUTINE SEAICE_OBCS_OUTPUT( myTime, myIter, myThid )
C !DESCRIPTION: \bv
C *==========================================================*
C | SUBROUTINE SEAICE_OBCS_OUTPUT
C | o General routine for SEAICE Open-Boundary output
C *==========================================================*
C \ev
C !USES:
IMPLICIT NONE
C == Global variables ===
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#ifdef ALLOW_OBCS
# include "OBCS_PARAMS.h"
# include "OBCS_SEAICE.h"
#endif
C !INPUT PARAMETERS:
C myTime :: my time in simulation ( s )
C myIter :: my Iteration number
C myThid :: my Thread Id number
_RL myTime
INTEGER myIter
INTEGER myThid
CEOP
#ifdef ALLOW_SEAICE
#ifdef ALLOW_OBCS
C !FUNCTIONS:
LOGICAL DIFFERENT_MULTIPLE
EXTERNAL
c INTEGER ILNBLNK
c EXTERNAL ILNBLNK
C !LOCAL VARIABLES:
CHARACTER*(10) suff
CHARACTER*(MAX_LEN_FNAM) fn
INTEGER prec
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
C-- Write OB aray to binary files (mainly for debugging => use "diagFreq")
IF (
& DIFFERENT_MULTIPLE(diagFreq,myTime,deltaTClock)
& ) THEN
_BARRIER
prec = writeBinaryPrec
c IF ( rwSuffixType.EQ.0 ) THEN
WRITE(suff,'(I10.10)') myIter
c ELSE
c CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid )
c ENDIF
C Write Sea-Ice OB arrays
# ifdef ALLOW_OBCS_NORTH
WRITE(fn,'(2A)') 'seaice_ob_N.', suff
CALL WRITE_REC_XZ_RL(fn,prec, 1,OBNa, 1,myIter,myThid)
CALL WRITE_REC_XZ_RL(fn,prec, 1,OBNh, 2,myIter,myThid)
CALL WRITE_REC_XZ_RL(fn,prec, 1,OBNsl, 3,myIter,myThid)
CALL WRITE_REC_XZ_RL(fn,prec, 1,OBNsn, 4,myIter,myThid)
CALL WRITE_REC_XZ_RL(fn,prec, 1,OBNuice, 5,myIter,myThid)
CALL WRITE_REC_XZ_RL(fn,prec, 1,OBNvice, 6,myIter,myThid)
# endif
# ifdef ALLOW_OBCS_SOUTH
WRITE(fn,'(2A)') 'seaice_ob_S.', suff
CALL WRITE_REC_XZ_RL(fn,prec, 1,OBSa, 1,myIter,myThid)
CALL WRITE_REC_XZ_RL(fn,prec, 1,OBSh, 2,myIter,myThid)
CALL WRITE_REC_XZ_RL(fn,prec, 1,OBSsl, 3,myIter,myThid)
CALL WRITE_REC_XZ_RL(fn,prec, 1,OBSsn, 4,myIter,myThid)
CALL WRITE_REC_XZ_RL(fn,prec, 1,OBSuice, 5,myIter,myThid)
CALL WRITE_REC_XZ_RL(fn,prec, 1,OBSvice, 6,myIter,myThid)
# endif
# ifdef ALLOW_OBCS_EAST
WRITE(fn,'(2A)') 'seaice_ob_E.', suff
CALL WRITE_REC_YZ_RL(fn,prec, 1,OBEa, 1,myIter,myThid)
CALL WRITE_REC_YZ_RL(fn,prec, 1,OBEh, 2,myIter,myThid)
CALL WRITE_REC_YZ_RL(fn,prec, 1,OBEsl, 3,myIter,myThid)
CALL WRITE_REC_YZ_RL(fn,prec, 1,OBEsn, 4,myIter,myThid)
CALL WRITE_REC_YZ_RL(fn,prec, 1,OBEuice, 5,myIter,myThid)
CALL WRITE_REC_YZ_RL(fn,prec, 1,OBEvice, 6,myIter,myThid)
# endif
# ifdef ALLOW_OBCS_WEST
WRITE(fn,'(2A)') 'seaice_ob_W.', suff
CALL WRITE_REC_YZ_RL(fn,prec, 1,OBWa, 1,myIter,myThid)
CALL WRITE_REC_YZ_RL(fn,prec, 1,OBWh, 2,myIter,myThid)
CALL WRITE_REC_YZ_RL(fn,prec, 1,OBWsl, 3,myIter,myThid)
CALL WRITE_REC_YZ_RL(fn,prec, 1,OBWsn, 4,myIter,myThid)
CALL WRITE_REC_YZ_RL(fn,prec, 1,OBWuice, 5,myIter,myThid)
CALL WRITE_REC_YZ_RL(fn,prec, 1,OBWvice, 6,myIter,myThid)
# endif
_BARRIER
ENDIF
#endif /* ALLOW_OBCS */
#endif /* ALLOW_SEAICE */
RETURN
END