/[MITgcm]/MITgcm/pkg/autodiff/autodiff_store.F
ViewVC logotype

Diff of /MITgcm/pkg/autodiff/autodiff_store.F

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

revision 1.6 by heimbach, Tue Sep 23 06:13:59 2008 UTC revision 1.19 by jmc, Tue Jun 7 20:06:32 2011 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4  #include "PACKAGES_CONFIG.h"  #include "AUTODIFF_OPTIONS.h"
 #include "CPP_OPTIONS.h"  
5  #ifdef ALLOW_OBCS  #ifdef ALLOW_OBCS
6  # include "OBCS_OPTIONS.h"  # include "OBCS_OPTIONS.h"
7  #endif  #endif
8  #ifdef ALLOW_SEAICE  #ifdef ALLOW_SEAICE
9  # include "SEAICE_OPTIONS.h"  # include "SEAICE_OPTIONS.h"
10  #endif  #endif
11    #ifdef ALLOW_ECCO_EVOLUTION
12    #ifdef ALLOW_EXF
13    # include "EXF_OPTIONS.h"
14    #endif
15    #endif
16    
17        subroutine autodiff_store( mythid )        subroutine autodiff_store( mythid )
18    
# Line 32  c     == global variables == Line 36  c     == global variables ==
36  #include "EEPARAMS.h"  #include "EEPARAMS.h"
37  #include "PARAMS.h"  #include "PARAMS.h"
38  c**************************************  c**************************************
39  #ifdef ALLOW_AUTODIFF_TAMC  c These includes are needed for
40    c AD-checkpointing.
 c These includes are needed for  
 c AD-checkpointing.  
41  c They provide the fields to be stored.  c They provide the fields to be stored.
42    
43  # include "GRID.h"  # include "GRID.h"
# Line 45  c They provide the fields to be stored. Line 47  c They provide the fields to be stored.
47  # include "AUTODIFF.h"  # include "AUTODIFF.h"
48    
49  # ifdef ALLOW_OBCS  # ifdef ALLOW_OBCS
50  #  include "OBCS.h"  #  include "OBCS_FIELDS.h"
51    #  include "OBCS_SEAICE.h"
52  # endif  # endif
53  # ifdef ALLOW_EXF  # ifdef ALLOW_EXF
54  #  include "EXF_FIELDS.h"  #  include "EXF_FIELDS.h"
# Line 60  c They provide the fields to be stored. Line 63  c They provide the fields to be stored.
63  # include "ctrl.h"  # include "ctrl.h"
64    
65  c     == routine arguments ==  c     == routine arguments ==
66  c     note: under the multi-threaded model myiter and  c     note: under the multi-threaded model myiter and
67  c           mytime are local variables passed around as routine  c           mytime are local variables passed around as routine
68  c           arguments. Although this is fiddly it saves the need to  c           arguments. Although this is fiddly it saves the need to
69  c           impose additional synchronisation points when they are  c           impose additional synchronisation points when they are
70  c           updated.  c           updated.
71  c     mythid - thread number for this instance of the routine.  c     mythid - thread number for this instance of the routine.
72        integer mythid        integer mythid
73    
74    #ifdef ALLOW_AUTODIFF_TAMC
75  c     == local variables ==  c     == local variables ==
76    
77        integer bi,bj        integer bi,bj
78        integer I,J,K        integer I,J,K
79          
80  c--   == end of interface ==  c--   == end of interface ==
81    
82  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
83        IF ( debugLevel .GE. debLevB )        IF ( debugMode ) CALL DEBUG_ENTER('AUTODIFF_STORE',myThid)
      &    CALL DEBUG_ENTER('AUTODIFF_STORE',myThid)  
