UFO
pindex.f90
Go to the documentation of this file.
1 real function pindex(nx, press, obspressure)
2 ! This routine handles press (pressure) in decendent order (bottom2top)
3 ! press(1): highest pressure value
4 ! press(nx): lowerest pressure value
5 
6 use kinds
7 implicit none
8 
9 integer :: ix, k, nx
10 real(kind_real) :: ozp, obspressure, psi
11 real(kind_real), dimension(nx) :: press
12 
13 psi = 1.0_kind_real/press(1)
14 if(obspressure*psi < 1.) then
15  ozp = obspressure
16 else
17  ozp = press(1)
18 endif
19 if( ozp >= press(1)) then
20  ix = 1
21 else
22  ix = 0
23  do k = 1, nx-1
24  if(ozp >= press(k)) then
25  ix = k
26  exit
27  endif
28  enddo
29  if(ix == 0) ix = nx
30  if(ix > 1)ix = ix -1
31 endif
32 ozp = float(ix) + &
33  (ozp-press(ix))/(press(ix+1)-press(ix))
34 pindex = ozp
35 return
36 end
pindex
real function pindex(nx, press, obspressure)
Definition: pindex.f90:2