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

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

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

revision 1.2 by molod, Mon Feb 23 20:34:38 2004 UTC revision 1.9 by molod, Fri Feb 18 19:43:04 2005 UTC
# Line 1  Line 1 
1    C $Header$
2    C $Name$
3    
4    #include "FIZHI_OPTIONS.h"
5        subroutine fizhi_tendency_apply_u(iMin, iMax, jMin, jMax,        subroutine fizhi_tendency_apply_u(iMin, iMax, jMin, jMax,
6       .    bi,bj,kLev,myTime,myThid)       .    bi,bj,kLev,myTime,myThid)
7  C=======================================================================  C=======================================================================
# Line 17  C        Assumes that U and V tendencies Line 21  C        Assumes that U and V tendencies
21  C=======================================================================  C=======================================================================
22        implicit none        implicit none
23    
 #include "CPP_OPTIONS.h"  
24  #include "SIZE.h"  #include "SIZE.h"
25  #include "GRID.h"  #include "GRID.h"
26  #include "EEPARAMS.h"  #include "EEPARAMS.h"
27  #include "DYNVARS.h"  #include "DYNVARS.h"
28  #include "fizhi_SIZE.h"  #include "fizhi_SIZE.h"
29  #include "land_SIZE.h"  #include "fizhi_land_SIZE.h"
30  #include "fizhi_coms.h"  #include "fizhi_coms.h"
31    
32        integer iMin, iMax, jMin, jMax, kLev, bi, bj, myThid        integer iMin, iMax, jMin, jMax, kLev, bi, bj, myThid
33        _RL myTime        _RL myTime
34          _RL rayleighdrag
35    
36        integer i, j        integer i, j
37    
38          if(klev.eq.Nr .or. rC(klev).lt.7000.)then
39           rayleighdrag = 1./(31.*86400.*2.)
40          else
41           rayleighdrag = 0.
42          endif
43    
44        do j=jMin,jMax        do j=jMin,jMax
45         do i=iMin,iMax         do i=iMin,iMax
46          gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj) +          gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj) +
47       .      maskC(i,j,kLev,bi,bj) * guphy(i,j,kLev,bi,bj)       .      maskW(i,j,kLev,bi,bj) * guphy(i,j,kLev,bi,bj)
48         . - rayleighdrag * maskW(i,j,kLev,bi,bj)*uVel(i,j,kLev,bi,bj)
49         enddo         enddo
50        enddo        enddo
51    
# Line 59  C        Assumes that U and V tendencies Line 70  C        Assumes that U and V tendencies
70  C=======================================================================  C=======================================================================
71        implicit none        implicit none
72    
 #include "CPP_OPTIONS.h"  
73  #include "SIZE.h"  #include "SIZE.h"
74  #include "GRID.h"  #include "GRID.h"
75  #include "EEPARAMS.h"  #include "EEPARAMS.h"
76  #include "DYNVARS.h"  #include "DYNVARS.h"
77  #include "fizhi_SIZE.h"  #include "fizhi_SIZE.h"
78  #include "land_SIZE.h"  #include "fizhi_land_SIZE.h"
79  #include "fizhi_coms.h"  #include "fizhi_coms.h"
80    
81        integer iMin, iMax, jMin, jMax, kLev, bi, bj, myThid        integer iMin, iMax, jMin, jMax, kLev, bi, bj, myThid
82        _RL myTime        _RL myTime
83          _RL rayleighdrag
84    
85        integer i, j        integer i, j
86    
87          if(klev.eq.Nr .or. rC(klev).lt.7000.)then
88           rayleighdrag = 1./(31.*86400.*2.)
89          else
90           rayleighdrag = 0.
91          endif
92    
93        do j=jMin,jMax        do j=jMin,jMax
94         do i=iMin,iMax         do i=iMin,iMax
95          gV(i,j,kLev,bi,bj) = gV(i,j,kLev,bi,bj) +          gV(i,j,kLev,bi,bj) = gV(i,j,kLev,bi,bj) +
96       .      maskC(i,j,kLev,bi,bj) * gvphy(i,j,kLev,bi,bj)       .      maskS(i,j,kLev,bi,bj) * gvphy(i,j,kLev,bi,bj)
97         . - rayleighdrag * maskS(i,j,kLev,bi,bj)*vVel(i,j,kLev,bi,bj)
98         enddo         enddo
99        enddo        enddo
100    
# Line 100  C Notes: Routine works for one level at Line 118  C Notes: Routine works for one level at
118  C=======================================================================  C=======================================================================
119        implicit none        implicit none
120    
 #include "CPP_OPTIONS.h"  
