32 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
33 |
#include "PARAMS.h" |
#include "PARAMS.h" |
34 |
c************************************** |
c************************************** |
|
#ifdef ALLOW_AUTODIFF_TAMC |
|
|
|
|
35 |
c These includes are needed for |
c These includes are needed for |
36 |
c AD-checkpointing. |
c AD-checkpointing. |
37 |
c They provide the fields to be stored. |
c They provide the fields to be stored. |
66 |
c mythid - thread number for this instance of the routine. |
c mythid - thread number for this instance of the routine. |
67 |
integer mythid |
integer mythid |
68 |
|
|
69 |
|
#ifdef ALLOW_AUTODIFF_TAMC |
70 |
c == local variables == |
c == local variables == |
71 |
|
|
72 |
integer bi,bj |
integer bi,bj |
74 |
|
|
75 |
c-- == end of interface == |
c-- == end of interface == |
76 |
|
|
77 |
#ifndef DISABLE_DEBUGMODE |
#ifdef ALLOW_DEBUG |
78 |
IF ( debugLevel .GE. debLevB ) |
IF ( debugLevel .GE. debLevB ) |
79 |
& CALL DEBUG_ENTER('AUTODIFF_STORE',myThid) |
& CALL DEBUG_ENTER('AUTODIFF_STORE',myThid) |
80 |
#endif |
#endif |
82 |
C-- Over all tiles |
C-- Over all tiles |
83 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
84 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
85 |
|
|
86 |
|
#ifndef AUTODIFF_USE_OLDSTORE_2D |
87 |
C- 2D arrays |
C- 2D arrays |
88 |
DO J=1-Oly,sNy+Oly |
DO J=1-Oly,sNy+Oly |
89 |
DO I=1-Olx,sNx+Olx |
DO I=1-Olx,sNx+Olx |
128 |
#endif |
#endif |
129 |
ENDDO |
ENDDO |
130 |
ENDDO |
ENDDO |
131 |
|
#endif /* AUTODIFF_USE_OLDSTORE_2D */ |
132 |
|
|
133 |
|
#ifndef AUTODIFF_USE_OLDSTORE_3D |
134 |
C- 3D arrays |
C- 3D arrays |
135 |
DO K=1,Nr |
DO K=1,Nr |
136 |
DO J=1-Oly,sNy+Oly |
DO J=1-Oly,sNy+Oly |
150 |
ENDDO |
ENDDO |
151 |
ENDDO |
ENDDO |
152 |
ENDDO |
ENDDO |
153 |
|
#endif /* AUTODIFF_USE_OLDSTORE_3D */ |
154 |
|
|
155 |
ENDDO |
ENDDO |
156 |
ENDDO |
ENDDO |
157 |
|
|
158 |
#ifdef ALLOW_EXF |
#ifdef ALLOW_EXF |
159 |
|
|
160 |
C-- Over all tiles |
C-- Over all tiles |
350 |
C- 2D arrays |
C- 2D arrays |
351 |
DO K=1,Nr |
DO K=1,Nr |
352 |
DO I=1-Olx,sNx+Olx |
DO I=1-Olx,sNx+Olx |
353 |
StoreOBCSN(I,Nr,bi,bj,1) = OBNt(I,Nr,bi,bj) |
StoreOBCSN(I,K,bi,bj,1) = OBNt(I,K,bi,bj) |
354 |
StoreOBCSN(I,Nr,bi,bj,2) = OBNs(I,Nr,bi,bj) |
StoreOBCSN(I,K,bi,bj,2) = OBNs(I,K,bi,bj) |
355 |
StoreOBCSN(I,Nr,bi,bj,3) = OBNu0(I,Nr,bi,bj) |
StoreOBCSN(I,K,bi,bj,3) = OBNu0(I,K,bi,bj) |
356 |
StoreOBCSN(I,Nr,bi,bj,4) = OBNv0(I,Nr,bi,bj) |
StoreOBCSN(I,K,bi,bj,4) = OBNv0(I,K,bi,bj) |
357 |
StoreOBCSN(I,Nr,bi,bj,5) = OBNt0(I,Nr,bi,bj) |
StoreOBCSN(I,K,bi,bj,5) = OBNt0(I,K,bi,bj) |
358 |
StoreOBCSN(I,Nr,bi,bj,6) = OBNs0(I,Nr,bi,bj) |
StoreOBCSN(I,K,bi,bj,6) = OBNs0(I,K,bi,bj) |
359 |
StoreOBCSN(I,Nr,bi,bj,7) = OBNu1(I,Nr,bi,bj) |
StoreOBCSN(I,K,bi,bj,7) = OBNu1(I,K,bi,bj) |
360 |
StoreOBCSN(I,Nr,bi,bj,8) = OBNv1(I,Nr,bi,bj) |
StoreOBCSN(I,K,bi,bj,8) = OBNv1(I,K,bi,bj) |
361 |
StoreOBCSN(I,Nr,bi,bj,9) = OBNt1(I,Nr,bi,bj) |
StoreOBCSN(I,K,bi,bj,9) = OBNt1(I,K,bi,bj) |
362 |
StoreOBCSN(I,Nr,bi,bj,10) = OBNs1(I,Nr,bi,bj) |
StoreOBCSN(I,K,bi,bj,10) = OBNs1(I,K,bi,bj) |
363 |
# ifdef ALLOW_OBCSN_CONTROL |
# ifdef ALLOW_OBCSN_CONTROL |
364 |
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) |
365 |
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) |
366 |
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) |
367 |
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) |
368 |
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) |
369 |
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) |
370 |
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) |
371 |
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) |
372 |
# else |
# else |
373 |
StoreOBCSN(I,Nr,bi,bj,11) = 0.0 |
StoreOBCSN(I,K,bi,bj,11) = 0.0 |
374 |
StoreOBCSN(I,Nr,bi,bj,12) = 0.0 |
StoreOBCSN(I,K,bi,bj,12) = 0.0 |
375 |
StoreOBCSN(I,Nr,bi,bj,13) = 0.0 |
StoreOBCSN(I,K,bi,bj,13) = 0.0 |
376 |
StoreOBCSN(I,Nr,bi,bj,14) = 0.0 |
StoreOBCSN(I,K,bi,bj,14) = 0.0 |
377 |
StoreOBCSN(I,Nr,bi,bj,15) = 0.0 |
StoreOBCSN(I,K,bi,bj,15) = 0.0 |
378 |
StoreOBCSN(I,Nr,bi,bj,16) = 0.0 |
StoreOBCSN(I,K,bi,bj,16) = 0.0 |
379 |
StoreOBCSN(I,Nr,bi,bj,17) = 0.0 |
StoreOBCSN(I,K,bi,bj,17) = 0.0 |
380 |
StoreOBCSN(I,Nr,bi,bj,18) = 0.0 |
StoreOBCSN(I,K,bi,bj,18) = 0.0 |
381 |
# endif |
# endif |
382 |
enddo |
enddo |
383 |
enddo |
enddo |
392 |
C- 2D arrays |
C- 2D arrays |
393 |
DO K=1,Nr |
DO K=1,Nr |
394 |
DO I=1-Olx,sNx+Olx |
DO I=1-Olx,sNx+Olx |
395 |
StoreOBCSS(I,Nr,bi,bj,1) = OBSt(I,Nr,bi,bj) |
StoreOBCSS(I,K,bi,bj,1) = OBSt(I,K,bi,bj) |
396 |
StoreOBCSS(I,Nr,bi,bj,2) = OBSs(I,Nr,bi,bj) |
StoreOBCSS(I,K,bi,bj,2) = OBSs(I,K,bi,bj) |
397 |
StoreOBCSS(I,Nr,bi,bj,3) = OBSu0(I,Nr,bi,bj) |
StoreOBCSS(I,K,bi,bj,3) = OBSu0(I,K,bi,bj) |
398 |
StoreOBCSS(I,Nr,bi,bj,4) = OBSv0(I,Nr,bi,bj) |
StoreOBCSS(I,K,bi,bj,4) = OBSv0(I,K,bi,bj) |
399 |
StoreOBCSS(I,Nr,bi,bj,5) = OBSt0(I,Nr,bi,bj) |
StoreOBCSS(I,K,bi,bj,5) = OBSt0(I,K,bi,bj) |
400 |
StoreOBCSS(I,Nr,bi,bj,6) = OBSs0(I,Nr,bi,bj) |
StoreOBCSS(I,K,bi,bj,6) = OBSs0(I,K,bi,bj) |
401 |
StoreOBCSS(I,Nr,bi,bj,7) = OBSu1(I,Nr,bi,bj) |
StoreOBCSS(I,K,bi,bj,7) = OBSu1(I,K,bi,bj) |
402 |
StoreOBCSS(I,Nr,bi,bj,8) = OBSv1(I,Nr,bi,bj) |
StoreOBCSS(I,K,bi,bj,8) = OBSv1(I,K,bi,bj) |
403 |
StoreOBCSS(I,Nr,bi,bj,9) = OBSt1(I,Nr,bi,bj) |
StoreOBCSS(I,K,bi,bj,9) = OBSt1(I,K,bi,bj) |
404 |
StoreOBCSS(I,Nr,bi,bj,10)= OBSs1(I,Nr,bi,bj) |
StoreOBCSS(I,K,bi,bj,10)= OBSs1(I,K,bi,bj) |
405 |
# ifdef ALLOW_OBCSS_CONTROL |
# ifdef ALLOW_OBCSS_CONTROL |
406 |
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) |
407 |
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) |
408 |
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) |
409 |
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) |
410 |
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) |
411 |
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) |
412 |
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) |
413 |
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) |
414 |
# else |
# else |
415 |
StoreOBCSS(I,Nr,bi,bj,11) = 0.0 |
StoreOBCSS(I,K,bi,bj,11) = 0.0 |
416 |
StoreOBCSS(I,Nr,bi,bj,12) = 0.0 |
StoreOBCSS(I,K,bi,bj,12) = 0.0 |
417 |
StoreOBCSS(I,Nr,bi,bj,13) = 0.0 |
StoreOBCSS(I,K,bi,bj,13) = 0.0 |
418 |
StoreOBCSS(I,Nr,bi,bj,14) = 0.0 |
StoreOBCSS(I,K,bi,bj,14) = 0.0 |
419 |
StoreOBCSS(I,Nr,bi,bj,15) = 0.0 |
StoreOBCSS(I,K,bi,bj,15) = 0.0 |
420 |
StoreOBCSS(I,Nr,bi,bj,16) = 0.0 |
StoreOBCSS(I,K,bi,bj,16) = 0.0 |
421 |
StoreOBCSS(I,Nr,bi,bj,17) = 0.0 |
StoreOBCSS(I,K,bi,bj,17) = 0.0 |
422 |
StoreOBCSS(I,Nr,bi,bj,18) = 0.0 |
StoreOBCSS(I,K,bi,bj,18) = 0.0 |
423 |
# endif |
# endif |
424 |
enddo |
enddo |
425 |
enddo |
enddo |
434 |
C- 2D arrays |
C- 2D arrays |
435 |
DO K=1,Nr |
DO K=1,Nr |
436 |
DO J=1-Oly,sNy+Oly |
DO J=1-Oly,sNy+Oly |
437 |
StoreOBCSE(J,Nr,bi,bj,1) = OBEt(J,Nr,bi,bj) |
StoreOBCSE(J,K,bi,bj,1) = OBEt(J,K,bi,bj) |
438 |
StoreOBCSE(J,Nr,bi,bj,2) = OBEs(J,Nr,bi,bj) |
StoreOBCSE(J,K,bi,bj,2) = OBEs(J,K,bi,bj) |
439 |
StoreOBCSE(J,Nr,bi,bj,3) = OBEu0(J,Nr,bi,bj) |
StoreOBCSE(J,K,bi,bj,3) = OBEu0(J,K,bi,bj) |
440 |
StoreOBCSE(J,Nr,bi,bj,4) = OBEv0(J,Nr,bi,bj) |
StoreOBCSE(J,K,bi,bj,4) = OBEv0(J,K,bi,bj) |
441 |
StoreOBCSE(J,Nr,bi,bj,5) = OBEt0(J,Nr,bi,bj) |
StoreOBCSE(J,K,bi,bj,5) = OBEt0(J,K,bi,bj) |
442 |
StoreOBCSE(J,Nr,bi,bj,6) = OBEs0(J,Nr,bi,bj) |
StoreOBCSE(J,K,bi,bj,6) = OBEs0(J,K,bi,bj) |
443 |
StoreOBCSE(J,Nr,bi,bj,7) = OBEu1(J,Nr,bi,bj) |
StoreOBCSE(J,K,bi,bj,7) = OBEu1(J,K,bi,bj) |
444 |
StoreOBCSE(J,Nr,bi,bj,8) = OBEv1(J,Nr,bi,bj) |
StoreOBCSE(J,K,bi,bj,8) = OBEv1(J,K,bi,bj) |
445 |
StoreOBCSE(J,Nr,bi,bj,9) = OBEt1(J,Nr,bi,bj) |
StoreOBCSE(J,K,bi,bj,9) = OBEt1(J,K,bi,bj) |
446 |
StoreOBCSE(J,Nr,bi,bj,10)= OBEs1(J,Nr,bi,bj) |
StoreOBCSE(J,K,bi,bj,10)= OBEs1(J,K,bi,bj) |
447 |
# ifdef ALLOW_OBCSE_CONTROL |
# ifdef ALLOW_OBCSE_CONTROL |
448 |
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) |
449 |
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) |
450 |
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) |
451 |
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) |
452 |
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) |
453 |
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) |
454 |
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) |
455 |
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) |
456 |
# else |
# else |
457 |
StoreOBCSE(J,Nr,bi,bj,11) = 0.0 |
StoreOBCSE(J,K,bi,bj,11) = 0.0 |
458 |
StoreOBCSE(J,Nr,bi,bj,12) = 0.0 |
StoreOBCSE(J,K,bi,bj,12) = 0.0 |
459 |
StoreOBCSE(J,Nr,bi,bj,13) = 0.0 |
StoreOBCSE(J,K,bi,bj,13) = 0.0 |
460 |
StoreOBCSE(J,Nr,bi,bj,14) = 0.0 |
StoreOBCSE(J,K,bi,bj,14) = 0.0 |
461 |
StoreOBCSE(J,Nr,bi,bj,15) = 0.0 |
StoreOBCSE(J,K,bi,bj,15) = 0.0 |
462 |
StoreOBCSE(J,Nr,bi,bj,16) = 0.0 |
StoreOBCSE(J,K,bi,bj,16) = 0.0 |
463 |
StoreOBCSE(J,Nr,bi,bj,17) = 0.0 |
StoreOBCSE(J,K,bi,bj,17) = 0.0 |
464 |
StoreOBCSE(J,Nr,bi,bj,18) = 0.0 |
StoreOBCSE(J,K,bi,bj,18) = 0.0 |
465 |
# endif |
# endif |
466 |
enddo |
enddo |
467 |
enddo |
enddo |
476 |
C- 2D arrays |
C- 2D arrays |
477 |
DO K=1,Nr |
DO K=1,Nr |
478 |
DO J=1-Oly,sNy+Oly |
DO J=1-Oly,sNy+Oly |
479 |
StoreOBCSW(J,Nr,bi,bj,1) = OBWt(J,Nr,bi,bj) |
StoreOBCSW(J,K,bi,bj,1) = OBWt(J,K,bi,bj) |
480 |
StoreOBCSW(J,Nr,bi,bj,2) = OBWs(J,Nr,bi,bj) |
StoreOBCSW(J,K,bi,bj,2) = OBWs(J,K,bi,bj) |
481 |
StoreOBCSW(J,Nr,bi,bj,3) = OBWu0(J,Nr,bi,bj) |
StoreOBCSW(J,K,bi,bj,3) = OBWu0(J,K,bi,bj) |
482 |
StoreOBCSW(J,Nr,bi,bj,4) = OBWv0(J,Nr,bi,bj) |
StoreOBCSW(J,K,bi,bj,4) = OBWv0(J,K,bi,bj) |
483 |
StoreOBCSW(J,Nr,bi,bj,5) = OBWt0(J,Nr,bi,bj) |
StoreOBCSW(J,K,bi,bj,5) = OBWt0(J,K,bi,bj) |
484 |
StoreOBCSW(J,Nr,bi,bj,6) = OBWs0(J,Nr,bi,bj) |
StoreOBCSW(J,K,bi,bj,6) = OBWs0(J,K,bi,bj) |
485 |
StoreOBCSW(J,Nr,bi,bj,7) = OBWu1(J,Nr,bi,bj) |
StoreOBCSW(J,K,bi,bj,7) = OBWu1(J,K,bi,bj) |
486 |
StoreOBCSW(J,Nr,bi,bj,8) = OBWv1(J,Nr,bi,bj) |
StoreOBCSW(J,K,bi,bj,8) = OBWv1(J,K,bi,bj) |
487 |
StoreOBCSW(J,Nr,bi,bj,9) = OBWt1(J,Nr,bi,bj) |
StoreOBCSW(J,K,bi,bj,9) = OBWt1(J,K,bi,bj) |
488 |
StoreOBCSW(J,Nr,bi,bj,10)= OBWs1(J,Nr,bi,bj) |
StoreOBCSW(J,K,bi,bj,10)= OBWs1(J,K,bi,bj) |
489 |
# ifdef ALLOW_OBCSW_CONTROL |
# ifdef ALLOW_OBCSW_CONTROL |
490 |
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) |
491 |
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) |
492 |
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) |
493 |
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) |
494 |
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) |
495 |
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) |
496 |
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) |
497 |
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) |
498 |
# else |
# else |
499 |
StoreOBCSW(J,Nr,bi,bj,11) = 0.0 |
StoreOBCSW(J,K,bi,bj,11) = 0.0 |
500 |
StoreOBCSW(J,Nr,bi,bj,12) = 0.0 |
StoreOBCSW(J,K,bi,bj,12) = 0.0 |
501 |
StoreOBCSW(J,Nr,bi,bj,13) = 0.0 |
StoreOBCSW(J,K,bi,bj,13) = 0.0 |
502 |
StoreOBCSW(J,Nr,bi,bj,14) = 0.0 |
StoreOBCSW(J,K,bi,bj,14) = 0.0 |
503 |
StoreOBCSW(J,Nr,bi,bj,15) = 0.0 |
StoreOBCSW(J,K,bi,bj,15) = 0.0 |
504 |
StoreOBCSW(J,Nr,bi,bj,16) = 0.0 |
StoreOBCSW(J,K,bi,bj,16) = 0.0 |
505 |
StoreOBCSW(J,Nr,bi,bj,17) = 0.0 |
StoreOBCSW(J,K,bi,bj,17) = 0.0 |
506 |
StoreOBCSW(J,Nr,bi,bj,18) = 0.0 |
StoreOBCSW(J,K,bi,bj,18) = 0.0 |
507 |
# endif |
# endif |
508 |
enddo |
enddo |
509 |
enddo |
enddo |
519 |
C- 2D arrays |
C- 2D arrays |
520 |
DO J=1-Oly,sNy+Oly |
DO J=1-Oly,sNy+Oly |
521 |
DO I=1-Olx,sNx+Olx |
DO I=1-Olx,sNx+Olx |
522 |
StoreSEAICE(I,J,bi,bj,1) = AREA(I,J,1,bi,bj) |
StoreSEAICE(I,J,bi,bj,1) = AREA(I,J,bi,bj) |
523 |
StoreSEAICE(I,J,bi,bj,2) = AREA(I,J,2,bi,bj) |
StoreSEAICE(I,J,bi,bj,2) = HEFF(I,J,bi,bj) |
524 |
StoreSEAICE(I,J,bi,bj,3) = AREA(I,J,3,bi,bj) |
StoreSEAICE(I,J,bi,bj,3) = HSNOW(I,J,bi,bj) |
525 |
StoreSEAICE(I,J,bi,bj,4) = HEFF(I,J,1,bi,bj) |
StoreSEAICE(I,J,bi,bj,4) = TICE(I,J,bi,bj) |
526 |
StoreSEAICE(I,J,bi,bj,5) = HEFF(I,J,2,bi,bj) |
StoreSEAICE(I,J,bi,bj,5) = RUNOFF(I,J,bi,bj) |
527 |
StoreSEAICE(I,J,bi,bj,6) = HEFF(I,J,3,bi,bj) |
StoreSEAICE(I,J,bi,bj,6) = 0.0 |
|
StoreSEAICE(I,J,bi,bj,7) = HSNOW(I,J,bi,bj) |
|
|
StoreSEAICE(I,J,bi,bj,8) = TICE(I,J,bi,bj) |
|
|
StoreSEAICE(I,J,bi,bj,9) = RUNOFF(I,J,bi,bj) |
|
|
# ifdef SEAICE_MULTICATEGORY |
|
|
StoreSEAICE(I,J,bi,bj,10) = TICES(I,J,bi,bj) |
|
|
# else |
|
|
StoreSEAICE(I,J,bi,bj,10) = 0.0 |
|
|
# endif |
|
528 |
# ifdef SEAICE_ALLOW_DYNAMICS |
# ifdef SEAICE_ALLOW_DYNAMICS |
529 |
StoreSEAICE(I,J,bi,bj,11) = UICE(I,J,1,bi,bj) |
StoreSEAICE(I,J,bi,bj,7) = UICE(I,J,bi,bj) |
530 |
StoreSEAICE(I,J,bi,bj,12) = UICE(I,J,2,bi,bj) |
StoreSEAICE(I,J,bi,bj,8) = VICE(I,J,bi,bj) |
531 |
StoreSEAICE(I,J,bi,bj,13) = UICE(I,J,3,bi,bj) |
StoreSEAICE(I,J,bi,bj,9) = ZETA(I,J,bi,bj) |
532 |
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) |
|
533 |
# ifdef SEAICE_CGRID |
# ifdef SEAICE_CGRID |
534 |
StoreSEAICE(I,J,bi,bj,19) = dwatn(I,J,bi,bj) |
StoreSEAICE(I,J,bi,bj,11) = dwatn(I,J,bi,bj) |
535 |
StoreSEAICE(I,J,bi,bj,20) = seaicemasku(I,J,bi,bj) |
StoreSEAICE(I,J,bi,bj,12) = seaicemasku(I,J,bi,bj) |
536 |
StoreSEAICE(I,J,bi,bj,21) = seaicemaskv(I,J,bi,bj) |
StoreSEAICE(I,J,bi,bj,13) = seaicemaskv(I,J,bi,bj) |
537 |
|
StoreSEAICE(I,J,bi,bj,14) = stressDivergenceX(I,J,bi,bj) |
538 |
|
StoreSEAICE(I,J,bi,bj,15) = stressDivergenceY(I,J,bi,bj) |
539 |
# else |
# else |
540 |
StoreSEAICE(I,J,bi,bj,19) = 0.0 |
StoreSEAICE(I,J,bi,bj,11) = 0.0 |
541 |
StoreSEAICE(I,J,bi,bj,20) = 0.0 |
StoreSEAICE(I,J,bi,bj,12) = 0.0 |
542 |
StoreSEAICE(I,J,bi,bj,21) = 0.0 |
StoreSEAICE(I,J,bi,bj,13) = 0.0 |
543 |
|
StoreSEAICE(I,J,bi,bj,14) = 0.0 |
544 |
|
StoreSEAICE(I,J,bi,bj,15) = 0.0 |
545 |
# endif /* SEAICE_CGRID */ |
# endif /* SEAICE_CGRID */ |
546 |
# ifdef SEAICE_ALLOW_EVP |
# ifdef SEAICE_ALLOW_EVP |
547 |
StoreSEAICE(I,J,bi,bj,22) = seaice_sigma1(I,J,bi,bj) |
StoreSEAICE(I,J,bi,bj,16) = seaice_sigma1(I,J,bi,bj) |
548 |
StoreSEAICE(I,J,bi,bj,23) = seaice_sigma2(I,J,bi,bj) |
StoreSEAICE(I,J,bi,bj,17) = seaice_sigma2(I,J,bi,bj) |
549 |
StoreSEAICE(I,J,bi,bj,24) = seaice_sigma12(I,J,bi,bj) |
StoreSEAICE(I,J,bi,bj,18) = seaice_sigma12(I,J,bi,bj) |
550 |
# else |
# else |
551 |
StoreSEAICE(I,J,bi,bj,22) = 0.0 |
StoreSEAICE(I,J,bi,bj,16) = 0.0 |
552 |
StoreSEAICE(I,J,bi,bj,23) = 0.0 |
StoreSEAICE(I,J,bi,bj,17) = 0.0 |
553 |
StoreSEAICE(I,J,bi,bj,24) = 0.0 |
StoreSEAICE(I,J,bi,bj,18) = 0.0 |
554 |
# endif /* SEAICE_ALLOW_EVP */ |
# endif /* SEAICE_ALLOW_EVP */ |
555 |
# else |
# else |
556 |
StoreSEAICE(I,J,bi,bj,11) = 0.0 |
StoreSEAICE(I,J,bi,bj,7) = 0.0 |
557 |
StoreSEAICE(I,J,bi,bj,12) = 0.0 |
StoreSEAICE(I,J,bi,bj,8) = 0.0 |
558 |
StoreSEAICE(I,J,bi,bj,13) = 0.0 |
StoreSEAICE(I,J,bi,bj,9) = 0.0 |
559 |
StoreSEAICE(I,J,bi,bj,14) = 0.0 |
StoreSEAICE(I,J,bi,bj,10) = 0.0 |
560 |
StoreSEAICE(I,J,bi,bj,15) = 0.0 |
StoreSEAICE(I,J,bi,bj,11) = 0.0 |
561 |
StoreSEAICE(I,J,bi,bj,16) = 0.0 |
StoreSEAICE(I,J,bi,bj,12) = 0.0 |
562 |
StoreSEAICE(I,J,bi,bj,17) = 0.0 |
StoreSEAICE(I,J,bi,bj,13) = 0.0 |
563 |
StoreSEAICE(I,J,bi,bj,18) = 0.0 |
StoreSEAICE(I,J,bi,bj,14) = 0.0 |
564 |
StoreSEAICE(I,J,bi,bj,19) = 0.0 |
StoreSEAICE(I,J,bi,bj,15) = 0.0 |
565 |
StoreSEAICE(I,J,bi,bj,20) = 0.0 |
StoreSEAICE(I,J,bi,bj,16) = 0.0 |
566 |
StoreSEAICE(I,J,bi,bj,21) = 0.0 |
StoreSEAICE(I,J,bi,bj,17) = 0.0 |
567 |
StoreSEAICE(I,J,bi,bj,22) = 0.0 |
StoreSEAICE(I,J,bi,bj,18) = 0.0 |
|
StoreSEAICE(I,J,bi,bj,23) = 0.0 |
|
|
StoreSEAICE(I,J,bi,bj,24) = 0.0 |
|
568 |
# endif /* SEAICE_ALLOW_DYNAMICS */ |
# endif /* SEAICE_ALLOW_DYNAMICS */ |
569 |
|
# ifdef SEAICE_SALINITY |
570 |
|
StoreSEAICE(I,J,bi,bj,19) = HSALT(I,J,bi,bj) |
571 |
|
# else |
572 |
|
StoreSEAICE(I,J,bi,bj,19) = 0.0 |
573 |
|
# endif |
574 |
enddo |
enddo |
575 |
enddo |
enddo |
576 |
enddo |
enddo |
577 |
enddo |
enddo |
578 |
#endif /* ALLOW_SEAICE */ |
#endif /* ALLOW_SEAICE */ |
579 |
|
|
580 |
#ifndef DISABLE_DEBUGMODE |
#ifdef ALLOW_DEBUG |
581 |
IF ( debugLevel .GE. debLevB ) |
IF ( debugLevel .GE. debLevB ) |
582 |
& CALL DEBUG_LEAVE('AUTODIFF_STORE',myThid) |
& CALL DEBUG_LEAVE('AUTODIFF_STORE',myThid) |
583 |
#endif |
#endif |