/[MITgcm]/MITgcm/pkg/cheapaml/cheapaml_fields_load.F
ViewVC logotype

Diff of /MITgcm/pkg/cheapaml/cheapaml_fields_load.F

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

revision 1.7 by jmc, Sun Feb 6 00:18:05 2011 UTC revision 1.9 by wienders, Thu Mar 3 17:52:10 2011 UTC
# Line 3  C $Name$ Line 3  C $Name$
3    
4  #include "CHEAPAML_OPTIONS.h"  #include "CHEAPAML_OPTIONS.h"
5    
6    
7  C     !ROUTINE: CHEAPAML_FIELDS_LOAD  C     !ROUTINE: CHEAPAML_FIELDS_LOAD
8  C     !INTERFACE:  C     !INTERFACE:
9        SUBROUTINE CHEAPAML_FIELDS_LOAD( myTime, myIter, myThid )        SUBROUTINE CHEAPAML_FIELDS_LOAD( myTime, myIter, myThid )
# Line 21  C     === Global variables === Line 22  C     === Global variables ===
22  c #include "GRID.h"  c #include "GRID.h"
23  c #include "DYNVARS.h"  c #include "DYNVARS.h"
24  C #include "BULKF.h"  C #include "BULKF.h"
25  c #ifdef ALLOW_THSICE  c#ifdef ALLOW_THSICE
26  c #include "THSICE_VARS.h"  c#include "THSICE_VARS.h"
27  c #endif  c#endif
28  #include "CHEAPAML.h"  #include "CHEAPAML.h"
29    
30  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
# Line 50  C     qrair[01]  :: Relaxation specific Line 51  C     qrair[01]  :: Relaxation specific
51  C     solar[01]  :: short wave flux  C     solar[01]  :: short wave flux
52  C     uwind[01]  :: zonal wind  C     uwind[01]  :: zonal wind
53  C     vwind[01]  :: meridional wind  C     vwind[01]  :: meridional wind
54    C     CheaptracerR[01] :: Relaxation profile for passive tracer      
55  C     aWght, bWght :: Interpolation weights  C     aWght, bWght :: Interpolation weights
56    
57        COMMON /BULKFFIELDS/        COMMON /BULKFFIELDS/
# Line 62  C     aWght, bWght :: Interpolation weig Line 64  C     aWght, bWght :: Interpolation weig
64       &         vstress0, vstress1,       &         vstress0, vstress1,
65       &         wavesh0,  wavesh1,       &         wavesh0,  wavesh1,
66       &         wavesp0,  wavesp1,       &         wavesp0,  wavesp1,
67       &         rair0,    rair1       &         rair0,    rair1,
68         &         CheaptracerR0, CheaptracerR1
69          
70    
71    
72        _RL  trair0    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL  trair0    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
73        _RL  trair1    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL  trair1    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
# Line 84  C     aWght, bWght :: Interpolation weig Line 89  C     aWght, bWght :: Interpolation weig
89        _RL  wavesp1  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL  wavesp1  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
90        _RL  rair0  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL  rair0  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
91        _RL  rair1  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL  rair1  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
92          _RL  CheaptracerR0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
93          _RL  CheaptracerR1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
94    
95        INTEGER bi,bj,i,j,intime0,intime1          INTEGER bi,bj,i,j,intime0,intime1
96        INTEGER iG,jG          INTEGER iG,jG
97        _RL aWght,bWght,rdt,u          _RL aWght,bWght,rdt,u
98        _RL ssq0,ssq1,ssq2,ssqa          _RL ssq0,ssq1,ssq2,ssqa
99  c xsolph - phase of year, assuming time zero is mid winter  c xsolph - phase of year, assuming time zero is mid winter
100  c xinxx - cos ( xsolph )  c xinxx - cos ( xsolph )
101        _RL xsolph,xinxx          _RL xsolph,xinxx
102        INTEGER nForcingPeriods,Imytm,Ifprd,Ifcyc,Iftm          INTEGER nForcingPeriods,Imytm,Ifprd,Ifcyc,Iftm
103  c coefficients used to compute saturation specific humidity  c coefficients used to compute saturation specific humidity
104        DATA   ssq0,           ssq1,           ssq2          DATA   ssq0,           ssq1,           ssq2
105       &     / 3.797915 _d 0 , 7.93252 _d -6 , 2.166847 _d -3 /       &     / 3.797915 _d 0 , 7.93252 _d -6 , 2.166847 _d -3 /
106    
107        IF ( periodicExternalForcing ) THEN        IF ( periodicExternalForcing_cheap ) THEN
108    
109    
110  c the objective here is to give cheapaml a default periodic forcing  c the objective here is to give cheapaml a default periodic forcing
111  c consisting only of annually varying solar forcing, and thus Trelaxation  c consisting only of annually varying solar forcing, and thus Trelaxation
# Line 106  c keys off of solardata.  if a solar dat Line 114  c keys off of solardata.  if a solar dat
114  c assume there are files to be read and interpolated between, as is standard  c assume there are files to be read and interpolated between, as is standard
115  c for the MITGCM.  c for the MITGCM.
116    
117         IF ( SolarFile .EQ. ' '  ) THEN        IF ( SolarFile .EQ. ' '  ) THEN
118          IF (useStressOption)then        IF (useStressOption)then
119           write(*,*)' stress option is turned on.  this is not',          write(*,*)' stress option is turned on.  this is not
120       &   'consistent with the default time dependent forcing option'       & consistent with the default time dependent forcing option'
121           STOP 'ABNORMAL END: S/R CHEAPAML_FIELDS_LOAD'          stop
122          ENDIF          ENDIF
123          if ( myIter .EQ. nIter0 )then           if ( myIter .EQ. nIter0 )then
124           WRITE(*,*)           WRITE(*,*)
125       &   'S/R  Assuming Standard Annually Varying Solar Forcing'       &  'S/R  Assuming Standard Annually Varying Solar Forcing'
126          endif           endif
127          xsolph=myTime*2.d0*3.14159 _d 0/365. _d 0/86400. _d 0           xsolph=myTime*2.d0*3.14159 _d 0/365. _d 0/86400. _d 0
128          xinxx=cos(xsolph+xphaseinit+3.14159 _d 0)           xinxx=cos(xsolph+xphaseinit+3.14159 _d 0)
129          DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
130           DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
131            DO j=1,sNy             DO j=1,sNy
132             DO i=1,sNx              DO i=1,sNx
133              jG = myYGlobalLo-1+(bj-1)*sNy+j                    jG = myYGlobalLo-1+(bj-1)*sNy+j
134              local=225.d0+dsolms*xinxx-float((jg-1))/float((ny-1))*              local=225.d0+dsolms*xinxx-float((jg-1))/float((ny-1))*
135       &        (37.5d0-dsolmn*xinxx)       &        (37.5d0-dsolmn*xinxx)
136              Solar(i,j,bi,bj) = local                    Solar(i,j,bi,bj) = local
137                ENDDO
138             ENDDO             ENDDO
139            ENDDO            ENDDO
140           ENDDO           ENDDO
141          ENDDO           _EXCH_XY_RL(solar, mythid)
         _EXCH_XY_RL(solar, myThid)  
