/[MITgcm]/MITgcm_contrib/atnguyen/code_21Dec2012_saltplume/kpp_routines.F
ViewVC logotype

Diff of /MITgcm_contrib/atnguyen/code_21Dec2012_saltplume/kpp_routines.F

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

revision 1.2 by atn, Tue Apr 29 06:49:40 2014 UTC revision 1.3 by atn, Thu May 1 08:09:30 2014 UTC
# Line 26  c*************************************** Line 26  c***************************************
26       I       kmtj, shsq, dvsq, ustar, msk       I       kmtj, shsq, dvsq, ustar, msk
27       I     , bo, bosol       I     , bo, bosol
28  #ifdef ALLOW_SALT_PLUME  #ifdef ALLOW_SALT_PLUME
 #ifndef SALT_PLUME_VOLUME  
29       I     , boplume,SPDepth       I     , boplume,SPDepth
 #endif /* ndef SALT_PLUME_VOLUME */  
30  #endif /* ALLOW_SALT_PLUME */  #endif /* ALLOW_SALT_PLUME */
31       I     , dbloc, Ritop, coriol       I     , dbloc, Ritop, coriol
32       I     , diffusKzS, diffusKzT       I     , diffusKzS, diffusKzT
# Line 97  c           where hbl(i,j) -> hbl((j-1)* Line 95  c           where hbl(i,j) -> hbl((j-1)*
95        _RL bo       (imt   )        _RL bo       (imt   )
96        _RL bosol    (imt   )        _RL bosol    (imt   )
97  #ifdef ALLOW_SALT_PLUME  #ifdef ALLOW_SALT_PLUME
 #ifndef SALT_PLUME_VOLUME  
98        _RL boplume  (imt   )        _RL boplume  (imt   )
99        _RL SPDepth  (imt   )        _RL SPDepth  (imt   )
 #endif /* ndef SALT_PLUME_VOLUME */  
100  #endif /* ALLOW_SALT_PLUME */  #endif /* ALLOW_SALT_PLUME */
101        _RL dbloc    (imt,Nr)        _RL dbloc    (imt,Nr)
102        _RL Ritop    (imt,Nr)        _RL Ritop    (imt,Nr)
# Line 195  c--------------------------------------- Line 191  c---------------------------------------
191       I       kmtj       I       kmtj
192       I     , dvsq, dbloc, Ritop, ustar, bo, bosol       I     , dvsq, dbloc, Ritop, ustar, bo, bosol
193  #ifdef ALLOW_SALT_PLUME  #ifdef ALLOW_SALT_PLUME
 #ifndef SALT_PLUME_VOLUME  
194       I     , boplume,SPDepth       I     , boplume,SPDepth
 #endif /* ndef SALT_PLUME_VOLUME */  
195  #endif /* ALLOW_SALT_PLUME */  #endif /* ALLOW_SALT_PLUME */
196       I     , coriol       I     , coriol
197       I     , ikppkey       I     , ikppkey
# Line 276  c*************************************** Line 270  c***************************************
270       I       kmtj       I       kmtj
271       I     , dvsq, dbloc, Ritop, ustar, bo, bosol       I     , dvsq, dbloc, Ritop, ustar, bo, bosol
272  #ifdef ALLOW_SALT_PLUME  #ifdef ALLOW_SALT_PLUME
 #ifndef SALT_PLUME_VOLUME  
273       I     , boplume,SPDepth       I     , boplume,SPDepth
 #endif /* ndef SALT_PLUME_VOLUME */  
274  #endif /* ALLOW_SALT_PLUME */  #endif /* ALLOW_SALT_PLUME */
275       I     , coriol       I     , coriol
276       I     , ikppkey       I     , ikppkey
# Line 347  c coriol    : Coriolis parameter Line 339  c coriol    : Coriolis parameter
339        _RL coriol  (imt)        _RL coriol  (imt)
340        integer ikppkey        integer ikppkey
341  #ifdef ALLOW_SALT_PLUME  #ifdef ALLOW_SALT_PLUME
 #ifndef SALT_PLUME_VOLUME  
342        _RL boplume (imt)        _RL boplume (imt)
343        _RL SPDepth (imt)        _RL SPDepth (imt)
 #endif /* ndef SALT_PLUME_VOLUME */  
344  #endif /* ALLOW_SALT_PLUME */  #endif /* ALLOW_SALT_PLUME */
345    
346  c  output  c  output
# Line 450  c     compute bfsfc= Bo + radiative cont Line 440  c     compute bfsfc= Bo + radiative cont
440    
441           end do           end do
442  #ifdef ALLOW_SALT_PLUME  #ifdef ALLOW_SALT_PLUME
 #ifndef SALT_PLUME_VOLUME  
