[Dart-dev] [7771] DART/trunk/observations: Tracking a modification made on the tiegcm branch.

nancy at ucar.edu nancy at ucar.edu
Fri Mar 27 14:04:25 MDT 2015


Revision: 7771
Author:   thoar
Date:     2015-03-27 14:04:24 -0600 (Fri, 27 Mar 2015)
Log Message:
-----------
Tracking a modification made on the tiegcm branch.
Given the permission problem with merging the tiegcm branch back onto
the trunk, it is necessary to commit them separately to the trunk,
which does not preserve the revision history or log information.

In summary:

Added the observation converter to supply O/N2 ratio observations from SSUSI.

The original netCDF files must be preprocessed to add some netCDF variable
attributes to allow recognition of the (undocumented) _FillValue of NaN for
the ON2_UNCERTAINTY variable used to supply the observation error variance.
shell_scripts/netcdf_manip.csh does just that.

Added Paths:
-----------
    DART/trunk/observations/SSUSI/
    DART/trunk/observations/SSUSI/convert_f16_edr_dsk.f90
    DART/trunk/observations/SSUSI/convert_f16_edr_dsk.html
    DART/trunk/observations/SSUSI/convert_f16_edr_dsk.nml
    DART/trunk/observations/SSUSI/data/
    DART/trunk/observations/SSUSI/data/PS.APL_V0105S024CE0018_SC.U_DI.A_GP.F16-SSUSI_PA.APL-EDR-DAY-DISK_DD.20050910_SN.09792-00_DF.NC
    DART/trunk/observations/SSUSI/shell_scripts/
    DART/trunk/observations/SSUSI/shell_scripts/netcdf_manip.csh
    DART/trunk/observations/SSUSI/work/
    DART/trunk/observations/SSUSI/work/input.nml
    DART/trunk/observations/SSUSI/work/mkmf_advance_time
    DART/trunk/observations/SSUSI/work/mkmf_convert_f16_edr_dsk
    DART/trunk/observations/SSUSI/work/mkmf_obs_sequence_tool
    DART/trunk/observations/SSUSI/work/mkmf_preprocess
    DART/trunk/observations/SSUSI/work/path_names_advance_time
    DART/trunk/observations/SSUSI/work/path_names_convert_f16_edr_dsk
    DART/trunk/observations/SSUSI/work/path_names_obs_sequence_tool
    DART/trunk/observations/SSUSI/work/path_names_preprocess
    DART/trunk/observations/SSUSI/work/quickbuild.csh

