/[MITgcm]/MITgcm/model/src/ini_forcing.F
ViewVC logotype

Diff of /MITgcm/model/src/ini_forcing.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.32 by jmc, Tue Apr 6 00:23:08 2004 UTC revision 1.47 by jmc, Mon Oct 15 15:28:24 2007 UTC
# Line 11  C     !INTERFACE: Line 11  C     !INTERFACE:
11    
12  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
13  C     *==========================================================*  C     *==========================================================*
14  C     | SUBROUTINE INI_FORCING                                      C     | SUBROUTINE INI_FORCING
15  C     | o Set model initial forcing fields.                        C     | o Set model initial forcing fields.
16  C     *==========================================================*  C     *==========================================================*
17  C     \ev  C     \ev
18    
# Line 33  C     myThid -  Number of this instance Line 33  C     myThid -  Number of this instance
33  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
34  C     == Local variables ==  C     == Local variables ==
35  C     bi,bj  - Loop counters  C     bi,bj  - Loop counters
36  C     I,J  C     i, j
37        INTEGER bi, bj        INTEGER bi, bj
38        INTEGER  I,  J        INTEGER  i, j
39  CEOP  CEOP
40    
41        _BARRIER  C-    Initialise all arrays in common blocks
   
42        DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
43         DO bi = myBxLo(myThid), myBxHi(myThid)         DO bi = myBxLo(myThid), myBxHi(myThid)
44          DO j=1-OLy,sNy+OLy          DO j=1-OLy,sNy+OLy
# Line 49  CEOP Line 48  CEOP
48            Qnet            (i,j,bi,bj) = 0. _d 0            Qnet            (i,j,bi,bj) = 0. _d 0
49            EmPmR           (i,j,bi,bj) = 0. _d 0            EmPmR           (i,j,bi,bj) = 0. _d 0
50            saltFlux        (i,j,bi,bj) = 0. _d 0            saltFlux        (i,j,bi,bj) = 0. _d 0
51    #ifdef ALLOW_SALT_PLUME
52              saltPlumeFlux   (i,j,bi,bj) = 0. _d 0
53    #endif /* ALLOW_SALT_PLUME */
54            SST             (i,j,bi,bj) = 0. _d 0            SST             (i,j,bi,bj) = 0. _d 0
55            SSS             (i,j,bi,bj) = 0. _d 0            SSS             (i,j,bi,bj) = 0. _d 0
56            Qsw             (i,j,bi,bj) = 0. _d 0            Qsw             (i,j,bi,bj) = 0. _d 0
57  #ifdef ATMOSPHERIC_LOADING            pLoad           (i,j,bi,bj) = 0. _d 0
58            pload           (i,j,bi,bj) = 0. _d 0            sIceLoad        (i,j,bi,bj) = 0. _d 0
59  #endif            surfaceForcingU(i,j,bi,bj) = 0. _d 0
60            surfaceTendencyU(i,j,bi,bj) = 0. _d 0            surfaceForcingV(i,j,bi,bj) = 0. _d 0
61            surfaceTendencyV(i,j,bi,bj) = 0. _d 0            surfaceForcingT(i,j,bi,bj) = 0. _d 0
62            surfaceTendencyT(i,j,bi,bj) = 0. _d 0            surfaceForcingS(i,j,bi,bj) = 0. _d 0
63            surfaceTendencyS(i,j,bi,bj) = 0. _d 0            surfaceForcingTice(i,j,bi,bj) = 0. _d 0
64            surfaceTendencyTice(i,j,bi,bj) = 0. _d 0  #ifndef EXCLUDE_FFIELDS_LOAD
 #ifndef ALLOW_EXF  
65            taux0           (i,j,bi,bj) = 0. _d 0            taux0           (i,j,bi,bj) = 0. _d 0
66            taux1           (i,j,bi,bj) = 0. _d 0            taux1           (i,j,bi,bj) = 0. _d 0
67            tauy0           (i,j,bi,bj) = 0. _d 0            tauy0           (i,j,bi,bj) = 0. _d 0
# Line 69  CEOP Line 70  CEOP
70            Qnet1           (i,j,bi,bj) = 0. _d 0            Qnet1           (i,j,bi,bj) = 0. _d 0
71            EmPmR0          (i,j,bi,bj) = 0. _d 0            EmPmR0          (i,j,bi,bj) = 0. _d 0
72            EmPmR1          (i,j,bi,bj) = 0. _d 0            EmPmR1          (i,j,bi,bj) = 0. _d 0
73              saltFlux0       (i,j,bi,bj) = 0. _d 0
74              saltFlux1       (i,j,bi,bj) = 0. _d 0
75            SST0            (i,j,bi,bj) = 0. _d 0            SST0            (i,j,bi,bj) = 0. _d 0
76            SST1            (i,j,bi,bj) = 0. _d 0            SST1            (i,j,bi,bj) = 0. _d 0
77            SSS0            (i,j,bi,bj) = 0. _d 0            SSS0            (i,j,bi,bj) = 0. _d 0
78            SSS1            (i,j,bi,bj) = 0. _d 0            SSS1            (i,j,bi,bj) = 0. _d 0
79  #ifdef SHORTWAVE_HEATING            #ifdef SHORTWAVE_HEATING
80            Qsw0            (i,j,bi,bj) = 0. _d 0            Qsw0            (i,j,bi,bj) = 0. _d 0
81            Qsw1            (i,j,bi,bj) = 0. _d 0            Qsw1            (i,j,bi,bj) = 0. _d 0
82  #endif  #endif
83  #ifdef ATMOSPHERIC_LOADING  #ifdef ATMOSPHERIC_LOADING
84            pload0          (i,j,bi,bj) = 0. _d 0            pLoad0          (i,j,bi,bj) = 0. _d 0
85            pload1          (i,j,bi,bj) = 0. _d 0            pLoad1          (i,j,bi,bj) = 0. _d 0
 #endif  