84  #endif  #endif
85              
86  C--   Over all tiles  C--   Over all tiles
87        DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
88         DO bi = myBxLo(myThid), myBxHi(myThid)         DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 137  C-      3D arrays Line 140  C-      3D arrays
140           DO J=1-Oly,sNy+Oly           DO J=1-Oly,sNy+Oly
141            DO I=1-Olx,sNx+Olx            DO I=1-Olx,sNx+Olx
142         StoreDynVars3D(I,J,K,bi,bj,1) = gs(I,J,K,bi,bj)         StoreDynVars3D(I,J,K,bi,bj,1) = gs(I,J,K,bi,bj)
143         StoreDynVars3D(I,J,K,bi,bj,2) = gt(I,J,K,bi,bj)                     StoreDynVars3D(I,J,K,bi,bj,2) = gt(I,J,K,bi,bj)
144         StoreDynVars3D(I,J,K,bi,bj,3) = gtnm1(I,J,K,bi,bj)              #ifdef ALLOW_ADAMSBASHFORTH_3
145         StoreDynVars3D(I,J,K,bi,bj,4) = gsnm1(I,J,K,bi,bj)                     StoreDynVars3D(I,J,K,bi,bj,3) = gtnm(I,J,K,bi,bj,1)
146         StoreDynVars3D(I,J,K,bi,bj,5) = gunm1(I,J,K,bi,bj)                     StoreDynVars3D(I,J,K,bi,bj,4) = gsnm(I,J,K,bi,bj,1)
147         StoreDynVars3D(I,J,K,bi,bj,6) = gvnm1(I,J,K,bi,bj)                     StoreDynVars3D(I,J,K,bi,bj,5) = gunm(I,J,K,bi,bj,1)
148         StoreDynVars3D(I,J,K,bi,bj,7) = theta(I,J,K,bi,bj)                     StoreDynVars3D(I,J,K,bi,bj,6) = gvnm(I,J,K,bi,bj,1)
149         StoreDynVars3D(I,J,K,bi,bj,8) = salt(I,J,K,bi,bj)              #else
150         StoreDynVars3D(I,J,K,bi,bj,9) = uvel(I,J,K,bi,bj)                     StoreDynVars3D(I,J,K,bi,bj,3) = gtnm1(I,J,K,bi,bj)
151         StoreDynVars3D(I,J,K,bi,bj,10) = vvel(I,J,K,bi,bj)             StoreDynVars3D(I,J,K,bi,bj,4) = gsnm1(I,J,K,bi,bj)
152           StoreDynVars3D(I,J,K,bi,bj,5) = gunm1(I,J,K,bi,bj)
153           StoreDynVars3D(I,J,K,bi,bj,6) = gvnm1(I,J,K,bi,bj)
154    #endif
155           StoreDynVars3D(I,J,K,bi,bj,7) = theta(I,J,K,bi,bj)
156           StoreDynVars3D(I,J,K,bi,bj,8) = salt(I,J,K,bi,bj)
157           StoreDynVars3D(I,J,K,bi,bj,9) = uvel(I,J,K,bi,bj)
158           StoreDynVars3D(I,J,K,bi,bj,10) = vvel(I,J,K,bi,bj)
159         StoreDynVars3D(I,J,K,bi,bj,11) = wvel(I,J,K,bi,bj)         StoreDynVars3D(I,J,K,bi,bj,11) = wvel(I,J,K,bi,bj)
160         StoreDynVars3D(I,J,K,bi,bj,12) = totphihyd(I,J,K,bi,bj)         StoreDynVars3D(I,J,K,bi,bj,12) = totphihyd(I,J,K,bi,bj)
161    #ifdef ALLOW_ADAMSBASHFORTH_3
162           StoreDynVars3D(I,J,K,bi,bj,13) = gtnm(I,J,K,bi,bj,2)
163           StoreDynVars3D(I,J,K,bi,bj,14) = gsnm(I,J,K,bi,bj,2)
164           StoreDynVars3D(I,J,K,bi,bj,15) = gunm(I,J,K,bi,bj,2)
165           StoreDynVars3D(I,J,K,bi,bj,16) = gvnm(I,J,K,bi,bj,2)
166    #endif
167            ENDDO            ENDDO
168           ENDDO           ENDDO
169          ENDDO          ENDDO
# Line 155  C-      3D arrays Line 171  C-      3D arrays
171    
172         ENDDO         ENDDO
173        ENDDO        ENDDO
174      
175  #ifdef ALLOW_EXF  #ifdef ALLOW_EXF
176    
177  C--   Over all tiles  C--   Over all tiles
# Line 215  C-      2D arrays Line 231  C-      2D arrays
231          enddo          enddo
232         enddo         enddo
233        enddo        enddo
234          
235  # if (defined (ALLOW_ATM_TEMP) || defined (ALLOW_ATM_WIND))  # if (defined (ALLOW_ATM_TEMP) || defined (ALLOW_ATM_WIND))
236  C--   Over all tiles  C--   Over all tiles
237        DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
# Line 232  C-      2D arrays Line 248  C-      2D arrays
248            StoreEXF2(I,J,bi,bj,6) = precip1(I,J,bi,bj)            StoreEXF2(I,J,bi,bj,6) = precip1(I,J,bi,bj)
249            StoreEXF2(I,J,bi,bj,7) = lwflux0(I,J,bi,bj)            StoreEXF2(I,J,bi,bj,7) = lwflux0(I,J,bi,bj)
250            StoreEXF2(I,J,bi,bj,8) = lwflux1(I,J,bi,bj)            StoreEXF2(I,J,bi,bj,8) = lwflux1(I,J,bi,bj)
251              StoreEXF2(I,J,bi,bj,9)  = snowprecip0(I,J,bi,bj)
252              StoreEXF2(I,J,bi,bj,10) = snowprecip1(I,J,bi,bj)
253  #   ifdef EXF_READ_EVAP  #   ifdef EXF_READ_EVAP
254            StoreEXF2(I,J,bi,bj,9) = evap0(I,J,bi,bj)            StoreEXF2(I,J,bi,bj,11) = evap0(I,J,bi,bj)
255            StoreEXF2(I,J,bi,bj,10) = evap1(I,J,bi,bj)            StoreEXF2(I,J,bi,bj,12) = evap1(I,J,bi,bj)
256  #   else  #   else
257            StoreEXF2(I,J,bi,bj,9) = evap(I,J,bi,bj)            StoreEXF2(I,J,bi,bj,11) = evap(I,J,bi,bj)
258            StoreEXF2(I,J,bi,bj,10) = 0.0            StoreEXF2(I,J,bi,bj,12) = 0.0
259  #   endif /* EXF_READ_EVAP */  #   endif /* EXF_READ_EVAP */
260  #   ifdef ALLOW_DOWNWARD_RADIATION  #   ifdef ALLOW_DOWNWARD_RADIATION
261            StoreEXF2(I,J,bi,bj,11) = swdown0(I,J,bi,bj)            StoreEXF2(I,J,bi,bj,13) = swdown0(I,J,bi,bj)
262            StoreEXF2(I,J,bi,bj,12) = swdown1(I,J,bi,bj)            StoreEXF2(I,J,bi,bj,14) = swdown1(I,J,bi,bj)
263            StoreEXF2(I,J,bi,bj,13) = lwdown0(I,J,bi,bj)            StoreEXF2(I,J,bi,bj,15) = lwdown0(I,J,bi,bj)
264            StoreEXF2(I,J,bi,bj,14) = lwdown1(I,J,bi,bj)            StoreEXF2(I,J,bi,bj,16) = lwdown1(I,J,bi,bj)
265  #   else  #   else
           StoreEXF2(I,J,bi,bj,11) = 0.0  
           StoreEXF2(I,J,bi,bj,12) = 0.0  
266            StoreEXF2(I,J,bi,bj,13) = 0.0            StoreEXF2(I,J,bi,bj,13) = 0.0
267            StoreEXF2(I,J,bi,bj,14) = 0.0            StoreEXF2(I,J,bi,bj,14) = 0.0
268              StoreEXF2(I,J,bi,bj,15) = 0.0
269              StoreEXF2(I,J,bi,bj,16) = 0.0
270  #   endif  #   endif
271  #  endif /* ALLOW_ATM_TEMP */  #  endif /* ALLOW_ATM_TEMP */
272  #  ifdef ALLOW_ATM_WIND  #  ifdef ALLOW_ATM_WIND
273            StoreEXF2(I,J,bi,bj,15) = uwind0(I,J,bi,bj)            StoreEXF2(I,J,bi,bj,17) = uwind0(I,J,bi,bj)
274            StoreEXF2(I,J,bi,bj,16) = uwind1(I,J,bi,bj)            StoreEXF2(I,J,bi,bj,18) = uwind1(I,J,bi,bj)
275            StoreEXF2(I,J,bi,bj,17) = vwind0(I,J,bi,bj)            StoreEXF2(I,J,bi,bj,19) = vwind0(I,J,bi,bj)
276            StoreEXF2(I,J,bi,bj,18) = vwind1(I,J,bi,bj)            StoreEXF2(I,J,bi,bj,20) = vwind1(I,J,bi,bj)
277  #  else /* ALLOW_ATM_WIND undef */  #  else /* ALLOW_ATM_WIND undef */
           StoreEXF2(I,J,bi,bj,15) = 0.0  
           StoreEXF2(I,J,bi,bj,16) = 0.0  
