Back to home page

MITgcm

 
 

    


File indexing completed on 2022-04-25 05:09:44 UTC

view on githubraw file Latest commit 2e7aec99 on 2022-04-25 03:54:25 UTC
9c9abe7120 Jean*0001 #include "CPP_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C     !ROUTINE: INI_FFIELDS
                0005 C     !INTERFACE:
                0006       SUBROUTINE INI_FFIELDS( myThid )
                0007 
                0008 C     !DESCRIPTION: \bv
                0009 C     *==========================================================*
                0010 C     | SUBROUTINE INI_FFIELDS
                0011 C     | o Initialise to zero FFLIEDS.h arrays
                0012 C     *==========================================================*
                0013 C     | Sets all forcing fields to zero.
                0014 C     *==========================================================*
                0015 C     \ev
                0016 
                0017 C     !USES:
                0018       IMPLICIT NONE
                0019 C     === Global variables ===
                0020 #include "SIZE.h"
                0021 #include "EEPARAMS.h"
                0022 #include "PARAMS.h"
                0023 #include "FFIELDS.h"
                0024 
                0025 C     !INPUT/OUTPUT PARAMETERS:
                0026 C     == Routine arguments ==
                0027 C     myThid  :: my Thread Id number
                0028       INTEGER myThid
                0029 
                0030 C     !LOCAL VARIABLES:
                0031 C     == Local variables ==
                0032 C     bi,bj   :: Tile indices
                0033 C     i, j, k :: Loop counters
                0034       INTEGER bi, bj
                0035       INTEGER i, j, k
                0036 CEOP
                0037 
                0038 C--   Initialise all arrays in common blocks
                0039       DO bj = myByLo(myThid), myByHi(myThid)
                0040        DO bi = myBxLo(myThid), myBxHi(myThid)
                0041 
                0042 C-    2-D forcing fields
                0043         DO j=1-OLy,sNy+OLy
                0044          DO i=1-OLx,sNx+OLx
                0045           fu              (i,j,bi,bj) = 0. _d 0
                0046           fv              (i,j,bi,bj) = 0. _d 0
                0047           Qnet            (i,j,bi,bj) = 0. _d 0
                0048           Qsw             (i,j,bi,bj) = 0. _d 0
                0049           EmPmR           (i,j,bi,bj) = 0. _d 0
                0050           saltFlux        (i,j,bi,bj) = 0. _d 0
                0051           SST             (i,j,bi,bj) = 0. _d 0
                0052           SSS             (i,j,bi,bj) = 0. _d 0
                0053           phiTide2d       (i,j,bi,bj) = 0. _d 0
                0054           pLoad           (i,j,bi,bj) = 0. _d 0
                0055           sIceLoad        (i,j,bi,bj) = 0. _d 0
                0056 #ifdef ALLOW_GEOTHERMAL_FLUX
                0057           geothermalFlux  (i,j,bi,bj) = 0. _d 0
                0058 #endif
