/[MITgcm]/MITgcm/pkg/gridalt/dyn2phys.F
ViewVC logotype

Diff of /MITgcm/pkg/gridalt/dyn2phys.F

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

revision 1.4 by edhill, Wed May 5 00:39:21 2004 UTC revision 1.5 by molod, Mon Jun 5 18:41:30 2006 UTC
# Line 53  C*************************************** Line 53  C***************************************
53        integer Lbot(im1:im2,jm1:jm2,Nsx,Nsy)        integer Lbot(im1:im2,jm1:jm2,Nsx,Nsy)
54    
55        _RL weights(im1:im2,jm1:jm2,lmphy)        _RL weights(im1:im2,jm1:jm2,lmphy)
56          _RL pphy(im1:im2,jm1:jm2,lmphy)
57        _RL dpkedyn, dpkephy, windsum, qd        _RL dpkedyn, dpkephy, windsum, qd
58        integer  i,j,L,Lout1,Lout2,Lphy        integer  i,j,L,Lout1,Lout2,Lphy
59        _RL getcon, kappa        _RL getcon, kappa
60    
61        kappa = getcon('KAPPA')        kappa = getcon('KAPPA')
62    
63    C define physics grid mid level pressures
64          do Lphy = 1,lmphy
65           do j = jdim1,jdim2
66            do i = idim1,idim2
67             pphy(i,j,Lphy) =
68         .       (pephy(i,j,Lphy,bi,bj)+pephy(i,j,Lphy+1,bi,bj))/2.
69            enddo
70           enddo
71          enddo
72    
73  c do loop for all dynamics (input) levels  c do loop for all dynamics (input) levels
74        do L = 1,lmdyn        do L = 1,lmdyn
75  c do loop for all grid points  c do loop for all grid points
# Line 74  c Check to make sure we are above ground Line 85  c Check to make sure we are above ground
85            endif            endif
86            Lout2 = nlperdyn(i,j,L,bi,bj)            Lout2 = nlperdyn(i,j,L,bi,bj)
87  c for U and V fields, need to compute for the weights:  c for U and V fields, need to compute for the weights:
88    cinterp1  dpkedyn = (pedyn(i,j,L,bi,bj)**kappa)-
89    cinterp1                                  (pedyn(i,j,L+1,bi,bj)**kappa)
90              dpkedyn = pedyn(i,j,L,bi,bj)-pedyn(i,j,L+1,bi,bj)
91            if(flg.eq.1)then            if(flg.eq.1)then
 cinterp1   dpkedyn = (pedyn(i,j,L,bi,bj)**kappa)-  
 cinterp1                                   (pedyn(i,j,L+1,bi,bj)**kappa)  
            dpkedyn = pedyn(i,j,L,bi,bj)-pedyn(i,j,L+1,bi,bj)  
92             windsum = 0.             windsum = 0.
93             do Lphy = Lout1+1,Lout2             do Lphy = Lout1+1,Lout2
94  cinterp1    dpkephy = (pephy(i,j,Lphy,bi,bj)**kappa)-  cinterp1    dpkephy = (pephy(i,j,Lphy,bi,bj)**kappa)-
# Line 91  c do loop for all physics levels contain Line 102  c do loop for all physics levels contain
102             weights(i,j,Lphy) = 1.             weights(i,j,Lphy) = 1.
103             if( (flg.eq.1).and.(windsum.ne.0.) )             if( (flg.eq.1).and.(windsum.ne.0.) )
104       .                weights(i,j,Lphy)=windphy(i,j,Lphy,bi,bj)/windsum       .                weights(i,j,Lphy)=windphy(i,j,Lphy,bi,bj)/windsum
105               if( (flg.eq.2) .and. (pedyn(i,j,L,bi,bj).lt.10000.)) then
106                weights(i,j,Lphy) =
107         .   (qd-5. + (10.*(pedyn(i,j,L,bi,bj)-pphy(i,j,Lphy))/dpkedyn))/qd
108               elseif( (flg.eq.2) .and. (pedyn(i,j,L,bi,bj).ge.10000.)) then
109                weights(i,j,Lphy) = 1.
110               endif
111             qphy(i,j,Lphy,bi,bj) = qd * weights(i,j,Lphy)             qphy(i,j,Lphy,bi,bj) = qd * weights(i,j,Lphy)
112            enddo            enddo
113           endif           endif

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22