278            StoreEXF2(I,J,bi,bj,17) = 0.0            StoreEXF2(I,J,bi,bj,17) = 0.0
279            StoreEXF2(I,J,bi,bj,18) = 0.0            StoreEXF2(I,J,bi,bj,18) = 0.0
280              StoreEXF2(I,J,bi,bj,19) = 0.0
281              StoreEXF2(I,J,bi,bj,20) = 0.0
282  #  endif  /* ALLOW_ATM_WIND */  #  endif  /* ALLOW_ATM_WIND */
283           enddo           enddo
284          enddo          enddo
# Line 277  C-      2D arrays Line 295  C-      2D arrays
295  # ifdef ALLOW_UWIND_CONTROL  # ifdef ALLOW_UWIND_CONTROL
296            StoreCTRLS1(I,J,bi,bj,1) = xx_uwind0(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,1) = xx_uwind0(I,J,bi,bj)
297            StoreCTRLS1(I,J,bi,bj,2) = xx_uwind1(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,2) = xx_uwind1(I,J,bi,bj)
298  #  else              #  else
299            StoreCTRLS1(I,J,bi,bj,1) = 0.0            StoreCTRLS1(I,J,bi,bj,1) = 0.0
300            StoreCTRLS1(I,J,bi,bj,2) = 0.0            StoreCTRLS1(I,J,bi,bj,2) = 0.0
301  #  endif  #  endif
302  # ifdef ALLOW_VWIND_CONTROL  # ifdef ALLOW_VWIND_CONTROL
303            StoreCTRLS1(I,J,bi,bj,3) = xx_vwind0(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,3) = xx_vwind0(I,J,bi,bj)
304            StoreCTRLS1(I,J,bi,bj,4) = xx_vwind1(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,4) = xx_vwind1(I,J,bi,bj)
305  #  else              #  else
306            StoreCTRLS1(I,J,bi,bj,3) = 0.0            StoreCTRLS1(I,J,bi,bj,3) = 0.0
307            StoreCTRLS1(I,J,bi,bj,4) = 0.0            StoreCTRLS1(I,J,bi,bj,4) = 0.0
308  #  endif  #  endif
309  # ifdef ALLOW_ATEMP_CONTROL  # ifdef ALLOW_ATEMP_CONTROL
310            StoreCTRLS1(I,J,bi,bj,5) = xx_atemp0(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,5) = xx_atemp0(I,J,bi,bj)
311            StoreCTRLS1(I,J,bi,bj,6) = xx_atemp1(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,6) = xx_atemp1(I,J,bi,bj)
312  #  else              #  else
313            StoreCTRLS1(I,J,bi,bj,5) = 0.0            StoreCTRLS1(I,J,bi,bj,5) = 0.0
314            StoreCTRLS1(I,J,bi,bj,6) = 0.0            StoreCTRLS1(I,J,bi,bj,6) = 0.0
315  #  endif  #  endif
316  # ifdef ALLOW_AQH_CONTROL  # ifdef ALLOW_AQH_CONTROL
317            StoreCTRLS1(I,J,bi,bj,7) = xx_aqh0(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,7) = xx_aqh0(I,J,bi,bj)
318            StoreCTRLS1(I,J,bi,bj,8) = xx_aqh1(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,8) = xx_aqh1(I,J,bi,bj)
319  #  else              #  else
320            StoreCTRLS1(I,J,bi,bj,7) = 0.0            StoreCTRLS1(I,J,bi,bj,7) = 0.0
321            StoreCTRLS1(I,J,bi,bj,8) = 0.0            StoreCTRLS1(I,J,bi,bj,8) = 0.0
322  #  endif  #  endif
323  # ifdef ALLOW_PRECIP_CONTROL  # ifdef ALLOW_PRECIP_CONTROL
324            StoreCTRLS1(I,J,bi,bj,9) = xx_precip0(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,9) = xx_precip0(I,J,bi,bj)
325            StoreCTRLS1(I,J,bi,bj,10) = xx_precip1(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,10) = xx_precip1(I,J,bi,bj)
326  #  else              #  else
327            StoreCTRLS1(I,J,bi,bj,9) = 0.0            StoreCTRLS1(I,J,bi,bj,9) = 0.0
328            StoreCTRLS1(I,J,bi,bj,10) = 0.0            StoreCTRLS1(I,J,bi,bj,10) = 0.0
329  #  endif  #  endif
330  # ifdef ALLOW_SWFLUX_CONTROL  # ifdef ALLOW_SNOWPRECIP_CONTROL
331            StoreCTRLS1(I,J,bi,bj,11) = xx_swflux0(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,11) = xx_snowprecip0(I,J,bi,bj)
332            StoreCTRLS1(I,J,bi,bj,12) = xx_swflux1(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,12) = xx_snowprecip1(I,J,bi,bj)
333  #  else              #  else
334            StoreCTRLS1(I,J,bi,bj,11) = 0.0            StoreCTRLS1(I,J,bi,bj,11) = 0.0
335            StoreCTRLS1(I,J,bi,bj,12) = 0.0            StoreCTRLS1(I,J,bi,bj,12) = 0.0
336  #  endif  #  endif
337  #  ifdef ALLOW_SWDOWN_CONTROL  # ifdef ALLOW_SWFLUX_CONTROL
338            StoreCTRLS1(I,J,bi,bj,13) = xx_swdown0(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,13) = xx_swflux0(I,J,bi,bj)
339            StoreCTRLS1(I,J,bi,bj,14) = xx_swdown1(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,14) = xx_swflux1(I,J,bi,bj)
340  #  else              #  else
341            StoreCTRLS1(I,J,bi,bj,13) = 0.0            StoreCTRLS1(I,J,bi,bj,13) = 0.0
342            StoreCTRLS1(I,J,bi,bj,14) = 0.0            StoreCTRLS1(I,J,bi,bj,14) = 0.0
343  #  endif  #  endif
344  #  ifdef ALLOW_LWDOWN_CONTROL  #  ifdef ALLOW_SWDOWN_CONTROL
345            StoreCTRLS1(I,J,bi,bj,15) = xx_lwdown0(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,15) = xx_swdown0(I,J,bi,bj)
346            StoreCTRLS1(I,J,bi,bj,16) = xx_lwdown1(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,16) = xx_swdown1(I,J,bi,bj)
347  #  else              #  else
348            StoreCTRLS1(I,J,bi,bj,15) = 0.0            StoreCTRLS1(I,J,bi,bj,15) = 0.0
349            StoreCTRLS1(I,J,bi,bj,16) = 0.0            StoreCTRLS1(I,J,bi,bj,16) = 0.0
350  #  endif  #  endif
351  #  ifdef ALLOW_APRESSURE_CONTROL  #  ifdef ALLOW_LWDOWN_CONTROL
352            StoreCTRLS1(I,J,bi,bj,17) = xx_apressure0(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,17) = xx_lwdown0(I,J,bi,bj)
353            StoreCTRLS1(I,J,bi,bj,18) = xx_apressure1(I,J,bi,bj)            StoreCTRLS1(I,J,bi,bj,18) = xx_lwdown1(I,J,bi,bj)
354  #  else              #  else
355            StoreCTRLS1(I,J,bi,bj,17) = 0.0            StoreCTRLS1(I,J,bi,bj,17) = 0.0
356            StoreCTRLS1(I,J,bi,bj,18) = 0.0            StoreCTRLS1(I,J,bi,bj,18) = 0.0
357  #  endif  #  endif
358    #  ifdef ALLOW_APRESSURE_CONTROL
359              StoreCTRLS1(I,J,bi,bj,19) = xx_apressure0(I,J,bi,bj)
360              StoreCTRLS1(I,J,bi,bj,20) = xx_apressure1(I,J,bi,bj)
361    #  else
362              StoreCTRLS1(I,J,bi,bj,19) = 0.0
363              StoreCTRLS1(I,J,bi,bj,20) = 0.0
364    #  endif
365           enddo           enddo
366          enddo          enddo
367         enddo         enddo
# Line 351  C--   Over all tiles Line 376  C--   Over all tiles
376  C-      2D arrays  C-      2D arrays
377          DO K=1,Nr          DO K=1,Nr
378           DO I=1-Olx,sNx+Olx           DO I=1-Olx,sNx+Olx
379            StoreOBCSN(I,Nr,bi,bj,1) = OBNt(I,Nr,bi,bj)            StoreOBCSN(I,K,bi,bj,1) = OBNt(I,K,bi,bj)
380            StoreOBCSN(I,Nr,bi,bj,2) = OBNs(I,Nr,bi,bj)            StoreOBCSN(I,K,bi,bj,2) = OBNs(I,K,bi,bj)
381            StoreOBCSN(I,Nr,bi,bj,3) = OBNu0(I,Nr,bi,bj)            StoreOBCSN(I,K,bi,bj,3) = OBNu0(I,K,bi,bj)
382            StoreOBCSN(I,Nr,bi,bj,4) = OBNv0(I,Nr,bi,bj)            StoreOBCSN(I,K,bi,bj,4) = OBNv0(I,K,bi,bj)
383            StoreOBCSN(I,Nr,bi,bj,5) = OBNt0(I,Nr,bi,bj)            StoreOBCSN(I,K,bi,bj,5) = OBNt0(I,K,bi,bj)
384            StoreOBCSN(I,Nr,bi,bj,6) = OBNs0(I,Nr,bi,bj)            StoreOBCSN(I,K,bi,bj,6) = OBNs0(I,K,bi,bj)
385            StoreOBCSN(I,Nr,bi,bj,7) = OBNu1(I,Nr,bi,bj)            StoreOBCSN(I,K,bi,bj,7) = OBNu1(I,K,bi,bj)
386            StoreOBCSN(I,Nr,bi,bj,8) = OBNv1(I,Nr,bi,bj)            StoreOBCSN(I,K,bi,bj,8) = OBNv1(I,K,bi,bj)
387            StoreOBCSN(I,Nr,bi,bj,9) = OBNt1(I,Nr,bi,bj)            StoreOBCSN(I,K,bi,bj,9) = OBNt1(I,K,bi,bj)
388            StoreOBCSN(I,Nr,bi,bj,10) = OBNs1(I,Nr,bi,bj)            StoreOBCSN(I,K,bi,bj,10) = OBNs1(I,K,bi,bj)
389  #  ifdef ALLOW_OBCSN_CONTROL  #  ifdef ALLOW_OBCSN_CONTROL
390            StoreOBCSN(I,Nr,bi,bj,11) = xx_obcsn0(I,Nr,bi,bj,1)            StoreOBCSN(I,K,bi,bj,11) = xx_obcsn0(I,K,bi,bj,1)
391            StoreOBCSN(I,Nr,bi,bj,12) = xx_obcsn0(I,Nr,bi,bj,2)            StoreOBCSN(I,K,bi,bj,12) = xx_obcsn0(I,K,bi,bj,2)
392            StoreOBCSN(I,Nr,bi,bj,13) = xx_obcsn0(I,Nr,bi,bj,3)            StoreOBCSN(I,K,bi,bj,13) = xx_obcsn0(I,K,bi,bj,3)
393            StoreOBCSN(I,Nr,bi,bj,14) = xx_obcsn0(I,Nr,bi,bj,4)            StoreOBCSN(I,K,bi,bj,14) = xx_obcsn0(I,K,bi,bj,4)
394            StoreOBCSN(I,Nr,bi,bj,15) = xx_obcsn1(I,Nr,bi,bj,1)            StoreOBCSN(I,K,bi,bj,15) = xx_obcsn1(I,K,bi,bj,1)
395            StoreOBCSN(I,Nr,bi,bj,16) = xx_obcsn1(I,Nr,bi,bj,2)            StoreOBCSN(I,K,bi,bj,16) = xx_obcsn1(I,K,bi,bj,2)
396            StoreOBCSN(I,Nr,bi,bj,17) = xx_obcsn1(I,Nr,bi,bj,3)            StoreOBCSN(I,K,bi,bj,17) = xx_obcsn1(I,K,bi,bj,3)
397            StoreOBCSN(I,Nr,bi,bj,18) = xx_obcsn1(I,Nr,bi,bj,4)            StoreOBCSN(I,K,bi,bj,18) = xx_obcsn1(I,K,bi,bj,4)
398  # else  # else
399            StoreOBCSN(I,Nr,bi,bj,11) = 0.0            StoreOBCSN(I,K,bi,bj,11) = 0.0
400            StoreOBCSN(I,Nr,bi,bj,12) = 0.0            StoreOBCSN(I,K,bi,bj,12) = 0.0
401            StoreOBCSN(I,Nr,bi,bj,13) = 0.0            StoreOBCSN(I,K,bi,bj,13) = 0.0
402            StoreOBCSN(I,Nr,bi,bj,14) = 0.0            StoreOBCSN(I,K,bi,bj,14) = 0.0
403            StoreOBCSN(I,Nr,bi,bj,15) = 0.0            StoreOBCSN(I,K,bi,bj,15) = 0.0
404            StoreOBCSN(I,Nr,bi,bj,16) = 0.0            StoreOBCSN(I,K,bi,bj,16) = 0.0
405            StoreOBCSN(I,Nr,bi,bj,17) = 0.0            StoreOBCSN(I,K,bi,bj,17) = 0.0
406            StoreOBCSN(I,Nr,bi,bj,18) = 0.0            StoreOBCSN(I,K,bi,bj,18) = 0.0
407  #  endif  #  endif
408           enddo           enddo
409          enddo          enddo
410         enddo         enddo
411        enddo        enddo
412  # endif /* ALLOW_OBCS_NORTH */        # endif /* ALLOW_OBCS_NORTH */
413    
414  # ifdef ALLOW_OBCS_SOUTH  # ifdef ALLOW_OBCS_SOUTH
415  C--   Over all tiles  C--   Over all tiles
# Line 393  C--   Over all tiles Line 418  C--   Over all tiles
418  C-      2D arrays  C-      2D arrays
419          DO K=1,Nr          DO K=1,Nr
420           DO I=1-Olx,sNx+Olx           DO I=1-Olx,sNx+Olx
421            StoreOBCSS(I,Nr,bi,bj,1) = OBSt(I,Nr,bi,bj)            StoreOBCSS(I,K,bi,bj,1) = OBSt(I,K,bi,bj)
422            StoreOBCSS(I,Nr,bi,bj,2) = OBSs(I,Nr,bi,bj)            StoreOBCSS(I,K,bi,bj,2) = OBSs(I,K,bi,bj)
423            StoreOBCSS(I,Nr,bi,bj,3) = OBSu0(I,Nr,bi,bj)            StoreOBCSS(I,K,bi,bj,3) = OBSu0(I,K,bi,bj)
424            StoreOBCSS(I,Nr,bi,bj,4) = OBSv0(I,Nr,bi,bj)            StoreOBCSS(I,K,bi,bj,4) = OBSv0(I,K,bi,bj)
425            StoreOBCSS(I,Nr,bi,bj,5) = OBSt0(I,Nr,bi,bj)            StoreOBCSS(I,K,bi,bj,5) = OBSt0(I,K,bi,bj)
426            StoreOBCSS(I,Nr,bi,bj,6) = OBSs0(I,Nr,bi,bj)            StoreOBCSS(I,K,bi,bj,6) = OBSs0(I,K,bi,bj)
427            StoreOBCSS(I,Nr,bi,bj,7) = OBSu1(I,Nr,bi,bj)            StoreOBCSS(I,K,bi,bj,7) = OBSu1(I,K,bi,bj)
428            StoreOBCSS(I,Nr,bi,bj,8) = OBSv1(I,Nr,bi,bj)            StoreOBCSS(I,K,bi,bj,8) = OBSv1(I,K,bi,bj)
429            StoreOBCSS(I,Nr,bi,bj,9) = OBSt1(I,Nr,bi,bj)            StoreOBCSS(I,K,bi,bj,9) = OBSt1(I,K,bi,bj)
430            StoreOBCSS(I,Nr,bi,bj,10)= OBSs1(I,Nr,bi,bj)            StoreOBCSS(I,K,bi,bj,10)= OBSs1(I,K,bi,bj)
431  #  ifdef ALLOW_OBCSS_CONTROL  #  ifdef ALLOW_OBCSS_CONTROL
432            StoreOBCSS(I,Nr,bi,bj,11) = xx_obcss0(I,Nr,bi,bj,1)            StoreOBCSS(I,K,bi,bj,11) = xx_obcss0(I,K,bi,bj,1)
433            StoreOBCSS(I,Nr,bi,bj,12) = xx_obcss0(I,Nr,bi,bj,2)            StoreOBCSS(I,K,bi,bj,12) = xx_obcss0(I,K,bi,bj,2)
434            StoreOBCSS(I,Nr,bi,bj,13) = xx_obcss0(I,Nr,bi,bj,3)            StoreOBCSS(I,K,bi,bj,13) = xx_obcss0(I,K,bi,bj,3)
435            StoreOBCSS(I,Nr,bi,bj,14) = xx_obcss0(I,Nr,bi,bj,4)            StoreOBCSS(I,K,bi,bj,14) = xx_obcss0(I,K,bi,bj,4)
436            StoreOBCSS(I,Nr,bi,bj,15) = xx_obcss1(I,Nr,bi,bj,1)            StoreOBCSS(I,K,bi,bj,15) = xx_obcss1(I,K,bi,bj,1)
437            StoreOBCSS(I,Nr,bi,bj,16) = xx_obcss1(I,Nr,bi,bj,2)            StoreOBCSS(I,K,bi,bj,16) = xx_obcss1(I,K,bi,bj,2)
438            StoreOBCSS(I,Nr,bi,bj,17) = xx_obcss1(I,Nr,bi,bj,3)            StoreOBCSS(I,K,bi,bj,17) = xx_obcss1(I,K,bi,bj,3)
439            StoreOBCSS(I,Nr,bi,bj,18) = xx_obcss1(I,Nr,bi,bj,4)            StoreOBCSS(I,K,bi,bj,18) = xx_obcss1(I,K,bi,bj,4)
440  # else  # else
441            StoreOBCSS(I,Nr,bi,bj,11) = 0.0            StoreOBCSS(I,K,bi,bj,11) = 0.0
442            StoreOBCSS(I,Nr,bi,bj,12) = 0.0            StoreOBCSS(I,K,bi,bj,12) = 0.0
443            StoreOBCSS(I,Nr,bi,bj,13) = 0.0            StoreOBCSS(I,K,bi,bj,13) = 0.0
444            StoreOBCSS(I,Nr,bi,bj,14) = 0.0            StoreOBCSS(I,K,bi,bj,14) = 0.0
445            StoreOBCSS(I,Nr,bi,bj,15) = 0.0            StoreOBCSS(I,K,bi,bj,15) = 0.0
446            StoreOBCSS(I,Nr,bi,bj,16) = 0.0            StoreOBCSS(I,K,bi,bj,16) = 0.0
447            StoreOBCSS(I,Nr,bi,bj,17) = 0.0            StoreOBCSS(I,K,bi,bj,17) = 0.0
448            StoreOBCSS(I,Nr,bi,bj,18) = 0.0            StoreOBCSS(I,K,bi,bj,18) = 0.0
449  #  endif  #  endif
450           enddo           enddo
451          enddo          enddo
452         enddo         enddo
453        enddo        enddo
454  # endif /* ALLOW_OBCS_SOUTH */        # endif /* ALLOW_OBCS_SOUTH */
455    
456  # ifdef ALLOW_OBCS_EAST  # ifdef ALLOW_OBCS_EAST
457  C--   Over all tiles  C--   Over all tiles
# Line 435  C--   Over all tiles Line 460  C--   Over all tiles
460  C-      2D arrays  C-      2D arrays
461          DO K=1,Nr          DO K=1,Nr
462           DO J=1-Oly,sNy+Oly           DO J=1-Oly,sNy+Oly
463            StoreOBCSE(J,Nr,bi,bj,1) = OBEt(J,Nr,bi,bj)            StoreOBCSE(J,K,bi,bj,1) = OBEt(J,K,bi,bj)
464            StoreOBCSE(J,Nr,bi,bj,2) = OBEs(J,Nr,bi,bj)            StoreOBCSE(J,K,bi,bj,2) = OBEs(J,K,bi,bj)
465            StoreOBCSE(J,Nr,bi,bj,3) = OBEu0(J,Nr,bi,bj)            StoreOBCSE(J,K,bi,bj,3) = OBEu0(J,K,bi,bj)
466            StoreOBCSE(J,Nr,bi,bj,4) = OBEv0(J,Nr,bi,bj)            StoreOBCSE(J,K,bi,bj,4) = OBEv0(J,K,bi,bj)
467            StoreOBCSE(J,Nr,bi,bj,5) = OBEt0(J,Nr,bi,bj)            StoreOBCSE(J,K,bi,bj,5) = OBEt0(J,K,bi,bj)
468            StoreOBCSE(J,Nr,bi,bj,6) = OBEs0(J,Nr,bi,bj)            StoreOBCSE(J,K,bi,bj,6) = OBEs0(J,K,bi,bj)
469            StoreOBCSE(J,Nr,bi,bj,7) = OBEu1(J,Nr,bi,bj)            StoreOBCSE(J,K,bi,bj,7) = OBEu1(J,K,bi,bj)
470            StoreOBCSE(J,Nr,bi,bj,8) = OBEv1(J,Nr,bi,bj)            StoreOBCSE(J,K,bi,bj,8) = OBEv1(J,K,bi,bj)
471            StoreOBCSE(J,Nr,bi,bj,9) = OBEt1(J,Nr,bi,bj)            StoreOBCSE(J,K,bi,bj,9) = OBEt1(J,K,bi,bj)
472            StoreOBCSE(J,Nr,bi,bj,10)= OBEs1(J,Nr,bi,bj)            StoreOBCSE(J,K,bi,bj,10)= OBEs1(J,K,bi,bj)
473  #  ifdef ALLOW_OBCSE_CONTROL  #  ifdef ALLOW_OBCSE_CONTROL
474            StoreOBCSE(J,Nr,bi,bj,11) = xx_obcse0(J,Nr,bi,bj,1)            StoreOBCSE(J,K,bi,bj,11) = xx_obcse0(J,K,bi,bj,1)
475            StoreOBCSE(J,Nr,bi,bj,12) = xx_obcse0(J,Nr,bi,bj,2)            StoreOBCSE(J,K,bi,bj,12) = xx_obcse0(J,K,bi,bj,2)
476            StoreOBCSE(J,Nr,bi,bj,13) = xx_obcse0(J,Nr,bi,bj,3)            StoreOBCSE(J,K,bi,bj,13) = xx_obcse0(J,K,bi,bj,3)
477            StoreOBCSE(J,Nr,bi,bj,14) = xx_obcse0(J,Nr,bi,bj,4)            StoreOBCSE(J,K,bi,bj,14) = xx_obcse0(J,K,bi,bj,4)
478            StoreOBCSE(J,Nr,bi,bj,15) = xx_obcse1(J,Nr,bi,bj,1)            StoreOBCSE(J,K,bi,bj,15) = xx_obcse1(J,K,bi,bj,1)
479            StoreOBCSE(J,Nr,bi,bj,16) = xx_obcse1(J,Nr,bi,bj,2)            StoreOBCSE(J,K,bi,bj,16) = xx_obcse1(J,K,bi,bj,2)
480            StoreOBCSE(J,Nr,bi,bj,17) = xx_obcse1(J,Nr,bi,bj,3)            StoreOBCSE(J,K,bi,bj,17) = xx_obcse1(J,K,bi,bj,3)
481            StoreOBCSE(J,Nr,bi,bj,18) = xx_obcse1(J,Nr,bi,bj,4)            StoreOBCSE(J,K,bi,bj,18) = xx_obcse1(J,K,bi,bj,4)
482  # else  # else
483            StoreOBCSE(J,Nr,bi,bj,11) = 0.0            StoreOBCSE(J,K,bi,bj,11) = 0.0
484            StoreOBCSE(J,Nr,bi,bj,12) = 0.0            StoreOBCSE(J,K,bi,bj,12) = 0.0
485            StoreOBCSE(J,Nr,bi,bj,13) = 0.0            StoreOBCSE(J,K,bi,bj,13) = 0.0
486            StoreOBCSE(J,Nr,bi,bj,14) = 0.0            StoreOBCSE(J,K,bi,bj,14) = 0.0
487            StoreOBCSE(J,Nr,bi,bj,15) = 0.0            StoreOBCSE(J,K,bi,bj,15) = 0.0
488            StoreOBCSE(J,Nr,bi,bj,16) = 0.0            StoreOBCSE(J,K,bi,bj,16) = 0.0
489            StoreOBCSE(J,Nr,bi,bj,17) = 0.0            StoreOBCSE(J,K,bi,bj,17) = 0.0
490            StoreOBCSE(J,Nr,bi,bj,18) = 0.0            StoreOBCSE(J,K,bi,bj,18) = 0.0
491  #  endif  #  endif
492           enddo           enddo
493          enddo          enddo
494         enddo         enddo
495        enddo        enddo
496  # endif /* ALLOW_OBCS_EAST */      # endif /* ALLOW_OBCS_EAST */
497    
498  # ifdef ALLOW_OBCS_WEST  # ifdef ALLOW_OBCS_WEST
499  C--   Over all tiles  C--   Over all tiles
# Line 477  C--   Over all tiles Line 502  C--   Over all tiles
502  C-      2D arrays  C-      2D arrays
503          DO K=1,Nr          DO K=1,Nr
504           DO J=1-Oly,sNy+Oly           DO J=1-Oly,sNy+Oly
505            StoreOBCSW(J,Nr,bi,bj,1) = OBWt(J,Nr,bi,bj)            StoreOBCSW(J,K,bi,bj,1) = OBWt(J,K,bi,bj)
506            StoreOBCSW(J,Nr,bi,bj,2) = OBWs(J,Nr,bi,bj)            StoreOBCSW(J,K,bi,bj,2) = OBWs(J,K,bi,bj)
507            StoreOBCSW(J,Nr,bi,bj,3) = OBWu0(J,Nr,bi,bj)            StoreOBCSW(J,K,bi,bj,3) = OBWu0(J,K,bi,bj)
508            StoreOBCSW(J,Nr,bi,bj,4) = OBWv0(J,Nr,bi,bj)            StoreOBCSW(J,K,bi,bj,4) = OBWv0(J,K,bi,bj)
509            StoreOBCSW(J,Nr,bi,bj,5) = OBWt0(J,Nr,bi,bj)            StoreOBCSW(J,K,bi,bj,5) = OBWt0(J,K,bi,bj)
510            StoreOBCSW(J,Nr,bi,bj,6) = OBWs0(J,Nr,bi,bj)            StoreOBCSW(J,K,bi,bj,6) = OBWs0(J,K,bi,bj)
511            StoreOBCSW(J,Nr,bi,bj,7) = OBWu1(J,Nr,bi,bj)            StoreOBCSW(J,K,bi,bj,7) = OBWu1(J,K,bi,bj)
512            StoreOBCSW(J,Nr,bi,bj,8) = OBWv1(J,Nr,bi,bj)            StoreOBCSW(J,K,bi,bj,8) = OBWv1(J,K,bi,bj)
513            StoreOBCSW(J,Nr,bi,bj,9) = OBWt1(J,Nr,bi,bj)            StoreOBCSW(J,K,bi,bj,9) = OBWt1(J,K,bi,bj)
514            StoreOBCSW(J,Nr,bi,bj,10)= OBWs1(J,Nr,bi,bj)            StoreOBCSW(J,K,bi,bj,10)= OBWs1(J,K,bi,bj)
515  #  ifdef ALLOW_OBCSW_CONTROL  #  ifdef ALLOW_OBCSW_CONTROL
516            StoreOBCSW(J,Nr,bi,bj,11) = xx_obcsw0(J,Nr,bi,bj,1)            StoreOBCSW(J,K,bi,bj,11) = xx_obcsw0(J,K,bi,bj,1)
517            StoreOBCSW(J,Nr,bi,bj,12) = xx_obcsw0(J,Nr,bi,bj,2)            StoreOBCSW(J,K,bi,bj,12) = xx_obcsw0(J,K,bi,bj,2)
518            StoreOBCSW(J,Nr,bi,bj,13) = xx_obcsw0(J,Nr,bi,bj,3)            StoreOBCSW(J,K,bi,bj,13) = xx_obcsw0(J,K,bi,bj,3)
519            StoreOBCSW(J,Nr,bi,bj,14) = xx_obcsw0(J,Nr,bi,bj,4)            StoreOBCSW(J,K,bi,bj,14) = xx_obcsw0(J,K,bi,bj,4)
520            StoreOBCSW(J,Nr,bi,bj,15) = xx_obcsw1(J,Nr,bi,bj,1)            StoreOBCSW(J,K,bi,bj,15) = xx_obcsw1(J,K,bi,bj,1)
521            StoreOBCSW(J,Nr,bi,bj,16) = xx_obcsw1(J,Nr,bi,bj,2)            StoreOBCSW(J,K,bi,bj,16) = xx_obcsw1(J,K,bi,bj,2)
522            StoreOBCSW(J,Nr,bi,bj,17) = xx_obcsw1(J,Nr,bi,bj,3)            StoreOBCSW(J,K,bi,bj,17) = xx_obcsw1(J,K,bi,bj,3)
523            StoreOBCSW(J,Nr,bi,bj,18) = xx_obcsw1(J,Nr,bi,bj,4)            StoreOBCSW(J,K,bi,bj,18) = xx_obcsw1(J,K,bi,bj,4)
524  # else  # else
525            StoreOBCSW(J,Nr,bi,bj,11) = 0.0            StoreOBCSW(J,K,bi,bj,11) = 0.0
526            StoreOBCSW(J,Nr,bi,bj,12) = 0.0            StoreOBCSW(J,K,bi,bj,12) = 0.0
527            StoreOBCSW(J,Nr,bi,bj,13) = 0.0            StoreOBCSW(J,K,bi,bj,13) = 0.0
528            StoreOBCSW(J,Nr,bi,bj,14) = 0.0            StoreOBCSW(J,K,bi,bj,14) = 0.0
529            StoreOBCSW(J,Nr,bi,bj,15) = 0.0            StoreOBCSW(J,K,bi,bj,15) = 0.0
530            StoreOBCSW(J,Nr,bi,bj,16) = 0.0            StoreOBCSW(J,K,bi,bj,16) = 0.0
531            StoreOBCSW(J,Nr,bi,bj,17) = 0.0            StoreOBCSW(J,K,bi,bj,17) = 0.0
532            StoreOBCSW(J,Nr,bi,bj,18) = 0.0            StoreOBCSW(J,K,bi,bj,18) = 0.0
533  #  endif  #  endif
534           enddo           enddo
535          enddo          enddo
# Line 520  C--   Over all tiles Line 545  C--   Over all tiles
545  C-      2D arrays  C-      2D arrays
546          DO J=1-Oly,sNy+Oly          DO J=1-Oly,sNy+Oly
547           DO I=1-Olx,sNx+Olx           DO I=1-Olx,sNx+Olx
548            StoreSEAICE(I,J,bi,bj,1) = AREA(I,J,1,bi,bj)            StoreSEAICE(I,J,bi,bj,1) = AREA(I,J,bi,bj)
549            StoreSEAICE(I,J,bi,bj,2) = AREA(I,J,2,bi,bj)            StoreSEAICE(I,J,bi,bj,2) = HEFF(I,J,bi,bj)
550            StoreSEAICE(I,J,bi,bj,3) = AREA(I,J,3,bi,bj)            StoreSEAICE(I,J,bi,bj,3) = HSNOW(I,J,bi,bj)
551            StoreSEAICE(I,J,bi,bj,4) = HEFF(I,J,1,bi,bj)            StoreSEAICE(I,J,bi,bj,4) = TICE(I,J,bi,bj)
552            StoreSEAICE(I,J,bi,bj,5) = HEFF(I,J,2,bi,bj)            StoreSEAICE(I,J,bi,bj,5) = RUNOFF(I,J,bi,bj)
553            StoreSEAICE(I,J,bi,bj,6) = HEFF(I,J,3,bi,bj)                      StoreSEAICE(I,J,bi,bj,6) = 0.0
554            StoreSEAICE(I,J,bi,bj,7) = HSNOW(I,J,bi,bj)  #  ifdef SEAICE_CGRID
555            StoreSEAICE(I,J,bi,bj,8) = TICE(I,J,bi,bj)            StoreSEAICE(I,J,bi,bj,14) = stressDivergenceX(I,J,bi,bj)
556            StoreSEAICE(I,J,bi,bj,9) = RUNOFF(I,J,bi,bj)            StoreSEAICE(I,J,bi,bj,15) = stressDivergenceY(I,J,bi,bj)
557  # ifdef SEAICE_MULTICATEGORY  #  else
558            StoreSEAICE(I,J,bi,bj,10) = TICES(I,J,bi,bj)            StoreSEAICE(I,J,bi,bj,14) = 0.0
559  # else            StoreSEAICE(I,J,bi,bj,15) = 0.0
           StoreSEAICE(I,J,bi,bj,10) = 0.0  