-------------- next part --------------
Added: DART/trunk/observations/SSUSI/convert_f16_edr_dsk.f90
===================================================================
--- DART/trunk/observations/SSUSI/convert_f16_edr_dsk.f90	                        (rev 0)
+++ DART/trunk/observations/SSUSI/convert_f16_edr_dsk.f90	2015-03-27 20:04:24 UTC (rev 7771)
@@ -0,0 +1,251 @@
+! DART software - Copyright 2004 - 2013 UCAR. This open source software is
+! provided by UCAR, "as is", without charge, subject to all terms of use at
+! http://www.image.ucar.edu/DAReS/DART/DART_download
+!
+! $Id$
+
+program convert_f16_edr_dsk
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!
+! convert_f16_edr_dsk - program that reads a SSUSI netCDF profiler
+!                       wind observation file and writes a DART
+!                       obs_seq file using the DART library routines.
+!
+! http://ssusi.jhuapl.edu/data_products
+!
+! The ON2_UNCERTAINTY variable in the netcdf files have IEEE NaN values,
+! but none of the required metadata to interpret them correctly.
+! These 2 lines will add the required attributes so that NaNs are replaced with
+! a fill value that can be queried and checked for.
+! Since the ON2_UNCERTAINTY is a standard deviation, it is enough to make it negative
+!
+! ncatted -a _FillValue,ON2_UNCERTAINTY,o,f,NaN        input_file.nc
+! ncatted -a _FillValue,ON2_UNCERTAINTY,m,f,-1.0       input_file.nc
+!
+! These commands exist in the shell_scripts/netcdf_manip.csh script.
+!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+
+use         types_mod, only : r8, MISSING_R8, digits12
+
+use     utilities_mod, only : nc_check, initialize_utilities, finalize_utilities, &
+                              find_namelist_in_file, check_namelist_read, do_output
+
+use  time_manager_mod, only : time_type, set_calendar_type, set_date, GREGORIAN, &
+                              get_time, set_time, print_time, print_date
+
+use      location_mod, only : VERTISUNDEF
+
+use  obs_sequence_mod, only : obs_sequence_type, obs_type, read_obs_seq, &
+                              static_init_obs_sequence, init_obs, write_obs_seq, & 
+                              init_obs_sequence, get_num_obs, & 
+                              set_copy_meta_data, set_qc_meta_data
+
+use      obs_kind_mod, only : SSUSI_O_N2_RATIO
+
+use obs_utilities_mod, only : getdimlen, getvar_real, getvar_real_2d, &
+                              getvar_int, getvar_int_2d, add_obs_to_seq, create_3d_obs
+
+use netcdf
+
+implicit none
+
+integer, parameter :: num_copies = 1,   &   ! number of copies in sequence
+                      num_qc     = 1        ! number of QC entries
+
+integer  :: i, io, iunit, ncid, nused
+integer  :: n_pix_along_day, n_pix_across_day, i_across, i_along
+integer  :: seconds, days
+logical  :: file_exist, first_obs
+
+real(r8) :: oerr, qc, lon, lat, obs_value, org_missing
+
+real(r8),       allocatable :: latitude(:,:), longitude(:,:)
+integer,        allocatable :: year(:), doy(:)
+real(digits12), allocatable :: time(:)
+real(r8),       allocatable :: ON2(:,:), ON2_uncertainty(:,:)
+integer,        allocatable :: ON2_quality(:,:)
+
+! PIERCEPOINT_DAY_LATITUDE  &
+!   "Dayside latitude of the pierce point; rebinned to the new grid." ;
+! PIERCEPOINT_DAY_LONGITUDE &
+!   "Dayside longitude of the pierce point; rebinned to the new grid." ;
+! ON2                       &
+!   "Ratio of the O to N2 vertical column densities on the disk" ;
+! ON2_UNCERTAINTY           &
+!   "Standard deviation of the ratio of O to N2 vertical column densities on the disk" ;
+! DATA_QUALITY_DISK         &
+!   "Disk data quality flags - see EDR docs for details" ;
+ 
+type(obs_sequence_type) :: obs_seq
+type(obs_type)          :: obs, prev_obs
+type(time_type)         :: comp_day0, time_obs, prev_time
+
+!-------------------------------------------------------------------------------
+! namelist with default values
+
+character(len=256) :: input_netcdf_file  = 'input_netcdf.nc'
+character(len=256) :: output_obs_file    = 'obs_seq.out'
+integer            :: debug = 0
+
+namelist /convert_f16_edr_dsk_nml/ input_netcdf_file, output_obs_file, debug
+ 
+!-------------------------------------------------------------------------------
+! start of executable code
+!-------------------------------------------------------------------------------
+
+call initialize_utilities('convert_f16_edr_dsk')
+
+! Read the namelist entry for model_mod from input.nml
+call find_namelist_in_file('input.nml', 'convert_f16_edr_dsk_nml', iunit)
+read(iunit, nml = convert_f16_edr_dsk_nml, iostat = io)
+call check_namelist_read(iunit, io, 'convert_f16_edr_dsk_nml')
+
+call nc_check(nf90_open(input_netcdf_file, nf90_nowrite, ncid), &
+        'convert_f16_edr_dsk', 'opening file ['//trim(input_netcdf_file)//']')
+
+call getdimlen(ncid,"N_PIX_ALONG_DAY",  n_pix_along_day)
+call getdimlen(ncid,"N_PIX_ACROSS_DAY", n_pix_across_day)
+
+allocate(       latitude(n_pix_across_day,n_pix_along_day))
+allocate(      longitude(n_pix_across_day,n_pix_along_day))
+allocate(            ON2(n_pix_across_day,n_pix_along_day))
+allocate(ON2_uncertainty(n_pix_across_day,n_pix_along_day))
+allocate(    ON2_quality(n_pix_across_day,n_pix_along_day))
+
+allocate(year(n_pix_along_day))
+allocate( doy(n_pix_along_day))
+allocate(time(n_pix_along_day))
+
+call getvar_int( ncid, 'YEAR', year ) 
+call getvar_int( ncid, 'DOY' , doy  )
+call getvar_real(ncid, 'TIME', time )
+
+call getvar_real_2d(ncid, 'PIERCEPOINT_DAY_LATITUDE' , latitude )
+call getvar_real_2d(ncid, 'PIERCEPOINT_DAY_LONGITUDE', longitude )
+call getvar_real_2d(ncid, 'ON2'                      , ON2 )
+call getvar_real_2d(ncid, 'ON2_UNCERTAINTY'          , ON2_uncertainty, org_missing)
+call getvar_int_2d(ncid, 'DATA_QUALITY_DISK'        , ON2_quality )
+
+write(string1,*,iostat=io)count(ON2_uncertainty < 0.0)
+if (io /= 0) then
+  write(*,*)'REMOVE THE NANFs from the file using shell_scripts/bob'
+endif
+
+where (ON2_uncertainty == org_missing) ON2_uncertainty = MISSING_R8
+if (do_output()) write(*,*)'count of missing ON2_uncertainty values',count(ON2_uncertainty < 0.0)
+
+call nc_check(nf90_close(ncid) , &
+        'convert_f16_edr_dsk', 'closing file '//trim(input_netcdf_file))
+
+! Ensure latitudes are within [-90,90]
+where( latitude < -90.0_r8 ) latitude = -90.0_r8
+where( latitude >  90.0_r8 ) latitude =  90.0_r8
+
+! Ensure longitudes are within [0, 360.0)
+where( longitude <   0.0_r8 ) longitude = longitude + 360.0_r8
+where( longitude > 360.0_r8 ) longitude = longitude - 360.0_r8
+
+!  either read existing obs_seq or create a new one
+
+first_obs = .true.
+call static_init_obs_sequence()
+call init_obs(obs,      num_copies, num_qc)
+call init_obs(prev_obs, num_copies, num_qc)
+
+inquire(file=output_obs_file, exist=file_exist)
+
+if ( file_exist ) then ! existing file found, append to it
+
+  call read_obs_seq(output_obs_file, 0, 0, n_pix_along_day*n_pix_across_day, obs_seq)
+
+else ! create a new one
+
+  call init_obs_sequence(obs_seq, num_copies, num_qc, n_pix_along_day*n_pix_across_day)
+  do i = 1, num_copies
+    call set_copy_meta_data(obs_seq, i, 'observation')
+  end do
+  do i = 1, num_qc
+    call set_qc_meta_data(obs_seq, i, 'Quality Control')
+  end do
+
+endif
+
+! Set the DART data quality control.  Be consistent with NCEP codes;
+! 0 is 'must use', 1 is good, no reason not to use it.
+
+nused = 0
+
+call set_calendar_type(GREGORIAN)
+
+along_day: do i_along = 1, n_pix_along_day
+
+   ! calculate observation time and convert to DART format
+
+   comp_day0 = set_date(year(i_along), 1, 1, 0, 0, 0)
+   call get_time(comp_day0, seconds, days)
+
+   seconds  = seconds + nint(time(i_along))
+   days     = days + doy(i_along) - 1
+   time_obs = set_time(seconds,days)
+   call get_time(time_obs, seconds, days)
+
+   if (do_output() .and. (debug > 0)) then   
+      write(*,*)'year doy time',year(i_along),doy(i_along),time(i_along)
+      call print_time(time_obs,'time of observation')
+      call print_date(time_obs,'date of observation')
+   endif
+
+   across_day: do i_across = 1, n_pix_across_day
+ 
+      oerr = ON2_uncertainty(i_across,i_along)
+      if ( oerr == MISSING_R8 ) cycle across_day
+   
+      lat =   latitude(i_across,i_along)
+      lon =  longitude(i_across,i_along)
+      obs_value =  ON2(i_across,i_along)
+      qc = ON2_quality(i_across,i_along)
+
+      ! create_3d_obs takes the standard deviation of the observation error
+      ! fortunately, this is what is reputed to be in ON2_UNCERTAINTY.
+
+      call create_3d_obs(lat, lon, 0.0_r8, VERTISUNDEF, obs_value, &
+                            SSUSI_O_N2_RATIO, oerr, days, seconds, qc, obs)
+
+      call add_obs_to_seq(obs_seq, obs, time_obs, prev_obs, prev_time, first_obs)
+   
+      nused = nused + 1
+   
+      if (obs_value >= 0.0_r8 .and. obs_value <= 1.0_r8) then
+         if (do_output() .and. (debug > 0)) then   
+            write(*,*)'observation ',nused,' out of ',n_pix_along_day*n_pix_across_day
+            write(*,*)'  values',lat,lon,qc,obs_value,oerr
+         endif
+      endif
+
+   enddo across_day
+enddo along_day
+
+if (do_output()) then   
+   write(*,*)'There were ',nused,' observations converted out of ', &
+             n_pix_along_day*n_pix_across_day,' possible.'
+endif
+
+! if we added any obs to the sequence, write it now.
+if ( get_num_obs(obs_seq) > 0 )  call write_obs_seq(obs_seq, output_obs_file)
+
+deallocate(latitude, longitude, ON2, ON2_uncertainty, ON2_quality)
+deallocate(year, doy, time)
+
+! end of main program
+call finalize_utilities()
+
+end program
+
+! <next few lines under version control, do not edit>
+! $URL$
+! $Id$
+! $Revision$
+! $Date$


Property changes on: DART/trunk/observations/SSUSI/convert_f16_edr_dsk.f90
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Date Rev Author HeadURL Id
Added: svn:eol-style
   + native

Added: DART/trunk/observations/SSUSI/convert_f16_edr_dsk.html
===================================================================
--- DART/trunk/observations/SSUSI/convert_f16_edr_dsk.html	                        (rev 0)
+++ DART/trunk/observations/SSUSI/convert_f16_edr_dsk.html	2015-03-27 20:04:24 UTC (rev 7771)
@@ -0,0 +1,218 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+          "http://www.w3.org/TR/html4/strict.dtd">
+<HTML>
+<HEAD>
+<TITLE>SSUSI Data</TITLE>
+<link rel="stylesheet" type="text/css" href="../../doc/html/doc.css" />
+<link href="../../doc/images/dart.ico" rel="shortcut icon" />
+</HEAD>
+<BODY>
+<A NAME="TOP"></A>
+
+<H1>SSUSI F16 EDR-DSK format to observation sequence converters</H1>
+
+<table border=0 summary="" cellpadding=5>
+<tr>
+    <td valign=middle>
+    <img src="../../doc/images/Dartboard7.png" alt="DART project logo" height=70 />
+    </td>
+    <td>
+       <P>Jump to <a href="../../index.html">DART Documentation Main Index</a><br />
+          <small><small>version information for this file: <br />
+          <!-- version tag follows, do not edit -->
+          $Id$</small></small>
+       </P></td>
+</tr>
+</table>
+
+<A HREF="#DataSources">DATA SOURCES</A> /
+<A HREF="#Programs">PROGRAMS</A> / 
+<A HREF="#Modules">MODULES</A> /
+<A HREF="#Namelist">NAMELIST</A> /
+<A HREF="#Errors">ERRORS</A> /
+<A HREF="#FuturePlans">FUTURE PLANS</A> /
+<A HREF="#Legalese">TERMS OF USE</A>
+
+<H2>Overview</H2>
+
+<P>
+The Special Sensor Ultraviolet Spectrographic Imager 
+<a href="http://http://ssusi.jhuapl.edu/">SSUSI</a> is 
+designed to remotely sense the ionosphere and thermosphere.
+
+The following is repeated from the SSUSI home page:
+<blockquote><em class=italic>
+<b>Overview</b><br />
+Beginning in 2003, the Defense Meteorological Satellite Program (DMSP) satellites 
+began carrying the SSUSI instrument - a combination of spectrographic imaging 
+and photometric systems designed to remotely sense the ionosphere and thermosphere.
+<br />
+<br />
+The long term focus of the SSUSI program is to provide data concerning the 
+upper atmospheric response to the sun over the changing conditions of the solar 
+cycle. Data collected by SSUSI instrument can help identify structure in the 
+equatorial and polar regions.
+<br />
+<br />
+<b>Mission</b><br />
+SSUSI was designed for the DMSP Block 5D-3 satellites. These satellites are 
+placed into nearly polar, sun-synchronous orbits at an altitude of about 850 km. 
+SSUSI is a remote-sensing instrument which measures ultraviolet (UV) emissions in 
+five different wavelength bands from the Earth's upper atmosphere. SSUSI is 
+mounted on a nadir-looking panel of the satellite. The multicolor images from 
+SSUSI cover the visible Earth disk from horizon to horizon and the 
+anti-sunward limb up to an altitude of approximately 520 km.
+<br />
+<br />
+The UV images and the derived environmental data provide the Air Force Weather 
+Agency (Offutt Air Force Base, Bellevue, NE) with near real-time information that 
+can be utilized in a number of applications, such as maintenance of high 
+frequency (HF) communication links and related systems and assessment of the 
+environmental hazard to astronauts on the Space Station.</em></blockquote>
+</P>
+
+<P>
+<em class=program>convert_f16_edr_dsk.f90</em> will extract the ON2 
+observations from the F16 "edr-dsk" format files and create DART observation
+sequence files. There is one additional preprocessing step before the edr-dsk
+files may be converted.
+<br />
+<br />
+The ON2_UNCERTAINTY variable in the netcdf files have IEEE NaN values,
+but none of the required metadata to interpret them correctly.
+These 2 lines will add the required attributes so that NaNs are replaced with
+a fill value that can be queried and manipulated.
+Since the ON2_UNCERTAINTY is a standard deviation, it is sufficient to make
+the fill value negative. <a href-="#KnownBugs">See the section on Known Bugs</a>
+</P>
+<div class=unix>
+<pre>ncatted -a _FillValue,ON2_UNCERTAINTY,o,f,NaN        input_file.nc
+ncatted -a _FillValue,ON2_UNCERTAINTY,m,f,-1.0       input_file.nc</pre>
+</div>
+<P></P>
+
+<!--==================================================================-->
+
+<A NAME="DataSources"></A>
+<div class="top">[<a href="#">top</a>]</div><hr />
+<H2>DATA SOURCES</H2>
+<P>
+<a href="http://ssusi.jhuapl.edu/data_products">http://ssusi.jhuapl.edu/data_products</a>
+</P>
+
+<P>Please read their <a href="http://ssusi.jhuapl.edu/home_data_usage">data usage</a> 
+policy.
+</P>
+
+<!--==================================================================-->
+
+<A NAME="Programs"></A>
+<div class="top">[<a href="#">top</a>]</div><hr />
+<H2>PROGRAMS</H2>
+<P>
+<em class=file>DART/observations/SSUSI/convert_f16_edr_dsk.f90</em> 
+will extract ON2 data from the distribution files 
+and create DART observation sequence (obs_seq) files.
+Build it in the <em class=file>SSUSI/work</em> directory by running
+the <em class=program>./quickbuild.csh</em> script located there.
+In addition to the converters, the <em class=file>advance_time</em> and
+<em class=file>obs_sequence_tool</em> utilities will be built.
+</P>
+
+<P>
+An example data file is in the <em class=file>data</em> directory.
+An example scripts for adding the required metadata to the ON2_UNCERTAINTY
+variable in the <em class=file>shell_scripts</em> directory.  
+These are <em>NOT</em> intended to be turnkey scripts; they will
+certainly need to be customized for your use.  There are comments
+at the top of the scripts saying what options they include, and
+should be commented enough to indicate where changes will be
+likely to need to be made.
+</P>
+
+<!--==================================================================-->
+<!-- Describe the bugs.                                               -->
+<!--==================================================================-->
+
+<A NAME="Errors"></A>
+<div class="top">[<a href="#">top</a>]</div><hr />
+<H2>ERRORS</H2>
+<P>
+The code for setting observation error variances is using fixed values,
+and we are not certain if they are correct.  Incoming QC values larger
+than 0 are suspect, but it is not clear if they really signal unusable
+values or whether there are some codes we should accept.
+</P>
+
+<!--==================================================================-->
+<!-- Describe the bugs.                                               -->
+<!--==================================================================-->
+
+<A NAME="KnownBugs"></A>
+<div class="top">[<a href="#">top</a>]</div><hr />
+<H2>KNOWN BUGS</H2>
+<P>
+The netCDF files - as distributed - have NaN values to indicate "MISSING".
+This makes it exceptionally hard to read or work with, as almost everything
+will core dump when trying to perform any math with NaNs. <em class=file>
+convert_f16_edr_dsk.f90</em> tries to count how many values are missing. If the
+NaN has not been replaced with a numerically valid MISSING value, the following
+FATAL ERROR is generated (by the Intel compiler, with debug and traceback enabled):</P>
+<PRE>
+ set_nml_output Echo NML values to log file only
+ Trying to open namelist log dart_log.nml
+forrtl: error (65): floating invalid
+Image              PC                Routine            Line        Source             
+convert_f16_edr_d  000000000051717D  MAIN__                    143  convert_f16_edr_dsk.f90
+convert_f16_edr_d  0000000000409B3C  Unknown               Unknown  Unknown
+libc.so.6          0000003101E1ED5D  Unknown               Unknown  Unknown
+convert_f16_edr_d  0000000000409A39  Unknown               Unknown  Unknown
+Abort (core dumped)
+</PRE>
+
+<P>
+The solution is to replace the NaN values with a viable MISSING value using
+the <em class=program>shell_scripts/netcdf_manip.csh</em> script.
+It relies on the netCDF Operators, freely available from&nbsp;
+<a href="http://nco.sourceforge.net">http://nco.sourceforge.net</a>
+</P>
+
+<!--==================================================================-->
+<!-- Describe Future Plans.                                           -->
+<!--==================================================================-->
+
+<A NAME="FuturePlans"></A>
+<div class="top">[<a href="#">top</a>]</div><hr />
+<H2>FUTURE PLANS</H2>
+<P>
+none
+</P>
+
+<!--==================================================================-->
+<!-- Legalese & Metadata                                              -->
+<!--==================================================================-->
+
+<A NAME="Legalese"></A>
+<div class="top">[<a href="#">top</a>]</div><hr />
+<H2>Terms of Use</H2>
+
+<P>
+DART software - Copyright 2004 - 2013 UCAR.<br />
+This open source software is provided by UCAR, "as is",<br />
+without charge, subject to all terms of use at<br />
+<a href="http://www.image.ucar.edu/DAReS/DART/DART_download">
+http://www.image.ucar.edu/DAReS/DART/DART_download</a>
+</P>
+
+<TABLE border=0 cellpadding=0 width=100% summary="">
+<TR><TD valign=top>Contact:       </TD><TD> Tim Hoar </TD></TR>
+<TR><TD valign=top>Revision:      </TD><TD> $Revision$ </TD></TR>
+<TR><TD valign=top>Source:        </TD><TD> $URL$ </TD></TR>
+<TR><TD valign=top>Change Date:   </TD><TD> $Date$ </TD></TR>
+<TR><TD valign=top>Change&nbsp;history:&nbsp;</TD><TD> try "svn&nbsp;log" or "svn&nbsp;diff" </TD></TR>
+</TABLE>
+
+<!--==================================================================-->
+
+</BODY>
+</HTML>


Property changes on: DART/trunk/observations/SSUSI/convert_f16_edr_dsk.html
___________________________________________________________________
Added: svn:mime-type
   + text/html
Added: svn:keywords
   + Date Rev Author HeadURL Id
Added: svn:eol-style
   + native

Added: DART/trunk/observations/SSUSI/convert_f16_edr_dsk.nml
===================================================================
--- DART/trunk/observations/SSUSI/convert_f16_edr_dsk.nml	                        (rev 0)
+++ DART/trunk/observations/SSUSI/convert_f16_edr_dsk.nml	2015-03-27 20:04:24 UTC (rev 7771)
@@ -0,0 +1,6 @@
+&convert_f16_edr_dsk_nml
+   input_netcdf_file  = 'input_netcdf.nc'
+   output_obs_file    = 'obs_seq.out'
+   debug = 0
+  /
+


Property changes on: DART/trunk/observations/SSUSI/convert_f16_edr_dsk.nml
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native

Added: DART/trunk/observations/SSUSI/data/PS.APL_V0105S024CE0018_SC.U_DI.A_GP.F16-SSUSI_PA.APL-EDR-DAY-DISK_DD.20050910_SN.09792-00_DF.NC
===================================================================
(Binary files differ)


Property changes on: DART/trunk/observations/SSUSI/data/PS.APL_V0105S024CE0018_SC.U_DI.A_GP.F16-SSUSI_PA.APL-EDR-DAY-DISK_DD.20050910_SN.09792-00_DF.NC
___________________________________________________________________
Added: svn:mime-type
   + application/x-netcdf

Added: DART/trunk/observations/SSUSI/shell_scripts/netcdf_manip.csh
===================================================================
--- DART/trunk/observations/SSUSI/shell_scripts/netcdf_manip.csh	                        (rev 0)
+++ DART/trunk/observations/SSUSI/shell_scripts/netcdf_manip.csh	2015-03-27 20:04:24 UTC (rev 7771)
@@ -0,0 +1,28 @@
+#!/bin/csh
+#
+# A set of examples on how to simply tweak existing netCDF files.
+#
+# DART software - Copyright 2004 - 2013 UCAR. This open source software is
+# provided by UCAR, "as is", without charge, subject to all terms of use at
+# http://www.image.ucar.edu/DAReS/DART/DART_download
+#
+# DART $Id$
+
+set fname = input_file.nc
+
+# The ON2_UNCERTAINTY variable in the netcdf files have IEEE NaN values,
+# but none of the required metadata to interpret them correctly.
+# These 2 lines will add the required attributes so that NaNs are replaced with
+# a fill value that can be queried and checked for.
+# Since the ON2_UNCERTAINTY is a standard deviation, it is enough to make it negative
+   
+ncatted -a _FillValue,ON2_UNCERTAINTY,o,f,NaN        input_file.nc
+ncatted -a _FillValue,ON2_UNCERTAINTY,m,f,-1.0       input_file.nc
+
+exit 0
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Revision$
+# $Date$
+


Property changes on: DART/trunk/observations/SSUSI/shell_scripts/netcdf_manip.csh
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Date Rev Author HeadURL Id
Added: svn:eol-style
   + native

Added: DART/trunk/observations/SSUSI/work/input.nml
===================================================================
--- DART/trunk/observations/SSUSI/work/input.nml	                        (rev 0)
+++ DART/trunk/observations/SSUSI/work/input.nml	2015-03-27 20:04:24 UTC (rev 7771)
@@ -0,0 +1,94 @@
+
+&preprocess_nml
+    input_obs_kind_mod_file = '../../../obs_kind/DEFAULT_obs_kind_mod.F90'
+   output_obs_kind_mod_file = '../../../obs_kind/obs_kind_mod.f90'
+     input_obs_def_mod_file = '../../../obs_def/DEFAULT_obs_def_mod.F90'
+    output_obs_def_mod_file = '../../../obs_def/obs_def_mod.f90'
+   input_files              = '../../../obs_def/obs_def_upper_atm_mod.f90'
+ /
+
+&convert_f16_edr_dsk_nml
+   input_netcdf_file = 'input_file.nc'
+   output_obs_file   = 'obs_seq.out'
+   debug             = 0
+ /
+
+&location_nml
+ /
+
+&obs_kind_nml
+ /
+
+&utilities_nml
+   module_details = .false.
+ /
+
+&obs_sequence_nml
+   write_binary_obs_sequence = .false.
+ /
+
+&obs_sequence_tool_nml
+   filename_seq         = ''
+   filename_seq_list    = ''
+   filename_out         = 'obs_seq.processed'
+   first_obs_days       = -1
+   first_obs_seconds    = -1
+   last_obs_days        = -1
+   last_obs_seconds     = -1
+   obs_types            = ''
+   keep_types           = .true.
+   min_lat              =  -90.0
+   max_lat              =   90.0
+   min_lon              =    0.0
+   max_lon              =  360.0
+   gregorian_cal        = .true.
+/
+
+! SEE THE .HTML FILE FOR MORE DETAILED EXAMPLES AND FULL
+! DOCUMENTATION.  here are brief examples of possible settings:
+!
+! keep only observations with a DART QC of 0:
+!   qc_metadata        = 'Dart quality control'
+!   min_qc             = 0
+!   max_qc             = 0
+!
+! keep only radiosonde temp obs between 250 and 300 K:
+!   copy_metadata      = 'NCEP BUFR observation'
+!   copy_type          = 'RADIOSONDE_TEMPERATURE'
+!   min_copy           = 250.0
+!   max_copy           = 300.0
+!
+! keep only the U and V radiosonde winds:
+!   obs_types          = 'RADIOSONDE_U_WIND_COMPONENT',
+!                        'RADIOSONDE_V_WIND_COMPONENT'
+!   keep_types         = .true.
+!
+! remove the U and V radiosonde winds:
+!   obs_types          = 'RADIOSONDE_U_WIND_COMPONENT',
+!                        'RADIOSONDE_V_WIND_COMPONENT'
+!   keep_types         = .false.
+!
+! change the metadata strings:
+!   edit_copy_metadata  = .true.
+!   new_copy_metadata   = 'observations'
+!   edit_qc_metadata    = .true.
+!   new_qc_metadata     = 'QC', 'DART quality control'
+!
+! change the number and order of the copies and qc:
+!   edit_copies    = .true.
+!   new_copy_index = 1, 2, 81, 82
+!   edit_qcs       = .true.
+!   new_qc_index   =  2
+!
+! add a new copy or qc by using 0 as the index number:
+!   edit_copies    = .true.
+!   new_copy_index = 1, 2, 0, 81, 82
+!   new_copy_data  = 5.0
+!   edit_qcs       = .true.
+!   new_qc_index   =  1, 2, 0, 0
+!   new_qc_data    = 0.0, 3.0
+!
+! allow different metadata strings in multiple files to match:
+!   synonymous_copy_list = 'NCEP BUFR observations', 'observations'
+!   synonymous_qc_list   = 'NCEP QC index', 'AIRS QC', 'QC'
+


Property changes on: DART/trunk/observations/SSUSI/work/input.nml
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native

Added: DART/trunk/observations/SSUSI/work/mkmf_advance_time
===================================================================
--- DART/trunk/observations/SSUSI/work/mkmf_advance_time	                        (rev 0)
+++ DART/trunk/observations/SSUSI/work/mkmf_advance_time	2015-03-27 20:04:24 UTC (rev 7771)
@@ -0,0 +1,18 @@
+#!/bin/csh
+#
+# DART software - Copyright 2004 - 2013 UCAR. This open source software is
+# provided by UCAR, "as is", without charge, subject to all terms of use at
+# http://www.image.ucar.edu/DAReS/DART/DART_download
+#
+# DART $Id$
+
+../../../mkmf/mkmf -p advance_time -t ../../../mkmf/mkmf.template   \
+ -a "../../.." path_names_advance_time
+
+exit $status
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Revision$
+# $Date$
+


Property changes on: DART/trunk/observations/SSUSI/work/mkmf_advance_time
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Date Rev Author HeadURL Id
Added: svn:eol-style
   + native

Added: DART/trunk/observations/SSUSI/work/mkmf_convert_f16_edr_dsk
===================================================================
--- DART/trunk/observations/SSUSI/work/mkmf_convert_f16_edr_dsk	                        (rev 0)
+++ DART/trunk/observations/SSUSI/work/mkmf_convert_f16_edr_dsk	2015-03-27 20:04:24 UTC (rev 7771)
@@ -0,0 +1,18 @@
+#!/bin/csh
+#
+# DART software - Copyright 2004 - 2013 UCAR. This open source software is
+# provided by UCAR, "as is", without charge, subject to all terms of use at
+# http://www.image.ucar.edu/DAReS/DART/DART_download
+#
+# DART $Id$
+
+../../../mkmf/mkmf -p convert_f16_edr_dsk -t ../../../mkmf/mkmf.template   \
+ -a "../../.." path_names_convert_f16_edr_dsk
+
+exit $status
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Revision$
+# $Date$
+


Property changes on: DART/trunk/observations/SSUSI/work/mkmf_convert_f16_edr_dsk
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Date Rev Author HeadURL Id
Added: svn:eol-style
   + native

Added: DART/trunk/observations/SSUSI/work/mkmf_obs_sequence_tool
===================================================================
--- DART/trunk/observations/SSUSI/work/mkmf_obs_sequence_tool	                        (rev 0)
+++ DART/trunk/observations/SSUSI/work/mkmf_obs_sequence_tool	2015-03-27 20:04:24 UTC (rev 7771)
@@ -0,0 +1,18 @@
+#!/bin/csh
+#
+# DART software - Copyright 2004 - 2013 UCAR. This open source software is
+# provided by UCAR, "as is", without charge, subject to all terms of use at
+# http://www.image.ucar.edu/DAReS/DART/DART_download
+#
+# DART $Id$
+
+../../../mkmf/mkmf -p obs_sequence_tool -t ../../../mkmf/mkmf.template   \
+ -a "../../.." path_names_obs_sequence_tool
+
+exit $status
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Revision$
+# $Date$
+


Property changes on: DART/trunk/observations/SSUSI/work/mkmf_obs_sequence_tool
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Date Rev Author HeadURL Id
Added: svn:eol-style
   + native

Added: DART/trunk/observations/SSUSI/work/mkmf_preprocess
===================================================================
--- DART/trunk/observations/SSUSI/work/mkmf_preprocess	                        (rev 0)
+++ DART/trunk/observations/SSUSI/work/mkmf_preprocess	2015-03-27 20:04:24 UTC (rev 7771)
@@ -0,0 +1,18 @@
+#!/bin/csh
+#
+# DART software - Copyright 2004 - 2013 UCAR. This open source software is
+# provided by UCAR, "as is", without charge, subject to all terms of use at
+# http://www.image.ucar.edu/DAReS/DART/DART_download
+#
+# DART $Id$
+
+../../../mkmf/mkmf -p preprocess -t ../../../mkmf/mkmf.template   \
+ -a "../../.." path_names_preprocess
+
+exit $status
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Revision$
+# $Date$
+


Property changes on: DART/trunk/observations/SSUSI/work/mkmf_preprocess
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Date Rev Author HeadURL Id
Added: svn:eol-style
   + native

Added: DART/trunk/observations/SSUSI/work/path_names_advance_time
===================================================================
--- DART/trunk/observations/SSUSI/work/path_names_advance_time	                        (rev 0)
+++ DART/trunk/observations/SSUSI/work/path_names_advance_time	2015-03-27 20:04:24 UTC (rev 7771)
@@ -0,0 +1,6 @@
+time_manager/advance_time.f90
+time_manager/time_manager_mod.f90
+common/types_mod.f90
+utilities/utilities_mod.f90
+utilities/parse_args_mod.f90
+mpi_utilities/null_mpi_utilities_mod.f90

Added: DART/trunk/observations/SSUSI/work/path_names_convert_f16_edr_dsk
===================================================================
--- DART/trunk/observations/SSUSI/work/path_names_convert_f16_edr_dsk	                        (rev 0)
+++ DART/trunk/observations/SSUSI/work/path_names_convert_f16_edr_dsk	2015-03-27 20:04:24 UTC (rev 7771)
@@ -0,0 +1,13 @@
+assim_model/assim_model_mod.f90
+common/types_mod.f90
+location/threed_sphere/location_mod.f90
+models/template/model_mod.f90
+mpi_utilities/null_mpi_utilities_mod.f90
+obs_def/obs_def_mod.f90
+obs_kind/obs_kind_mod.f90
+obs_sequence/obs_sequence_mod.f90
+observations/SSUSI/convert_f16_edr_dsk.f90
+observations/utilities/obs_utilities_mod.f90
+random_seq/random_seq_mod.f90
+time_manager/time_manager_mod.f90
+utilities/utilities_mod.f90

Added: DART/trunk/observations/SSUSI/work/path_names_obs_sequence_tool
===================================================================
--- DART/trunk/observations/SSUSI/work/path_names_obs_sequence_tool	                        (rev 0)
+++ DART/trunk/observations/SSUSI/work/path_names_obs_sequence_tool	2015-03-27 20:04:24 UTC (rev 7771)
@@ -0,0 +1,13 @@
+obs_sequence/obs_sequence_tool.f90
+obs_sequence/obs_sequence_mod.f90
+obs_kind/obs_kind_mod.f90
+obs_def/obs_def_mod.f90
+cov_cutoff/cov_cutoff_mod.f90
+assim_model/assim_model_mod.f90
+models/template/model_mod.f90
+common/types_mod.f90
+location/threed_sphere/location_mod.f90
+mpi_utilities/null_mpi_utilities_mod.f90
+random_seq/random_seq_mod.f90
+time_manager/time_manager_mod.f90
+utilities/utilities_mod.f90

Added: DART/trunk/observations/SSUSI/work/path_names_preprocess
===================================================================
--- DART/trunk/observations/SSUSI/work/path_names_preprocess	                        (rev 0)
+++ DART/trunk/observations/SSUSI/work/path_names_preprocess	2015-03-27 20:04:24 UTC (rev 7771)
@@ -0,0 +1,5 @@
+preprocess/preprocess.f90
+common/types_mod.f90
+utilities/utilities_mod.f90
+mpi_utilities/null_mpi_utilities_mod.f90
+time_manager/time_manager_mod.f90

Added: DART/trunk/observations/SSUSI/work/quickbuild.csh
===================================================================
--- DART/trunk/observations/SSUSI/work/quickbuild.csh	                        (rev 0)
+++ DART/trunk/observations/SSUSI/work/quickbuild.csh	2015-03-27 20:04:24 UTC (rev 7771)
@@ -0,0 +1,72 @@
+#!/bin/csh
+#
+# DART software - Copyright 2004 - 2013 UCAR. This open source software is
+# provided by UCAR, "as is", without charge, subject to all terms of use at
+# http://www.image.ucar.edu/DAReS/DART/DART_download
+#
+# DART $Id$
+#
+# compile all converter programs
+
+#----------------------------------------------------------------------
+# 'preprocess' is a program that culls the appropriate sections of the
+# observation module for the observations types in 'input.nml'; the 
+# resulting source file is used by all the remaining programs, 
+# so this MUST be run first.
+#----------------------------------------------------------------------
+
+\rm -f preprocess *.o *.mod 
+\rm -f ../../../obs_def/obs_def_mod.f90
+\rm -f ../../../obs_kind/obs_kind_mod.f90
+
+set MODEL = "netCDF converter"
+
+@ n = 1
+
+echo
+echo
+echo "---------------------------------------------------------------"
+echo "${MODEL} build number ${n} is preprocess"
+
+csh  mkmf_preprocess
+make || exit $n
+
+./preprocess || exit 99
+
+#----------------------------------------------------------------------
+# Build all the single-threaded targets
+#----------------------------------------------------------------------
+
+foreach TARGET ( mkmf_* )
+
+   set PROG = `echo $TARGET | sed -e 's#mkmf_##'`
+
+   switch ( $TARGET )
+   case mkmf_preprocess:
+      breaksw
+   default:
+      @ n = $n + 1
+      echo
+      echo "---------------------------------------------------"
+      echo "${MODEL} build number ${n} is ${PROG}" 
+      \rm -f ${PROG}
+
+      \rm -f *.o *.mod 
+
+      csh $TARGET || exit $n
+      make        || exit $n
+      breaksw
+   endsw
+end
+
+\rm -f *.o *.mod  input.nml*_default
+
+echo "Success: All ${MODEL} programs compiled."  
+
+exit 0
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Revision$
+# $Date$
+


Property changes on: DART/trunk/observations/SSUSI/work/quickbuild.csh
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Date Rev Author HeadURL Id
Added: svn:eol-style
   + native


More information about the Dart-dev mailing list