142  c relaxation temperature in radiative equilibrium  c relaxation temperature in radiative equilibrium
143          DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
144           DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
145            DO j=1,sNy             DO j=1,sNy
146             DO i=1,sNx              DO i=1,sNx
147              jG = myYGlobalLo-1+(bj-1)*sNy+j            jG = myYGlobalLo-1+(bj-1)*sNy+j
148              local=solar(i,j,bi,bj)            local=solar(i,j,bi,bj)
149              local=(2.d0*local/stefan)**(0.25d0)-Celcius2K            local=(2.d0*local/stefan)**(0.25d0)-Celsius2K
150              Tr(i,j,bi,bj) = local            TR(i,j,bi,bj) = local
151                ENDDO
152             ENDDO             ENDDO
153            ENDDO            ENDDO
154           ENDDO           ENDDO
155          ENDDO           _EXCH_XY_RL(TR, mythid)
         _EXCH_XY_RL(Tr, myThid)  
156  c default specific humidity profile to 80% relative humidity  c default specific humidity profile to 80% relative humidity
157          DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
158           DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
159            DO j=1,sNy             DO j=1,sNy
160             DO i=1,sNx              DO i=1,sNx
161  c           jG = myYGlobalLo-1+(bj-1)*sNy+j  c                  jG = myYGlobalLo-1+(bj-1)*sNy+j
162              local = Tr(i,j,bi,bj)+Celcius2K                    local = Tr(i,j,bi,bj)+Celsius2K
163              ssqa = ssq0*exp( lath*(ssq1-ssq2/local)) / p0                ssqa = ssq0*exp( lath*(ssq1-ssq2/local)) / p0
164              qr(i,j,bi,bj) = 0.8d0*ssqa                    qr(i,j,bi,bj) = 0.8d0*ssqa
165                ENDDO
166             ENDDO             ENDDO
167            ENDDO            ENDDO
168           ENDDO           ENDDO
169          ENDDO           _EXCH_XY_RL(qr, mythid)
         _EXCH_XY_RL(qr, myThid)  
170  c u wind field  c u wind field
171          DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
172           DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
173            DO j=1,sNy             DO j=1,sNy
174             DO i=1,sNx              DO i=1,sNx
175              jG = myYGlobalLo-1+(bj-1)*sNy+j                    jG = myYGlobalLo-1+(bj-1)*sNy+j
176              local=-5.d0*cos(2.d0*pi*float(jg-1)/(float(ny-1)))                    local=-5.d0*cos(2.d0*pi*float(jg-1)/(float(ny-1)))
177              uwind(i,j,bi,bj) = local                    uwind(i,j,bi,bj) = local
178                ENDDO
179             ENDDO             ENDDO
180            ENDDO            ENDDO
181           ENDDO           ENDDO
182          ENDDO           _EXCH_XY_RL(uwind, mythid)
         _EXCH_XY_RL(uwind, myThid)  
183  c v wind field  c v wind field
184          DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
185           DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
186            DO j=1,sNy             DO j=1,sNy
187             DO i=1,sNx              DO i=1,sNx
188              jG = myYGlobalLo-1+(bj-1)*sNy+j                    jG = myYGlobalLo-1+(bj-1)*sNy+j
189              vwind(i,j,bi,bj) = 0.d0                    vwind(i,j,bi,bj) = 0.d0
190                ENDDO
191             ENDDO             ENDDO
192            ENDDO            ENDDO
193           ENDDO           ENDDO
194          ENDDO           _EXCH_XY_RL(vwind, mythid)
195          _EXCH_XY_RL(vwind, myThid)  C Tracer field
196             IF (useCheapTracer) THEN
197             DO bj = myByLo(myThid), myByHi(myThid)
198              DO bi = myBxLo(myThid), myBxHi(myThid)
199                DO j=1,sNy
200                   DO i=1,sNx
201                         jG = myYGlobalLo-1+(bj-1)*sNy+j
202                         CheaptracerR(i,j,bi,bj) = 290. _d 0
203                   ENDDO
204               ENDDO
205              ENDDO
206             ENDDO
207             ENDIF
208              _EXCH_XY_RL(CheaptracerR, mythid)        
209    
210         ELSE        ELSE
 C      else: solarFile non empty  
