Back to home page

MITgcm

 
 

    


File indexing completed on 2019-08-09 05:11:00 UTC

view on githubraw file Latest commit d200a168 on 2019-08-02 06:38:38 UTC
6bfee994e4 Jean*0001 #include "OCN_CPL_OPTIONS.h"
69e21e3ef0 Jean*0002 
963aacc62a Jean*0003 CBOP
                0004 C     !ROUTINE: CPL_INI_VARS
                0005 C     !INTERFACE:
69e21e3ef0 Jean*0006       SUBROUTINE CPL_INI_VARS( myThid )
963aacc62a Jean*0007 
                0008 C     !DESCRIPTION: \bv
                0009 C     *==========================================================*
                0010 C     | S/R CPL_INI_VARS
                0011 C     | o Initialisation routine for arrays that are used to
                0012 C     |   buffer data that interfaces to the coupling layer.
                0013 C     | - Oceanic version -
                0014 C     *==========================================================*
                0015 C     | For now this routine sets these arrays to the right
                0016 C     | state for an initial start-up. Eventually it should
                0017 C     | include some way to load this data from non-volatile
                0018 C     | external storage if they are needed during a restart.
                0019 C     *==========================================================*
                0020 C     \ev
                0021 
                0022 C     !USES:
69e21e3ef0 Jean*0023       IMPLICIT NONE
                0024 
                0025 C     == Global variables ==
                0026 #include "SIZE.h"
                0027 #include "EEPARAMS.h"
                0028 #include "PARAMS.h"
e596558d31 Jean*0029 #include "CPL_PARAMS.h"
69e21e3ef0 Jean*0030 #include "OCNCPL.h"
963aacc62a Jean*0031 #include "CPL_TAVE.h"
69e21e3ef0 Jean*0032 
963aacc62a Jean*0033 C     !INPUT/OUTPUT PARAMETERS:
                0034 C     myThid :: my Thread Id Number
69e21e3ef0 Jean*0035       INTEGER myThid
963aacc62a Jean*0036 CEOP
69e21e3ef0 Jean*0037 
e596558d31 Jean*0038 #ifdef COMPONENT_MODULE
963aacc62a Jean*0039 
                0040 C     !LOCAL VARIABLES:
6bfee994e4 Jean*0041 C     i,j,bi,bj :: Loop counters
                0042       INTEGER i,j,bi,bj
69e21e3ef0 Jean*0043 
                0044       DO bj=myByLo(myThid),myByHi(myThid)
d200a16830 Jean*0045        DO bi=myBxLo(myThid),myBxHi(myThid)
6bfee994e4 Jean*0046         DO J=1-OLy,sNy+OLy
                0047          DO I=1-OLx,sNx+OLx
e596558d31 Jean*0048 C.        Export fields
6bfee994e4 Jean*0049           ocMxlD2cpl(i,j,bi,bj) = 0.
                0050           SSTocn2cpl(i,j,bi,bj) = 0.
                0051           SSSocn2cpl(i,j,bi,bj) = 0.
                0052           vSqocn2cpl(i,j,bi,bj) = 0.
90578acae6 Jean*0053 #ifdef ALLOW_DIC
6bfee994e4 Jean*0054           fluxCO2cpl(i,j,bi,bj) = 0.
90578acae6 Jean*0055 #endif
                0056 C-        Import and/or export fields
                0057 #if (defined ALLOW_DIC) || (defined ALLOW_THSICE)
                0058           sIceFrac_cpl  (i,j,bi,bj) = 0.
                0059 #endif
                0060 #ifdef ALLOW_THSICE
                0061           sIceThick_cpl (i,j,bi,bj) = 0.
                0062           sIceSnowH_cpl (i,j,bi,bj) = 0.
                0063           sIceQ1_cpl    (i,j,bi,bj) = 0.
                0064           sIceQ2_cpl    (i,j,bi,bj) = 0.
                0065 #endif