86  #endif  #endif
87    #endif /* EXCLUDE_FFIELDS_LOAD */
88             ENDDO
89            ENDDO
90           ENDDO
91          ENDDO
92    
93          DO bj = myByLo(myThid), myByHi(myThid)
94           DO bi = myBxLo(myThid), myBxHi(myThid)
95            DO j=1-Oly,sNy+Oly
96             DO i=1-Olx,sNx+Olx
97              IF ( doThetaClimRelax .AND.
98         &         ABS(yC(i,j,bi,bj)).LE.latBandClimRelax ) THEN
99               lambdaThetaClimRelax(i,j,bi,bj) = 1. _d 0/tauThetaClimRelax
100              ELSE
101               lambdaThetaClimRelax(i,j,bi,bj) = 0. _d 0
102              ENDIF
103              IF ( doSaltClimRelax .AND.
104         &         ABS(yC(i,j,bi,bj)).LE.latBandClimRelax ) THEN
105               lambdaSaltClimRelax(i,j,bi,bj) = 1. _d 0/tauSaltClimRelax
106              ELSE
107               lambdaSaltClimRelax(i,j,bi,bj) = 0. _d 0
108              ENDIF
109           ENDDO           ENDDO
110          ENDDO          ENDDO
111         ENDDO         ENDDO
112        ENDDO        ENDDO
113  C  
114        _BEGIN_MASTER(myThid)  C-    every-one waits before master thread loads from file
115          _BARRIER
116    
117        IF ( zonalWindFile .NE. ' '  ) THEN        IF ( zonalWindFile .NE. ' '  ) THEN
118         CALL READ_FLD_XY_RS( zonalWindFile, ' ', fu, 0, myThid )         CALL READ_FLD_XY_RS( zonalWindFile, ' ', fu, 0, myThid )
119        ENDIF        ENDIF
# Line 96  C Line 122  C
122        ENDIF        ENDIF
123        IF ( surfQFile .NE. ' '  ) THEN        IF ( surfQFile .NE. ' '  ) THEN
124         CALL READ_FLD_XY_RS( surfQFile, ' ', Qnet, 0, myThid )         CALL READ_FLD_XY_RS( surfQFile, ' ', Qnet, 0, myThid )
125          ELSEIF ( surfQnetFile .NE. ' '  ) THEN
126           CALL READ_FLD_XY_RS( surfQnetFile, ' ', Qnet, 0, myThid )
127        ENDIF        ENDIF
128        IF ( EmPmRfile .NE. ' '  ) THEN        IF ( EmPmRfile .NE. ' '  ) THEN
129         CALL READ_FLD_XY_RS( EmPmRfile, ' ', EmPmR, 0, myThid )         CALL READ_FLD_XY_RS( EmPmRfile, ' ', EmPmR, 0, myThid )
130    c      IF ( convertEmP2rUnit.EQ.mass2rUnit ) THEN
131    C-     EmPmR is now (after c59h) expressed in kg/m2/s (fresh water mass flux)
132            _BARRIER
133            DO bj = myByLo(myThid), myByHi(myThid)
134             DO bi = myBxLo(myThid), myBxHi(myThid)
135              DO j=1-Oly,sNy+Oly
136               DO i=1-Olx,sNx+Olx
137                EmPmR(i,j,bi,bj) = EmPmR(i,j,bi,bj)*rhoConstFresh
138               ENDDO
139              ENDDO
140             ENDDO
141            ENDDO
142    c      ENDIF
143          ENDIF
144          IF ( saltFluxFile .NE. ' '  ) THEN
145           CALL READ_FLD_XY_RS( saltFluxFile, ' ', saltFlux, 0, myThid )
146        ENDIF        ENDIF
147        IF ( thetaClimFile .NE. ' '  ) THEN        IF ( thetaClimFile .NE. ' '  ) THEN
148         CALL READ_FLD_XY_RS( thetaClimFile, ' ', SST, 0, myThid )         CALL READ_FLD_XY_RS( thetaClimFile, ' ', SST, 0, myThid )
# Line 106  C Line 150  C
150        IF ( saltClimFile .NE. ' '  ) THEN        IF ( saltClimFile .NE. ' '  ) THEN
151         CALL READ_FLD_XY_RS( saltClimFile, ' ', SSS, 0, myThid )         CALL READ_FLD_XY_RS( saltClimFile, ' ', SSS, 0, myThid )
152        ENDIF        ENDIF
153          IF ( lambdaThetaFile .NE. ' '  ) THEN
154           CALL READ_FLD_XY_RS( lambdaThetaFile, ' ',
155         &  lambdaThetaClimRelax, 0, myThid )
156          ENDIF
157          IF ( lambdaSaltFile .NE. ' '  ) THEN
158           CALL READ_FLD_XY_RS( lambdaSaltFile, ' ',
159         &  lambdaSaltClimRelax, 0, myThid )
160          ENDIF
161  #ifdef SHORTWAVE_HEATING  #ifdef SHORTWAVE_HEATING
162        IF ( surfQswFile .NE. ' '  ) THEN        IF ( surfQswFile .NE. ' '  ) THEN
163         CALL READ_FLD_XY_RS( surfQswFile, ' ', Qsw, 0, myThid )         CALL READ_FLD_XY_RS( surfQswFile, ' ', Qsw, 0, myThid )
164           IF ( surfQFile .NE. ' '  ) THEN
165    C-     Qnet is now (after c54) the net Heat Flux (including SW)
166            _BARRIER
167            DO bj = myByLo(myThid), myByHi(myThid)
168             DO bi = myBxLo(myThid), myBxHi(myThid)
169              DO j=1-OLy,sNy+OLy
170               DO i=1-OLx,sNx+OLx
171                Qnet(i,j,bi,bj) = Qnet(i,j,bi,bj) + Qsw(i,j,bi,bj)
172               ENDDO
173              ENDDO
174             ENDDO
175            ENDDO
176           ENDIF
177        ENDIF        ENDIF
178  #endif  #endif
179  #ifdef ATMOSPHERIC_LOADING  #ifdef ATMOSPHERIC_LOADING
180        IF ( pLoadFile .NE. ' '  ) THEN        IF ( pLoadFile .NE. ' '  ) THEN
181         CALL READ_FLD_XY_RS( pLoadFile, ' ', pload, 0, myThid )         CALL READ_FLD_XY_RS( pLoadFile, ' ', pLoad, 0, myThid )
182        ENDIF        ENDIF
183  #endif  #endif
184        _END_MASTER(myThid)  
185  C        CALL EXCH_UV_XY_RS( fu,fv, .TRUE., myThid )
186        _EXCH_XY_R4(fu   , myThid )        CALL EXCH_XY_RS( Qnet , myThid )
187        _EXCH_XY_R4(fv   , myThid )        CALL EXCH_XY_RS( EmPmR, myThid )
188        _EXCH_XY_R4(Qnet , myThid )        CALL EXCH_XY_RS( saltFlux, myThid )
189        _EXCH_XY_R4(EmPmR, myThid )  #ifdef ALLOW_SALT_PLUME
190        _EXCH_XY_R4(SST  , myThid )        CALL EXCH_XY_RS( saltPlumeFlux, myThid )
191        _EXCH_XY_R4(SSS  , myThid )  #endif /* ALLOW_SALT_PLUME */
192          CALL EXCH_XY_RS( SST  , myThid )
193          CALL EXCH_XY_RS( SSS  , myThid )
194          CALL EXCH_XY_RS( lambdaThetaClimRelax, myThid )
195          CALL EXCH_XY_RS( lambdaSaltClimRelax , myThid )
196  #ifdef SHORTWAVE_HEATING  #ifdef SHORTWAVE_HEATING
197        _EXCH_XY_R4(Qsw  , myThid )        CALL EXCH_XY_RS(Qsw  , myThid )
198  #endif  #endif
199  #ifdef ATMOSPHERIC_LOADING  #ifdef ATMOSPHERIC_LOADING
200        _EXCH_XY_R4(pload  , myThid )        CALL EXCH_XY_RS(pLoad  , myThid )
201  C     CALL PLOT_FIELD_XYRS( pload, 'S/R INI_FORCING pload',1,myThid)  C     CALL PLOT_FIELD_XYRS( pLoad, 'S/R INI_FORCING pLoad',1,myThid)
202  #endif  #endif
   
203  C     CALL PLOT_FIELD_XYRS( fu, 'S/R INI_FORCING FU',1,myThid)  C     CALL PLOT_FIELD_XYRS( fu, 'S/R INI_FORCING FU',1,myThid)
204  C     CALL PLOT_FIELD_XYRS( fv, 'S/R INI_FORCING FV',1,myThid)  C     CALL PLOT_FIELD_XYRS( fv, 'S/R INI_FORCING FV',1,myThid)
205    

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.47

  ViewVC Help
Powered by ViewVC 1.1.22