211    
212  C here for usual interpolative forcings  c here for usual interpolative forcings
213  C First call requires that we initialize everything to zero for safety  C First call requires that we initialize everything to zero for safety
214          IF ( myIter .EQ. nIter0 ) THEN        IF ( myIter .EQ. nIter0 ) THEN
215           DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
216            DO bi = myBxLo(myThid), myBxHi(myThid)           DO bi = myBxLo(myThid), myBxHi(myThid)
217             DO j=1-OLy,sNy+OLy            DO j=1-OLy,sNy+OLy
218              DO i=1-OLx,sNx+OLx             DO i=1-OLx,sNx+OLx
219                trair0  (i,j,bi,bj) = 0.             trair0  (i,j,bi,bj) = 0.
220                trair1  (i,j,bi,bj) = 0.             trair1  (i,j,bi,bj) = 0.
221                qrair0  (i,j,bi,bj) = 0.             qrair0  (i,j,bi,bj) = 0.
222                qrair1  (i,j,bi,bj) = 0.             qrair1  (i,j,bi,bj) = 0.
223                solar0  (i,j,bi,bj) = 0.             solar0  (i,j,bi,bj) = 0.
224                solar1  (i,j,bi,bj) = 0.             solar1  (i,j,bi,bj) = 0.
225                uwind0  (i,j,bi,bj) = 0.             uwind0  (i,j,bi,bj) = 0.
226                uwind1  (i,j,bi,bj) = 0.             uwind1  (i,j,bi,bj) = 0.
227                vwind0  (i,j,bi,bj) = 0.             vwind0  (i,j,bi,bj) = 0.
228                vwind1  (i,j,bi,bj) = 0.             vwind1  (i,j,bi,bj) = 0.
229                ustress0(i,j,bi,bj) = 0.             ustress0(i,j,bi,bj) = 0.
230                ustress1(i,j,bi,bj) = 0.             ustress1(i,j,bi,bj) = 0.
231                vstress0(i,j,bi,bj) = 0.             vstress0(i,j,bi,bj) = 0.
232                vstress1(i,j,bi,bj) = 0.             vstress1(i,j,bi,bj) = 0.
233                wavesh0 (i,j,bi,bj) = 0.             wavesh0 (i,j,bi,bj) = 0.
234                wavesh1 (i,j,bi,bj) = 0.             wavesh1 (i,j,bi,bj) = 0.
235                wavesp0 (i,j,bi,bj) = 0.             wavesp0 (i,j,bi,bj) = 0.
236                wavesp1 (i,j,bi,bj) = 0.             wavesp1 (i,j,bi,bj) = 0.
237                rair0   (i,j,bi,bj) = 0.             rair0   (i,j,bi,bj) = 0.
238                rair1   (i,j,bi,bj) = 0.             rair1   (i,j,bi,bj) = 0.
239              ENDDO             CheaptracerR0 (i,j,bi,bj) = 0.
240               CheaptracerR1 (i,j,bi,bj) = 0.
241             ENDDO             ENDDO
242            ENDDO            ENDDO
243           ENDDO           ENDDO
244          ENDIF          ENDDO      
245          ENDIF
246    
247  C Now calculate whether it is time to update the forcing arrays  C Now calculate whether it is time to update the forcing arrays
248          rdt=1. _d 0 / deltaTclock        rdt=1. _d 0 / deltaTclock
249          nForcingPeriods=        nForcingPeriods=
250       &   int(externForcingCycle/externForcingPeriod+0.5)       &  int(externForcingCycle_cheap/externForcingPeriod_cheap+0.5)
251          Imytm=int(myTime*rdt+0.5)        Imytm=int(myTime*rdt+0.5)
252          Ifprd=int(externForcingPeriod*rdt+0.5)        Ifprd=int(externForcingPeriod_cheap*rdt+0.5)
253          Ifcyc=int(externForcingCycle*rdt+0.5)        Ifcyc=int(externForcingCycle_cheap*rdt+0.5)
254          Iftm=mod( Imytm+Ifcyc-Ifprd/2 ,Ifcyc)        Iftm=mod( Imytm+Ifcyc-Ifprd/2 ,Ifcyc)
255    
256          intime0=int(Iftm/Ifprd)        intime0=int(Iftm/Ifprd)
257          intime1=mod(intime0+1,nForcingPeriods)        intime1=mod(intime0+1,nForcingPeriods)
258  c       aWght=float( Iftm-Ifprd*intime0 )/float( Ifprd )  c     aWght=float( Iftm-Ifprd*intime0 )/float( Ifprd )
259          aWght=dfloat( Iftm-Ifprd*intime0 )/dfloat( Ifprd )        aWght=dfloat( Iftm-Ifprd*intime0 )/dfloat( Ifprd )
260          bWght=1.-aWght        bWght=1.-aWght
261    
262          intime0=intime0+1        intime0=intime0+1
263          intime1=intime1+1        intime1=intime1+1
264    
265          IF (        IF (
266       &       Iftm-Ifprd*(intime0-1) .EQ. 0       &  Iftm-Ifprd*(intime0-1) .EQ. 0
267       &      .OR. myIter .EQ. nIter0       &  .OR. myIter .EQ. nIter0
268       &     ) THEN       & ) THEN
269    
270  C      If the above condition is met then we need to read in  C      If the above condition is met then we need to read in
271  C      data for the period ahead and the period behind myTime.  C      data for the period ahead and the period behind myTime.
272           WRITE(*,*)         WRITE(*,*)
273       &     'S/R CHEAPAML_FIELDS_LOAD'       &  'S/R CHEAPAML_FIELDS_LOAD'
274           IF ( SolarFile .NE. ' '  ) THEN        IF ( SolarFile .NE. ' '  ) THEN
275            CALL READ_REC_XY_RL( SolarFile,solar0,intime0,         CALL READ_REC_XY_RL( SolarFile,solar0,intime0,
276       &         myIter,myThid )       &       myIter,myThid )
277            CALL READ_REC_XY_RL( SolarFile,solar1,intime1,         CALL READ_REC_XY_RL( SolarFile,solar1,intime1,
278       &         myIter,myThid )       &       myIter,myThid )
279           ENDIF        ENDIF
280           IF ( TrFile .NE. ' '  ) THEN        IF ( TrFile .NE. ' '  ) THEN
281            CALL READ_REC_XY_RL( TrFile,trair0,intime0,         CALL READ_REC_XY_RL( TRFile,trair0,intime0,
282       &         myIter,myThid )       &       myIter,myThid )
283            CALL READ_REC_XY_RL( TrFile,trair1,intime1,         CALL READ_REC_XY_RL( TRFile,trair1,intime1,
284       &         myIter,myThid )       &       myIter,myThid )
285           ENDIF        ENDIF
286           IF ( QrFile .NE. ' '  ) THEN        IF ( QrFile .NE. ' '  ) THEN
287            CALL READ_REC_XY_RL( QrFile,qrair0,intime0,         CALL READ_REC_XY_RL( QrFile,qrair0,intime0,
288       &         myIter,myThid )       &       myIter,myThid )
289            CALL READ_REC_XY_RL( QrFile,qrair1,intime1,         CALL READ_REC_XY_RL( QrFile,qrair1,intime1,
290       &         myIter,myThid )       &       myIter,myThid )
291           ENDIF        ENDIF
292           IF ( UWindFile .NE. ' '  ) THEN        IF ( UWindFile .NE. ' '  ) THEN
293            CALL READ_REC_XY_RL( UWindFile,uwind0,intime0,         CALL READ_REC_XY_RL( UWindFile,uwind0,intime0,
294       &         myIter,myThid )       &       myIter,myThid )
295            CALL READ_REC_XY_RL( UWindFile,uwind1,intime1,         CALL READ_REC_XY_RL( UWindFile,uwind1,intime1,
296       &         myIter,myThid )       &       myIter,myThid )
297           ENDIF        ENDIF
298           IF ( VWindFile .NE. ' '  ) THEN        IF ( VWindFile .NE. ' '  ) THEN
299            CALL READ_REC_XY_RL( VWindFile,vwind0,intime0,         CALL READ_REC_XY_RL( VWindFile,vwind0,intime0,
300       &         myIter,myThid )       &       myIter,myThid )
301            CALL READ_REC_XY_RL( VWindFile,vwind1,intime1,         CALL READ_REC_XY_RL( VWindFile,vwind1,intime1,
302       &         myIter,myThid )       &       myIter,myThid )
303           ENDIF        ENDIF
304           IF(useStressOption)THEN        IF(useStressOption)THEN
305            IF ( UStressFile .NE. ' '  ) THEN        IF ( UStressFile .NE. ' '  ) THEN
306             CALL READ_REC_XY_RL( UStressFile,ustress0,intime0,         CALL READ_REC_XY_RL( UStressFile,ustress0,intime0,
307       &          myIter,myThid )       &       myIter,myThid )
308             CALL READ_REC_XY_RL( UStressFile,ustress1,intime1,         CALL READ_REC_XY_RL( UStressFile,ustress1,intime1,
309       &          myIter,myThid )       &       myIter,myThid )
310            ENDIF        ENDIF
311            IF ( VStressFile .NE. ' '  ) THEN        IF ( VStressFile .NE. ' '  ) THEN
312             CALL READ_REC_XY_RL( VStressFile,vstress0,intime0,         CALL READ_REC_XY_RL( VStressFile,vstress0,intime0,
313       &          myIter,myThid )       &       myIter,myThid )
314             CALL READ_REC_XY_RL( VStressFile,vstress1,intime1,         CALL READ_REC_XY_RL( VStressFile,vstress1,intime1,
315       &          myIter,myThid )       &       myIter,myThid )
           ENDIF  
          ENDIF  
          IF(useRelativeHumidity)THEN  
           IF ( QrrelFile .NE. ' '  ) THEN  
            CALL READ_REC_XY_RL( QrrelFile,rair0,intime0,  
      &          myIter,myThid )  
            CALL READ_REC_XY_RL( QrrelFile,rair1,intime1,  
      &          myIter,myThid )  
           ENDIF  
 C     This subroutine is in cheapaml_init_varia  
           CALL CHEAPAML_CONVERT_HUM(rair0, trair0, qrair0,myThid )  
           CALL CHEAPAML_CONVERT_HUM(rair1, trair1, qrair1,myThid )  
          ENDIF  
          IF ( FluxFormula.EQ.'COARE3') THEN  
           IF ( WaveHFile .NE. ' '  ) THEN  
            CALL READ_REC_XY_RL( WaveHFile,wavesh0,intime0,  
      &          myIter,myThid )  
            CALL READ_REC_XY_RL( WaveHFile,wavesh1,intime1,  
      &          myIter,myThid )  
           ENDIF  
           IF ( WavePFile .NE. ' '  ) THEN  
            CALL READ_REC_XY_RL( WavePFile,wavesp0,intime0,  
      &          myIter,myThid )  
            CALL READ_REC_XY_RL( WavePFile,wavesp1,intime1,  
      &          myIter,myThid )  
           ENDIF  
          ENDIF  
   
          _EXCH_XY_RL( trair0 , myThid )  
          _EXCH_XY_RL( qrair0 , myThid )  
          _EXCH_XY_RL( solar0 , myThid )  
          _EXCH_XY_RL( uwind0 , myThid )  
          _EXCH_XY_RL( vwind0 , myThid )  
          _EXCH_XY_RL( trair1 , myThid )  
          _EXCH_XY_RL( qrair1 , myThid )  
          _EXCH_XY_RL( solar1 , myThid )  
          _EXCH_XY_RL( uwind1 , myThid )  
          _EXCH_XY_RL( vwind1 , myThid )  
          IF(useStressOption)THEN  
           _EXCH_XY_RL( ustress0 , myThid )  
           _EXCH_XY_RL( vstress0 , myThid )  
           _EXCH_XY_RL( ustress1 , myThid )  
           _EXCH_XY_RL( vstress1 , myThid )  
          ENDIF  
          IF(FluxFormula.EQ.'COARE3') THEN  
           _EXCH_XY_RL( wavesp0 , myThid )  
           _EXCH_XY_RL( wavesp1 , myThid )  
           _EXCH_XY_RL( wavesh0 , myThid )  
           _EXCH_XY_RL( wavesh1 , myThid )  
          ENDIF  
   
 C       end of loading new fields block  
