353 |
ENDIF |
ENDIF |
354 |
|
|
355 |
C-- Calculate accelerations in the momentum equations (gU, gV, ...) |
C-- Calculate accelerations in the momentum equations (gU, gV, ...) |
356 |
C and step forward storing the result in gUnm1, gVnm1, etc... |
C and step forward storing the result in gU, gV, etc... |
357 |
IF ( momStepping ) THEN |
IF ( momStepping ) THEN |
358 |
#ifndef DISABLE_MOM_FLUXFORM |
#ifndef DISABLE_MOM_FLUXFORM |
359 |
IF (.NOT. vectorInvariantMomentum) CALL MOM_FLUXFORM( |
IF (.NOT. vectorInvariantMomentum) CALL MOM_FLUXFORM( |
372 |
CALL TIMESTEP( |
CALL TIMESTEP( |
373 |
I bi,bj,iMin,iMax,jMin,jMax,k, |
I bi,bj,iMin,iMax,jMin,jMax,k, |
374 |
I dPhiHydX,dPhiHydY, phiSurfX, phiSurfY, |
I dPhiHydX,dPhiHydY, phiSurfX, phiSurfY, |
375 |
I myIter, myThid) |
I myTime, myIter, myThid) |
376 |
|
|
377 |
#ifdef ALLOW_OBCS |
#ifdef ALLOW_OBCS |
378 |
C-- Apply open boundary conditions |
C-- Apply open boundary conditions |
379 |
IF (useOBCS) THEN |
IF (useOBCS) THEN |
380 |
CALL OBCS_APPLY_UV( bi, bj, k, gUnm1, gVnm1, myThid ) |
CALL OBCS_APPLY_UV( bi, bj, k, gU, gV, myThid ) |
381 |
END IF |
ENDIF |
382 |
#endif /* ALLOW_OBCS */ |
#endif /* ALLOW_OBCS */ |
383 |
|
|
|
#ifdef ALLOW_AUTODIFF_TAMC |
|
|
#ifdef INCLUDE_CD_CODE |
|
|
ELSE |
|
|
DO j=1-OLy,sNy+OLy |
|
|
DO i=1-OLx,sNx+OLx |
|
|
guCD(i,j,k,bi,bj) = 0.0 |
|
|
gvCD(i,j,k,bi,bj) = 0.0 |
|
|
END DO |
|
|
END DO |
|
|
#endif /* INCLUDE_CD_CODE */ |
|
|
#endif /* ALLOW_AUTODIFF_TAMC */ |
|
384 |
ENDIF |
ENDIF |
385 |
|
|
386 |
|
|
390 |
C-- Implicit viscosity |
C-- Implicit viscosity |
391 |
IF (implicitViscosity.AND.momStepping) THEN |
IF (implicitViscosity.AND.momStepping) THEN |
392 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
393 |
CADJ STORE gUNm1(:,:,:,bi,bj) = comlev1_bibj , key=idynkey, byte=isbyte |
CADJ STORE gU(:,:,:,bi,bj) = comlev1_bibj , key=idynkey, byte=isbyte |
394 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
395 |
CALL IMPLDIFF( |
CALL IMPLDIFF( |
396 |
I bi, bj, iMin, iMax, jMin, jMax, |
I bi, bj, iMin, iMax, jMin, jMax, |
397 |
I deltaTmom, KappaRU,recip_HFacW, |
I deltaTmom, KappaRU,recip_HFacW, |
398 |
U gUNm1, |
U gU, |
399 |
I myThid ) |
I myThid ) |
400 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
401 |
CADJ STORE gVNm1(:,:,:,bi,bj) = comlev1_bibj , key=idynkey, byte=isbyte |
CADJ STORE gVNm1(:,:,:,bi,bj) = comlev1_bibj , key=idynkey, byte=isbyte |
403 |
CALL IMPLDIFF( |
CALL IMPLDIFF( |
404 |
I bi, bj, iMin, iMax, jMin, jMax, |
I bi, bj, iMin, iMax, jMin, jMax, |
405 |
I deltaTmom, KappaRV,recip_HFacS, |
I deltaTmom, KappaRV,recip_HFacS, |
406 |
U gVNm1, |
U gV, |
407 |
I myThid ) |
I myThid ) |
408 |
|
|
409 |
#ifdef ALLOW_OBCS |
#ifdef ALLOW_OBCS |
410 |
C-- Apply open boundary conditions |
C-- Apply open boundary conditions |
411 |
IF (useOBCS) THEN |
IF (useOBCS) THEN |
412 |
DO K=1,Nr |
DO K=1,Nr |
413 |
CALL OBCS_APPLY_UV( bi, bj, k, gUnm1, gVnm1, myThid ) |
CALL OBCS_APPLY_UV( bi, bj, k, gU, gV, myThid ) |
414 |
ENDDO |
ENDDO |
415 |
END IF |
END IF |
416 |
#endif /* ALLOW_OBCS */ |
#endif /* ALLOW_OBCS */ |