[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