316          ENDIF          ENDIF
317          ENDIF
318          IF ( FluxFormula.eq.'COARE3') THEN
319          IF ( WaveHFile .NE. ' '  ) THEN
320           CALL READ_REC_XY_RL( WaveHFile,wavesh0,intime0,
321         &       myIter,myThid )
322           CALL READ_REC_XY_RL( WaveHFile,wavesh1,intime1,
323         &       myIter,myThid )
324          ENDIF
325          IF ( WavePFile .NE. ' '  ) THEN
326           CALL READ_REC_XY_RL( WavePFile,wavesp0,intime0,
327         &       myIter,myThid )
328           CALL READ_REC_XY_RL( WavePFile,wavesp1,intime1,
329         &       myIter,myThid )
330          ENDIF
331            ENDIF
332          IF (useCheapTracer) THEN
333          IF ( TracerRFile .NE. ' '  ) THEN
334            CALL READ_REC_XY_RL( TracerRFile,CheaptracerR0,intime0,
335         &       myIter,myThid )
336            CALL READ_REC_XY_RL( TracerRFile,CheaptracerR1,intime1,
337         &       myIter,myThid )
338          ENDIF    
339          ENDIF
340           _EXCH_XY_RL(trair0 , myThid )
341           _EXCH_XY_RL(qrair0 , myThid )
342           _EXCH_XY_RL(solar0 , myThid )
343           _EXCH_XY_RL(uwind0 , myThid )
344           _EXCH_XY_RL(vwind0 , myThid )
345           _EXCH_XY_RL(trair1 , myThid )
346           _EXCH_XY_RL(qrair1 , myThid )
347           _EXCH_XY_RL(solar1 , myThid )
348           _EXCH_XY_RL(uwind1 , myThid )
349           _EXCH_XY_RL(vwind1 , myThid )
350           IF(useStressOption)THEN
351           _EXCH_XY_RL(uwind0 , myThid )
352           _EXCH_XY_RL(vwind0 , myThid )
353           _EXCH_XY_RL(uwind1 , myThid )
354           _EXCH_XY_RL(vwind1 , myThid )
355            ENDIF
356            IF(FluxFormula.EQ.'COARE3') THEN
357           _EXCH_XY_RL(wavesp0 , myThid )
358           _EXCH_XY_RL(wavesp1 , myThid )
359           _EXCH_XY_RL(wavesh0 , myThid )
360           _EXCH_XY_RL(wavesh1 , myThid )
361            ENDIF
362           IF(useCheapTracer) THEN
363           _EXCH_XY_RL(CheaptracerR0 , myThid )
364           _EXCH_XY_RL(CheaptracerR1, myThid )
365           ENDIF    
366    C     end of loading new fields block
367          ENDIF
368    
369  C--   Interpolate Tr, Qr, Solar  C--   Interpolate TR, QR, SOLAR
370          DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
371           DO bi = myBxLo(myThid), myBxHi(myThid)         DO bi = myBxLo(myThid), myBxHi(myThid)
372            DO j=1,sNy          DO j=1-OLy,sNy+OLy
373             DO i=1,sNx           DO i=1-OLx,sNx+OLx
374              Tr(i,j,bi,bj)   = bWght*trair0(i,j,bi,bj)            TR(i,j,bi,bj)      = bWght*trair0(i,j,bi,bj)
375       &                       +aWght*trair1(i,j,bi,bj)   !+273.15       &                        +aWght*trair1(i,j,bi,bj)   !+273.15
376              qr(i,j,bi,bj)   = bWght*qrair0(i,j,bi,bj)            qr(i,j,bi,bj)      = bWght*qrair0(i,j,bi,bj)
377       &                       +aWght*qrair1(i,j,bi,bj)       &                        +aWght*qrair1(i,j,bi,bj)
378              uwind(i,j,bi,bj)= bWght*uwind0(i,j,bi,bj)            uwind(i,j,bi,bj)   = bWght*uwind0(i,j,bi,bj)
379       &                       +aWght*uwind1(i,j,bi,bj)       &                        +aWght*uwind1(i,j,bi,bj)
380              vwind(i,j,bi,bj)= bWght*vwind0(i,j,bi,bj)            vwind(i,j,bi,bj)   = bWght*vwind0(i,j,bi,bj)
381       &                       +aWght*vwind1(i,j,bi,bj)       &                        +aWght*vwind1(i,j,bi,bj)
382              solar(i,j,bi,bj)= bWght*solar0(i,j,bi,bj)            solar(i,j,bi,bj)   = bWght*solar0(i,j,bi,bj)
383       &                       +aWght*solar1(i,j,bi,bj)       &                        +aWght*solar1(i,j,bi,bj)
384              IF(useStressOption)THEN         IF(useStressOption)THEN
385               ustress(i,j,bi,bj)= bWght*ustress0(i,j,bi,bj)            ustress(i,j,bi,bj)   = bWght*ustress0(i,j,bi,bj)
386       &                          +aWght*ustress1(i,j,bi,bj)       &                          +aWght*ustress1(i,j,bi,bj)
387               vstress(i,j,bi,bj)= bWght*vstress0(i,j,bi,bj)            vstress(i,j,bi,bj)   = bWght*vstress0(i,j,bi,bj)
388       &                          +aWght*vstress1(i,j,bi,bj)       &                          +aWght*vstress1(i,j,bi,bj)
389              ENDIF         ENDIF
390              IF(FluxFormula.EQ.'COARE3')THEN         IF(useCheapTracer)THEN
391               IF(WaveHFile.NE.' ')THEN             CheaptracerR(i,j,bi,bj) = bWght*CheaptracerR0(i,j,bi,bj)
392                wavesh(i,j,bi,bj) = bWght*wavesh0(i,j,bi,bj)       &                             +aWght*CheaptracerR1(i,j,bi,bj)
393       &                           +aWght*wavesh1(i,j,bi,bj)         ENDIF      
394               ENDIF          IF(FluxFormula.eq.'COARE3')THEN
395               IF(WavePFile.NE.' ')THEN          IF(WaveHFile.ne.' ')THEN
396                wavesp(i,j,bi,bj) = bWght*wavesp0(i,j,bi,bj)            wavesh(i,j,bi,bj)   = bWght*wavesh0(i,j,bi,bj)
397       &                           +aWght*wavesp1(i,j,bi,bj)       &                         +aWght*wavesh1(i,j,bi,bj)
398               ENDIF          ENDIF
399              ELSE          IF(WavePFile.ne.' ')THEN
400               u=uwind(i,j,bi,bj)**2+vwind(i,j,bi,bj)**2            wavesp(i,j,bi,bj)   = bWght*wavesp0(i,j,bi,bj)
401               u=dsqrt(u)       &                         +aWght*wavesp1(i,j,bi,bj)
402               wavesp(i,j,bi,bj)=0.729 _d 0 * u          ENDIF
403               wavesh(i,j,bi,bj)=0.018 _d 0 * u*u*(1. _d 0 + .015 _d 0 *u)          ELSE
404              ENDIF            u=uwind(i,j,bi,bj)**2+vwind(i,j,bi,bj)**2
405             ENDDO            u=dsqrt(u)
406            ENDDO            wavesp(i,j,bi,bj)=0.729 _d 0 * u  
407              wavesh(i,j,bi,bj)=0.018 _d 0 * u*u*(1. _d 0 + .015 _d 0 *u)
408              ENDIF
409           ENDDO           ENDDO
410          ENDDO          ENDDO
411           ENDDO
412          ENDDO
413    
414  C end if solarFile is empty  c end if solarFile is empty      
415         ENDIF        ENDIF
416    
417    c end of periodic forcing options, on to steady option
418    
 C end of periodic forcing options, on to steady option  
