118 |
doDiagsRho = 0 |
doDiagsRho = 0 |
119 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
120 |
IF ( useDiagnostics .AND. fluidIsWater ) THEN |
IF ( useDiagnostics .AND. fluidIsWater ) THEN |
121 |
IF ( DIAGNOSTICS_IS_ON('WRHOMASS',myThid) ) |
IF ( DIAGNOSTICS_IS_ON('WRHOMASS',myThid) ) |
122 |
& doDiagsRho = doDiagsRho + 1 |
& doDiagsRho = doDiagsRho + 1 |
123 |
IF ( DIAGNOSTICS_IS_ON('DRHODR ',myThid) ) |
IF ( DIAGNOSTICS_IS_ON('DRHODR ',myThid) ) |
124 |
& doDiagsRho = doDiagsRho + 2 |
& doDiagsRho = doDiagsRho + 2 |
360 |
& CALL DEBUG_CALL('FIND_RHO_2D',myThid) |
& CALL DEBUG_CALL('FIND_RHO_2D',myThid) |
361 |
#endif |
#endif |
362 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
363 |
|
IF ( fluidIsWater ) THEN |
364 |
CADJ STORE theta(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE theta(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
365 |
CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE salt(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
366 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
367 |
#ifdef ALLOW_DOWN_SLOPE |
#ifdef ALLOW_DOWN_SLOPE |
368 |
IF ( useDOWN_SLOPE ) THEN |
IF ( useDOWN_SLOPE ) THEN |
381 |
#ifdef ALLOW_DOWN_SLOPE |
#ifdef ALLOW_DOWN_SLOPE |
382 |
ENDIF |
ENDIF |
383 |
#endif /* ALLOW_DOWN_SLOPE */ |
#endif /* ALLOW_DOWN_SLOPE */ |
384 |
|
#ifdef ALLOW_AUTODIFF_TAMC |
385 |
|
ELSE |
386 |
|
C- fluid is not water: |
387 |
|
DO j=1-OLy,sNy+OLy |
388 |
|
DO i=1-OLx,sNx+OLx |
389 |
|
rhoInSitu(i,j,k,bi,bj) = 0. |
390 |
|
ENDDO |
391 |
|
ENDDO |
392 |
|
ENDIF |
393 |
|
#endif /* ALLOW_AUTODIFF_TAMC */ |
394 |
|
|
395 |
C-- Calculate gradients of potential density for isoneutral |
C-- Calculate gradients of potential density for isoneutral |
396 |
C slope terms (e.g. GM/Redi tensor or IVDC diffusivity) |
C slope terms (e.g. GM/Redi tensor or IVDC diffusivity) |
400 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
401 |
CADJ STORE theta(:,:,k-1,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE theta(:,:,k-1,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
402 |
CADJ STORE salt (:,:,k-1,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE salt (:,:,k-1,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
403 |
|
CADJ STORE rhokm1 (bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
404 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
405 |
CALL FIND_RHO_2D( |
CALL FIND_RHO_2D( |
406 |
I iMin, iMax, jMin, jMax, k, |
I iMin, iMax, jMin, jMax, k, |
452 |
IF ( MOD(doDiagsRho,2).EQ.1 ) THEN |
IF ( MOD(doDiagsRho,2).EQ.1 ) THEN |
453 |
CALL DIAGS_RHO_L( k, bi, bj, |
CALL DIAGS_RHO_L( k, bi, bj, |
454 |
I rhoInSitu(1-OLx,1-OLy,k,bi,bj), |
I rhoInSitu(1-OLx,1-OLy,k,bi,bj), |
455 |
I rhoKm1, wVel, |
I rhoKm1, wVel, |
456 |
I myTime, myIter, myThid ) |
I myTime, myIter, myThid ) |
457 |
ENDIF |
ENDIF |
458 |
#endif |
#endif |
674 |
|
|
675 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
676 |
IF ( fluidIsWater .AND. useDiagnostics ) THEN |
IF ( fluidIsWater .AND. useDiagnostics ) THEN |
677 |
CALL DIAGS_RHO_G( |
CALL DIAGS_RHO_G( |
678 |
I rhoInSitu, uVel, vVel, |
I rhoInSitu, uVel, vVel, |
679 |
I myTime, myIter, myThid ) |
I myTime, myIter, myThid ) |
680 |
CALL DIAGS_OCEANIC_SURF_FLUX( myTime, myIter, myThid ) |
CALL DIAGS_OCEANIC_SURF_FLUX( myTime, myIter, myThid ) |