202 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
203 |
C-- 1rst loop on k : compute Tensor Coeff. at W points. |
C-- 1rst loop on k : compute Tensor Coeff. at W points. |
204 |
|
|
205 |
|
DO j=1-Oly,sNy+Oly |
206 |
|
DO i=1-Olx,sNx+Olx |
207 |
|
hTransLay(i,j) = R_low(i,j,bi,bj) |
208 |
|
baseSlope(i,j) = 0. _d 0 |
209 |
|
recipLambda(i,j) = 0. _d 0 |
210 |
|
locMixLayer(i,j) = 0. _d 0 |
211 |
|
ENDDO |
212 |
|
ENDDO |
213 |
#ifdef ALLOW_KPP |
#ifdef ALLOW_KPP |
214 |
IF ( useKPP ) THEN |
IF ( useKPP ) THEN |
215 |
DO j=1-Oly,sNy+Oly |
DO j=1-Oly,sNy+Oly |
227 |
ENDDO |
ENDDO |
228 |
ENDDO |
ENDDO |
229 |
ENDIF |
ENDIF |
|
DO j=1-Oly,sNy+Oly |
|
|
DO i=1-Olx,sNx+Olx |
|
|
hTransLay(i,j) = R_low(i,j,bi,bj) |
|
|
baseSlope(i,j) = 0. |
|
|
recipLambda(i,j)= 0. |
|
|
ENDDO |
|
|
ENDDO |
|
230 |
|
|
231 |
DO k=Nr,2,-1 |
DO k=Nr,2,-1 |
232 |
|
|
277 |
CADJ STORE dSigmaDx(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE dSigmaDx(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
278 |
CADJ STORE dSigmaDy(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE dSigmaDy(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
279 |
CADJ STORE dSigmaDr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE dSigmaDr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
280 |
|
CADJ STORE baseSlope(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
281 |
|
CADJ STORE hTransLay(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
282 |
|
CADJ STORE recipLambda(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
283 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
284 |
|
|
285 |
#ifdef GM_VISBECK_VARIABLE_K |
#ifdef GM_VISBECK_VARIABLE_K |
432 |
cph) |
cph) |
433 |
#endif /* GM_VISBECK_VARIABLE_K */ |
#endif /* GM_VISBECK_VARIABLE_K */ |
434 |
|
|
435 |
|
C- express the Tensor in term of Diffusivity (= m**2 / s ) |
436 |
|
DO k=1,Nr |
437 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
438 |
kkey = (igmkey-1)*Nr + k |
kkey = (igmkey-1)*Nr + k |
439 |
#if (defined (GM_NON_UNITY_DIAGONAL) || \ |
# if (defined (GM_NON_UNITY_DIAGONAL) || \ |
440 |
defined (GM_VISBECK_VARIABLE_K)) |
defined (GM_VISBECK_VARIABLE_K)) |
441 |
CADJ STORE Kwx(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE Kwx(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
442 |
CADJ STORE Kwy(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE Kwy(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
443 |
CADJ STORE Kwz(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE Kwz(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
444 |
|
# endif |
445 |
#endif |
#endif |
|
#endif |
|
|
|
|
|
C- express the Tensor in term of Diffusivity (= m**2 / s ) |
|
|
DO k=1,Nr |
|
446 |
DO j=1-Oly+1,sNy+Oly-1 |
DO j=1-Oly+1,sNy+Oly-1 |
447 |
DO i=1-Olx+1,sNx+Olx-1 |
DO i=1-Olx+1,sNx+Olx-1 |
448 |
#ifdef ALLOW_KAPGM_CONTROL |
#ifdef ALLOW_KAPGM_CONTROL |
511 |
kp1 = MIN(Nr,k+1) |
kp1 = MIN(Nr,k+1) |
512 |
maskp1 = 1. _d 0 |
maskp1 = 1. _d 0 |
513 |
IF (k.GE.Nr) maskp1 = 0. _d 0 |
IF (k.GE.Nr) maskp1 = 0. _d 0 |
514 |
|
#ifdef ALLOW_AUTODIFF_TAMC |
515 |
|
kkey = (igmkey-1)*Nr + k |
516 |
|
#endif |
517 |
|
|
518 |
C Gradient of Sigma at U points |
C Gradient of Sigma at U points |
519 |
DO j=1-Oly+1,sNy+Oly-1 |
DO j=1-Oly+1,sNy+Oly-1 |
533 |
CADJ STORE SlopeSqr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE SlopeSqr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
534 |
CADJ STORE dSigmaDx(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE dSigmaDx(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
535 |
CADJ STORE dSigmaDy(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE dSigmaDy(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
536 |
CADJ STORE dSigmaDr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE dSigmaDr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
537 |
|
CADJ STORE locMixLayer(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
538 |
|
CADJ STORE baseSlope(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
539 |
|
CADJ STORE hTransLay(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
540 |
|
CADJ STORE recipLambda(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
541 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
542 |
|
|
543 |
C Calculate slopes for use in tensor, taper and/or clip |
C Calculate slopes for use in tensor, taper and/or clip |
551 |
I kLow_W, |
I kLow_W, |
552 |
I k, bi, bj, myTime, myIter, myThid ) |
I k, bi, bj, myTime, myIter, myThid ) |
553 |
|
|
|
cph( NEW |
|
554 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
|
cph( |
|
555 |
CADJ STORE SlopeSqr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE SlopeSqr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
556 |
CADJ STORE taperFct(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE taperFct(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
|
cph) |
|
557 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
|
cph) |
|
558 |
|
|
559 |
#ifdef GM_NON_UNITY_DIAGONAL |
#ifdef GM_NON_UNITY_DIAGONAL |
560 |
c IF ( GM_nonUnitDiag ) THEN |
c IF ( GM_nonUnitDiag ) THEN |
686 |
kp1 = MIN(Nr,k+1) |
kp1 = MIN(Nr,k+1) |
687 |
maskp1 = 1. _d 0 |
maskp1 = 1. _d 0 |
688 |
IF (k.GE.Nr) maskp1 = 0. _d 0 |
IF (k.GE.Nr) maskp1 = 0. _d 0 |
689 |
|
#ifdef ALLOW_AUTODIFF_TAMC |
690 |
|
kkey = (igmkey-1)*Nr + k |
691 |
|
#endif |
692 |
|
|
693 |
DO j=1-Oly+1,sNy+Oly-1 |
DO j=1-Oly+1,sNy+Oly-1 |
694 |
DO i=1-Olx+1,sNx+Olx-1 |
DO i=1-Olx+1,sNx+Olx-1 |
706 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
707 |
CADJ STORE dSigmaDx(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE dSigmaDx(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
708 |
CADJ STORE dSigmaDy(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE dSigmaDy(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
709 |
CADJ STORE dSigmaDr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
CADJ STORE dSigmaDr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
710 |
|
CADJ STORE baseSlope(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
711 |
|
CADJ STORE hTransLay(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
712 |
|
CADJ STORE recipLambda(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte |
713 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
714 |
|
|
715 |
C Calculate slopes for use in tensor, taper and/or clip |
C Calculate slopes for use in tensor, taper and/or clip |