419        ELSE        ELSE
420    
421         IF ( myIter .EQ. nIter0 ) THEN         IF ( myIter .EQ. nIter0 ) THEN
422          IF ( SolarFile .NE. ' '  ) THEN          IF ( SolarFile .NE. ' '  ) THEN
423           CALL READ_FLD_XY_RL( SolarFile,' ',solar,0,myThid )           CALL READ_FLD_XY_RS( SolarFile,' ',solar,0,myThid )
424          ELSE          ELSE
425           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
426            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 407  C end of periodic forcing options, on to Line 434  C end of periodic forcing options, on to
434            ENDDO            ENDDO
435           ENDDO           ENDDO
436          ENDIF          ENDIF
437          _EXCH_XY_RL(solar, myThid)          _EXCH_XY_RS(solar, mythid)
438          IF ( TrFile .NE. ' '  ) THEN          IF ( TrFile .NE. ' '  ) THEN
439           CALL READ_FLD_XY_RL( TrFile,' ',tr,0,myThid )           CALL READ_FLD_XY_RL( TrFile,' ',tr,0,myThid )
440          ELSE          ELSE
# Line 418  C end of periodic forcing options, on to Line 445  C end of periodic forcing options, on to
445              jG = myYGlobalLo-1+(bj-1)*sNy+j              jG = myYGlobalLo-1+(bj-1)*sNy+j
446              local=solar(i,j,bi,bj)              local=solar(i,j,bi,bj)
447              local=(2.d0*local/stefan)**(0.25d0)-273.16              local=(2.d0*local/stefan)**(0.25d0)-273.16
448              Tr(i,j,bi,bj) = local              TR(i,j,bi,bj) = local
449              ENDDO              ENDDO
450             ENDDO             ENDDO
451            ENDDO            ENDDO
452           ENDDO           ENDDO
453          ENDIF          ENDIF
454          _EXCH_XY_RL(Tr, myThid)          
455            _EXCH_XY_RL(TR, mythid)
456  C do specific humidity  c do specific humidity
457          IF ( QrFile .NE. ' '.AND..NOT. useRelativeHumidity  ) THEN          IF ( QrFile .NE. ' ') THEN
458           CALL READ_FLD_XY_RL( QrFile,' ',qr,0,myThid )           CALL READ_FLD_XY_RL( QrFile,' ',qr,0,myThid )      
         ELSEIF ( QrrelFile .NE. ' '.AND.useRelativeHumidity) THEN  
          CALL READ_FLD_XY_RL( QrrelFile,' ',rref,0,myThid )  
          CALL CHEAPAML_CONVERT_HUM(rref, Tr, qr,myThid )  
   
