31 |
C = 1 :: fill-in diagnostics for tracer variables only |
C = 1 :: fill-in diagnostics for tracer variables only |
32 |
C = 2 :: fill-in diagnostics for momentum variables only |
C = 2 :: fill-in diagnostics for momentum variables only |
33 |
C = 3 :: fill-in diagnostics for momentum & tracer variables |
C = 3 :: fill-in diagnostics for momentum & tracer variables |
34 |
|
C = 4 :: fill-in state variable tendency diagnostics the second time |
35 |
C myThid :: my Thread Id number |
C myThid :: my Thread Id number |
36 |
INTEGER selectVars |
INTEGER selectVars |
37 |
INTEGER myThid |
INTEGER myThid |
52 |
|
|
53 |
tmpFac = 1. _d 0 |
tmpFac = 1. _d 0 |
54 |
|
|
55 |
IF ( selectVars .GE. 2 ) THEN |
IF ( selectVars.EQ.2 .OR. selectVars.EQ.3 ) THEN |
56 |
C-- fill momentum state-var diagnostics: |
C-- fill momentum state-var diagnostics: |
57 |
|
|
58 |
CALL DIAGNOSTICS_FILL(etaN, 'ETAN ',0, 1,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(etaN, 'ETAN ',0, 1,0,1,1,myThid) |
326 |
CALL DIAGNOSTICS_FILL(tmpMk,'PRESSURE',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'PRESSURE',0,Nr,0,1,1,myThid) |
327 |
ENDIF |
ENDIF |
328 |
|
|
329 |
|
C First fill sequence for state variable tendency diagnostics: subtract state variable |
330 |
|
C NOTE: send a '0' for the bibjflag and allow counter to be incremented |
331 |
|
C (next fill for these diagnostics will NOT allow counter to be incremented) |
332 |
|
|
333 |
|
IF ( DIAGNOSTICS_IS_ON('TOTUTEND',myThid) ) THEN |
334 |
|
DO bj = myByLo(myThid), myByHi(myThid) |
335 |
|
DO bi = myBxLo(myThid), myBxHi(myThid) |
336 |
|
DO K=1,Nr |
337 |
|
DO j = 1,sNy |
338 |
|
DO i = 1,sNx |
339 |
|
tmpMk(i,j,K,bi,bj) = -uVel(i,j,K,bi,bj) |
340 |
|
ENDDO |
341 |
|
ENDDO |
342 |
|
ENDDO |
343 |
|
ENDDO |
344 |
|
ENDDO |
345 |
|
CALL DIAGNOSTICS_FILL(tmpMk,'TOTUTEND',0,Nr,0,1,1,myThid) |
346 |
|
ENDIF |
347 |
|
|
348 |
|
IF ( DIAGNOSTICS_IS_ON('TOTVTEND',myThid) ) THEN |
349 |
|
DO bj = myByLo(myThid), myByHi(myThid) |
350 |
|
DO bi = myBxLo(myThid), myBxHi(myThid) |
351 |
|
DO K=1,Nr |
352 |
|
DO j = 1,sNy |
353 |
|
DO i = 1,sNx |
354 |
|
tmpMk(i,j,K,bi,bj) = -vVel(i,j,K,bi,bj) |
355 |
|
ENDDO |
356 |
|
ENDDO |
357 |
|
ENDDO |
358 |
|
ENDDO |
359 |
|
ENDDO |
360 |
|
CALL DIAGNOSTICS_FILL(tmpMk,'TOTVTEND',0,Nr,0,1,1,myThid) |
361 |
|
ENDIF |
362 |
|
|
363 |
|
IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN |
364 |
|
DO bj = myByLo(myThid), myByHi(myThid) |
365 |
|
DO bi = myBxLo(myThid), myBxHi(myThid) |
366 |
|
DO K=1,Nr |
367 |
|
DO j = 1,sNy |
368 |
|
DO i = 1,sNx |
369 |
|
tmpMk(i,j,K,bi,bj) = -theta(i,j,K,bi,bj) |
370 |
|
ENDDO |
371 |
|
ENDDO |
372 |
|
ENDDO |
373 |
|
ENDDO |
374 |
|
ENDDO |
375 |
|
CALL DIAGNOSTICS_FILL(tmpMk,'TOTTTEND',0,Nr,0,1,1,myThid) |
376 |
|
ENDIF |
377 |
|
|
378 |
|
IF ( DIAGNOSTICS_IS_ON('TOTSTEND',myThid) ) THEN |
379 |
|
DO bj = myByLo(myThid), myByHi(myThid) |
380 |
|
DO bi = myBxLo(myThid), myBxHi(myThid) |
381 |
|
DO K=1,Nr |
382 |
|
DO j = 1,sNy |
383 |
|
DO i = 1,sNx |
384 |
|
tmpMk(i,j,K,bi,bj) = -salt(i,j,K,bi,bj) |
385 |
|
ENDDO |
386 |
|
ENDDO |
387 |
|
ENDDO |
388 |
|
ENDDO |
389 |
|
ENDDO |
390 |
|
CALL DIAGNOSTICS_FILL(tmpMk,'TOTSTEND',0,Nr,0,1,1,myThid) |
391 |
|
ENDIF |
392 |
|
|
393 |
C-- fill momentum state-var diagnostics: end |
C-- fill momentum state-var diagnostics: end |
394 |
ENDIF |
ENDIF |
395 |
|
|
626 |
C-- fill tracer state-var diagnostics: end |
C-- fill tracer state-var diagnostics: end |
627 |
ENDIF |
ENDIF |
628 |
|
|
629 |
|
IF ( selectVars.EQ.4 ) THEN |
630 |
|
C Second fill sequence for state variable tendency diagnostics: add state variable |
631 |
|
C NOTE: send a '-1' for the bibjflag and allow counter to be incremented |
632 |
|
C this means that diag fill is called from inside the bi-bj loop |
633 |
|
|
634 |
|
IF ( DIAGNOSTICS_IS_ON('TOTUTEND',myThid) ) THEN |
635 |
|
DO bj = myByLo(myThid), myByHi(myThid) |
636 |
|
DO bi = myBxLo(myThid), myBxHi(myThid) |
637 |
|
DO K=1,Nr |
638 |
|
DO j = 1,sNy |
639 |
|
DO i = 1,sNx |
640 |
|
tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj) |
641 |
|
ENDDO |
642 |
|
ENDDO |
643 |
|
ENDDO |
644 |
|
CALL DIAGNOSTICS_FILL(tmpMk,'TOTUTEND',0,Nr,-1,bi,bj,myThid) |
645 |
|
ENDDO |
646 |
|
ENDDO |
647 |
|
ENDIF |
648 |
|
|
649 |
|
IF ( DIAGNOSTICS_IS_ON('TOTVTEND',myThid) ) THEN |
650 |
|
DO bj = myByLo(myThid), myByHi(myThid) |
651 |
|
DO bi = myBxLo(myThid), myBxHi(myThid) |
652 |
|
DO K=1,Nr |
653 |
|
DO j = 1,sNy |
654 |
|
DO i = 1,sNx |
655 |
|
tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj) |
656 |
|
ENDDO |
657 |
|
ENDDO |
658 |
|
ENDDO |
659 |
|
CALL DIAGNOSTICS_FILL(tmpMk,'TOTVTEND',0,Nr,-1,bi,bj,myThid) |
660 |
|
ENDDO |
661 |
|
ENDDO |
662 |
|
ENDIF |
663 |
|
|
664 |
|
IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN |
665 |
|
DO bj = myByLo(myThid), myByHi(myThid) |
666 |
|
DO bi = myBxLo(myThid), myBxHi(myThid) |
667 |
|
DO K=1,Nr |
668 |
|
DO j = 1,sNy |
669 |
|
DO i = 1,sNx |
670 |
|
tmpMk(i,j,K,bi,bj) = theta(i,j,K,bi,bj) |
671 |
|
ENDDO |
672 |
|
ENDDO |
673 |
|
ENDDO |
674 |
|
CALL DIAGNOSTICS_FILL(tmpMk,'TOTTTEND',0,Nr,-1,bi,bj,myThid) |
675 |
|
ENDDO |
676 |
|
ENDDO |
677 |
|
ENDIF |
678 |
|
|
679 |
|
IF ( DIAGNOSTICS_IS_ON('TOTSTEND',myThid) ) THEN |
680 |
|
DO bj = myByLo(myThid), myByHi(myThid) |
681 |
|
DO bi = myBxLo(myThid), myBxHi(myThid) |
682 |
|
DO K=1,Nr |
683 |
|
DO j = 1,sNy |
684 |
|
DO i = 1,sNx |
685 |
|
tmpMk(i,j,K,bi,bj) = salt(i,j,K,bi,bj) |
686 |
|
ENDDO |
687 |
|
ENDDO |
688 |
|
ENDDO |
689 |
|
CALL DIAGNOSTICS_FILL(tmpMk,'TOTSTEND',0,Nr,-1,bi,bj,myThid) |
690 |
|
ENDDO |
691 |
|
ENDDO |
692 |
|
ENDIF |
693 |
|
|
694 |
|
C-- fill state tendency diagnostics the second time: end |
695 |
|
ENDIF |
696 |
|
|
697 |
#endif /* ALLOW_DIAGNOSTICS */ |
#endif /* ALLOW_DIAGNOSTICS */ |
698 |
|
|
699 |
RETURN |
RETURN |