/[MITgcm]/MITgcm/pkg/kpp/kpp_routines.F
ViewVC logotype

Diff of /MITgcm/pkg/kpp/kpp_routines.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.17 by edhill, Mon Sep 29 19:24:31 2003 UTC revision 1.20 by jmc, Sun Jul 18 01:18:55 2004 UTC
# Line 286  c coriol    : Coriolis parameter Line 286  c coriol    : Coriolis parameter
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--------
# Line 340  c     initialize hbl and kbl to bottomed Line 340  c     initialize hbl and kbl to bottomed
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    
# Line 371  c--------------------------------------- Line 378  c---------------------------------------
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    
# Line 443  c--------------------------------------- Line 451  c---------------------------------------
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))
# Line 511  c--------------------------------------- Line 523  c---------------------------------------
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))
# Line 702  c     set values at bottom and below to Line 718  c     set values at bottom and below to
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
# Line 719  C     break data flow dependence on diff Line 744  C     break data flow dependence on diff
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
# Line 756  c  evaluate f of smooth Ri for shear ins Line 782  c  evaluate f of smooth Ri for shear ins
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
# Line 870  c     Apply horizontal smoothing to KPP Line 902  c     Apply horizontal smoothing to KPP
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
# Line 901  c     local Line 934  c     local
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)
# Line 950  c     Apply horizontal smoothing to glob Line 983  c     Apply horizontal smoothing to glob
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
# Line 981  c     local Line 1015  c     local
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)
# Line 1065  c     sigma(imt)                  normal Line 1099  c     sigma(imt)                  normal
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    
# Line 1094  c--------------------------------------- Line 1128  c---------------------------------------
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)))
# Line 1139  c--------------------------------------- Line 1176  c---------------------------------------
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-----------------------------------------------------------------------
# Line 1161  c--------------------------------------- Line 1217  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
# Line 1207  c--------------------------------------- Line 1270  c---------------------------------------
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)
# Line 1296  c     fraction hbl lies beteen zgrid nei Line 1366  c     fraction hbl lies beteen zgrid nei
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-----------------------------------------------------------------------
# Line 1358  c     work1, work2 - work arrays for hol Line 1428  c     work1, work2 - work arrays for hol
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,
# Line 1389  c calculate alpha, beta, and gradients i Line 1470  c calculate alpha, beta, and gradients i
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 )

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.20

  ViewVC Help
Powered by ViewVC 1.1.22