/[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.39 by cnh, Mon Nov 7 18:26:02 2005 UTC revision 1.44 by jmc, Fri Apr 27 15:45:29 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 52  CEOP Line 51  CEOP
51            SST             (i,j,bi,bj) = 0. _d 0            SST             (i,j,bi,bj) = 0. _d 0
52            SSS             (i,j,bi,bj) = 0. _d 0            SSS             (i,j,bi,bj) = 0. _d 0
53            Qsw             (i,j,bi,bj) = 0. _d 0            Qsw             (i,j,bi,bj) = 0. _d 0
54  #ifdef ATMOSPHERIC_LOADING            pLoad           (i,j,bi,bj) = 0. _d 0
           pload           (i,j,bi,bj) = 0. _d 0  
55            sIceLoad        (i,j,bi,bj) = 0. _d 0            sIceLoad        (i,j,bi,bj) = 0. _d 0
 #endif  
56            surfaceForcingU(i,j,bi,bj) = 0. _d 0            surfaceForcingU(i,j,bi,bj) = 0. _d 0
57            surfaceForcingV(i,j,bi,bj) = 0. _d 0            surfaceForcingV(i,j,bi,bj) = 0. _d 0
58            surfaceForcingT(i,j,bi,bj) = 0. _d 0            surfaceForcingT(i,j,bi,bj) = 0. _d 0
59            surfaceForcingS(i,j,bi,bj) = 0. _d 0            surfaceForcingS(i,j,bi,bj) = 0. _d 0
60            surfaceForcingTice(i,j,bi,bj) = 0. _d 0            surfaceForcingTice(i,j,bi,bj) = 0. _d 0
61  #ifndef ALLOW_EXF  #ifndef EXCLUDE_FFIELDS_LOAD
62            taux0           (i,j,bi,bj) = 0. _d 0            taux0           (i,j,bi,bj) = 0. _d 0
63            taux1           (i,j,bi,bj) = 0. _d 0            taux1           (i,j,bi,bj) = 0. _d 0
64            tauy0           (i,j,bi,bj) = 0. _d 0            tauy0           (i,j,bi,bj) = 0. _d 0
# Line 76  CEOP Line 73  CEOP
73            SST1            (i,j,bi,bj) = 0. _d 0            SST1            (i,j,bi,bj) = 0. _d 0
74            SSS0            (i,j,bi,bj) = 0. _d 0            SSS0            (i,j,bi,bj) = 0. _d 0
75            SSS1            (i,j,bi,bj) = 0. _d 0            SSS1            (i,j,bi,bj) = 0. _d 0
76  #ifdef SHORTWAVE_HEATING            #ifdef SHORTWAVE_HEATING
77            Qsw0            (i,j,bi,bj) = 0. _d 0            Qsw0            (i,j,bi,bj) = 0. _d 0
78            Qsw1            (i,j,bi,bj) = 0. _d 0            Qsw1            (i,j,bi,bj) = 0. _d 0
79  #endif  #endif
80  #ifdef ATMOSPHERIC_LOADING  #ifdef ATMOSPHERIC_LOADING
81            pload0          (i,j,bi,bj) = 0. _d 0            pLoad0          (i,j,bi,bj) = 0. _d 0
82            pload1          (i,j,bi,bj) = 0. _d 0            pLoad1          (i,j,bi,bj) = 0. _d 0
 #endif  
83  #endif  #endif
84    #endif /* EXCLUDE_FFIELDS_LOAD */
85           ENDDO           ENDDO
86          ENDDO          ENDDO
87         ENDDO         ENDDO
88        ENDDO        ENDDO
89  C  
90        DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
91         DO bi = myBxLo(myThid), myBxHi(myThid)         DO bi = myBxLo(myThid), myBxHi(myThid)
92          DO J=1-Oly,sNy+Oly          DO j=1-Oly,sNy+Oly
93           DO I=1-Olx,sNx+Olx           DO i=1-Olx,sNx+Olx
94            IF ( doThetaClimRelax .AND.            IF ( doThetaClimRelax .AND.
95       &         abs(yC(i,j,bi,bj)).LE.latBandClimRelax ) THEN       &         ABS(yC(i,j,bi,bj)).LE.latBandClimRelax ) THEN
96             lambdaThetaClimRelax(I,J,bi,bj) = 1./tauThetaClimRelax             lambdaThetaClimRelax(i,j,bi,bj) = 1. _d 0/tauThetaClimRelax
97            ELSE            ELSE
98             lambdaThetaClimRelax(I,J,bi,bj) = 0.D0             lambdaThetaClimRelax(i,j,bi,bj) = 0. _d 0
99            ENDIF            ENDIF
100            IF ( doSaltClimRelax .AND.            IF ( doSaltClimRelax .AND.
101       &         abs(yC(i,j,bi,bj)).LE.latBandClimRelax ) THEN       &         ABS(yC(i,j,bi,bj)).LE.latBandClimRelax ) THEN
102             lambdaSaltClimRelax(I,J,bi,bj) = 1./tauSaltClimRelax             lambdaSaltClimRelax(i,j,bi,bj) = 1. _d 0/tauSaltClimRelax
103            ELSE            ELSE
104             lambdaSaltClimRelax(I,J,bi,bj) = 0.D0             lambdaSaltClimRelax(i,j,bi,bj) = 0. _d 0
105            ENDIF            ENDIF
106           ENDDO           ENDDO
107          ENDDO          ENDDO
108         ENDDO         ENDDO
109        ENDDO        ENDDO
110  C  
111    C-    every-one waits before master thread loads from file
112        _BARRIER        _BARRIER
113        _BEGIN_MASTER(myThid)  
114        IF ( zonalWindFile .NE. ' '  ) THEN        IF ( zonalWindFile .NE. ' '  ) THEN
115         CALL READ_FLD_XY_RS( zonalWindFile, ' ', fu, 0, myThid )         CALL READ_FLD_XY_RS( zonalWindFile, ' ', fu, 0, myThid )
116        ENDIF        ENDIF
# Line 137  C Line 135  C
135         CALL READ_FLD_XY_RS( saltClimFile, ' ', SSS, 0, myThid )         CALL READ_FLD_XY_RS( saltClimFile, ' ', SSS, 0, myThid )
136        ENDIF        ENDIF
137        IF ( lambdaThetaFile .NE. ' '  ) THEN        IF ( lambdaThetaFile .NE. ' '  ) THEN
138         CALL READ_FLD_XY_RS( lambdaThetaFile, ' ',         CALL READ_FLD_XY_RS( lambdaThetaFile, ' ',
139       &  lambdaThetaClimRelax, 0, myThid )       &  lambdaThetaClimRelax, 0, myThid )
140        ENDIF        ENDIF
141        IF ( lambdaSaltFile .NE. ' '  ) THEN        IF ( lambdaSaltFile .NE. ' '  ) THEN
142         CALL READ_FLD_XY_RS( lambdaSaltFile, ' ',         CALL READ_FLD_XY_RS( lambdaSaltFile, ' ',
143       &  lambdaSaltClimRelax, 0, myThid )       &  lambdaSaltClimRelax, 0, myThid )
144        ENDIF        ENDIF
145  #ifdef SHORTWAVE_HEATING  #ifdef SHORTWAVE_HEATING
# Line 149  C Line 147  C
147         CALL READ_FLD_XY_RS( surfQswFile, ' ', Qsw, 0, myThid )         CALL READ_FLD_XY_RS( surfQswFile, ' ', Qsw, 0, myThid )
148         IF ( surfQFile .NE. ' '  ) THEN         IF ( surfQFile .NE. ' '  ) THEN
149  C-     Qnet is now (after c54) the net Heat Flux (including SW)  C-     Qnet is now (after c54) the net Heat Flux (including SW)
150          DO bj = 1,nSy          _BARRIER
151           DO bi = 1,nSx          DO bj = myByLo(myThid), myByHi(myThid)
152             DO bi = myBxLo(myThid), myBxHi(myThid)
153            DO j=1-OLy,sNy+OLy            DO j=1-OLy,sNy+OLy
154             DO i=1-OLx,sNx+OLx             DO i=1-OLx,sNx+OLx
155              Qnet(i,j,bi,bj) = Qnet(i,j,bi,bj) + Qsw(i,j,bi,bj)              Qnet(i,j,bi,bj) = Qnet(i,j,bi,bj) + Qsw(i,j,bi,bj)
# Line 163  C-     Qnet is now (after c54) the net H Line 162  C-     Qnet is now (after c54) the net H
162  #endif  #endif
163  #ifdef ATMOSPHERIC_LOADING  #ifdef ATMOSPHERIC_LOADING
164        IF ( pLoadFile .NE. ' '  ) THEN        IF ( pLoadFile .NE. ' '  ) THEN
165         CALL READ_FLD_XY_RS( pLoadFile, ' ', pload, 0, myThid )         CALL READ_FLD_XY_RS( pLoadFile, ' ', pLoad, 0, myThid )
166        ENDIF        ENDIF
167  #endif  #endif
168        _END_MASTER(myThid)  
169  C        CALL EXCH_UV_XY_RS( fu,fv, .TRUE., myThid )
170        _EXCH_XY_R4(fu   , myThid )        CALL EXCH_XY_RS( Qnet , myThid )
171        _EXCH_XY_R4(fv   , myThid )        CALL EXCH_XY_RS( EmPmR, myThid )
172        _EXCH_XY_R4(Qnet , myThid )        CALL EXCH_XY_RS( saltFlux, myThid )
173        _EXCH_XY_R4(EmPmR, myThid )        CALL EXCH_XY_RS( SST  , myThid )
174        _EXCH_XY_R4( saltFlux, myThid )        CALL EXCH_XY_RS( SSS  , myThid )
175        _EXCH_XY_R4(SST  , myThid )        CALL EXCH_XY_RS( lambdaThetaClimRelax, myThid )
176        _EXCH_XY_R4(SSS  , myThid )        CALL EXCH_XY_RS( lambdaSaltClimRelax , myThid )
       _EXCH_XY_R4(lambdaThetaClimRelax , myThid )  
       _EXCH_XY_R4(lambdaSaltClimRelax , myThid )  
177  #ifdef SHORTWAVE_HEATING  #ifdef SHORTWAVE_HEATING
178        _EXCH_XY_R4(Qsw  , myThid )        CALL EXCH_XY_RS(Qsw  , myThid )
179  #endif  #endif
180  #ifdef ATMOSPHERIC_LOADING  #ifdef ATMOSPHERIC_LOADING
181        _EXCH_XY_R4(pload  , myThid )        CALL EXCH_XY_RS(pLoad  , myThid )
182  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)
183  #endif  #endif
   
184  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)
185  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)
186    

Legend:
Removed from v.1.39  
changed lines
  Added in v.1.44

  ViewVC Help
Powered by ViewVC 1.1.22