286 |
_KPP_RL bo (imt) |
_KPP_RL bo (imt) |
287 |
_KPP_RL bosol (imt) |
_KPP_RL bosol (imt) |
288 |
_KPP_RL coriol(imt) |
_KPP_RL coriol(imt) |
289 |
integer ikppkey |
integer ikppkey, kkppkey |
290 |
|
|
291 |
c output |
c output |
292 |
c-------- |
c-------- |
340 |
|
|
341 |
do kl = 2, Nr |
do kl = 2, Nr |
342 |
|
|
343 |
|
#ifdef ALLOW_AUTODIFF_TAMC |
344 |
|
kkppkey = (ikppkey-1)*Nr + kl |
345 |
|
#endif |
346 |
|
|
347 |
c compute bfsfc = sw fraction at hbf * zgrid |
c compute bfsfc = sw fraction at hbf * zgrid |
348 |
|
|
349 |
do i = 1, imt |
do i = 1, imt |
350 |
worka(i) = zgrid(kl) |
worka(i) = zgrid(kl) |
351 |
end do |
end do |
352 |
|
CADJ store worka = comlev1_kpp_k, key = kkppkey |
353 |
call SWFRAC( |
call SWFRAC( |
354 |
I imt, hbf, |
I imt, hbf, |
355 |
I mytime, mythid, |
I mytime, mythid, |
356 |
U worka ) |
U worka ) |
357 |
|
CADJ store worka = comlev1_kpp_k, key = kkppkey |
358 |
|
|
359 |
|
|
360 |
do i = 1, imt |
do i = 1, imt |
361 |
|
|
378 |
call wscale ( |
call wscale ( |
379 |
I sigma, casea, ustar, bfsfc, |
I sigma, casea, ustar, bfsfc, |
380 |
O wm, ws ) |
O wm, ws ) |
381 |
|
CADJ store ws = comlev1_kpp_k, key = kkppkey |
382 |
|
|
383 |
do i = 1, imt |
do i = 1, imt |
384 |
|
|
451 |
do i = 1, imt |
do i = 1, imt |
452 |
worka(i) = hbl(i) |
worka(i) = hbl(i) |
453 |
end do |
end do |
454 |
|
CADJ store worka = comlev1_kpp |
455 |
|
CADJ & , key = ikppkey, shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) |
456 |
call SWFRAC( |
call SWFRAC( |
457 |
I imt, minusone, |
I imt, minusone, |
458 |
I mytime, mythid, |
I mytime, mythid, |
459 |
U worka ) |
U worka ) |
460 |
|
CADJ store worka = comlev1_kpp |
461 |
|
CADJ & , key = ikppkey, shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) |
462 |
|
|
463 |
do i = 1, imt |
do i = 1, imt |
464 |
bfsfc(i) = bo(i) + bosol(i) * (1. - worka(i)) |
bfsfc(i) = bo(i) + bosol(i) * (1. - worka(i)) |
523 |
do i = 1, imt |
do i = 1, imt |
524 |
worka(i) = hbl(i) |
worka(i) = hbl(i) |
525 |
end do |
end do |
526 |
|
CADJ store worka = comlev1_kpp |
527 |
|
CADJ & , key = ikppkey, shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) |
528 |
call SWFRAC( |
call SWFRAC( |
529 |
I imt, minusone, |
I imt, minusone, |
530 |
I mytime, mythid, |
I mytime, mythid, |
531 |
U worka ) |
U worka ) |
532 |
|
CADJ store worka = comlev1_kpp |
533 |
|
CADJ & , key = ikppkey, shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) |
534 |
|
|
535 |
do i = 1, imt |
do i = 1, imt |
536 |
bfsfc(i) = bo(i) + bosol(i) * (1. - worka(i)) |
bfsfc(i) = bo(i) + bosol(i) * (1. - worka(i)) |
718 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
719 |
C break data flow dependence on diffus |
C break data flow dependence on diffus |
720 |
diffus(1,1,1) = 0.0 |
diffus(1,1,1) = 0.0 |
721 |
|
|
722 |
|
do ki = 1, Nr |
723 |
|
do i = 1, imt |
724 |
|
diffus(i,ki,1) = 0. |
725 |
|
diffus(i,ki,2) = 0. |
726 |
|
diffus(i,ki,3) = 0. |
727 |
|
enddo |
728 |
|
enddo |
729 |
#endif |
#endif |
730 |
|
|
731 |
|
|
732 |
do ki = 1, Nr |
do ki = 1, Nr |
733 |
do i = 1, imt |
do i = 1, imt |
744 |
endif |
endif |
745 |
end do |
end do |
746 |
end do |
end do |
747 |
|
CADJ store diffus = comlev1_kpp, key = ikppkey |
748 |
|
|
749 |
c----------------------------------------------------------------------- |
c----------------------------------------------------------------------- |
750 |
c vertically smooth Ri |
c vertically smooth Ri |
782 |
c ---------------------------------------------------------------------- |
c ---------------------------------------------------------------------- |
783 |
c evaluate diffusivities and viscosity |
c evaluate diffusivities and viscosity |
784 |
c mixing due to internal waves, and shear and static instability |
c mixing due to internal waves, and shear and static instability |
785 |
|
|
786 |
|
#ifndef EXCLUDE_KPP_SHEAR_MIX |
787 |
diffus(i,ki,1) = viscAr + fcon * difmcon + fRi * difm0 |
diffus(i,ki,1) = viscAr + fcon * difmcon + fRi * difm0 |
788 |
diffus(i,ki,2) = diffKrS + fcon * difscon + fRi * difs0 |
diffus(i,ki,2) = diffKrS + fcon * difscon + fRi * difs0 |
789 |
diffus(i,ki,3) = diffKrT + fcon * difscon + fRi * difs0 |
diffus(i,ki,3) = diffKrT + fcon * difscon + fRi * difs0 |
790 |
|
#else |
791 |
|
diffus(i,ki,1) = viscAr |
792 |
|
diffus(i,ki,2) = diffKrS |
793 |
|
diffus(i,ki,3) = diffKrT |
794 |
|
#endif |
795 |
|
|
796 |
end do |
end do |
797 |
end do |
end do |
902 |
|
|
903 |
IMPLICIT NONE |
IMPLICIT NONE |
904 |
#include "SIZE.h" |
#include "SIZE.h" |
905 |
|
#include "GRID.h" |
906 |
#include "KPP_PARAMS.h" |
#include "KPP_PARAMS.h" |
907 |
|
|
908 |
c input |
c input |
934 |
im1 = i-1 |
im1 = i-1 |
935 |
ip1 = i+1 |
ip1 = i+1 |
936 |
tempVar = |
tempVar = |
937 |
& p25 * pMask(i ,j ,k,bi,bj) + |
& p25 * maskC(i ,j ,k,bi,bj) + |
938 |
& p125 * ( pMask(im1,j ,k,bi,bj) + |
& p125 * ( maskC(im1,j ,k,bi,bj) + |
939 |
& pMask(ip1,j ,k,bi,bj) + |
& maskC(ip1,j ,k,bi,bj) + |
940 |
& pMask(i ,jm1,k,bi,bj) + |
& maskC(i ,jm1,k,bi,bj) + |
941 |
& pMask(i ,jp1,k,bi,bj) ) + |
& maskC(i ,jp1,k,bi,bj) ) + |
942 |
& p0625 * ( pMask(im1,jm1,k,bi,bj) + |
& p0625 * ( maskC(im1,jm1,k,bi,bj) + |
943 |
& pMask(im1,jp1,k,bi,bj) + |
& maskC(im1,jp1,k,bi,bj) + |
944 |
& pMask(ip1,jm1,k,bi,bj) + |
& maskC(ip1,jm1,k,bi,bj) + |
945 |
& pMask(ip1,jp1,k,bi,bj) ) |
& maskC(ip1,jp1,k,bi,bj) ) |
946 |
IF ( tempVar .GE. p25 ) THEN |
IF ( tempVar .GE. p25 ) THEN |
947 |
fld_tmp(i,j) = ( |
fld_tmp(i,j) = ( |
948 |
& p25 * fld(i ,j )*pMask(i ,j ,k,bi,bj) + |
& p25 * fld(i ,j )*maskC(i ,j ,k,bi,bj) + |
949 |
& p125 *(fld(im1,j )*pMask(im1,j ,k,bi,bj) + |
& p125 *(fld(im1,j )*maskC(im1,j ,k,bi,bj) + |
950 |
& fld(ip1,j )*pMask(ip1,j ,k,bi,bj) + |
& fld(ip1,j )*maskC(ip1,j ,k,bi,bj) + |
951 |
& fld(i ,jm1)*pMask(i ,jm1,k,bi,bj) + |
& fld(i ,jm1)*maskC(i ,jm1,k,bi,bj) + |
952 |
& fld(i ,jp1)*pMask(i ,jp1,k,bi,bj))+ |
& fld(i ,jp1)*maskC(i ,jp1,k,bi,bj))+ |
953 |
& p0625*(fld(im1,jm1)*pMask(im1,jm1,k,bi,bj) + |
& p0625*(fld(im1,jm1)*maskC(im1,jm1,k,bi,bj) + |
954 |
& fld(im1,jp1)*pMask(im1,jp1,k,bi,bj) + |
& fld(im1,jp1)*maskC(im1,jp1,k,bi,bj) + |
955 |
& fld(ip1,jm1)*pMask(ip1,jm1,k,bi,bj) + |
& fld(ip1,jm1)*maskC(ip1,jm1,k,bi,bj) + |
956 |
& fld(ip1,jp1)*pMask(ip1,jp1,k,bi,bj))) |
& fld(ip1,jp1)*maskC(ip1,jp1,k,bi,bj))) |
957 |
& / tempVar |
& / tempVar |
958 |
ELSE |
ELSE |
959 |
fld_tmp(i,j) = fld(i,j) |
fld_tmp(i,j) = fld(i,j) |
983 |
|
|
984 |
IMPLICIT NONE |
IMPLICIT NONE |
985 |
#include "SIZE.h" |
#include "SIZE.h" |
986 |
|
#include "GRID.h" |
987 |
#include "KPP_PARAMS.h" |
#include "KPP_PARAMS.h" |
988 |
|
|
989 |
c input |
c input |
1015 |
im1 = i-1 |
im1 = i-1 |
1016 |
ip1 = i+1 |
ip1 = i+1 |
1017 |
tempVar = |
tempVar = |
1018 |
& p25 * pMask(i ,j ,k,bi,bj) + |
& p25 * maskC(i ,j ,k,bi,bj) + |
1019 |
& p125 * ( pMask(im1,j ,k,bi,bj) + |
& p125 * ( maskC(im1,j ,k,bi,bj) + |
1020 |
& pMask(ip1,j ,k,bi,bj) + |
& maskC(ip1,j ,k,bi,bj) + |
1021 |
& pMask(i ,jm1,k,bi,bj) + |
& maskC(i ,jm1,k,bi,bj) + |
1022 |
& pMask(i ,jp1,k,bi,bj) ) + |
& maskC(i ,jp1,k,bi,bj) ) + |
1023 |
& p0625 * ( pMask(im1,jm1,k,bi,bj) + |
& p0625 * ( maskC(im1,jm1,k,bi,bj) + |
1024 |
& pMask(im1,jp1,k,bi,bj) + |
& maskC(im1,jp1,k,bi,bj) + |
1025 |
& pMask(ip1,jm1,k,bi,bj) + |
& maskC(ip1,jm1,k,bi,bj) + |
1026 |
& pMask(ip1,jp1,k,bi,bj) ) |
& maskC(ip1,jp1,k,bi,bj) ) |
1027 |
IF ( tempVar .GE. p25 ) THEN |
IF ( tempVar .GE. p25 ) THEN |
1028 |
fld_tmp(i,j) = ( |
fld_tmp(i,j) = ( |
1029 |
& p25 * fld(i ,j )*pMask(i ,j ,k,bi,bj) + |
& p25 * fld(i ,j )*maskC(i ,j ,k,bi,bj) + |
1030 |
& p125 *(fld(im1,j )*pMask(im1,j ,k,bi,bj) + |
& p125 *(fld(im1,j )*maskC(im1,j ,k,bi,bj) + |
1031 |
& fld(ip1,j )*pMask(ip1,j ,k,bi,bj) + |
& fld(ip1,j )*maskC(ip1,j ,k,bi,bj) + |
1032 |
& fld(i ,jm1)*pMask(i ,jm1,k,bi,bj) + |
& fld(i ,jm1)*maskC(i ,jm1,k,bi,bj) + |
1033 |
& fld(i ,jp1)*pMask(i ,jp1,k,bi,bj))+ |
& fld(i ,jp1)*maskC(i ,jp1,k,bi,bj))+ |
1034 |
& p0625*(fld(im1,jm1)*pMask(im1,jm1,k,bi,bj) + |
& p0625*(fld(im1,jm1)*maskC(im1,jm1,k,bi,bj) + |
1035 |
& fld(im1,jp1)*pMask(im1,jp1,k,bi,bj) + |
& fld(im1,jp1)*maskC(im1,jp1,k,bi,bj) + |
1036 |
& fld(ip1,jm1)*pMask(ip1,jm1,k,bi,bj) + |
& fld(ip1,jm1)*maskC(ip1,jm1,k,bi,bj) + |
1037 |
& fld(ip1,jp1)*pMask(ip1,jp1,k,bi,bj))) |
& fld(ip1,jp1)*maskC(ip1,jp1,k,bi,bj))) |
1038 |
& / tempVar |
& / tempVar |
1039 |
ELSE |
ELSE |
1040 |
fld_tmp(i,j) = fld(i,j) |
fld_tmp(i,j) = fld(i,j) |
1099 |
_KPP_RL blmc (imt,Nr,mdiff) |
_KPP_RL blmc (imt,Nr,mdiff) |
1100 |
_KPP_RL ghat (imt,Nr) |
_KPP_RL ghat (imt,Nr) |
1101 |
_KPP_RL sigma(imt) |
_KPP_RL sigma(imt) |
1102 |
integer ikppkey |
integer ikppkey, kkppkey |
1103 |
|
|
1104 |
#ifdef ALLOW_KPP |
#ifdef ALLOW_KPP |
1105 |
|
|
1128 |
sigma(i) = stable(i) * 1.0 + (1. - stable(i)) * epsilon |
sigma(i) = stable(i) * 1.0 + (1. - stable(i)) * epsilon |
1129 |
end do |
end do |
1130 |
|
|
1131 |
|
CADJ STORE sigma = comlev1_kpp, key = ikppkey |
1132 |
call wscale ( |
call wscale ( |
1133 |
I sigma, hbl, ustar, bfsfc, |
I sigma, hbl, ustar, bfsfc, |
1134 |
O wm, ws ) |
O wm, ws ) |
1135 |
|
CADJ STORE wm = comlev1_kpp, key = ikppkey |
1136 |
|
CADJ STORE ws = comlev1_kpp, key = ikppkey |
1137 |
|
|
1138 |
do i = 1, imt |
do i = 1, imt |
1139 |
wm(i) = sign(eins,wm(i))*max(phepsi,abs(wm(i))) |
wm(i) = sign(eins,wm(i))*max(phepsi,abs(wm(i))) |
1176 |
& max(ustar(i)**4,phepsi) |
& max(ustar(i)**4,phepsi) |
1177 |
gat1m(i) = visch / hbl(i) / wm(i) |
gat1m(i) = visch / hbl(i) / wm(i) |
1178 |
dat1m(i) = -viscp / wm(i) + f1 * visch |
dat1m(i) = -viscp / wm(i) + f1 * visch |
|
dat1m(i) = min(dat1m(i),p0) |
|
1179 |
|
|
1180 |
gat1s(i) = difsh / hbl(i) / ws(i) |
gat1s(i) = difsh / hbl(i) / ws(i) |
1181 |
dat1s(i) = -difsp / ws(i) + f1 * difsh |
dat1s(i) = -difsp / ws(i) + f1 * difsh |
|
dat1s(i) = min(dat1s(i),p0) |
|
1182 |
|
|
1183 |
gat1t(i) = difth / hbl(i) / ws(i) |
gat1t(i) = difth / hbl(i) / ws(i) |
1184 |
dat1t(i) = -diftp / ws(i) + f1 * difth |
dat1t(i) = -diftp / ws(i) + f1 * difth |
|
dat1t(i) = min(dat1t(i),p0) |
|
1185 |
|
|
1186 |
end do |
end do |
1187 |
|
#ifdef KPP_AUTODIFF_EXCESSIVE_STORE |
1188 |
|
CADJ STORE gat1m = comlev1_kpp, key = ikppkey |
1189 |
|
CADJ STORE gat1s = comlev1_kpp, key = ikppkey |
1190 |
|
CADJ STORE gat1t = comlev1_kpp, key = ikppkey |
1191 |
|
CADJ STORE dat1m = comlev1_kpp, key = ikppkey |
1192 |
|
CADJ STORE dat1s = comlev1_kpp, key = ikppkey |
1193 |
|
CADJ STORE dat1t = comlev1_kpp, key = ikppkey |
1194 |
|
#endif |
1195 |
|
do i = 1, imt |
1196 |
|
dat1m(i) = min(dat1m(i),p0) |
1197 |
|
dat1s(i) = min(dat1s(i),p0) |
1198 |
|
dat1t(i) = min(dat1t(i),p0) |
1199 |
|
end do |
1200 |
|
#ifdef KPP_AUTODIFF_EXCESSIVE_STORE |
1201 |
|
CADJ STORE dat1m = comlev1_kpp, key = ikppkey |
1202 |
|
CADJ STORE dat1s = comlev1_kpp, key = ikppkey |
1203 |
|
CADJ STORE dat1t = comlev1_kpp, key = ikppkey |
1204 |
|
#endif |
1205 |
|
|
1206 |
do ki = 1, Nr |
do ki = 1, Nr |
1207 |
|
|
1208 |
|
#ifdef ALLOW_AUTODIFF_TAMC |
1209 |
|
kkppkey = (ikppkey-1)*Nr + ki |
1210 |
|
#endif |
1211 |
|
|
1212 |
c----------------------------------------------------------------------- |
c----------------------------------------------------------------------- |
1213 |
c compute turbulent velocity scales on the interfaces |
c compute turbulent velocity scales on the interfaces |
1214 |
c----------------------------------------------------------------------- |
c----------------------------------------------------------------------- |
1217 |
sig = (-zgrid(ki) + 0.5 * hwide(ki)) / hbl(i) |
sig = (-zgrid(ki) + 0.5 * hwide(ki)) / hbl(i) |
1218 |
sigma(i) = stable(i)*sig + (1.-stable(i))*min(sig,epsilon) |
sigma(i) = stable(i)*sig + (1.-stable(i))*min(sig,epsilon) |
1219 |
end do |
end do |
1220 |
|
#ifdef KPP_AUTODIFF_EXCESSIVE_STORE |
1221 |
|
CADJ STORE wm = comlev1_kpp_k, key = kkppkey |
1222 |
|
CADJ STORE ws = comlev1_kpp_k, key = kkppkey |
1223 |
|
#endif |
1224 |
|
CADJ STORE sigma = comlev1_kpp_k, key = kkppkey |
1225 |
call wscale ( |
call wscale ( |
1226 |
I sigma, hbl, ustar, bfsfc, |
I sigma, hbl, ustar, bfsfc, |
1227 |
O wm, ws ) |
O wm, ws ) |
1228 |
|
CADJ STORE wm = comlev1_kpp_k, key = kkppkey |
1229 |
|
CADJ STORE ws = comlev1_kpp_k, key = kkppkey |
1230 |
|
|
1231 |
c----------------------------------------------------------------------- |
c----------------------------------------------------------------------- |
1232 |
c compute the dimensionless shape functions at the interfaces |
c compute the dimensionless shape functions at the interfaces |
1270 |
& + (1. - stable(i)) * min(sig,epsilon) |
& + (1. - stable(i)) * min(sig,epsilon) |
1271 |
end do |
end do |
1272 |
|
|
1273 |
|
#ifdef KPP_AUTODIFF_EXCESSIVE_STORE |
1274 |
|
CADJ STORE wm = comlev1_kpp, key = ikppkey |
1275 |
|
CADJ STORE ws = comlev1_kpp, key = ikppkey |
1276 |
|
#endif |
1277 |
|
CADJ STORE sigma = comlev1_kpp, key = ikppkey |
1278 |
call wscale ( |
call wscale ( |
1279 |
I sigma, hbl, ustar, bfsfc, |
I sigma, hbl, ustar, bfsfc, |
1280 |
O wm, ws ) |
O wm, ws ) |
1281 |
|
CADJ STORE wm = comlev1_kpp, key = ikppkey |
1282 |
|
CADJ STORE ws = comlev1_kpp, key = ikppkey |
1283 |
|
|
1284 |
do i = 1, imt |
do i = 1, imt |
1285 |
sig = -zgrid(kbl(i)-1) / hbl(i) |
sig = -zgrid(kbl(i)-1) / hbl(i) |
1366 |
c************************************************************************* |
c************************************************************************* |
1367 |
|
|
1368 |
SUBROUTINE STATEKPP ( |
SUBROUTINE STATEKPP ( |
1369 |
I bi, bj, myThid, |
I ikppkey, bi, bj, myThid, |
1370 |
O RHO1, DBLOC, DBSFC, TTALPHA, SSBETA) |
O RHO1, DBLOC, DBSFC, TTALPHA, SSBETA) |
1371 |
c |
c |
1372 |
c----------------------------------------------------------------------- |
c----------------------------------------------------------------------- |
1428 |
_RL WORK2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL WORK2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
1429 |
_RL WORK3 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL WORK3 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
1430 |
INTEGER I, J, K |
INTEGER I, J, K |
1431 |
|
INTEGER ikppkey, kkppkey |
1432 |
|
|
1433 |
c calculate density, alpha, beta in surface layer, and set dbsfc to zero |
c calculate density, alpha, beta in surface layer, and set dbsfc to zero |
1434 |
|
|
1435 |
|
kkppkey = (ikppkey-1)*Nr + 1 |
1436 |
|
|
1437 |
|
#ifdef KPP_AUTODIFF_EXCESSIVE_STORE |
1438 |
|
CADJ STORE theta(:,:,1,bi,bj) = comlev1_kpp_k, key=kkppkey |
1439 |
|
CADJ STORE salt (:,:,1,bi,bj) = comlev1_kpp_k, key=kkppkey |
1440 |
|
#endif /* KPP_AUTODIFF_EXCESSIVE_STORE */ |
1441 |
call FIND_RHO( |
call FIND_RHO( |
1442 |
I bi, bj, ibot, itop, jbot, jtop, 1, 1, |
I bi, bj, ibot, itop, jbot, jtop, 1, 1, |
1443 |
I theta, salt, |
I theta, salt, |
1444 |
O WORK1, |
O WORK1, |
1445 |
I myThid ) |
I myThid ) |
1446 |
|
#ifdef KPP_AUTODIFF_EXCESSIVE_STORE |
1447 |
|
CADJ STORE theta(:,:,1,bi,bj) = comlev1_kpp_k, key=kkppkey |
1448 |
|
CADJ STORE salt (:,:,1,bi,bj) = comlev1_kpp_k, key=kkppkey |
1449 |
|
#endif /* KPP_AUTODIFF_EXCESSIVE_STORE */ |
1450 |
|
|
1451 |
call FIND_ALPHA( |
call FIND_ALPHA( |
1452 |
I bi, bj, ibot, itop, jbot, jtop, 1, 1, |
I bi, bj, ibot, itop, jbot, jtop, 1, 1, |
1470 |
CHPF$ INDEPENDENT, NEW (RHOK,RHOKM1,RHO1K,WORK1,WORK2) |
CHPF$ INDEPENDENT, NEW (RHOK,RHOKM1,RHO1K,WORK1,WORK2) |
1471 |
DO K = 2, Nr |
DO K = 2, Nr |
1472 |
|
|
1473 |
|
kkppkey = (ikppkey-1)*Nr + k |
1474 |
|
|
1475 |
|
#ifdef KPP_AUTODIFF_EXCESSIVE_STORE |
1476 |
|
CADJ STORE theta(:,:,k,bi,bj) = comlev1_kpp_k, key=kkppkey |
1477 |
|
CADJ STORE salt (:,:,k,bi,bj) = comlev1_kpp_k, key=kkppkey |
1478 |
|
#endif /* KPP_AUTODIFF_EXCESSIVE_STORE */ |
1479 |
call FIND_RHO( |
call FIND_RHO( |
1480 |
I bi, bj, ibot, itop, jbot, jtop, K, K, |
I bi, bj, ibot, itop, jbot, jtop, K, K, |
1481 |
I theta, salt, |
I theta, salt, |
1482 |
O RHOK, |
O RHOK, |
1483 |
I myThid ) |
I myThid ) |
1484 |
|
|
1485 |
|
#ifdef KPP_AUTODIFF_EXCESSIVE_STORE |
1486 |
|
CADJ STORE theta(:,:,k-1,bi,bj) = comlev1_kpp_k, key=kkppkey |
1487 |
|
CADJ STORE salt (:,:,k-1,bi,bj) = comlev1_kpp_k, key=kkppkey |
1488 |
|
#endif /* KPP_AUTODIFF_EXCESSIVE_STORE */ |
1489 |
call FIND_RHO( |
call FIND_RHO( |
1490 |
I bi, bj, ibot, itop, jbot, jtop, K-1, K, |
I bi, bj, ibot, itop, jbot, jtop, K-1, K, |
1491 |
I theta, salt, |
I theta, salt, |
1492 |
O RHOKM1, |
O RHOKM1, |
1493 |
I myThid ) |
I myThid ) |
1494 |
|
|
1495 |
|
#ifdef KPP_AUTODIFF_EXCESSIVE_STORE |
1496 |
|
CADJ STORE theta(:,:,1,bi,bj) = comlev1_kpp_k, key=kkppkey |
1497 |
|
CADJ STORE salt (:,:,1,bi,bj) = comlev1_kpp_k, key=kkppkey |
1498 |
|
#endif /* KPP_AUTODIFF_EXCESSIVE_STORE */ |
1499 |
call FIND_RHO( |
call FIND_RHO( |
1500 |
I bi, bj, ibot, itop, jbot, jtop, 1, K, |
I bi, bj, ibot, itop, jbot, jtop, 1, K, |
1501 |
I theta, salt, |
I theta, salt, |
1502 |
O RHO1K, |
O RHO1K, |
1503 |
I myThid ) |
I myThid ) |
1504 |
|
|
1505 |
|
#ifdef KPP_AUTODIFF_EXCESSIVE_STORE |
1506 |
|
CADJ STORE rhok (:,:) = comlev1_kpp_k, key=kkppkey |
1507 |
|
CADJ STORE rhokm1(:,:) = comlev1_kpp_k, key=kkppkey |
1508 |
|
CADJ STORE rho1k (:,:) = comlev1_kpp_k, key=kkppkey |
1509 |
|
#endif /* KPP_AUTODIFF_EXCESSIVE_STORE */ |
1510 |
|
|
1511 |
call FIND_ALPHA( |
call FIND_ALPHA( |
1512 |
I bi, bj, ibot, itop, jbot, jtop, K, K, |
I bi, bj, ibot, itop, jbot, jtop, K, K, |
1513 |
O WORK1 ) |
O WORK1 ) |