e596558d31 Jean*0066 C-        Import fields
6bfee994e4 Jean*0067           atmSLPr   (i,j,bi,bj) = 0.
                0068           HeatFlux  (i,j,bi,bj) = 0.
                0069           qShortWave(i,j,bi,bj) = 0.
                0070           tauX      (i,j,bi,bj) = 0.
                0071           tauY      (i,j,bi,bj) = 0.
                0072           FWflux    (i,j,bi,bj) = 0.
                0073           iceSaltFlx(i,j,bi,bj) = 0.
                0074           seaIceMass(i,j,bi,bj) = 0.
90578acae6 Jean*0075 #ifdef ALLOW_SALT_PLUME
                0076           saltPlmFlx_cpl(i,j,bi,bj) = 0.
                0077 #endif
                0078 #ifdef ALLOW_DIC
                0079           RunOff_cpl(i,j,bi,bj) = 0.
6bfee994e4 Jean*0080           airCO2    (i,j,bi,bj) = 0.
                0081           surfWSpeed(i,j,bi,bj) = 0.
90578acae6 Jean*0082 #endif
69e21e3ef0 Jean*0083          ENDDO
                0084         ENDDO
                0085        ENDDO
                0086       ENDDO
                0087 
963aacc62a Jean*0088       IF ( startTime.NE.baseTime .OR. nIter0.NE.0
                0089      &                   .OR. pickupSuff .NE. ' ' ) THEN
e596558d31 Jean*0090        CALL OCN_CPL_READ_PICKUP( nIter0, myThid )
69e21e3ef0 Jean*0091       ENDIF
                0092 
                0093 #ifdef ALLOW_TIMEAVE
e596558d31 Jean*0094 C     Initialise diagnostic counters ( these are cleared on model start
                0095 C      i.e. not loaded from history file for now ).
69e21e3ef0 Jean*0096       DO bj = myByLo(myThid), myByHi(myThid)
                0097        DO bi = myBxLo(myThid), myBxHi(myThid)
963aacc62a Jean*0098          CALL TIMEAVE_RESET( SLPtave,  1, bi, bj, myThid )
                0099          CALL TIMEAVE_RESET( HFtave ,  1, bi, bj, myThid )
                0100          CALL TIMEAVE_RESET( QSWtave,  1, bi, bj, myThid )
                0101          CALL TIMEAVE_RESET( TXtave ,  1, bi, bj, myThid )
                0102          CALL TIMEAVE_RESET( TYtave ,  1, bi, bj, myThid )
                0103          CALL TIMEAVE_RESET( FWtave ,  1, bi, bj, myThid )
                0104          CALL TIMEAVE_RESET( SFxtave,  1, bi, bj, myThid )
                0105          CALL TIMEAVE_RESET( SICtave,  1, bi, bj, myThid )
                0106          CALL TIMEAVE_RESET( MXLtave,  1, bi, bj, myThid )
                0107          CALL TIMEAVE_RESET( SSTtave,  1, bi, bj, myThid )
                0108          CALL TIMEAVE_RESET( SSStave,  1, bi, bj, myThid )
                0109          CALL TIMEAVE_RESET( vSqtave,  1, bi, bj, myThid )
90578acae6 Jean*0110 #ifdef ALLOW_DIC
963aacc62a Jean*0111          CALL TIMEAVE_RESET( aCO2tave, 1, bi, bj, myThid )
                0112          CALL TIMEAVE_RESET( sWSpdtave,1, bi, bj, myThid )
                0113          CALL TIMEAVE_RESET( iceftave, 1, bi, bj, myThid )
                0114          CALL TIMEAVE_RESET( fCO2tave, 1, bi, bj, myThid )
90578acae6 Jean*0115 #endif
963aacc62a Jean*0116          CPL_timeAve(bi,bj) = 0.
69e21e3ef0 Jean*0117        ENDDO
                0118       ENDDO
                0119 #endif /* ALLOW_TIMEAVE */
                0120 
e596558d31 Jean*0121 #endif /* COMPONENT_MODULE */
69e21e3ef0 Jean*0122 
                0123       RETURN
                0124       END