2e7aec9951 dngo*0059 C     Extra mean heat flux field specific to this experiment
9c9abe7120 Jean*0060           Qnetm (i,j,bi,bj) = 0. _d 0
                0061 #ifndef EXCLUDE_FFIELDS_LOAD
                0062 C-    Time reccord loaded from file:
                0063           taux0           (i,j,bi,bj) = 0. _d 0
                0064           taux1           (i,j,bi,bj) = 0. _d 0
                0065           tauy0           (i,j,bi,bj) = 0. _d 0
                0066           tauy1           (i,j,bi,bj) = 0. _d 0
                0067           Qnet0           (i,j,bi,bj) = 0. _d 0
                0068           Qnet1           (i,j,bi,bj) = 0. _d 0
                0069           EmPmR0          (i,j,bi,bj) = 0. _d 0
                0070           EmPmR1          (i,j,bi,bj) = 0. _d 0
                0071           saltFlux0       (i,j,bi,bj) = 0. _d 0
                0072           saltFlux1       (i,j,bi,bj) = 0. _d 0
                0073           SST0            (i,j,bi,bj) = 0. _d 0
                0074           SST1            (i,j,bi,bj) = 0. _d 0
                0075           SSS0            (i,j,bi,bj) = 0. _d 0
                0076           SSS1            (i,j,bi,bj) = 0. _d 0
                0077 #ifdef SHORTWAVE_HEATING
                0078           Qsw0            (i,j,bi,bj) = 0. _d 0
                0079           Qsw1            (i,j,bi,bj) = 0. _d 0
                0080 #endif
                0081 #ifdef ALLOW_GEOTHERMAL_FLUX
                0082           geothFlux0      (i,j,bi,bj) = 0. _d 0
                0083           geothFlux1      (i,j,bi,bj) = 0. _d 0
                0084 #endif
                0085 #ifdef ATMOSPHERIC_LOADING
                0086           pLoad0          (i,j,bi,bj) = 0. _d 0
                0087           pLoad1          (i,j,bi,bj) = 0. _d 0
                0088 #endif
                0089 #endif /* EXCLUDE_FFIELDS_LOAD */
                0090          ENDDO
                0091         ENDDO
                0092 #ifndef EXCLUDE_FFIELDS_LOAD
                0093         loadedRec(bi,bj) = 0
                0094 #endif /* EXCLUDE_FFIELDS_LOAD */
                0095 
                0096 C-    3-D forcing fields
                0097         DO k=1,Nr
                0098 #ifdef ALLOW_ADDFLUID
                0099          DO j=1-OLy,sNy+OLy
                0100           DO i=1-OLx,sNx+OLx
                0101            addMass(i,j,k,bi,bj) = 0. _d 0
                0102           ENDDO
                0103          ENDDO
                0104 #endif /* ALLOW_ADDFLUID */
                0105 #ifdef ALLOW_FRICTION_HEATING
                0106          DO j=1-OLy,sNy+OLy
                0107           DO i=1-OLx,sNx+OLx
                0108            frictionHeating(i,j,k,bi,bj) = 0. _d 0
                0109           ENDDO
                0110          ENDDO
                0111 #endif /* ALLOW_FRICTION_HEATING */
                0112 #ifdef ALLOW_EDDYPSI
                0113          DO j=1-OLy,sNy+OLy
                0114           DO i=1-OLx,sNx+OLx
                0115            eddyPsiX  (i,j,k,bi,bj) = 0. _d 0
                0116            eddyPsiY  (i,j,k,bi,bj) = 0. _d 0
                0117            tauxEddy  (i,j,k,bi,bj) = 0. _d 0
                0118            tauyEddy  (i,j,k,bi,bj) = 0. _d 0
                0119            uEulerMean(i,j,k,bi,bj) = 0. _d 0
                0120            vEulerMean(i,j,k,bi,bj) = 0. _d 0
                0121           ENDDO
                0122          ENDDO
                0123 #endif /* ALLOW_EDDYPSI */
                0124         ENDDO
                0125 
                0126 C-    Intermediate surface forcing arrays
                0127         DO j=1-OLy,sNy+OLy
                0128          DO i=1-OLx,sNx+OLx
                0129           surfaceForcingU (i,j,bi,bj) = 0. _d 0
                0130           surfaceForcingV (i,j,bi,bj) = 0. _d 0
                0131           surfaceForcingT (i,j,bi,bj) = 0. _d 0
                0132           surfaceForcingS (i,j,bi,bj) = 0. _d 0
                0133           adjustColdSST_diag  (i,j,bi,bj) = 0. _d 0
                0134           lambdaThetaClimRelax(i,j,bi,bj) = 0. _d 0
                0135           lambdaSaltClimRelax (i,j,bi,bj) = 0. _d 0
2e7aec9951 dngo*0136 #ifdef ALLOW_BALANCE_FLUXES
                0137           weight2BalanceFlx(i,j,bi,bj) = 0. _d 0
                0138 #endif
9c9abe7120 Jean*0139           botDragU        (i,j,bi,bj) = 0. _d 0
                0140           botDragV        (i,j,bi,bj) = 0. _d 0
                0141          ENDDO
                0142         ENDDO
                0143 
                0144 C--   end bi,bj loops
                0145        ENDDO
                0146       ENDDO
                0147 
                0148       RETURN
                0149       END