37 |
C myTime - Current time in simulation |
C myTime - Current time in simulation |
38 |
C myIter - Current iteration number in simulation |
C myIter - Current iteration number in simulation |
39 |
C myThid - Thread number for this instance of the routine. |
C myThid - Thread number for this instance of the routine. |
|
INTEGER myThid |
|
40 |
_RL myTime |
_RL myTime |
41 |
INTEGER myIter |
INTEGER myIter |
42 |
|
INTEGER myThid |
43 |
|
|
44 |
C == Local variables |
C == Local variables |
45 |
C xA, yA - Per block temporaries holding face areas |
C xA, yA - Per block temporaries holding face areas |
453 |
I bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown, |
I bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown, |
454 |
O xA,yA,uTrans,vTrans,rTrans,rVel,maskC,maskUp, |
O xA,yA,uTrans,vTrans,rTrans,rVel,maskC,maskUp, |
455 |
I myThid) |
I myThid) |
456 |
|
#ifdef ALLOW_OBCS |
457 |
|
IF (openBoundaries) THEN |
458 |
|
CALL APPLY_OBCS3( bi, bj, K, Kup, rTrans, rVel, myThid ) |
459 |
|
ENDIF |
460 |
|
#endif |
461 |
#ifdef INCLUDE_CALC_DIFFUSIVITY_CALL |
#ifdef INCLUDE_CALC_DIFFUSIVITY_CALL |
462 |
C-- Calculate the total vertical diffusivity |
C-- Calculate the total vertical diffusivity |
463 |
CALL CALC_DIFFUSIVITY( |
CALL CALC_DIFFUSIVITY( |
493 |
U aTerm,xTerm,fZon,fMer,fVerS, |
U aTerm,xTerm,fZon,fMer,fVerS, |
494 |
I myTime, myThid) |
I myTime, myThid) |
495 |
ENDIF |
ENDIF |
496 |
|
#ifdef ALLOW_OBCS |
497 |
|
C-- Calculate future values on open boundaries |
498 |
|
IF (openBoundaries) THEN |
499 |
|
Caja CALL CYCLE_OBCS( K, bi, bj, myThid ) |
500 |
|
CALL SET_OBCS( K, bi, bj, myTime+deltaTclock, myThid ) |
501 |
|
ENDIF |
502 |
|
#endif |
503 |
C-- Prediction step (step forward all model variables) |
C-- Prediction step (step forward all model variables) |
504 |
CALL TIMESTEP( |
CALL TIMESTEP( |
505 |
I bi,bj,iMin,iMax,jMin,jMax,K, |
I bi,bj,iMin,iMax,jMin,jMax,K, |
506 |
I myThid) |
I myIter, myThid) |
507 |
#ifdef ALLOW_OBCS |
#ifdef ALLOW_OBCS |
508 |
C-- Apply open boundary conditions |
C-- Apply open boundary conditions |
509 |
IF (openBoundaries) CALL APPLY_OBCS2( bi, bj, K, myThid ) |
IF (openBoundaries) CALL APPLY_OBCS2( bi, bj, K, myThid ) |
511 |
C-- Freeze water |
C-- Freeze water |
512 |
IF (allowFreezing) |
IF (allowFreezing) |
513 |
& CALL FREEZE( bi, bj, iMin, iMax, jMin, jMax, K, myThid ) |
& CALL FREEZE( bi, bj, iMin, iMax, jMin, jMax, K, myThid ) |
514 |
|
|
515 |
|
#ifdef DIVG_IN_DYNAMICS |
516 |
C-- Diagnose barotropic divergence of predicted fields |
C-- Diagnose barotropic divergence of predicted fields |
517 |
CALL CALC_DIV_GHAT( |
CALL CALC_DIV_GHAT( |
518 |
I bi,bj,iMin,iMax,jMin,jMax,K, |
I bi,bj,iMin,iMax,jMin,jMax,K, |
519 |
I xA,yA, |
I xA,yA, |
520 |
I myThid) |
I myThid) |
521 |
|
#endif /* DIVG_IN_DYNAMICS */ |
522 |
|
|
523 |
C-- Cumulative diagnostic calculations (ie. time-averaging) |
C-- Cumulative diagnostic calculations (ie. time-averaging) |
524 |
#ifdef INCLUDE_DIAGNOSTICS_INTERFACE_CODE |
#ifdef INCLUDE_DIAGNOSTICS_INTERFACE_CODE |