16 real,
dimension(:),
allocatable :: mixr_profile
17 real,
dimension(:),
allocatable :: temp_profile
18 real,
dimension(:),
allocatable :: height_profile
19 real,
dimension(:),
allocatable :: pressure_profile
20 real,
dimension(:),
allocatable :: o3_profile
28 real :: seaice_fraction
31 integer*1 :: surface_level
32 integer*1 :: trop_level
42 real,
intent(in) :: lat, lon
43 integer,
intent(inout ) :: i,j
45 real :: x,y, x0, dx, y0, dy
47 x =
min(
max( lon, -179.99 ), 179.99 )
48 if( x > -999. .and. x < 0.0 ) x = lon+ 360.0
51 i = int( ( x - x0 + 0.5*dx ) / dx )
53 if( i .eq. 360 ) i = 0
55 y =
min(
max( lat, -89.99 ), 89.99 )
58 j = int( ( y - y0 + 0.5*dy ) / dy )
69 integer,
intent(in) :: grid_xstart, grid_ystart
70 real,
intent(in) :: lat, lon
71 integer,
intent(inout) :: model_i, model_j
73 real :: minLat, maxLat, minLon, maxLon
74 real,
parameter :: dlon = 0.625
75 real,
parameter :: dlat = 0.5
77 model_i = int((lon + 180) / dlon ) - grid_xstart
78 model_j = int((lat + 90) / dlat + 1 ) - grid_ystart
80 if (model_i < 1) model_i = 1
81 if (model_j < 1) model_j = 1
87 integer,
intent(inout) :: istart, iend, jstart, jend
88 real,
dimension(:,:),
intent(in) :: lat, lon
90 real :: minLat, maxLat, minLon, maxLon
91 real,
parameter :: dlon = 5./8.
92 real,
parameter :: dlat = 0.5
95 minlat = minval( lat, mask = ( (lat >= -90.0000 .and. lat <= 90.00000) ) )
96 maxlat = maxval( lat, mask = ( (lat >= -90.0000 .and. lat <= 90.00000) ) )
98 minlon = minval( lon, mask = ( (lon >= -180.000 .and. lon <= 180.0000) ) )
99 maxlon = maxval( lon, mask = ( (lon >= -180.000 .and. lon <= 180.0000) ) )
101 istart = int((minlon + 180) / dlon )
102 if (istart < 0) istart = 0
103 iend = int((maxlon + 180) / dlon )
104 if (iend > (360/dlon-1)) iend = 360/dlon - 1
106 jstart = int((minlat + 90) / dlat )
107 jend = int((maxlat + 90) / dlat )
112 real function get_W(RH, T, P)
116 real*8,
intent(in) :: rh, t, p
118 real,
parameter :: c = 4187.
119 real,
parameter :: cpv = 1870.
120 real,
parameter :: l0 = 2.501e6
121 real,
parameter :: t0 = 273.
131 l = l0 - (c - cpv) * (t - t0)
134 esat = 6.11657*exp((l/461.51)*(1/273. - 1/t) )
136 ws = esat * 0.622 / (p - esat)