71 |
_RL dSigmaDr(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
_RL dSigmaDr(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
72 |
_RL SlopeSqr(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
_RL SlopeSqr(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
73 |
_RL taperFct(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
_RL taperFct(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
|
_RL Kgm_tmp |
|
74 |
_RL ldd97_LrhoC(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
_RL ldd97_LrhoC(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
75 |
_RL ldd97_LrhoW(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
_RL ldd97_LrhoW(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
76 |
_RL ldd97_LrhoS(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
_RL ldd97_LrhoS(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
77 |
_RL Cspd, LrhoInf, LrhoSup, fCoriLoc |
_RL Cspd, LrhoInf, LrhoSup, fCoriLoc |
78 |
|
_RL Kgm_tmp, isopycK, bolus_K |
79 |
|
|
80 |
INTEGER kLow_W (1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
INTEGER kLow_W (1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
81 |
INTEGER kLow_S (1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
INTEGER kLow_S (1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
83 |
_RL baseSlope (1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
_RL baseSlope (1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
84 |
_RL hTransLay (1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
_RL hTransLay (1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
85 |
_RL recipLambda(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
_RL recipLambda(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
86 |
|
INTEGER km1 |
87 |
#if ( defined (GM_NON_UNITY_DIAGONAL) || defined (GM_EXTRA_DIAGONAL) ) |
#if ( defined (GM_NON_UNITY_DIAGONAL) || defined (GM_EXTRA_DIAGONAL) ) |
88 |
INTEGER kp1 |
INTEGER kp1 |
89 |
_RL maskp1 |
_RL maskp1 |
106 |
LOGICAL DIAGNOSTICS_IS_ON |
LOGICAL DIAGNOSTICS_IS_ON |
107 |
EXTERNAL DIAGNOSTICS_IS_ON |
EXTERNAL DIAGNOSTICS_IS_ON |
108 |
#if ( defined (GM_NON_UNITY_DIAGONAL) || defined (GM_EXTRA_DIAGONAL) ) |
#if ( defined (GM_NON_UNITY_DIAGONAL) || defined (GM_EXTRA_DIAGONAL) ) |
|
INTEGER km1 |
|
109 |
_RL dTdz |
_RL dTdz |
110 |
_RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
111 |
#endif |
#endif |
480 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
481 |
kkey = (igmkey-1)*Nr + k |
kkey = (igmkey-1)*Nr + k |
482 |
# if (defined (GM_NON_UNITY_DIAGONAL) || \ |
# if (defined (GM_NON_UNITY_DIAGONAL) || \ |
483 |
defined (GM_VISBECK_VARIABLE_K)) |
defined (GM_VISBECK_VARIABLE_K)) |
484 |
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 |
485 |
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 |
486 |
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 |
487 |
# endif |
# endif |
488 |
#endif |
#endif |
489 |
|
km1 = MAX(k-1,1) |
490 |
|
isopycK = GM_isopycK |
491 |
|
& *(GM_isoFac1d(km1)+GM_isoFac1d(k))*op5 |
492 |
|
bolus_K = GM_background_K |
493 |
|
& *(GM_bolFac1d(km1)+GM_bolFac1d(k))*op5 |
494 |
DO j=1-Oly+1,sNy+Oly-1 |
DO j=1-Oly+1,sNy+Oly-1 |
495 |
DO i=1-Olx+1,sNx+Olx-1 |
DO i=1-Olx+1,sNx+Olx-1 |
496 |
#ifdef ALLOW_KAPREDI_CONTROL |
#ifdef ALLOW_KAPREDI_CONTROL |
497 |
Kgm_tmp = kapredi(i,j,k,bi,bj) |
Kgm_tmp = kapredi(i,j,k,bi,bj) |
498 |
#else |
#else |
499 |
Kgm_tmp = GM_isopycK |
Kgm_tmp = isopycK*GM_isoFac2d(i,j,bi,bj) |
500 |
#endif |
#endif |
501 |
#ifdef ALLOW_KAPGM_CONTROL |
#ifdef ALLOW_KAPGM_CONTROL |
502 |
& + GM_skewflx*kapgm(i,j,k,bi,bj) |
& + GM_skewflx*kapgm(i,j,k,bi,bj) |
503 |
#else |
#else |
504 |
& + GM_skewflx*GM_background_K |
& + GM_skewflx*bolus_K*GM_bolFac2d(i,j,bi,bj) |
505 |
#endif |
#endif |
506 |
#ifdef GM_VISBECK_VARIABLE_K |
#ifdef GM_VISBECK_VARIABLE_K |
507 |
& + VisbeckK(i,j,bi,bj)*(1. _d 0 + GM_skewflx) |
& + VisbeckK(i,j,bi,bj)*(1. _d 0 + GM_skewflx) |
511 |
#ifdef ALLOW_KAPREDI_CONTROL |
#ifdef ALLOW_KAPREDI_CONTROL |
512 |
Kwz(i,j,k,bi,bj)= ( kapredi(i,j,k,bi,bj) |
Kwz(i,j,k,bi,bj)= ( kapredi(i,j,k,bi,bj) |
513 |
#else |
#else |
514 |
Kwz(i,j,k,bi,bj)= ( GM_isopycK |
Kwz(i,j,k,bi,bj)= ( GM_isopycK*GM_isoFac2d(i,j,bi,bj) |
515 |
#endif |
#endif |
516 |
#ifdef GM_VISBECK_VARIABLE_K |
#ifdef GM_VISBECK_VARIABLE_K |
517 |
& + VisbeckK(i,j,bi,bj) |
& + VisbeckK(i,j,bi,bj) |
621 |
#ifdef ALLOW_KAPREDI_CONTROL |
#ifdef ALLOW_KAPREDI_CONTROL |
622 |
& ( kapredi(i,j,k,bi,bj) |
& ( kapredi(i,j,k,bi,bj) |
623 |
#else |
#else |
624 |
& ( GM_isopycK |
& ( GM_isopycK*GM_isoFac1d(k) |
625 |
|
& *op5*(GM_isoFac2d(i-1,j,bi,bj)+GM_isoFac2d(i,j,bi,bj)) |
626 |
#endif |
#endif |
627 |
#ifdef GM_VISBECK_VARIABLE_K |
#ifdef GM_VISBECK_VARIABLE_K |
628 |
& +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj)) |
& +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj)) |
656 |
#ifdef ALLOW_KAPREDI_CONTROL |
#ifdef ALLOW_KAPREDI_CONTROL |
657 |
& ( kapredi(i,j,k,bi,bj) |
& ( kapredi(i,j,k,bi,bj) |
658 |
#else |
#else |
659 |
& ( GM_isopycK |
& ( GM_isopycK*GM_isoFac1d(k) |
660 |
|
& *op5*(GM_isoFac2d(i-1,j,bi,bj)+GM_isoFac2d(i,j,bi,bj)) |
661 |
#endif |
#endif |
662 |
#ifdef ALLOW_KAPGM_CONTROL |
#ifdef ALLOW_KAPGM_CONTROL |
663 |
& - GM_skewflx*kapgm(i,j,k,bi,bj) |
& - GM_skewflx*kapgm(i,j,k,bi,bj) |
664 |
#else |
#else |
665 |
& - GM_skewflx*GM_background_K |
& - GM_skewflx*GM_background_K*GM_bolFac1d(k) |
666 |
|
& *op5*(GM_bolFac2d(i-1,j,bi,bj)+GM_bolFac2d(i,j,bi,bj)) |
667 |
#endif |
#endif |
668 |
#ifdef GM_VISBECK_VARIABLE_K |
#ifdef GM_VISBECK_VARIABLE_K |
669 |
& +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj))*GM_advect |
& +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj))*GM_advect |
812 |
#ifdef ALLOW_KAPREDI_CONTROL |
#ifdef ALLOW_KAPREDI_CONTROL |
813 |
& ( kapredi(i,j,k,bi,bj) |
& ( kapredi(i,j,k,bi,bj) |
814 |
#else |
#else |
815 |
& ( GM_isopycK |
& ( GM_isopycK*GM_isoFac1d(k) |
816 |
|
& *op5*(GM_isoFac2d(i,j-1,bi,bj)+GM_isoFac2d(i,j,bi,bj)) |
817 |
#endif |
#endif |
818 |
#ifdef GM_VISBECK_VARIABLE_K |
#ifdef GM_VISBECK_VARIABLE_K |
819 |
& +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj)) |
& +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj)) |
847 |
#ifdef ALLOW_KAPREDI_CONTROL |
#ifdef ALLOW_KAPREDI_CONTROL |
848 |
& ( kapredi(i,j,k,bi,bj) |
& ( kapredi(i,j,k,bi,bj) |
849 |
#else |
#else |
850 |
& ( GM_isopycK |
& ( GM_isopycK*GM_isoFac1d(k) |
851 |
|
& *op5*(GM_isoFac2d(i,j-1,bi,bj)+GM_isoFac2d(i,j,bi,bj)) |
852 |
#endif |
#endif |
853 |
#ifdef ALLOW_KAPGM_CONTROL |
#ifdef ALLOW_KAPGM_CONTROL |
854 |
& - GM_skewflx*kapgm(i,j,k,bi,bj) |
& - GM_skewflx*kapgm(i,j,k,bi,bj) |
855 |
#else |
#else |
856 |
& - GM_skewflx*GM_background_K |
& - GM_skewflx*GM_background_K*GM_bolFac1d(k) |
857 |
|
& *op5*(GM_bolFac2d(i,j-1,bi,bj)+GM_bolFac2d(i,j,bi,bj)) |
858 |
#endif |
#endif |
859 |
#ifdef GM_VISBECK_VARIABLE_K |
#ifdef GM_VISBECK_VARIABLE_K |
860 |
& +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj))*GM_advect |
& +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj))*GM_advect |