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

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

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

revision 1.3 by molod, Mon Jun 19 23:37:34 2006 UTC revision 1.4 by jmc, Thu Apr 2 20:54:03 2009 UTC
# Line 3  C $Name$ Line 3  C $Name$
3    
4  #include "FIZHI_OPTIONS.h"  #include "FIZHI_OPTIONS.h"
5        subroutine slprs (PHIS,PLE,THZ,lwmask,im,jm,lm,SLP)        subroutine slprs (PHIS,PLE,THZ,lwmask,im,jm,lm,SLP)
6  C**********************************************************************          C**********************************************************************
7  C  INPUT                                                                          C  INPUT
8  C    PHIS .... SURFACE GEOPOTENTIAL (M2/S2)                                      C    PHIS .... SURFACE GEOPOTENTIAL (M2/S2)
9  C    THZ ..... POTENTIAL TEMPERATURE (K) ON  Model LEVELS                        C    THZ ..... POTENTIAL TEMPERATURE (K) ON  Model LEVELS
10  C    grid .... Dynamics Grid Structure                                            C    grid .... Dynamics Grid Structure
11  C    lwmask .. Land:(0.0) Water:(1.0) Mask  C    lwmask .. Land:(0.0) Water:(1.0) Mask
12  C                                                                                C
13  C  OUTPUT                                                                        C  OUTPUT
14  C    SLP ..... SEA LEVEL PRESSURE (MB)                                            C    SLP ..... SEA LEVEL PRESSURE (MB)
15  C  C
16  C NOTE: Level counting here for thz and ple is top down (thz(1) is top)  C NOTE: Level counting here for thz and ple is top down (thz(1) is top)
17  C***********************************************************************          C***********************************************************************
18    
19        implicit none        implicit none
20    
# Line 32  C*************************************** Line 32  C***************************************
32        integer i,L        integer i,L
33        _RL  tm (im*jm)        _RL  tm (im*jm)
34        integer Ltop (im*jm)        integer Ltop (im*jm)
35                                                                                    
36        G  = GETCON('GRAVITY')                                                            G  = GETCON('GRAVITY')
37        R  = GETCON('RGAS')                                                              R  = GETCON('RGAS')
38        AK = GETCON('KAPPA')                                                              AK = GETCON('KAPPA')
39  C***********************************************************************          C***********************************************************************
40  C*                COMPUTE MEAN THETA IN PBL (100 MB)                   *          C*                COMPUTE MEAN THETA IN PBL (100 MB)                   *
41  C***********************************************************************          C***********************************************************************
42    
43        do i=1,im*jm        do i=1,im*jm
44        tm(i) = 0.0        tm(i) = 0.0
# Line 58  C*************************************** Line 58  C***************************************
58        tm(i) = tm(i)/(ple(i,lm+1)-ple(i,Ltop(i)))        tm(i) = tm(i)/(ple(i,lm+1)-ple(i,Ltop(i)))
59        enddo        enddo
60    
61  C***********************************************************************          C***********************************************************************
62  C*                   COMPUTE SEA LEVEL PRESSURE                        *          C*                   COMPUTE SEA LEVEL PRESSURE                        *
63  C***********************************************************************          C***********************************************************************
64                                                                                    
65        do i=1,im*jm                                                                  do i=1,im*jm
66        if( lwmask(i).ne.0.0 ) then        if( lwmask(i).ne.0.0 ) then
67        TM(I) = TM(I) * (PLE(I,LM+1)/1000.)**AK + BETA*PHIS(I)/(TWO*G)        TM(I) = TM(I) * (PLE(I,LM+1)/1000.)**AK + BETA*PHIS(I)/(TWO*G)
68        else        else
69        TM(I) = THZ(I,LM)*(PLE(I,LM+1)/1000.)**AK + BETA*PHIS(I)/(TWO*G)        TM(I) = THZ(I,LM)*(PLE(I,LM+1)/1000.)**AK + BETA*PHIS(I)/(TWO*G)
70        endif        endif
71    
72        SLP(I) = PHIS(I) / ( R*TM(I) )                                                    SLP(I) = PHIS(I) / ( R*TM(I) )
73        SLP(I) = PLE(I,LM+1) * EXP( SLP(I) )                                          SLP(I) = PLE(I,LM+1) * EXP( SLP(I) )
74        enddo        enddo
75                                                                                    
76        RETURN                                                                            RETURN
77        END                                                                              END

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

  ViewVC Help
Powered by ViewVC 1.1.22