459          ELSE          ELSE
460  C default specific humidity profile to 80% relative humidity  c default specific humidity profile to 80% relative humidity
461           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
462            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
463             DO j=1,sNy             DO j=1,sNy
# Line 448  c                  jG = myYGlobalLo-1+(b Line 471  c                  jG = myYGlobalLo-1+(b
471            ENDDO            ENDDO
472           ENDDO           ENDDO
473          ENDIF          ENDIF
474          _EXCH_XY_RL(qr, myThid)          _EXCH_XY_RL(qr, mythid)
475          IF ( UWindFile .NE. ' '  ) THEN          IF ( UWindFile .NE. ' '  ) THEN
476           CALL READ_FLD_XY_RL( UWindFile,' ',uwind,0,myThid )           CALL READ_FLD_XY_RL( UWindFile,' ',uwind,0,myThid )
477          ELSE          ELSE
# Line 456  c                  jG = myYGlobalLo-1+(b Line 479  c                  jG = myYGlobalLo-1+(b
479            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
480             DO j=1,sNy             DO j=1,sNy
481              DO i=1,sNx              DO i=1,sNx
482                jG = myYGlobalLo-1+(bj-1)*sNy+j                    jG = myYGlobalLo-1+(bj-1)*sNy+j
483  c mod for debug  c mod for debug
484  c to return to original code, uncomment following line  c to return to original code, uncomment following line
485  c comment out 2nd line  c comment out 2nd line
486                local=-5.d0*cos(2.d0*pi*float(jg-1)/(float(ny-1)))                    local=-5.d0*cos(2.d0*pi*float(jg-1)/(float(ny-1)))
487  c             local=0.d0*cos(2.d0*pi*float(jg-1)/(float(ny-1)))  c                 local=0.d0*cos(2.d0*pi*float(jg-1)/(float(ny-1)))
488                uwind(i,j,bi,bj) = local                    uwind(i,j,bi,bj) = local
489              ENDDO              ENDDO
490             ENDDO             ENDDO
491            ENDDO            ENDDO
492           ENDDO           ENDDO
493          ENDIF          ENDIF
494           _EXCH_XY_RL(uwind, myThid)           _EXCH_XY_RL(uwind, mythid)
495          IF ( VWindFile .NE. ' '  ) THEN          IF ( VWindFile .NE. ' '  ) THEN
496           CALL READ_FLD_XY_RL( VWindFile,' ',vwind,0,myThid )           CALL READ_FLD_XY_RL( VWindFile,' ',vwind,0,myThid )
497          ELSE          ELSE
# Line 476  c             local=0.d0*cos(2.d0*pi*flo Line 499  c             local=0.d0*cos(2.d0*pi*flo
499            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
500             DO j=1,sNy             DO j=1,sNy
501              DO i=1,sNx              DO i=1,sNx
502                jG = myYGlobalLo-1+(bj-1)*sNy+j                    jG = myYGlobalLo-1+(bj-1)*sNy+j
503                vwind(i,j,bi,bj) = 0.d0                    vwind(i,j,bi,bj) = 0.d0
504              ENDDO              ENDDO
505             ENDDO             ENDDO
506            ENDDO            ENDDO
507           ENDDO           ENDDO
508          ENDIF          ENDIF
509          _EXCH_XY_RL(vwind, myThid)           _EXCH_XY_RL(vwind, mythid)
510          IF(useStressOption)THEN         IF(useStressOption)THEN
511           IF ( UStressFile .NE. ' '  ) THEN          IF ( UStressFile .NE. ' '  ) THEN
512            CALL READ_FLD_XY_RL( UStressFile,' ',ustress,0,myThid )           CALL READ_FLD_XY_RL( UStressFile,' ',ustress,0,myThid )
513           ELSE          ELSE
514            write(*,*)' U Stress File absent with stress option'          write(*,*)' U Stress File absent with stress option'
515            STOP 'ABNORMAL END: S/R CHEAPAML_FIELDS_LOAD'          stop
          ENDIF  
          IF ( VStressFile .NE. ' '  ) THEN  
           CALL READ_FLD_XY_RL( VStressFile,' ',vstress,0,myThid )  
          ELSE  
           write(*,*)' V Stress File absent with stress option'  
           STOP 'ABNORMAL END: S/R CHEAPAML_FIELDS_LOAD'  
          ENDIF  
          _EXCH_XY_RL(ustress, myThid)  
          _EXCH_XY_RL(vstress, myThid)  