560  # endif  # endif
561  # ifdef SEAICE_ALLOW_DYNAMICS  # ifdef SEAICE_ALLOW_DYNAMICS
562            StoreSEAICE(I,J,bi,bj,11) = UICE(I,J,1,bi,bj)            StoreSEAICE(I,J,bi,bj,7) = UICE(I,J,bi,bj)
563            StoreSEAICE(I,J,bi,bj,12) = UICE(I,J,2,bi,bj)            StoreSEAICE(I,J,bi,bj,8) = VICE(I,J,bi,bj)
564            StoreSEAICE(I,J,bi,bj,13) = UICE(I,J,3,bi,bj)            StoreSEAICE(I,J,bi,bj,9) = ZETA(I,J,bi,bj)
565            StoreSEAICE(I,J,bi,bj,14) = VICE(I,J,1,bi,bj)            StoreSEAICE(I,J,bi,bj,10) = ETA(I,J,bi,bj)
           StoreSEAICE(I,J,bi,bj,15) = VICE(I,J,2,bi,bj)  
           StoreSEAICE(I,J,bi,bj,16) = VICE(I,J,3,bi,bj)  
           StoreSEAICE(I,J,bi,bj,17) = ZETA(I,J,bi,bj)  
           StoreSEAICE(I,J,bi,bj,18) = ETA(I,J,bi,bj)  
