/[MITgcm]/MITgcm_contrib/jscott/code_rafmod/gad_diff_x.F
ViewVC logotype

Diff of /MITgcm_contrib/jscott/code_rafmod/gad_diff_x.F

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

revision 1.1 by jscott, Tue Aug 21 16:34:17 2007 UTC revision 1.2 by jscott, Thu Sep 3 20:40:01 2009 UTC
# Line 78  c--------------------------------------- Line 78  c---------------------------------------
78    
79  C !LOCAL VARIABLES: ====================================================  C !LOCAL VARIABLES: ====================================================
80  C  i,j                  :: loop indices  C  i,j                  :: loop indices
81        INTEGER i,j        INTEGER i,j !,k
82  cjrs next  c jrs next
83        _RL rhoK (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL rhoK (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
84        _RL Khplus,gradij,gradim1,gradjm1,calc_grad        _RL Khplus,gradij,gradim1,gradjm1,calc_grad
85    C      _RL dep_frac
86        real *8 khconst,khmin,khmax        real *8 khconst,khmin,khmax
87        parameter ( khconst=5.d15 )        parameter ( khconst=5.d15 ) !2.5d15
88        parameter ( khmin=1000.0 )        parameter ( khmin=1000.0 )
89        parameter ( khmax=40000.0 )        parameter ( khmax=40000.0 ) !15000.0
90  cjrs try constants 6e14, 3e15, 5e15, 10e15  cjrs try constants 6e14, 3e15, 5e15, 10e15
91    
92  c jrs next  c jrs next
93  C       print *,'in calc_mld for Khplus '  C       print *,'in calc_mld for Khplus '
94        CALL FIND_RHO(  Cold      CALL FIND_RHO(
95       &     bi,bj,1-Olx,sNx+OLx,1-OLy,sNy+OLy,1,1,  C     &     bi,bj,1-Olx,sNx+OLx,1-OLy,sNy+OLy,1,1,
96       &     theta,salt,rhoK,myThid)  C     &     theta,salt,rhoK,myThid)
97          CALL FIND_RHO_2D(
98         &     1-Olx,sNx+OLx,1-OLy,sNy+OLy,1,
99         &     theta(1-OLx,1-OLy,1,bi,bj), salt(1-OLx,1-OLy,1,bi,bj),
100         &     rhoK, 1, bi, bj, myThid)
101    
102        DO j=1-Oly,sNy+Oly        DO j=1-Oly,sNy+Oly
103         DO i=1-Olx+1,sNx+Olx         DO i=1-Olx+1,sNx+Olx
104    
105    
106          if (hfacc(i,j,1,bi,bj).ne.0) then          if (hfacc(i,j,1,bi,bj).ne.0) then
107            gradij=calc_grad(i,j,bi,bj,rhoK)            gradij= calc_grad(i,j,bi,bj,rhoK)
108          endif          endif
109    
110          if ( (hfacc(i,j,1,bi,bj).ne.0).and.          if ( (hfacc(i,j,1,bi,bj).ne.0).and.
111       &       (hfacc(i-1,j,1,bi,bj).ne.0) ) then       &       (hfacc(i-1,j,1,bi,bj).ne.0) ) then
112            gradim1=calc_grad(i-1,j,bi,bj,rhoK)            gradim1= 0.! calc_grad(i-1,j,bi,bj,rhoK)
113            if ((gradij.ne.0).and.(gradim1.ne.0)) then            if ((gradij.ne.0).and.(gradim1.ne.0)) then
114              Khplus= khconst*(gradij+gradim1)/2              Khplus= khconst*(gradij+gradim1)/2
115            elseif (gradij.ne.0) then            elseif (gradij.ne.0) then
# Line 115  C       print *,'in calc_mld for Khplus Line 121  C       print *,'in calc_mld for Khplus
121            endif            endif
122            if (Khplus.lt.khmin) Khplus=khmin            if (Khplus.lt.khmin) Khplus=khmin
123            if (Khplus.gt.khmax) Khplus=khmax            if (Khplus.gt.khmax) Khplus=khmax
124            if (j.ge.43) Khplus=khmin            if (yC(i,j,bi,bj) .GE. 80.) Khplus=khmin
125            diffkh3d_x(i,j,1)=Khplus            diffkh3d_x(i,j,1)=Khplus
 c          diffkh3d_x(i,j,2)=0.5*Khplus  
 c          diffkh3d_x(i,j,3)=0.2*Khplus  
126  C          print *,'Khplus_x: ',i,j,Khplus  C          print *,'Khplus_x: ',i,j,Khplus
127    
128          else          else
# Line 127  C          print *,'Khplus_x: ',i,j,Khpl Line 131  C          print *,'Khplus_x: ',i,j,Khpl
131    
132          if ( (hfacc(i,j,1,bi,bj).ne.0).and.          if ( (hfacc(i,j,1,bi,bj).ne.0).and.
133       &       (hfacc(i,j-1,1,bi,bj).ne.0) ) then       &       (hfacc(i,j-1,1,bi,bj).ne.0) ) then
134            gradjm1=calc_grad(i,j-1,bi,bj,rhoK)            gradjm1=0.!calc_grad(i,j-1,bi,bj,rhoK)
135            if ((gradij.ne.0).and.(gradjm1.ne.0)) then            if ((gradij.ne.0).and.(gradjm1.ne.0)) then
136              Khplus= khconst*(gradij+gradjm1)/2              Khplus= khconst*(gradij+gradjm1)/2
137            elseif (gradij.ne.0) then            elseif (gradij.ne.0) then
# Line 139  C          print *,'Khplus_x: ',i,j,Khpl Line 143  C          print *,'Khplus_x: ',i,j,Khpl
143            endif            endif
144            if (Khplus.lt.khmin) Khplus=khmin            if (Khplus.lt.khmin) Khplus=khmin
145            if (Khplus.gt.khmax) Khplus=khmax            if (Khplus.gt.khmax) Khplus=khmax
146            if (j.ge.43) Khplus=khmin            if (yC(i,j,bi,bj).GE. 80.) Khplus=khmin
147            diffkh3d_y(i,j,1)=Khplus            diffkh3d_y(i,j,1)=Khplus
148  c          diffkh3d_y(i,j,2)=0.5*Khplus  c          diffkh3d_y(i,j,2)=0.5*Khplus
149  c          diffkh3d_y(i,j,3)=0.2*Khplus  c          diffkh3d_y(i,j,3)=0.2*Khplus
# Line 148  C          print *,'Khplus_y: ',i,j,Khpl Line 152  C          print *,'Khplus_y: ',i,j,Khpl
152          else          else
153             diffkh3d_y(i,j,1)=0.d0             diffkh3d_y(i,j,1)=0.d0
154          endif          endif
155    c        DO k=2,7
156    c          if (-hMixLayer(i,j,bi,bj).ge.rF(k)) then
157    c             diffkh3d_x(i,j,k)=0.d0
158    c             diffkh3d_y(i,j,k)=0.d0
159    c          elseif (-hMixLayer(i,j,bi,bj).ge.rF(k+1)) then
160    c             dep_frac=(hMixLayer(i,j,bi,bj)+rF(k))/drF(k)*
161    c     &                (240.+rC(k))/240.
162    c             diffkh3d_x(i,j,k)= dep_frac*diffkh3d_x(i,j,1)
163    c             diffkh3d_y(i,j,k)= dep_frac*diffkh3d_y(i,j,1)
164    c          else
165    c             dep_frac = (240.+rC(k))/240.
166    c             diffkh3d_x(i,j,k)= dep_frac*diffkh3d_x(i,j,1)
167    c             diffkh3d_y(i,j,k)= dep_frac*diffkh3d_y(i,j,1)
168    c          endif
169    c        ENDDO
170    
171         ENDDO         ENDDO
172        ENDDO        ENDDO

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

  ViewVC Help
Powered by ViewVC 1.1.22