516          ENDIF          ENDIF
517          IF (FluxFormula.EQ.'COARE3')THEN          IF ( VStressFile .NE. ' '  ) THEN
518           IF (WaveHFile.NE.' ')THEN           CALL READ_FLD_XY_RL( VStressFile,' ',vstress,0,myThid )
519            CALL READ_FLD_XY_RL( WaveHFile,' ',wavesh,0,myThid )          ELSE
520           ENDIF          write(*,*)' V Stress File absent with stress option'
521           IF (WavePFile.NE.' ')THEN          stop
522            CALL READ_FLD_XY_RL( WavePFile,' ',wavesp,0,myThid )          ENDIF
523           ELSE           _EXCH_XY_RL(ustress, mythid)
524            DO bj = myByLo(myThid), myByHi(myThid)           _EXCH_XY_RL(vstress, mythid)
525             DO bi = myBxLo(myThid), myBxHi(myThid)          ENDIF
526              DO j=1,sNy          IF(useCheapTracer)THEN
527               DO i=1,sNx            IF ( TracerRFile .NE. ' ' ) THEN
528                u=uwind(i,j,bi,bj)**2+vwind(i,j,bi,bj)**2            CALL READ_FLD_XY_RL( TracerRFile,' ',CheaptracerR,0,myThid )
529                u=dsqrt(u)            write(*,*) 'VIANDE'
530                wavesp(i,j,bi,bj)=0.729 _d 0*u            write(*,*) CheaptracerR
531                wavesh(i,j,bi,bj)=0.018 _d 0*u*u*(1. _d 0 + .015 _d 0 *u)             ELSE
532               DO bj = myByLo(myThid), myByHi(myThid)
533                DO bi = myBxLo(myThid), myBxHi(myThid)
534                 DO j=1,sNy
535                  DO i=1,sNx
536                   CheaptracerR(i,j,bi,bj)=290. _d 0
537                  ENDDO
538               ENDDO               ENDDO
539              ENDDO              ENDDO
540             ENDDO             ENDDO
541            ENDDO            ENDIF
542           ENDIF            _EXCH_XY_RL(CheaptracerR, mythid)
543           _EXCH_XY_RL(wavesp, myThid)            write(*,*) 'LEGUMES'
544           _EXCH_XY_RL(wavesh, myThid)                      write(*,*) CheaptracerR
545            ENDIF    
546            IF (FluxFormula.eq.'COARE3')THEN
547                    IF (WaveHFile.NE.' ')THEN
548             CALL READ_FLD_XY_RL( WaveHFile,' ',wavesh,0,myThid )
549          ENDIF          ENDIF
550                    IF (WavePFile.NE.' ')THEN
551  C end if myIter = nIter0           CALL READ_FLD_XY_RL( WavePFile,' ',wavesp,0,myThid )
552            ELSE
553             DO bj = myByLo(myThid), myByHi(myThid)
554              DO bi = myBxLo(myThid), myBxHi(myThid)
555               DO j=1,sNy
556                DO i=1,sNx
557                    u=uwind(i,j,bi,bj)**2+vwind(i,j,bi,bj)**2
558                    u=dsqrt(u)
559              wavesp(i,j,bi,bj)=0.729 _d 0 * u  
560              wavesh(i,j,bi,bj)=0.018 _d 0 * u*u*(1. _d 0 + .015 _d 0 *u)
561                ENDDO
562               ENDDO
563              ENDDO
564             ENDDO
565         ENDIF         ENDIF
566            _EXCH_XY_RL(wavesp, mythid)
567            _EXCH_XY_RL(wavesh, mythid)
568          ENDIF
569           ENDIF
570    
571    
572  C endif for Steady Option  C endif for Steady Option
573        ENDIF        ENDIF
574    
575  C fill in outer edges  C fill in outer edges
576        DO bj = myByLo(myThid), myByHi(myThid)  
577          DO bi = myBxLo(myThid), myBxHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
578            DO j=1-oly,sny+oly            DO bi = myBxLo(myThid), myBxHi(myThid)
579              jG = myYGlobalLo-1+(bj-1)*sNy+j                  do j=1-oly,sny+oly
580              DO i=1-olx,snx+olx                    jG = myYGlobalLo-1+(bj-1)*sNy+j
581                iG=myXGlobalLo-1+(bi-1)*sNx+i                  do i=1-olx,snx+olx
582                if(iG.lt.1)then                    iG=myXGlobalLo-1+(bi-1)*sNx+i
583                  Tr(i,j,bi,bj)=Tr(1,j,bi,bj)              if(iG.lt.1)then
584                  qr(i,j,bi,bj)=qr(1,j,bi,bj)              Tr(i,j,bi,bj)=Tr(1,j,bi,bj)
585                  uwind(i,j,bi,bj)=uwind(1,j,bi,bj)              qr(i,j,bi,bj)=qr(1,j,bi,bj)
586                  vwind(i,j,bi,bj)=vwind(1,j,bi,bj)              uwind(i,j,bi,bj)=uwind(1,j,bi,bj)
587                  Solar(i,j,bi,bj)=Solar(1,j,bi,bj)              vwind(i,j,bi,bj)=vwind(1,j,bi,bj)
588                  if(UseStressOption)then              Solar(i,j,bi,bj)=Solar(1,j,bi,bj)
589                    ustress(i,j,bi,bj)=ustress(1,j,bi,bj)              
590                    vstress(i,j,bi,bj)=vstress(1,j,bi,bj)                  IF(useStressOption)THEN
591                  endif                  ustress(i,j,bi,bj)=ustress(1,j,bi,bj)
592                  if(FluxFormula.EQ.'COARE3')then                  vstress(i,j,bi,bj)=vstress(1,j,bi,bj)
593                    wavesp(i,j,bi,bj)=wavesp(1,j,bi,bj)                  ENDIF
594                    wavesh(i,j,bi,bj)=wavesh(1,j,bi,bj)  
595                    IF(useCheapTracer)THEN
596                    CheaptracerR(i,j,bi,bj)=CheaptracerR(1,j,bi,bj)
597                    ENDIF    
598    
599                    if(FluxFormula.eq.'COARE3')then
600                    wavesp(i,j,bi,bj)=wavesp(1,j,bi,bj)
601                    wavesh(i,j,bi,bj)=wavesh(1,j,bi,bj)
602                  endif                  endif
603                elseif(iG.gt.Nx)then  
604                  Tr(i,j,bi,bj)=Tr(sNx,j,bi,bj)              elseif(iG.gt.Nx)then
605                  qr(i,j,bi,bj)=qr(sNx,j,bi,bj)              Tr(i,j,bi,bj)=Tr(sNx,j,bi,bj)
606                  uwind(i,j,bi,bj)=uwind(sNx,j,bi,bj)              qr(i,j,bi,bj)=qr(sNx,j,bi,bj)
607                  vwind(i,j,bi,bj)=vwind(sNx,j,bi,bj)              uwind(i,j,bi,bj)=uwind(sNx,j,bi,bj)
608                  Solar(i,j,bi,bj)=Solar(sNx,j,bi,bj)              vwind(i,j,bi,bj)=vwind(sNx,j,bi,bj)
609                Solar(i,j,bi,bj)=Solar(sNx,j,bi,bj)
610    
611                  if(UseStressOption)then                  if(UseStressOption)then
612                    ustress(i,j,bi,bj)=ustress(sNx,j,bi,bj)                  ustress(i,j,bi,bj)=ustress(sNx,j,bi,bj)
613                    vstress(i,j,bi,bj)=vstress(sNx,j,bi,bj)                  vstress(i,j,bi,bj)=vstress(sNx,j,bi,bj)
614                  endif                  endif
615                  if(FluxFormula.EQ.'COARE3')then  
616                    wavesp(i,j,bi,bj)=wavesp(sNx,j,bi,bj)                  IF(useCheapTracer)THEN
617                    wavesh(i,j,bi,bj)=wavesh(sNx,j,bi,bj)                  CheaptracerR(i,j,bi,bj)=CheaptracerR(sNx,j,bi,bj)
618                    ENDIF                
619    
620                    if(FluxFormula.eq.'COARE3')then
621                    wavesp(i,j,bi,bj)=wavesp(sNx,j,bi,bj)
622                    wavesh(i,j,bi,bj)=wavesh(sNx,j,bi,bj)
623                  endif                  endif
624                elseif(jG.lt.1)then  
625                  Tr(i,j,bi,bj)=Tr(i,1,bi,bj)              elseif(jG.lt.1)then
626                  qr(i,j,bi,bj)=qr(i,1,bi,bj)              Tr(i,j,bi,bj)=Tr(i,1,bi,bj)
627                  uwind(i,j,bi,bj)=uwind(i,1,bi,bj)              qr(i,j,bi,bj)=qr(i,1,bi,bj)
628                  vwind(i,j,bi,bj)=vwind(i,1,bi,bj)              uwind(i,j,bi,bj)=uwind(i,1,bi,bj)
629                  Solar(i,j,bi,bj)=Solar(i,1,bi,bj)              vwind(i,j,bi,bj)=vwind(i,1,bi,bj)
630                Solar(i,j,bi,bj)=Solar(i,1,bi,bj)
631    
632                  if(UseStressOption)then                  if(UseStressOption)then
633                    ustress(i,j,bi,bj)=ustress(i,1,bi,bj)                  ustress(i,j,bi,bj)=ustress(i,1,bi,bj)
634                    vstress(i,j,bi,bj)=vstress(i,1,bi,bj)                  vstress(i,j,bi,bj)=vstress(i,1,bi,bj)
635                  endif                  endif
636                  if(FluxFormula.EQ.'COARE3')then  
637                    wavesp(i,j,bi,bj)=wavesp(i,1,bi,bj)                  IF(useCheapTracer)THEN
638                    wavesh(i,j,bi,bj)=wavesh(i,1,bi,bj)                  CheaptracerR(i,j,bi,bj)=CheaptracerR(i,1,bi,bj)
639                    ENDIF                
640    
641                    if(FluxFormula.eq.'COARE3')then
642                    wavesp(i,j,bi,bj)=wavesp(i,1,bi,bj)
643                    wavesh(i,j,bi,bj)=wavesh(i,1,bi,bj)
644                  endif                  endif
645                elseif(jG.gt.sNy)then  
646                  Tr(i,j,bi,bj)=Tr(i,sNy,bi,bj)              elseif(jG.gt.Ny)then
647                  qr(i,j,bi,bj)=qr(i,sNy,bi,bj)              Tr(i,j,bi,bj)=Tr(i,sNy,bi,bj)
648                  uwind(i,j,bi,bj)=uwind(i,sNy,bi,bj)              qr(i,j,bi,bj)=qr(i,sNy,bi,bj)
649                  vwind(i,j,bi,bj)=vwind(i,sNy,bi,bj)              uwind(i,j,bi,bj)=uwind(i,sNy,bi,bj)
650                  Solar(i,j,bi,bj)=Solar(i,sNy,bi,bj)              vwind(i,j,bi,bj)=vwind(i,sNy,bi,bj)
651                Solar(i,j,bi,bj)=Solar(i,sNy,bi,bj)
652    
653                  if(UseStressOption)then                  if(UseStressOption)then
654                    ustress(i,j,bi,bj)=ustress(i,sNy,bi,bj)                  ustress(i,j,bi,bj)=ustress(i,sNy,bi,bj)
655                    vstress(i,j,bi,bj)=vstress(i,sNy,bi,bj)                  vstress(i,j,bi,bj)=vstress(i,sNy,bi,bj)
656                  endif                  endif
657                  if(FluxFormula.EQ.'COARE3')then  
658                    wavesp(i,j,bi,bj)=wavesp(i,sNy,bi,bj)                  IF(useCheapTracer)THEN
659                    wavesh(i,j,bi,bj)=wavesh(i,sNy,bi,bj)                  CheaptracerR(i,j,bi,bj)=CheaptracerR(i,sNy,bi,bj)
660                    ENDIF                
661    
662                    if(FluxFormula.eq.'COARE3')then
663                    wavesp(i,j,bi,bj)=wavesp(i,sNy,bi,bj)
664                    wavesh(i,j,bi,bj)=wavesh(i,sNy,bi,bj)
665                  endif                  endif
666                endif  
667                endif
668              ENDDO              ENDDO
669               ENDDO
670            ENDDO            ENDDO
671          ENDDO           ENDDO
672        ENDDO         RETURN
   
       RETURN  
673        END        END

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22