566  #  ifdef SEAICE_CGRID  #  ifdef SEAICE_CGRID
567            StoreSEAICE(I,J,bi,bj,19) = dwatn(I,J,bi,bj)            StoreSEAICE(I,J,bi,bj,11) = dwatn(I,J,bi,bj)
568            StoreSEAICE(I,J,bi,bj,20) = seaicemasku(I,J,bi,bj)            StoreSEAICE(I,J,bi,bj,12) = seaicemasku(I,J,bi,bj)
569            StoreSEAICE(I,J,bi,bj,21) = seaicemaskv(I,J,bi,bj)            StoreSEAICE(I,J,bi,bj,13) = seaicemaskv(I,J,bi,bj)
570  #  else  #  else
571            StoreSEAICE(I,J,bi,bj,19) = 0.0                  StoreSEAICE(I,J,bi,bj,11) = 0.0
572            StoreSEAICE(I,J,bi,bj,20) = 0.0                      StoreSEAICE(I,J,bi,bj,12) = 0.0
573            StoreSEAICE(I,J,bi,bj,21) = 0.0            StoreSEAICE(I,J,bi,bj,15) = 0.0
574  #  endif /* SEAICE_CGRID */  #  endif /* SEAICE_CGRID */
575  #  ifdef SEAICE_ALLOW_EVP  #  ifdef SEAICE_ALLOW_EVP
576            StoreSEAICE(I,J,bi,bj,22) = seaice_sigma1(I,J,bi,bj)            StoreSEAICE(I,J,bi,bj,16) = seaice_sigma1(I,J,bi,bj)
577            StoreSEAICE(I,J,bi,bj,23) = seaice_sigma2(I,J,bi,bj)            StoreSEAICE(I,J,bi,bj,17) = seaice_sigma2(I,J,bi,bj)
578            StoreSEAICE(I,J,bi,bj,24) = seaice_sigma12(I,J,bi,bj)            StoreSEAICE(I,J,bi,bj,18) = seaice_sigma12(I,J,bi,bj)
579  #  else  #  else
580            StoreSEAICE(I,J,bi,bj,22) = 0.0                  StoreSEAICE(I,J,bi,bj,16) = 0.0
581            StoreSEAICE(I,J,bi,bj,23) = 0.0                      StoreSEAICE(I,J,bi,bj,17) = 0.0
582            StoreSEAICE(I,J,bi,bj,24) = 0.0            StoreSEAICE(I,J,bi,bj,18) = 0.0
583  #  endif /* SEAICE_ALLOW_EVP */  #  endif /* SEAICE_ALLOW_EVP */
584  # else  # else
585            StoreSEAICE(I,J,bi,bj,11) = 0.0                  StoreSEAICE(I,J,bi,bj,7) = 0.0
586            StoreSEAICE(I,J,bi,bj,12) = 0.0                      StoreSEAICE(I,J,bi,bj,8) = 0.0
587              StoreSEAICE(I,J,bi,bj,9) = 0.0
588              StoreSEAICE(I,J,bi,bj,10) = 0.0
589              StoreSEAICE(I,J,bi,bj,11) = 0.0
590              StoreSEAICE(I,J,bi,bj,12) = 0.0
591            StoreSEAICE(I,J,bi,bj,13) = 0.0            StoreSEAICE(I,J,bi,bj,13) = 0.0
592            StoreSEAICE(I,J,bi,bj,14) = 0.0                  StoreSEAICE(I,J,bi,bj,14) = 0.0
593            StoreSEAICE(I,J,bi,bj,15) = 0.0                      StoreSEAICE(I,J,bi,bj,15) = 0.0
594            StoreSEAICE(I,J,bi,bj,16) = 0.0            StoreSEAICE(I,J,bi,bj,16) = 0.0
595            StoreSEAICE(I,J,bi,bj,17) = 0.0                  StoreSEAICE(I,J,bi,bj,17) = 0.0
596            StoreSEAICE(I,J,bi,bj,18) = 0.0                      StoreSEAICE(I,J,bi,bj,18) = 0.0
           StoreSEAICE(I,J,bi,bj,19) = 0.0        
           StoreSEAICE(I,J,bi,bj,20) = 0.0            
           StoreSEAICE(I,J,bi,bj,21) = 0.0  
           StoreSEAICE(I,J,bi,bj,22) = 0.0        
           StoreSEAICE(I,J,bi,bj,23) = 0.0            
           StoreSEAICE(I,J,bi,bj,24) = 0.0  
