[Dart-dev] DART/branches Revision: 11855
dart at ucar.edu
dart at ucar.edu
Tue Aug 1 16:49:23 MDT 2017
nancy at ucar.edu
2017-08-01 16:49:23 -0600 (Tue, 01 Aug 2017)
376
fixed bug when compiled with r4=r8 - bufr library
doesn't use our kinds and stays r8 for any arrays
being passed across the interface.
also fixed the counters (initialized outside the file
loop but printed inside).
put more messages behind: if (debug)
put in some summary statistics for number of obs
created, number of profiles processed, number rejected
and why, etc.
Modified: DART/branches/rma_trunk/observations/obs_converters/gps/convert_gpsro_bufr.f90
===================================================================
--- DART/branches/rma_trunk/observations/obs_converters/gps/convert_gpsro_bufr.f90 2017-08-01 21:52:43 UTC (rev 11854)
+++ DART/branches/rma_trunk/observations/obs_converters/gps/convert_gpsro_bufr.f90 2017-08-01 22:49:23 UTC (rev 11855)
@@ -24,7 +24,7 @@
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-use types_mod, only : r8
+use types_mod, only : r8,r4,digits12
use time_manager_mod, only : time_type, set_calendar_type, GREGORIAN, set_time,&
increment_time, get_time, set_date, operator(-), &
operator(>=), operator(<), operator(>), operator(<=), &
@@ -39,7 +39,7 @@
write_obs_seq, init_obs_sequence, get_num_obs, &
insert_obs_in_seq, destroy_obs_sequence, &
set_copy_meta_data, set_qc_meta_data, set_qc, &
- set_obs_values, set_obs_def
+ set_obs_values, set_obs_def, read_obs_seq_header
use obs_def_mod, only : obs_def_type, set_obs_def_time, set_obs_def_type_of_obs, &
set_obs_def_error_variance, set_obs_def_location, &
set_obs_def_key
@@ -47,7 +47,6 @@
use obs_kind_mod, only : GPSRO_REFRACTIVITY
use obs_utilities_mod, only : add_obs_to_seq
-
implicit none
! version controlled file description for error handling, do not edit
@@ -56,23 +55,28 @@
character(len=32 ), parameter :: revision = "$Revision$"
character(len=128), parameter :: revdate = "$Date$"
+! routines used from the bufrlib.a library:
+! openbf, datelen, readmg, ireadmg, ireadsb
+! ufbint, ireadsb, ireadmg, closbf
+! upftbv, ufbint, ufbseq
+! be careful about passing real values across to these routines.
+! they are compiled without using our r4 and r8 kinds. if r8=r4
+! you must use digits12 when passing real arrays.
integer, parameter :: num_copies = 1, & ! number of copies in sequence
num_qc = 1 ! number of QC entries
-character (len=129) :: msgstring, next_infile
+character (len=512) :: msgstring
+character (len=256) :: next_infile
character (len=80) :: name
character (len=6) :: subset
integer :: nlevels, nfiles, num_new_obs, oday, osec, &
- iyear, imonth, iday, ihour, imin, isec, obs_num, &
+ iyear, imonth, iday, ihour, imin, isec, obs_count, gps_obs_num, obs_num_byfile, &
io, iunit, filenum, dummy
-logical :: file_exist, first_obs, did_obs, from_list = .false.
+logical :: file_exist, first_obs, from_list = .false.
real(r8) :: oerr, qc, nx, ny, nz, &
rfict, obsval, obs_val(1), qc_val(1)
-!real(r8), allocatable :: lat(:), lon(:), hght(:), refr(:), azim(:), &
-! hghtp(:), refrp(:)
-
type(obs_def_type) :: obs_def
type(obs_sequence_type) :: obs_seq
type(obs_type) :: obs, prev_obs
@@ -80,50 +84,63 @@
type(time_type) :: anal_time, window_min, window_max
integer :: gday, gsec, dsec, bsec, bday, esec, eday, num_excluded_bytime
+integer :: existing_obs
logical :: use_bending_angle = .false. ! Reserve for later.
+
+! unused vars required by an interface that doesn't allow optional args
+integer :: dummy_a, dummy_b, dummy_c, dummy_d
+logical :: dummy_tf
+character(len=32) :: dummy_str
+
!------------------------------------------------------------------------
! Array for bufr data
!------------------------------------------------------------------------
- character(len=80) hdr1a
- character(len=10) nemo
- character(len=8) subsetb
- character(len=1) cflg
- character(len=7) obstype
- character(len=120) crecord
+character(len=80) hdr1a
+character(len=10) nemo
+character(len=8) subsetb
+character(len=1) cflg
+character(len=7) obstype
+character(len=120) crecord
- integer, parameter:: unit_in=91
- integer, parameter:: unit_aux=92
- integer, parameter:: n1ahdr=10
- integer, parameter:: maxlevs=500 ! max number of observation levels (no longer namelist parameter)
- integer, parameter:: maxinfo=16
- integer, parameter:: mxib=31
- integer, dimension(50):: isats
+integer, parameter:: unit_in=91
More information about the Dart-dev
mailing list