/[MITgcm]/MITgcm/pkg/fizhi/fizhi_gwdrag.F
ViewVC logotype

Diff of /MITgcm/pkg/fizhi/fizhi_gwdrag.F

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

revision 1.7 by molod, Wed Jun 1 18:08:33 2005 UTC revision 1.11 by jmc, Fri Jul 1 01:12:00 2005 UTC
# Line 72  c --------------- Line 72  c ---------------
72        _RL us(istrip,Lm), vs(istrip,Lm), ts(istrip,Lm)        _RL us(istrip,Lm), vs(istrip,Lm), ts(istrip,Lm)
73        _RL dragus(istrip,Lm), dragvs(istrip,Lm)        _RL dragus(istrip,Lm), dragvs(istrip,Lm)
74        _RL dragxs(istrip), dragys(istrip)        _RL dragxs(istrip), dragys(istrip)
75        _RL plstr(istrip,Lm),plestr(istrip,Lm),dpresstr(istrip,Lm)        _RL plstr(istrip,Lm),plestr(istrip,Lm+1),dpresstr(istrip,Lm)
76        integer nthinstr(istrip),nbasestr(istrip)        integer nthinstr(istrip),nbasestr(istrip)
77    
78        integer n,i,j,L        integer n,i,j,L
# Line 125  c        and constrain the Maximum Value Line 125  c        and constrain the Maximum Value
125  c ----------------------------------------------  c ----------------------------------------------
126        do j=1,jm        do j=1,jm
127        do i=1,im        do i=1,im
128        phis_std(i,j) = min( 400.0, sqrt( max(0.0,phis_var(i,j)) )/grav )           phis_std(i,j) = min( 400.0 _d 0, sqrt( max(0.0 _d 0,
129         $        phis_var(i,j)) )/grav )
130        enddo        enddo
131        enddo        enddo
132    
# Line 161  c -------------------------------------- Line 162  c --------------------------------------
162        call stripit ( vz,vs,im*jm,im*jm,istrip,Lm,n )        call stripit ( vz,vs,im*jm,im*jm,istrip,Lm,n )
163        call stripit ( tv,ts,im*jm,im*jm,istrip,Lm,n )        call stripit ( tv,ts,im*jm,im*jm,istrip,Lm,n )
164        call stripit ( pl,plstr,im*jm,im*jm,istrip,Lm,n )        call stripit ( pl,plstr,im*jm,im*jm,istrip,Lm,n )
165        call stripit ( ple,plestr,im*jm,im*jm,istrip,Lm,n )        call stripit ( ple,plestr,im*jm,im*jm,istrip,Lm+1,n )
166        call stripit ( dpres,dpresstr,im*jm,im*jm,istrip,Lm,n )        call stripit ( dpres,dpresstr,im*jm,im*jm,istrip,Lm,n )
167        call stripitint ( nthin,nthinstr,im*jm,im*jm,istrip,1,n )        call stripitint ( nthin,nthinstr,im*jm,im*jm,istrip,1,n )
168        call stripitint ( nbase,nbasestr,im*jm,im*jm,istrip,1,n )        call stripitint ( nbase,nbasestr,im*jm,im*jm,istrip,1,n )
# Line 183  c -------------------------------------- Line 184  c --------------------------------------
184        do L = 1,Lm        do L = 1,Lm
185        do j = 1,jm        do j = 1,jm
186        do i = 1,im        do i = 1,im
187        dragu(i,j,L) = sign( min(0.006,abs(dragu(i,j,L))),dragu(i,j,L) )           dragu(i,j,L) = sign( min(0.006 _d 0,abs(dragu(i,j,L))), dragu(i
188        dragv(i,j,L) = sign( min(0.006,abs(dragv(i,j,L))),dragv(i,j,L) )       $        ,j,L) )
189             dragv(i,j,L) = sign( min(0.006 _d 0,abs(dragv(i,j,L))), dragv(i
190         $        ,j,L) )
191        dragt(i,j,L) = -( uz(i,j,L)*dragu(i,j,L)+vz(i,j,L)*dragv(i,j,L) )        dragt(i,j,L) = -( uz(i,j,L)*dragu(i,j,L)+vz(i,j,L)*dragv(i,j,L) )
192       .                                                         *cpinv       .                                                         *cpinv
193         dudt(i,j,L) = dudt(i,j,L) + dragu(i,j,L)         dudt(i,j,L) = dudt(i,j,L) + dragu(i,j,L)
# Line 414  c --------------------------------- Line 417  c ---------------------------------
417        enddo        enddo
418    
419        do  i = 1,irun        do  i = 1,irun
420         robar(i) = robar(i)/(ps(i)-ple(i,Lm+1-nbase(i)-1)) * 100.0         robar(i) = robar(i)/(ps(i)-ple(i,Lm+1-(nbase(i)-1))) * 100.0
421         ubar(i) = ubar(i)/(ps(i)-ple(i,Lm+1-nbase(i)-1))         ubar(i) = ubar(i)/(ps(i)-ple(i,Lm+1-(nbase(i)-1)))
422         vbar(i) = vbar(i)/(ps(i)-ple(i,Lm+1-nbase(i)-1))         vbar(i) = vbar(i)/(ps(i)-ple(i,Lm+1-(nbase(i)-1)))
423    
424         speed(i) = sqrt( ubar(i)*ubar(i) + vbar(i)*vbar(i) )         speed(i) = sqrt( ubar(i)*ubar(i) + vbar(i)*vbar(i) )
425         ang(i) = atan2(vbar(i),ubar(i))         ang(i) = atan2(vbar(i),ubar(i))
# Line 524  c exceeds the Critical Froude number Line 527  c exceeds the Critical Froude number
527  c ----------------------------------  c ----------------------------------
528          crifro = 1.0 - 0.25/richsn          crifro = 1.0 - 0.25/richsn
529          crif2 = crifro*crifro          crif2 = crifro*crifro
530          if( l.eq.2 ) crif2 = min(0.7,crif2)          if( l.eq.2 ) crif2 = min(0.7 _d 0,crif2)
531    
532          if( fro2.gt.crif2 ) then          if( fro2.gt.crif2 ) then
533           tensio(i,L) = crif2/fro2*tensio(i,L-1)           tensio(i,L) = crif2/fro2*tensio(i,L-1)

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22