597  # endif /* SEAICE_ALLOW_DYNAMICS */  # endif /* SEAICE_ALLOW_DYNAMICS */
598  # ifdef SEAICE_SALINITY  # ifdef SEAICE_VARIABLE_SALINITY
599            StoreSEAICE(I,J,bi,bj,25) = HSALT(I,J,bi,bj)            StoreSEAICE(I,J,bi,bj,19) = HSALT(I,J,bi,bj)
600  # else  # else
601            StoreSEAICE(I,J,bi,bj,25) = 0.0            StoreSEAICE(I,J,bi,bj,19) = 0.0
602  # endif  # endif
603           enddo           enddo
604          enddo          enddo
# Line 589  C-      2D arrays Line 607  C-      2D arrays
607  #endif /* ALLOW_SEAICE */  #endif /* ALLOW_SEAICE */
608    
609  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
610        IF ( debugLevel .GE. debLevB )        IF ( debugMode ) CALL DEBUG_LEAVE('AUTODIFF_STORE',myThid)
      &    CALL DEBUG_LEAVE('AUTODIFF_STORE',myThid)  
611  #endif  #endif
612    
613  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
# Line 598  c************************************** Line 615  c**************************************
615    
616        return        return
617        end        end
   

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.19

  ViewVC Help
Powered by ViewVC 1.1.22