443  c     compute bfsfc = plume fraction at hbf * zgrid  c     compute bfsfc = plume fraction at hbf * zgrid
444           IF ( useSALT_PLUME ) THEN           IF ( useSALT_PLUME ) THEN
445             do i = 1, imt             do i = 1, imt
446                worka(i) = zgrid(kl)                worka(i) = zgrid(kl)
447             enddo             enddo
448    #ifndef SALT_PLUME_VOLUME
449    catn: in original way: accumulate all fractions of boplume above hbl
450             call SALT_PLUME_FRAC(             call SALT_PLUME_FRAC(
451       I         imt, hbf,SPDepth,       I         imt, hbf,SPDepth,
452       U         worka,       U         worka,
# Line 463  c     compute bfsfc = plume fraction at Line 454  c     compute bfsfc = plume fraction at
454             do i = 1, imt             do i = 1, imt
455                bfsfc(i) = bfsfc(i) + boplume(i)*(worka(i))                bfsfc(i) = bfsfc(i) + boplume(i)*(worka(i))
456             enddo             enddo
457           ENDIF  #else /* def SALT_PLUME_VOLUME */
458    catn: in vol way: need to integrate down to hbl, so first locate
459    c     k level associated with this hbl, then sum up all SPforc[T,S]
460               DO i = 1, imt
461                DO k = 1, Nr
462                 IF (hbl.GE.abs(rF(k)) THEN
463                  bfsfc(i) = bfsfc(i) + boplume(i,k)
464                 ENDIF
465                ENDDO
466               ENDDO
467  #endif /* ndef SALT_PLUME_VOLUME */  #endif /* ndef SALT_PLUME_VOLUME */
468             ENDIF
469  #endif /* ALLOW_SALT_PLUME */  #endif /* ALLOW_SALT_PLUME */
470    
471  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
# Line 587  CADJ &     shape = (/ (sNx+2*OLx)*(sNy+2 Line 588  CADJ &     shape = (/ (sNx+2*OLx)*(sNy+2
588        end do        end do
589    
590  #ifdef ALLOW_SALT_PLUME  #ifdef ALLOW_SALT_PLUME
 #ifndef SALT_PLUME_VOLUME  
591        IF ( useSALT_PLUME ) THEN        IF ( useSALT_PLUME ) THEN
592    #ifndef SALT_PLUME_VOLUME
593          do i = 1, imt          do i = 1, imt
594             worka(i) = hbl(i)             worka(i) = hbl(i)
595          enddo          enddo
# Line 599  CADJ &     shape = (/ (sNx+2*OLx)*(sNy+2 Line 600  CADJ &     shape = (/ (sNx+2*OLx)*(sNy+2
600          do i = 1, imt          do i = 1, imt
601             bfsfc(i) = bfsfc(i) + boplume(i) * (worka(i))             bfsfc(i) = bfsfc(i) + boplume(i) * (worka(i))
602          enddo          enddo
603        ENDIF  #else /* def SALT_PLUME_VOLUME */
604            DO i = 1, imt
605             DO k = 1, Nr
606              IF (hbl.GE.abs(rF(k)) THEN
607               bfsfc(i) = bfsfc(i) + boplume(i,k)
608              ENDIF
609             ENDDO
610            ENDDO
611  #endif /* ndef SALT_PLUME_VOLUME */  #endif /* ndef SALT_PLUME_VOLUME */
612          ENDIF
613  #endif /* ALLOW_SALT_PLUME */  #endif /* ALLOW_SALT_PLUME */
614  CADJ store bfsfc = comlev1_kpp  CADJ store bfsfc = comlev1_kpp
615  CADJ &   , key=ikppkey, kind=isbyte,  CADJ &   , key=ikppkey, kind=isbyte,
# Line 685  CADJ &     shape = (/ (sNx+2*OLx)*(sNy+2 Line 694  CADJ &     shape = (/ (sNx+2*OLx)*(sNy+2
694        end do        end do
695    
696  #ifdef ALLOW_SALT_PLUME  #ifdef ALLOW_SALT_PLUME
 #ifndef SALT_PLUME_VOLUME  
697        IF ( useSALT_PLUME ) THEN        IF ( useSALT_PLUME ) THEN
698    #ifndef SALT_PLUME_VOLUME
699          do i = 1, imt          do i = 1, imt
700             worka(i) = hbl(i)             worka(i) = hbl(i)
701          enddo          enddo
# Line 697  CADJ &     shape = (/ (sNx+2*OLx)*(sNy+2 Line 706  CADJ &     shape = (/ (sNx+2*OLx)*(sNy+2
706          do i = 1, imt          do i = 1, imt
707             bfsfc(i) = bfsfc(i) + boplume(i) * (worka(i))             bfsfc(i) = bfsfc(i) + boplume(i) * (worka(i))
708          enddo          enddo
709        ENDIF  #else /* def SALT_PLUME_VOLUME */
710            DO i = 1, imt
711             DO k = 1, Nr
712              IF (hbl.GE.abs(rF(k)) THEN
713               bfsfc(i) = bfsfc(i) + boplume(i,k)
714              ENDIF
715             ENDDO
716            ENDDO
717  #endif /* ndef SALT_PLUME_VOLUME */  #endif /* ndef SALT_PLUME_VOLUME */
718          ENDIF
719  #endif /* ALLOW_SALT_PLUME */  #endif /* ALLOW_SALT_PLUME */
720  CADJ store bfsfc = comlev1_kpp  CADJ store bfsfc = comlev1_kpp
721  CADJ &   , key=ikppkey, kind=isbyte,  CADJ &   , key=ikppkey, kind=isbyte,

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22