Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:43:43 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
1ffb1fabff Jean*0001 #include "SEAICE_OPTIONS.h"
                0002 #ifdef ALLOW_OBCS
                0003 #include "OBCS_OPTIONS.h"
                0004 #endif
                0005 
                0006 CBOP
a6d1f588a0 Jean*0007 C     !ROUTINE: SEAICE_OBCS_OUTPUT
1ffb1fabff Jean*0008 
                0009 C     !INTERFACE:
                0010       SUBROUTINE SEAICE_OBCS_OUTPUT( myTime, myIter, myThid )
                0011 
                0012 C     !DESCRIPTION: \bv
                0013 C     *==========================================================*
                0014 C     | SUBROUTINE SEAICE_OBCS_OUTPUT
                0015 C     | o General routine for SEAICE Open-Boundary output
                0016 C     *==========================================================*
                0017 C     \ev
                0018 
                0019 C     !USES:
                0020       IMPLICIT NONE
                0021 C     == Global variables ===
                0022 #include "SIZE.h"
                0023 #include "EEPARAMS.h"
                0024 #include "PARAMS.h"
                0025 #ifdef ALLOW_OBCS
a9eb030de2 Jean*0026 # include "OBCS_PARAMS.h"
                0027 # include "OBCS_SEAICE.h"
1ffb1fabff Jean*0028 #endif
                0029 
                0030 C     !INPUT PARAMETERS:
                0031 C     myTime :: my time in simulation ( s )
                0032 C     myIter :: my Iteration number
                0033 C     myThid :: my Thread Id number
                0034       _RL     myTime
                0035       INTEGER myIter
                0036       INTEGER myThid
                0037 CEOP
                0038 
                0039 #ifdef ALLOW_SEAICE
                0040 #ifdef ALLOW_OBCS
                0041 C     !FUNCTIONS:
                0042       LOGICAL  DIFFERENT_MULTIPLE
                0043       EXTERNAL DIFFERENT_MULTIPLE
                0044 c     INTEGER  ILNBLNK
                0045 c     EXTERNAL ILNBLNK
                0046 
                0047 C     !LOCAL VARIABLES:
7f3de8b715 Jean*0048       CHARACTER*(10) suff
1ffb1fabff Jean*0049       CHARACTER*(MAX_LEN_FNAM) fn
                0050       INTEGER prec
                0051 
                0052 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0053 
                0054 C--   Write OB aray to binary files (mainly for debugging => use "diagFreq")
                0055       IF (
                0056      &     DIFFERENT_MULTIPLE(diagFreq,myTime,deltaTClock)
                0057      &   ) THEN
                0058 
                0059        _BARRIER
                0060         prec = writeBinaryPrec
7f3de8b715 Jean*0061 c       IF ( rwSuffixType.EQ.0 ) THEN
                0062           WRITE(suff,'(I10.10)') myIter
                0063 c       ELSE
                0064 c         CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid )
                0065 c       ENDIF
1ffb1fabff Jean*0066 
                0067 C     Write Sea-Ice OB arrays
                0068 # ifdef ALLOW_OBCS_NORTH
7f3de8b715 Jean*0069         WRITE(fn,'(2A)') 'seaice_ob_N.', suff
1ffb1fabff Jean*0070         CALL WRITE_REC_XZ_RL(fn,prec, 1,OBNa,    1,myIter,myThid)
                0071         CALL WRITE_REC_XZ_RL(fn,prec, 1,OBNh,    2,myIter,myThid)
                0072         CALL WRITE_REC_XZ_RL(fn,prec, 1,OBNsl,   3,myIter,myThid)
                0073         CALL WRITE_REC_XZ_RL(fn,prec, 1,OBNsn,   4,myIter,myThid)
                0074         CALL WRITE_REC_XZ_RL(fn,prec, 1,OBNuice, 5,myIter,myThid)
                0075         CALL WRITE_REC_XZ_RL(fn,prec, 1,OBNvice, 6,myIter,myThid)
                0076 # endif
                0077 # ifdef ALLOW_OBCS_SOUTH
7f3de8b715 Jean*0078         WRITE(fn,'(2A)') 'seaice_ob_S.', suff
1ffb1fabff Jean*0079         CALL WRITE_REC_XZ_RL(fn,prec, 1,OBSa,    1,myIter,myThid)
                0080         CALL WRITE_REC_XZ_RL(fn,prec, 1,OBSh,    2,myIter,myThid)
                0081         CALL WRITE_REC_XZ_RL(fn,prec, 1,OBSsl,   3,myIter,myThid)
                0082         CALL WRITE_REC_XZ_RL(fn,prec, 1,OBSsn,   4,myIter,myThid)
                0083         CALL WRITE_REC_XZ_RL(fn,prec, 1,OBSuice, 5,myIter,myThid)
                0084         CALL WRITE_REC_XZ_RL(fn,prec, 1,OBSvice, 6,myIter,myThid)
                0085 # endif
                0086 # ifdef ALLOW_OBCS_EAST
7f3de8b715 Jean*0087         WRITE(fn,'(2A)') 'seaice_ob_E.', suff
1ffb1fabff Jean*0088         CALL WRITE_REC_YZ_RL(fn,prec, 1,OBEa,    1,myIter,myThid)
                0089         CALL WRITE_REC_YZ_RL(fn,prec, 1,OBEh,    2,myIter,myThid)
                0090         CALL WRITE_REC_YZ_RL(fn,prec, 1,OBEsl,   3,myIter,myThid)
                0091         CALL WRITE_REC_YZ_RL(fn,prec, 1,OBEsn,   4,myIter,myThid)
                0092         CALL WRITE_REC_YZ_RL(fn,prec, 1,OBEuice, 5,myIter,myThid)
                0093         CALL WRITE_REC_YZ_RL(fn,prec, 1,OBEvice, 6,myIter,myThid)
                0094 # endif
                0095 # ifdef ALLOW_OBCS_WEST
7f3de8b715 Jean*0096         WRITE(fn,'(2A)') 'seaice_ob_W.', suff
1ffb1fabff Jean*0097         CALL WRITE_REC_YZ_RL(fn,prec, 1,OBWa,    1,myIter,myThid)
                0098         CALL WRITE_REC_YZ_RL(fn,prec, 1,OBWh,    2,myIter,myThid)
                0099         CALL WRITE_REC_YZ_RL(fn,prec, 1,OBWsl,   3,myIter,myThid)
                0100         CALL WRITE_REC_YZ_RL(fn,prec, 1,OBWsn,   4,myIter,myThid)
                0101         CALL WRITE_REC_YZ_RL(fn,prec, 1,OBWuice, 5,myIter,myThid)
                0102         CALL WRITE_REC_YZ_RL(fn,prec, 1,OBWvice, 6,myIter,myThid)
                0103 # endif
                0104 
                0105        _BARRIER
                0106 
                0107       ENDIF
                0108 
                0109 #endif /* ALLOW_OBCS */
                0110 #endif /* ALLOW_SEAICE */
                0111 
                0112       RETURN
                0113       END