Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F120762420
slprs.F
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Jul 6, 21:06
Size
2 KB
Mime Type
text/x-c
Expires
Tue, Jul 8, 21:06 (2 d)
Engine
blob
Format
Raw Data
Handle
27204919
Attached To
R2795 mitgcm_lac_leman_abirani
slprs.F
View Options
C $Header: /u/gcmpack/MITgcm/pkg/fizhi/slprs.F,v 1.4 2009/04/02 20:54:03 jmc Exp $
C $Name: $
#include "FIZHI_OPTIONS.h"
subroutine slprs (PHIS,PLE,THZ,lwmask,im,jm,lm,SLP)
C**********************************************************************
C INPUT
C PHIS .... SURFACE GEOPOTENTIAL (M2/S2)
C THZ ..... POTENTIAL TEMPERATURE (K) ON Model LEVELS
C grid .... Dynamics Grid Structure
C lwmask .. Land:(0.0) Water:(1.0) Mask
C
C OUTPUT
C SLP ..... SEA LEVEL PRESSURE (MB)
C
C NOTE: Level counting here for thz and ple is top down (thz(1) is top)
C***********************************************************************
implicit none
integer im,jm,lm
_RL SLP (im*jm)
_RL PHIS (im*jm), THZ (im*jm,lm)
_RL lwmask(im*jm)
_RL ple(im*jm,lm+1)
_RL TWO, BETA
PARAMETER(TWO = 2.0)
PARAMETER(BETA = 0.0065)
_RL getcon,g,r,ak
integer i,L
_RL tm (im*jm)
integer Ltop (im*jm)
G = GETCON('GRAVITY')
R = GETCON('RGAS')
AK = GETCON('KAPPA')
C***********************************************************************
C* COMPUTE MEAN THETA IN PBL (100 MB) *
C***********************************************************************
do i=1,im*jm
tm(i) = 0.0
Ltop(i) = lm
enddo
do L = lm,1,-1
do i=1,im*jm
if ( ple(i,L+1).ge.(ple(i,lm+1)-100.) ) then
Ltop(i) = L
tm(i) = tm(i) + thz(i,L)*(ple(i,L+1)-ple(i,L))
endif
enddo
enddo
do i=1,im*jm
tm(i) = tm(i)/(ple(i,lm+1)-ple(i,Ltop(i)))
enddo
C***********************************************************************
C* COMPUTE SEA LEVEL PRESSURE *
C***********************************************************************
do i=1,im*jm
if( lwmask(i).ne.0.0 ) then
TM(I) = TM(I) * (PLE(I,LM+1)/1000.)**AK + BETA*PHIS(I)/(TWO*G)
else
TM(I) = THZ(I,LM)*(PLE(I,LM+1)/1000.)**AK + BETA*PHIS(I)/(TWO*G)
endif
SLP(I) = PHIS(I) / ( R*TM(I) )
SLP(I) = PLE(I,LM+1) * EXP( SLP(I) )
enddo
RETURN
END
Event Timeline
Log In to Comment