Back to home page

MITgcm

 
 

    


File indexing completed on 2025-02-02 06:10:37 UTC

view on githubraw file Latest commit 701e10a9 on 2025-02-01 19:15:20 UTC
d067a44b7e 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
614bfb3d2a Jean*0053           phiTide2d       (i,j,bi,bj) = 0. _d 0
d067a44b7e Jean*0054           pLoad           (i,j,bi,bj) = 0. _d 0
                0055           sIceLoad        (i,j,bi,bj) = 0. _d 0
701e10a905 Mart*0056           gcmSST          (i,j,bi,bj) = 0. _d 0
d067a44b7e Jean*0057 #ifdef ALLOW_GEOTHERMAL_FLUX
                0058           geothermalFlux  (i,j,bi,bj) = 0. _d 0
                0059 #endif
                0060 #ifndef EXCLUDE_FFIELDS_LOAD
                0061 C-    Time reccord loaded from file:
                0062           taux0           (i,j,bi,bj) = 0. _d 0
                0063           taux1           (i,j,bi,bj) = 0. _d 0
                0064           tauy0           (i,j,bi,bj) = 0. _d 0
                0065           tauy1           (i,j,bi,bj) = 0. _d 0
                0066           Qnet0           (i,j,bi,bj) = 0. _d 0
                0067           Qnet1           (i,j,bi,bj) = 0. _d 0
                0068           EmPmR0          (i,j,bi,bj) = 0. _d 0
                0069           EmPmR1          (i,j,bi,bj) = 0. _d 0
                0070           saltFlux0       (i,j,bi,bj) = 0. _d 0
                0071           saltFlux1       (i,j,bi,bj) = 0. _d 0
                0072           SST0            (i,j,bi,bj) = 0. _d 0
                0073           SST1            (i,j,bi,bj) = 0. _d 0
                0074           SSS0            (i,j,bi,bj) = 0. _d 0
                0075           SSS1            (i,j,bi,bj) = 0. _d 0
                0076 #ifdef SHORTWAVE_HEATING
                0077           Qsw0            (i,j,bi,bj) = 0. _d 0
                0078           Qsw1            (i,j,bi,bj) = 0. _d 0
                0079 #endif
8d218e2b5b suya*0080 #ifdef ALLOW_GEOTHERMAL_FLUX
566c69081d Jean*0081           geothFlux0      (i,j,bi,bj) = 0. _d 0
                0082           geothFlux1      (i,j,bi,bj) = 0. _d 0
8d218e2b5b suya*0083 #endif
d067a44b7e Jean*0084 #ifdef ATMOSPHERIC_LOADING
                0085           pLoad0          (i,j,bi,bj) = 0. _d 0
                0086           pLoad1          (i,j,bi,bj) = 0. _d 0
                0087 #endif
                0088 #endif /* EXCLUDE_FFIELDS_LOAD */
                0089          ENDDO
                0090         ENDDO
                0091 #ifndef EXCLUDE_FFIELDS_LOAD
                0092         loadedRec(bi,bj) = 0
                0093 #endif /* EXCLUDE_FFIELDS_LOAD */
                0094 
                0095 C-    3-D forcing fields
                0096         DO k=1,Nr
                0097 #ifdef ALLOW_ADDFLUID
                0098          DO j=1-OLy,sNy+OLy
                0099           DO i=1-OLx,sNx+OLx
                0100            addMass(i,j,k,bi,bj) = 0. _d 0
                0101           ENDDO
                0102          ENDDO
                0103 #endif /* ALLOW_ADDFLUID */
                0104 #ifdef ALLOW_FRICTION_HEATING
                0105          DO j=1-OLy,sNy+OLy
                0106           DO i=1-OLx,sNx+OLx
                0107            frictionHeating(i,j,k,bi,bj) = 0. _d 0
                0108           ENDDO
                0109          ENDDO
                0110 #endif /* ALLOW_FRICTION_HEATING */
                0111 #ifdef ALLOW_EDDYPSI
                0112          DO j=1-OLy,sNy+OLy
                0113           DO i=1-OLx,sNx+OLx
fd6656ef94 Jean*0114            eddyPsiX  (i,j,k,bi,bj) = 0. _d 0
                0115            eddyPsiY  (i,j,k,bi,bj) = 0. _d 0
                0116            tauxEddy  (i,j,k,bi,bj) = 0. _d 0
                0117            tauyEddy  (i,j,k,bi,bj) = 0. _d 0
                0118            uEulerMean(i,j,k,bi,bj) = 0. _d 0
                0119            vEulerMean(i,j,k,bi,bj) = 0. _d 0
d067a44b7e Jean*0120           ENDDO
                0121          ENDDO
                0122 #endif /* ALLOW_EDDYPSI */
                0123         ENDDO
                0124 
                0125 C-    Intermediate surface forcing arrays
                0126         DO j=1-OLy,sNy+OLy
                0127          DO i=1-OLx,sNx+OLx
                0128           surfaceForcingU (i,j,bi,bj) = 0. _d 0
                0129           surfaceForcingV (i,j,bi,bj) = 0. _d 0
                0130           surfaceForcingT (i,j,bi,bj) = 0. _d 0
                0131           surfaceForcingS (i,j,bi,bj) = 0. _d 0
538310b333 Jean*0132           adjustColdSST_diag  (i,j,bi,bj) = 0. _d 0
d067a44b7e Jean*0133           lambdaThetaClimRelax(i,j,bi,bj) = 0. _d 0
                0134           lambdaSaltClimRelax (i,j,bi,bj) = 0. _d 0
7e00d7e8f9 Jean*0135 #ifdef ALLOW_BALANCE_FLUXES
                0136           weight2BalanceFlx(i,j,bi,bj) = 0. _d 0
                0137 #endif
df999eca2c Jean*0138           botDragU        (i,j,bi,bj) = 0. _d 0
                0139           botDragV        (i,j,bi,bj) = 0. _d 0
d067a44b7e Jean*0140          ENDDO
                0141         ENDDO
                0142 
                0143 C--   end bi,bj loops
                0144        ENDDO
                0145       ENDDO
                0146 
                0147       RETURN
                0148       END