Back to home page

darwin3

 
 

    


File indexing completed on 2025-10-27 12:20:54 UTC

view on githubraw file Latest commit c3be0435 on 2025-09-18 18:40:16 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
c3be04357d Jean*0056           gcmSST          (i,j,bi,bj) = 0. _d 0
9c9abe7120 Jean*0057 #ifdef ALLOW_GEOTHERMAL_FLUX
                0058           geothermalFlux  (i,j,bi,bj) = 0. _d 0
                0059 #endif
c3be04357d Jean*0060 C---  Customized code starts -----------------------------------------
2e7aec9951 dngo*0061 C     Extra mean heat flux field specific to this experiment
9c9abe7120 Jean*0062           Qnetm (i,j,bi,bj) = 0. _d 0
c3be04357d Jean*0063 C---  Customized code ends -------------------------------------------
9c9abe7120 Jean*0064 #ifndef EXCLUDE_FFIELDS_LOAD
                0065 C-    Time reccord loaded from file:
                0066           taux0           (i,j,bi,bj) = 0. _d 0
                0067           taux1           (i,j,bi,bj) = 0. _d 0
                0068           tauy0           (i,j,bi,bj) = 0. _d 0
                0069           tauy1           (i,j,bi,bj) = 0. _d 0
                0070           Qnet0           (i,j,bi,bj) = 0. _d 0
                0071           Qnet1           (i,j,bi,bj) = 0. _d 0
                0072           EmPmR0          (i,j,bi,bj) = 0. _d 0
                0073           EmPmR1          (i,j,bi,bj) = 0. _d 0
                0074           saltFlux0       (i,j,bi,bj) = 0. _d 0
                0075           saltFlux1       (i,j,bi,bj) = 0. _d 0
                0076           SST0            (i,j,bi,bj) = 0. _d 0
                0077           SST1            (i,j,bi,bj) = 0. _d 0
                0078           SSS0            (i,j,bi,bj) = 0. _d 0
                0079           SSS1            (i,j,bi,bj) = 0. _d 0
                0080 #ifdef SHORTWAVE_HEATING
                0081           Qsw0            (i,j,bi,bj) = 0. _d 0
                0082           Qsw1            (i,j,bi,bj) = 0. _d 0
                0083 #endif
                0084 #ifdef ALLOW_GEOTHERMAL_FLUX
                0085           geothFlux0      (i,j,bi,bj) = 0. _d 0
                0086           geothFlux1      (i,j,bi,bj) = 0. _d 0
                0087 #endif
                0088 #ifdef ATMOSPHERIC_LOADING
                0089           pLoad0          (i,j,bi,bj) = 0. _d 0
                0090           pLoad1          (i,j,bi,bj) = 0. _d 0
                0091 #endif
                0092 #endif /* EXCLUDE_FFIELDS_LOAD */
                0093          ENDDO
                0094         ENDDO
                0095 #ifndef EXCLUDE_FFIELDS_LOAD
                0096         loadedRec(bi,bj) = 0
                0097 #endif /* EXCLUDE_FFIELDS_LOAD */
                0098 
                0099 C-    3-D forcing fields
                0100         DO k=1,Nr
                0101 #ifdef ALLOW_ADDFLUID
                0102          DO j=1-OLy,sNy+OLy
                0103           DO i=1-OLx,sNx+OLx
                0104            addMass(i,j,k,bi,bj) = 0. _d 0
                0105           ENDDO
                0106          ENDDO
                0107 #endif /* ALLOW_ADDFLUID */
                0108 #ifdef ALLOW_FRICTION_HEATING
                0109          DO j=1-OLy,sNy+OLy
                0110           DO i=1-OLx,sNx+OLx
                0111            frictionHeating(i,j,k,bi,bj) = 0. _d 0
                0112           ENDDO
                0113          ENDDO
                0114 #endif /* ALLOW_FRICTION_HEATING */
                0115 #ifdef ALLOW_EDDYPSI
                0116          DO j=1-OLy,sNy+OLy
                0117           DO i=1-OLx,sNx+OLx
                0118            eddyPsiX  (i,j,k,bi,bj) = 0. _d 0
                0119            eddyPsiY  (i,j,k,bi,bj) = 0. _d 0
                0120            tauxEddy  (i,j,k,bi,bj) = 0. _d 0
                0121            tauyEddy  (i,j,k,bi,bj) = 0. _d 0
                0122            uEulerMean(i,j,k,bi,bj) = 0. _d 0
                0123            vEulerMean(i,j,k,bi,bj) = 0. _d 0
                0124           ENDDO
                0125          ENDDO
                0126 #endif /* ALLOW_EDDYPSI */
                0127         ENDDO
                0128 
                0129 C-    Intermediate surface forcing arrays
                0130         DO j=1-OLy,sNy+OLy
                0131          DO i=1-OLx,sNx+OLx
                0132           surfaceForcingU (i,j,bi,bj) = 0. _d 0
                0133           surfaceForcingV (i,j,bi,bj) = 0. _d 0
                0134           surfaceForcingT (i,j,bi,bj) = 0. _d 0
                0135           surfaceForcingS (i,j,bi,bj) = 0. _d 0
                0136           adjustColdSST_diag  (i,j,bi,bj) = 0. _d 0
                0137           lambdaThetaClimRelax(i,j,bi,bj) = 0. _d 0
                0138           lambdaSaltClimRelax (i,j,bi,bj) = 0. _d 0
2e7aec9951 dngo*0139 #ifdef ALLOW_BALANCE_FLUXES
                0140           weight2BalanceFlx(i,j,bi,bj) = 0. _d 0
                0141 #endif
9c9abe7120 Jean*0142           botDragU        (i,j,bi,bj) = 0. _d 0
                0143           botDragV        (i,j,bi,bj) = 0. _d 0
                0144          ENDDO
                0145         ENDDO
                0146 
                0147 C--   end bi,bj loops
                0148        ENDDO
                0149       ENDDO
                0150 
                0151       RETURN
                0152       END