121  #include "SIZE.h"  #include "SIZE.h"
122  #include "GRID.h"  #include "GRID.h"
123  #include "EEPARAMS.h"  #include "EEPARAMS.h"
124  #include "DYNVARS.h"  #include "DYNVARS.h"
125  #include "fizhi_SIZE.h"  #include "fizhi_SIZE.h"
126  #include "land_SIZE.h"  #include "fizhi_land_SIZE.h"
127  #include "fizhi_coms.h"  #include "fizhi_coms.h"
128    
129        integer iMin, iMax, jMin, jMax, kLev, bi, bj, myThid        integer iMin, iMax, jMin, jMax, kLev, bi, bj, myThid
130        _RL myTime        _RL myTime
131          _RL rayleighdrag,getcon,cp,kappa,pNrkappa
132    
133        integer i, j        integer i, j
134    
135          if(klev.eq.Nr .or. rC(klev).lt.7000.)then
136           cp = getcon('CP')
137           kappa = getcon('KAPPA')
138           pNrkappa = (rC(klev)/100000.)**kappa
139           rayleighdrag = 1./((31.*86400.*2.)*(pNrkappa*cp))
140          else
141           rayleighdrag = 0.
142          endif
143    
144        do j=jMin,jMax        do j=jMin,jMax
145         do i=iMin,iMax         do i=iMin,iMax
146          gT(i,j,kLev,bi,bj) = maskC(i,j,kLev,bi,bj)          gT(i,j,kLev,bi,bj) = maskC(i,j,kLev,bi,bj)
147       .       *( gT(i,j,kLev,bi,bj) + gthphy(i,j,kLev,bi,bj) )       .       *( gT(i,j,kLev,bi,bj) + gthphy(i,j,kLev,bi,bj) )
148         . + rayleighdrag * 0.5 *
149         . (maskW(i,j,kLev,bi,bj)*uVel(i,j,kLev,bi,bj)*uVel(i,j,kLev,bi,bj)+
150         .  maskW(i+1,j,kLev,bi,bj)*
151         .                uVel(i+1,j,kLev,bi,bj)*uVel(i+1,j,kLev,bi,bj)+
152         .  maskS(i,j,kLev,bi,bj)*vVel(i,j,kLev,bi,bj)*vVel(i,j,kLev,bi,bj)+
153         .  maskS(i,j+1,kLev,bi,bj)*
154         .                vVel(i,j+1,kLev,bi,bj)*vVel(i,j+1,kLev,bi,bj))
155         enddo         enddo
156        enddo        enddo
157    
# Line 141  C Notes: Routine works for one level at Line 175  C Notes: Routine works for one level at
175  C=======================================================================  C=======================================================================
176        implicit none        implicit none
177    
 #include "CPP_OPTIONS.h"  
178  #include "SIZE.h"  #include "SIZE.h"
179  #include "GRID.h"  #include "GRID.h"
180  #include "EEPARAMS.h"  #include "EEPARAMS.h"
181  #include "DYNVARS.h"  #include "DYNVARS.h"
182  #include "fizhi_SIZE.h"  #include "fizhi_SIZE.h"
183  #include "land_SIZE.h"  #include "fizhi_land_SIZE.h"
184  #include "fizhi_coms.h"  #include "fizhi_coms.h"
185    
186        integer iMin, iMax, jMin, jMax, kLev, bi, bj, myThid        integer iMin, iMax, jMin, jMax, kLev, bi, bj, myThid

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

  ViewVC Help
Powered by ViewVC 1.1.22