123 |
_RL vort3(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL vort3(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
124 |
_RL hDiv(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL hDiv(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
125 |
|
|
126 |
|
#ifdef ALLOW_MNC |
127 |
|
INTEGER offsets(9) |
128 |
|
#endif |
129 |
|
|
130 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
131 |
C-- only the kDown part of fverU/V is set in this subroutine |
C-- only the kDown part of fverU/V is set in this subroutine |
132 |
C-- the kUp is still required |
C-- the kUp is still required |
143 |
writeDiag = DIFFERENT_MULTIPLE(diagFreq, myTime, |
writeDiag = DIFFERENT_MULTIPLE(diagFreq, myTime, |
144 |
& myTime-deltaTClock) |
& myTime-deltaTClock) |
145 |
|
|
146 |
|
#ifdef ALLOW_MNC |
147 |
|
IF (useMNC .AND. snapshot_mnc .AND. writeDiag) THEN |
148 |
|
IF ((bi .EQ. 1).AND.(bj .EQ. 1).AND.(k .EQ. 1)) THEN |
149 |
|
CALL MNC_CW_SET_UDIM('mom_vi', -1, myThid) |
150 |
|
CALL MNC_CW_I_W_S('I','mom_vi',0,0,'iter',myIter,myThid) |
151 |
|
CALL MNC_CW_SET_UDIM('mom_vi', 0, myThid) |
152 |
|
ENDIF |
153 |
|
DO i = 1,9 |
154 |
|
offsets(i) = 0 |
155 |
|
ENDDO |
156 |
|
offsets(3) = k |
157 |
|
C write(*,*) 'offsets = ',(offsets(i),i=1,9) |
158 |
|
ENDIF |
159 |
|
#endif /* ALLOW_MNC */ |
160 |
|
|
161 |
C Initialise intermediate terms |
C Initialise intermediate terms |
162 |
DO J=1-OLy,sNy+OLy |
DO J=1-OLy,sNy+OLy |
163 |
DO I=1-OLx,sNx+OLx |
DO I=1-OLx,sNx+OLx |
432 |
ENDDO |
ENDDO |
433 |
ENDDO |
ENDDO |
434 |
IF ( writeDiag ) THEN |
IF ( writeDiag ) THEN |
435 |
CALL WRITE_LOCAL_RL('fV','I10',1,uCf,bi,bj,k,myIter,myThid) |
IF (snapshot_mdsio) THEN |
436 |
CALL WRITE_LOCAL_RL('fU','I10',1,vCf,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('fV','I10',1,uCf,bi,bj,k,myIter,myThid) |
437 |
|
CALL WRITE_LOCAL_RL('fU','I10',1,vCf,bi,bj,k,myIter,myThid) |
438 |
|
ENDIF |
439 |
|
#ifdef ALLOW_MNC |
440 |
|
IF (useMNC .AND. snapshot_mnc) THEN |
441 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj, 'fV', uCf, |
442 |
|
& offsets, myThid) |
443 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj, 'fU', vCf, |
444 |
|
& offsets, myThid) |
445 |
|
ENDIF |
446 |
|
#endif /* ALLOW_MNC */ |
447 |
ENDIF |
ENDIF |
448 |
ENDIF |
ENDIF |
449 |
|
|
477 |
ENDDO |
ENDDO |
478 |
|
|
479 |
IF ( writeDiag ) THEN |
IF ( writeDiag ) THEN |
480 |
CALL WRITE_LOCAL_RL('zV','I10',1,uCf,bi,bj,k,myIter,myThid) |
IF (snapshot_mdsio) THEN |
481 |
CALL WRITE_LOCAL_RL('zU','I10',1,vCf,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('zV','I10',1,uCf,bi,bj,k,myIter,myThid) |
482 |
|
CALL WRITE_LOCAL_RL('zU','I10',1,vCf,bi,bj,k,myIter,myThid) |
483 |
|
ENDIF |
484 |
|
#ifdef ALLOW_MNC |
485 |
|
IF (useMNC .AND. snapshot_mnc) THEN |
486 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj, 'zV', uCf, |
487 |
|
& offsets, myThid) |
488 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj, 'zU', vCf, |
489 |
|
& offsets, myThid) |
490 |
|
ENDIF |
491 |
|
#endif /* ALLOW_MNC */ |
492 |
ENDIF |
ENDIF |
493 |
|
|
494 |
#ifdef ALLOW_TIMEAVE |
#ifdef ALLOW_TIMEAVE |
495 |
#ifndef HRCUBE |
#ifndef HRCUBE |
496 |
IF (taveFreq.GT.0.) THEN |
IF (taveFreq.GT.0.) THEN |
532 |
ENDDO |
ENDDO |
533 |
ENDDO |
ENDDO |
534 |
IF ( writeDiag ) THEN |
IF ( writeDiag ) THEN |
535 |
CALL WRITE_LOCAL_RL('KEx','I10',1,uCf,bi,bj,k,myIter,myThid) |
IF (snapshot_mdsio) THEN |
536 |
CALL WRITE_LOCAL_RL('KEy','I10',1,vCf,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('KEx','I10',1,uCf,bi,bj,k,myIter,myThid) |
537 |
|
CALL WRITE_LOCAL_RL('KEy','I10',1,vCf,bi,bj,k,myIter,myThid) |
538 |
|
ENDIF |
539 |
|
#ifdef ALLOW_MNC |
540 |
|
IF (useMNC .AND. snapshot_mnc) THEN |
541 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj, 'KEx', uCf, |
542 |
|
& offsets, myThid) |
543 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj, 'KEy', vCf, |
544 |
|
& offsets, myThid) |
545 |
|
ENDIF |
546 |
|
#endif /* ALLOW_MNC */ |
547 |
ENDIF |
ENDIF |
548 |
|
|
549 |
C-- end if momAdvection |
C-- end if momAdvection |
568 |
#endif /* ALLOW_DEBUG */ |
#endif /* ALLOW_DEBUG */ |
569 |
|
|
570 |
IF ( writeDiag ) THEN |
IF ( writeDiag ) THEN |
571 |
CALL WRITE_LOCAL_RL('Ds','I10',1,strain,bi,bj,k,myIter,myThid) |
IF (snapshot_mdsio) THEN |
572 |
CALL WRITE_LOCAL_RL('Dt','I10',1,tension,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('Ds','I10',1,strain,bi,bj,k,myIter,myThid) |
573 |
CALL WRITE_LOCAL_RL('Du','I10',1,uDiss,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('Dt','I10',1,tension,bi,bj,k,myIter, |
574 |
CALL WRITE_LOCAL_RL('Dv','I10',1,vDiss,bi,bj,k,myIter,myThid) |
& myThid) |
575 |
CALL WRITE_LOCAL_RL('Z3','I10',1,vort3,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('Du','I10',1,uDiss,bi,bj,k,myIter,myThid) |
576 |
CALL WRITE_LOCAL_RL('W3','I10',1,omega3,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('Dv','I10',1,vDiss,bi,bj,k,myIter,myThid) |
577 |
CALL WRITE_LOCAL_RL('KE','I10',1,KE,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('Z3','I10',1,vort3,bi,bj,k,myIter,myThid) |
578 |
CALL WRITE_LOCAL_RL('D','I10',1,hdiv,bi,bj,k,myIter,myThid) |
CALL WRITE_LOCAL_RL('W3','I10',1,omega3,bi,bj,k,myIter,myThid) |
579 |
|
CALL WRITE_LOCAL_RL('KE','I10',1,KE,bi,bj,k,myIter,myThid) |
580 |
|
CALL WRITE_LOCAL_RL('D','I10',1,hdiv,bi,bj,k,myIter,myThid) |
581 |
|
ENDIF |
582 |
|
#ifdef ALLOW_MNC |
583 |
|
IF (useMNC .AND. snapshot_mnc) THEN |
584 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'Ds',strain, |
585 |
|
& offsets, myThid) |
586 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'Dt',tension, |
587 |
|
& offsets, myThid) |
588 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'Du',uDiss, |
589 |
|
& offsets, myThid) |
590 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'Dv',vDiss, |
591 |
|
& offsets, myThid) |
592 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'Z3',vort3, |
593 |
|
& offsets, myThid) |
594 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'W3',omega3, |
595 |
|
& offsets, myThid) |
596 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'KE',KE, |
597 |
|
& offsets, myThid) |
598 |
|
CALL MNC_CW_RL_W_OFFSET('D','mom_vi',bi,bj,'D', hdiv, |
599 |
|
& offsets, myThid) |
600 |
|
ENDIF |
601 |
|
#endif /* ALLOW_MNC */ |
602 |
ENDIF |
ENDIF |
603 |
|
|
604 |
#endif /* ALLOW_MOM_VECINV */ |
#endif /* ALLOW_MOM_VECINV */ |
605 |
|
|
606 |
RETURN |
RETURN |