20 #ifndef MAX_LEVS_FILE_ 21 #define MAX_LEVS_FILE_ 50 25 #define MAX_LINKS_ 100 45 integer,
parameter,
public ::
max_links = max_links_
49 integer,
parameter,
public ::
mooring = 20
51 integer,
parameter,
public ::
drifter = 40
52 integer,
parameter,
public ::
ship = 50
54 integer,
parameter,
public ::
tao = 1
55 integer,
parameter,
public ::
pirata = 2
56 integer,
parameter,
public ::
xbt = 1
57 integer,
parameter,
public ::
ctd = 2
58 integer,
parameter,
public ::
mbt = 3
59 integer,
parameter,
public ::
argo = 1
76 real,
dimension(:,:,:,:),
pointer :: wgt
86 integer :: wod_cast_num
91 integer :: profile_flag
92 integer :: profile_flag_s
97 integer,
dimension(MAX_NEIGHBORS) :: nbr_index
98 real,
dimension(MAX_NEIGHBORS) :: nbr_dist
99 real,
dimension(:),
pointer :: depth, data_t, data_s
100 real,
dimension(:),
pointer :: data
101 integer,
dimension(:),
pointer :: flag_t
102 integer,
dimension(:),
pointer :: flag_s
103 logical,
dimension(:),
pointer :: flag
104 real :: temp_err, salt_err
105 real,
dimension(:),
pointer :: ms_t
106 real,
dimension(:),
pointer :: ms_s
107 real,
dimension(:),
pointer :: ms_inv
108 real,
dimension(:),
pointer :: ms
114 real :: i_index, j_index
115 real,
dimension(:),
pointer :: k_index
123 integer :: qc_flag, nobs
124 logical :: is_gridded
125 integer :: nlon, nlat
126 real,
pointer,
dimension(:) :: lat=>null(), lon=>null()
128 real,
pointer,
dimension(:) :: data => null()
129 real,
dimension(:),
pointer :: ms_inv => null()
130 real,
dimension(:),
pointer :: ms => null()
131 real,
dimension(:),
pointer :: i_index=>null(), j_index=>null()
132 real,
pointer,
dimension(:,:) :: data2 => null()
133 real,
dimension(:,:),
pointer :: ms2 => null()
134 real,
dimension(:,:),
pointer :: i_index2=>null(), j_index2=>null()
140 character(len=8) :: wmo_id
149 real,
pointer,
dimension(:,:) :: u_flux => null()
150 real,
pointer,
dimension(:,:) :: v_flux => null()
151 real,
pointer,
dimension(:,:) :: t_flux => null()
152 real,
pointer,
dimension(:,:) :: q_flux => null()
153 real,
pointer,
dimension(:,:) :: salt_flux => null()
154 real,
pointer,
dimension(:,:) :: lw_flux => null()
155 real,
pointer,
dimension(:,:) :: sw_flux_vis_dir => null()
156 real,
pointer,
dimension(:,:) :: sw_flux_vis_dif => null()
157 real,
pointer,
dimension(:,:) :: sw_flux_nir_dir => null()
158 real,
pointer,
dimension(:,:) :: sw_flux_nir_dif => null()
162 logical :: use_prf_as_obs
163 logical :: use_ssh_as_obs
164 logical :: use_sst_as_obs
165 logical :: use_suv_as_obs
166 logical :: use_woa05_t
167 logical :: use_woa05_s
171 real,
pointer,
dimension(:,:) :: x=>null(), y=>null()
172 real,
pointer,
dimension(:,:) :: x_bound=>null(), y_bound=>null()
173 real,
pointer,
dimension(:,:) :: dx=>null(), dy=>null()
174 real,
pointer,
dimension(:) :: z=>null(), z_bound=>null()
175 real,
pointer,
dimension(:) :: dz => null()
176 real,
pointer,
dimension(:,:,:) :: mask
179 integer :: ni, nj, nk
184 real,
pointer,
dimension(:,:,:) :: data => null()
189 integer :: error_model
190 character(len=32) :: name
192 real,
pointer,
dimension(:,:,:) :: ex=>null(), vr=>null()
193 real,
pointer,
dimension(:,:,:) :: obs_d => null()
197 integer :: error_model
198 character(len=32) :: name
200 real,
pointer,
dimension(:,:) :: ex=>null(), vr=>null()
209 real,
pointer,
dimension(:,:) :: sst_obs
221 type(ocean_profile_type),
intent(inout) :: profile
224 profile%project = -1.0
226 profile%wod_cast_num = -1
227 profile%ref_inst = -1.0
228 profile%fix_depth = -1.0
229 profile%ocn_vehicle = -1.0
230 profile%database_id = -1.0
232 profile%profile_flag = 0
233 profile%profile_flag_s = 0
236 profile%accepted = .true.
237 if (
associated(profile%next))
deallocate(profile%next)
239 profile%nbr_index(:) = -1
240 profile%nbr_dist(:) = -1.0
241 if (
associated(profile%depth))
deallocate(profile%depth)
242 if (
associated(profile%data_t))
deallocate(profile%data_t)
243 if (
associated(profile%data_s))
deallocate(profile%data_s)
244 if (
associated(profile%flag_t))
deallocate(profile%flag_t)
245 if (
associated(profile%flag_s))
deallocate(profile%flag_s)
246 if (
associated(profile%ms_t))
deallocate(profile%ms_t)
247 if (
associated(profile%ms_s))
deallocate(profile%ms_s)
248 profile%temp_err = -1.0
249 profile%salt_err = -1.0
253 if (
associated(profile%model_time))
deallocate(profile%model_time)
254 if (
associated(profile%model_grid))
deallocate(profile%model_grid)
257 if (
associated(profile%k_index))
deallocate(profile%k_index)
integer, parameter, public satellite
integer, parameter, public max_levels_file
Controls record length for optimal storage.
integer, parameter, public drifter
integer, parameter, public xbt
station measurements
integer, parameter, public max_links
Maximum number of records per profile for storage for profiles.
integer, parameter, public cossq_lat
subroutine init_obs_profile(profile)
integer, save, public salt_id
integer, parameter, public max_neighbors
Maximum number of neighbors for QC or analysis for profiles.
integer, save, public temp_id
integer, parameter, public argo
integer, parameter, public ship
integer, parameter, public mooring
integer, parameter, public unknown
real, parameter, public missing_value
integer, parameter, public ctd
station measurements
integer, parameter, public drop_profiler
integer, parameter, public tao
moorings
integer, parameter, public mbt
station measurements
integer, parameter, public pirata
moorings