[Dart-dev] [6219] DART/branches/development/observations: Converters contributed by Nick Pedatella for upper atmosphere
nancy at ucar.edu
nancy at ucar.edu
Fri May 31 16:55:17 MDT 2013
Revision: 6219
Author: nancy
Date: 2013-05-31 16:55:16 -0600 (Fri, 31 May 2013)
Log Message:
-----------
Converters contributed by Nick Pedatella for upper atmosphere
observation platforms.
Added Paths:
-----------
DART/branches/development/observations/AURA/
DART/branches/development/observations/AURA/convert_all_aura.pro
DART/branches/development/observations/AURA/convert_aura.f90
DART/branches/development/observations/AURA/convert_hdf_to_netcdf.pro
DART/branches/development/observations/AURA/data/
DART/branches/development/observations/AURA/data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d244.he5
DART/branches/development/observations/AURA/work/
DART/branches/development/observations/AURA/work/input.nml
DART/branches/development/observations/AURA/work/inputDOY244.nml
DART/branches/development/observations/AURA/work/mkmf_advance_time
DART/branches/development/observations/AURA/work/mkmf_convert_aura
DART/branches/development/observations/AURA/work/mkmf_obs_sequence_tool
DART/branches/development/observations/AURA/work/mkmf_preprocess
DART/branches/development/observations/AURA/work/path_names_advance_time
DART/branches/development/observations/AURA/work/path_names_convert_aura
DART/branches/development/observations/AURA/work/path_names_obs_sequence_tool
DART/branches/development/observations/AURA/work/path_names_preprocess
DART/branches/development/observations/AURA/work/quickbuild.csh
DART/branches/development/observations/AURA/work/run_sept.csh
DART/branches/development/observations/SABER/
DART/branches/development/observations/SABER/convert_saber_cdf.f90
DART/branches/development/observations/SABER/data/
DART/branches/development/observations/SABER/data/SABER_Temp_O3_November2008_v1.07.nc
DART/branches/development/observations/SABER/error_prof.ps
DART/branches/development/observations/SABER/work/
DART/branches/development/observations/SABER/work/input.nml
DART/branches/development/observations/SABER/work/mkmf_advance_time
DART/branches/development/observations/SABER/work/mkmf_convert_saber_cdf
DART/branches/development/observations/SABER/work/mkmf_obs_sequence_tool
DART/branches/development/observations/SABER/work/mkmf_preprocess
DART/branches/development/observations/SABER/work/path_names_advance_time
DART/branches/development/observations/SABER/work/path_names_convert_saber_cdf
DART/branches/development/observations/SABER/work/path_names_obs_sequence_tool
DART/branches/development/observations/SABER/work/path_names_preprocess
DART/branches/development/observations/SABER/work/quickbuild.csh
-------------- next part --------------
Added: DART/branches/development/observations/AURA/convert_all_aura.pro
===================================================================
--- DART/branches/development/observations/AURA/convert_all_aura.pro (rev 0)
+++ DART/branches/development/observations/AURA/convert_all_aura.pro 2013-05-31 22:55:16 UTC (rev 6219)
@@ -0,0 +1,126 @@
+; NMP
+; Simple script to convert all Aura data to netcdf using IDL
+; run with @convert_all_aura
+day = '244'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+
+day = '245'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+
+day = '246'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '247'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '248'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '249'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '250'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '251'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '252'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '253'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '254'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '255'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '256'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '257'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '258'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '259'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '260'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '261'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '262'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '263'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '264'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '265'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '266'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '267'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '268'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '269'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '270'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '271'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '272'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c02_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+day = '273'
+filename = '/glade/scratch/nickp/aura_data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d'+day+'.he5'
+outfile = '/glade/scratch/nickp/aura_data/MLS_T_2011-'+day+'.nc'
+convert_hdf_to_netcdf,filename,data,outfile
+
Added: DART/branches/development/observations/AURA/convert_aura.f90
===================================================================
--- DART/branches/development/observations/AURA/convert_aura.f90 (rev 0)
+++ DART/branches/development/observations/AURA/convert_aura.f90 2013-05-31 22:55:16 UTC (rev 6219)
@@ -0,0 +1,328 @@
+! Nick Pedatella
+! Program to convert Aura Temperature data to DART Observation
+! sequence files.
+
+program convert_aura
+use types_mod, only : r8
+use time_manager_mod, only : time_type, set_calendar_type, GREGORIAN, set_time,&
+ increment_time, get_time, set_date, operator(-), &
+ print_date, operator(+)
+use utilities_mod, only : initialize_utilities, find_namelist_in_file, &
+ check_namelist_read, nmlfileunit, do_nml_file, &
+ get_next_filename, error_handler, E_ERR, E_MSG, &
+ nc_check, find_textfile_dims, finalize_utilities, &
+ timestamp,do_nml_term
+use location_mod, only : VERTISPRESSURE, set_location ! pressure ccordinates for SABER
+use obs_sequence_mod, only : obs_sequence_type, obs_type, read_obs_seq, &
+ static_init_obs_sequence, init_obs, destroy_obs, &
+ 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, insert_obs_in_seq
+use obs_def_mod, only : obs_def_type, set_obs_def_time, set_obs_def_kind, &
+ set_obs_def_error_variance, set_obs_def_location, &
+ set_obs_def_key
+use obs_utilities_mod, only : create_3d_obs,add_obs_to_seq
+use obs_kind_mod, only : AURAMLS_TEMPERATURE
+
+use netcdf
+
+implicit none
+
+! version controlled file description for error handling, do not edit
+character(len=128), parameter :: &
+ source = "$URL$", &
+ revision = "$Revision$", &
+ revdate = "$Date$"
+
+integer, parameter :: num_copies = 1, & ! number of copies in sequence
+ num_qc = 1 ! number of QC entries
+
+! variables
+character (len=130) :: msgstring, next_infile
+character (len=80) :: name
+
+integer :: iyear,iday,imonth,idoy,ihr,imin,isec,nalt,nevent,ialt,ievent, &
+ nfiles,ncid,varid,filenum,io,iunit,obs_num,num_new_obs,k,osec,oday
+logical :: file_exist, first_obs, did_obs, from_list = .false.
+
+real(r8) :: qc,oerr,pres_out
+
+real(r8), allocatable :: lat(:), lon(:), pres(:),temp(:,:),qual(:),conv(:),time(:)
+real(r8), allocatable :: localsolartime(:)
+
+type(obs_def_type) :: obs_def
+type(obs_sequence_type) :: obs_seq
+type(obs_type) :: obs, prev_obs
+type(time_type) :: time_obs, time_anal, prev_time
+
+
+! namelist parameters
+character(len=128) :: aura_netcdf_file = 'aura_input.nc'
+character(len=128) :: aura_netcdf_filelist = 'aura_input_list'
+character(len=128) :: aura_outfile = 'obs_seq.aura'
+integer :: aura_yr=2011,aura_doy = 1
+
+namelist /convert_aura_nml/ aura_netcdf_file, aura_netcdf_filelist, &
+ aura_outfile,aura_yr,aura_doy
+
+! initialize some values
+obs_num = 1
+qc = 1.0_r8
+first_obs = .true.
+call set_calendar_type(GREGORIAN)
+
+! read the necessary parameters from input.nml
+call initialize_utilities()
+
+call find_namelist_in_file("input.nml", "convert_aura_nml", iunit)
+read(iunit, nml = convert_aura_nml, iostat = io)
+call check_namelist_read(iunit, io, "convert_aura_nml")
+
+! Record the namelist values used for the run
+if (do_nml_file()) write(nmlfileunit, nml=convert_aura_nml)
+if (do_nml_term()) write( * , nml=convert_aura_nml)
+
+! namelist checks for sanity
+
+! cannot have both a single filename and a list; the namelist must
+! shut one off.
+if (aura_netcdf_file /= '' .and. aura_netcdf_filelist /= '') then
+ call error_handler(E_ERR, 'convert_aura_cdf', &
+ 'One of aura_netcdf_file or filelist must be NULL', &
+ source, revision, revdate)
+endif
+if (aura_netcdf_filelist /= '') from_list = .true.
+
+! Define Number of observations:
+if (from_list) then
+ num_new_obs = (400 * 40000) * nfiles
+else
+ num_new_obs = (400 * 40000 )
+endif
+
+! output date
+print *, 'OUTPUTING FOR YR=',aura_yr,'DOY=',aura_doy
+
+! either read existing obs_seq or create a new one
+call static_init_obs_sequence()
+call init_obs(obs, num_copies, num_qc)
+call init_obs(prev_obs, num_copies, num_qc)
+inquire(file=aura_outfile, exist=file_exist)
+if ( file_exist ) then
+
+ print *, "found existing obs_seq file, overwriting ", trim(aura_outfile)
+ print *, "max entries = ", num_new_obs
+ call init_obs_sequence(obs_seq, num_copies, num_qc, num_new_obs)
+
+ do k = 1, num_copies
+ call set_copy_meta_data(obs_seq, k, 'observation')
+ end do
+ do k = 1, num_qc
+ call set_qc_meta_data(obs_seq, k, 'Data QC')
+ end do
+
+else
+
+ print *, "no existing obs_seq file, creating ", trim(aura_outfile)
+ print *, "max entries = ", num_new_obs
+ call init_obs_sequence(obs_seq, num_copies, num_qc, num_new_obs)
+
+ do k = 1, num_copies
+ call set_copy_meta_data(obs_seq, k, 'observation')
+ end do
+ do k = 1, num_qc
+ call set_qc_meta_data(obs_seq, k, 'Data QC')
+ end do
+
+end if
+
+
+did_obs = .false.
+! main loop that does either a single file or a list of files
+
+filenum = 1
+
+fileloop: do ! until out of files
+
+ ! get the single name, or the next name from a list
+ if (from_list) then
+ next_infile = get_next_filename(aura_netcdf_filelist, filenum)
+ else
+ next_infile = aura_netcdf_file
+ if (filenum > 1) next_infile = ''
+ endif
+ if (next_infile == '') exit fileloop
+
+ ! open the file
+ call nc_check( nf90_open(next_infile, nf90_nowrite, ncid), 'file open', next_infile)
+
+ ! get the number of events and altitude:
+ call nc_check( nf90_inq_dimid(ncid,"levels",varid), 'inq dimid altitude')
+ call nc_check( nf90_inquire_dimension(ncid,varid,name,nalt), 'inq dim altitude')
+
+ call nc_check( nf90_inq_dimid(ncid,"times",varid), 'inq dimid event')
+ call nc_check( nf90_inquire_dimension(ncid,varid,name,nevent), 'inq dim event')
+ print *, 'nalt=',nalt
+ allocate( time(nevent) )
+ allocate( lat(nevent) )
+ allocate( lon(nevent) )
+ allocate( pres(nalt) )
+ allocate( temp(nalt,nevent) )
+ allocate( qual(nevent) )
+ allocate( conv(nevent) )
+ allocate( localsolartime(nevent) )
+
+ ! read in the latitude array
+ call nc_check( nf90_inq_varid(ncid, "Latitude", varid) ,'inq varid Lat')
+ call nc_check( nf90_get_var(ncid, varid, lat) ,'get var Lat')
+
+ ! read the longitude array
+ call nc_check( nf90_inq_varid(ncid, "Longitude", varid) ,'inq varid Lon')
+ call nc_check( nf90_get_var(ncid, varid, lon) ,'get var Lon')
+
+ ! read the altitude array
+ call nc_check( nf90_inq_varid(ncid, "Pressure", varid) ,'inq varid pressure')
+ call nc_check( nf90_get_var(ncid, varid, pres) ,'get_var pressure')
+
+ ! read the temperature
+ call nc_check( nf90_inq_varid(ncid, "Temperature", varid) ,'inq varid ktemp')
+ call nc_check( nf90_get_var(ncid, varid, temp) ,'get_var ktemp')
+
+ ! quality
+ call nc_check( nf90_inq_varid(ncid, "Quality", varid) ,'inq varid quality')
+ call nc_check( nf90_get_var(ncid, varid, qual) ,'get_var quality')
+ ! convergence
+ call nc_check( nf90_inq_varid(ncid, "Convergence", varid) ,'inq varid conv')
+ call nc_check( nf90_get_var(ncid, varid, conv) ,'get_var conv')
+ ! LST
+ call nc_check( nf90_inq_varid(ncid, "LocalSolarTime", varid) ,'inq varid lst')
+ call nc_check( nf90_get_var(ncid, varid, localsolartime) ,'get_var lst')
+
+ ! read the date/time
+ call nc_check( nf90_inq_varid(ncid, "Time", varid) ,'inq varid time')
+ call nc_check( nf90_get_var(ncid, varid, time) ,'get_var time')
+
+ ! finished reading the data
+ call nc_check( nf90_close(ncid), 'close file')
+
+ ! now loop through each event / altitude and add to obs sequence file
+ do ievent=1,nevent
+
+ do ialt=1,nalt
+
+ !calculate seconds from LST
+ isec = int( (localsolartime(ievent)-(lon(ievent)/15.))/24.*86400. )
+ if (isec.le.0) isec = isec + 86400
+ if (isec.ge.86400) isec = isec - 86400
+
+ iyear = aura_yr ! yr & day are inputs
+ idoy = aura_doy
+ call convert_day(iyear,idoy,imonth,iday)
+
+ if (temp(ialt,ievent).ne.-999. .and. & ! data is missing
+ qual(ievent).ge.0.65 .and. & !specified quality check
+ conv(ievent).le.1.2 .and. & ! specified convergence
+ pres(ialt).ge.0.001 .and. pres(ialt).le.260 .and. & !good altitude range
+ isec .lt.86400 ) then
+
+
+ ihr = int( isec / 3600 )
+ imin = int( (isec-ihr*3600) / 60 )
+ isec = int( (isec-ihr*3600)-imin*60 )
+ time_obs = set_date(iyear,imonth,iday,ihr,imin,isec)
+ call get_time(time_obs,osec,oday)
+
+ ! need to set the error (for now just take SABER error):
+ call saber_error(pres(ialt),oerr)
+
+ ! convert pressure from mbar(hPa) -> Pa
+ pres_out = pres(ialt)*100.
+
+ if (lon(ievent).le.0) lon(ievent) = lon(ievent)+360.
+
+ ! now creat the observation:
+ call create_3d_obs(lat(ievent),lon(ievent),pres_out, &
+ VERTISPRESSURE,temp(ialt,ievent), &
+ AURAMLS_TEMPERATURE,oerr,oday,osec,qc,obs)
+ call add_obs_to_seq(obs_seq,obs,time_obs,prev_obs,prev_time,first_obs)
+
+ if(.not. did_obs) did_obs = .true.
+ else
+
+ end if
+ end do ! end alt loop
+ end do ! end event loop
+
+ ! clean up and loop if there is another input file
+ deallocate( lat,lon,pres,qual,conv,time,temp)
+
+ filenum = filenum + 1
+
+end do fileloop
+
+! done with main loop. if we added any obs to the sequence, write it out:
+if (did_obs) then
+!print *, 'ready to write, nobs = ', get_num_obs(obs_seq)
+ if (get_num_obs(obs_seq) > 0) &
+ call write_obs_seq(obs_seq, aura_outfile)
+
+ ! minor stab at cleanup, in the off chance this will someday get turned
+ ! into a subroutine in a module. probably not all that needs to be done,
+ ! but a start.
+ call destroy_obs(obs)
+! if obs == prev_obs then you can't delete the same obs twice.
+! buf if they differ, then it's a leak. for now, don't delete prev
+! since the program is exiting here anyway.
+ !call destroy_obs(prev_obs)
+ if (get_num_obs(obs_seq) > 0) call destroy_obs_sequence(obs_seq)
+endif
+
+! END OF MAIN ROUTINE
+
+contains
+
+subroutine convert_day(iyear,idoy,imonth,iday)
+! NMP - Subroutine to convert from yr,doy to yr,mon,day
+
+
+ integer, intent(in) :: iyear
+ integer, intent(in) :: idoy
+ integer, intent(out) :: imonth
+ integer, intent(out) :: iday
+
+ integer :: t
+
+ t = 0
+ if(modulo(iyear, 4) == 0) t = 1
+
+ if(modulo(iyear, 400) /= 0 .and. modulo(iyear, 100) == 0) t = 0
+
+ iday = idoy
+ if(idoy > 59+t) iday = iday + 2 - t
+ imonth = ((iday+91)*100)/3055
+ iday = (iday+91) - (imonth*3055)/100
+ imonth = imonth - 2
+
+ if(imonth >= 1 .and. imonth <= 12) return
+ write(unit=*,fmt="(a,i11,a)") &
+ "$$CALEND: DAY OF THE YEAR INPUT =",idoy," IS OUT OF RANGE."
+ stop
+
+end subroutine
+
+subroutine saber_error(pres,err)
+implicit none
+
+real(r8) :: pres,err
+
+! NMP - simple function to calculate the error based on height
+! function loosely based on Remsberg et al (2008JGR)
+
+err = 1.6718 + -0.4281*log(pres) + 0.0977*log(pres)**2
+
+end subroutine
+
+
+end program
+
Property changes on: DART/branches/development/observations/AURA/convert_aura.f90
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Date Rev Author HeadURL Id
Added: svn:eol-style
+ native
Added: DART/branches/development/observations/AURA/convert_hdf_to_netcdf.pro
===================================================================
--- DART/branches/development/observations/AURA/convert_hdf_to_netcdf.pro (rev 0)
+++ DART/branches/development/observations/AURA/convert_hdf_to_netcdf.pro 2013-05-31 22:55:16 UTC (rev 6219)
@@ -0,0 +1,219 @@
+; convert_hdf_to_netcdf.pro
+;
+; PURPOSE:
+; A simple reader for EOS-Aura Microwave Limb Sounder (MLS) Level 2
+; Geophysical Product (L2GP version 2).
+;
+;
+;
+; AUTHOR:
+; Modified by N Pedatella to output the data into a netcdf file
+; calling sequence is convert_hdf_to_netcdf, "filename",data,"outputfile"
+;
+;
+;
+; Young-In Won [04/18/2008]
+; Goddard Earth Science Data Information Service Center (GES DISC)
+; NASA/Goddard Space Flight Center
+; Modified from ReaL2GP_STD.pro (from JPL)
+;
+; CALLING SEQUENCE:
+; IDL> read_mls_l2.pro, "filename", data
+; Example, IDL> readl2, "MLS-Aura_L2GP-BrO_v02-21-c01_2006d054.he5", data
+;
+; IDL> help, data, /struct ; shows the structure of data
+; IDL> print, data.ntimes ; prints total profile number
+; IDL> print, data.time ; prints time for each profile (TAI time)
+; IDL> print, data.nlevels ; prints number of pressure levels
+; IDL> print, data.pressure ; prints pressure level
+; IDL> print, data.longitude ; prints longitude of each profile
+; IDL> print, data.l2gpvalue ; prints geophysical values for each profile
+; ... so on
+;
+; REQUIRES:
+; IDL 6.1 or Greater
+;
+; INPUT PARAMETERS:
+; filename - A scalar string that indicates the MLS L2GP file
+; to be read (in HDF-EOS 5)
+; data - constructed data to be returned
+;
+; RETURN VALUE:
+; a data structure contains the following fields:
+; swathName, number of sample times (nTimes), number of vertical levels (nLevels),
+; pressure, latitude, longitude, time, localSolarTime, solarZenithAngle,
+; lineOfSightAngle, orbitGeodeticAngle, chunkNumber, l2gpValue, l2gpPrecision,
+; status, quality, attributes. If the any of these values are not found in the
+; file, they are replaced by a scalar value of the proper datatype.
+;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ Pro convert_hdf_to_netcdf, filename, result, outfile
+
+ COMPILE_OPT IDL2
+
+ ;; Open hdf5 file and get fileID
+ fileID = H5F_Open(filename)
+ ;; Retreive the swath name(s). If more than one swath, select which swath to choose
+ groupName = 'HDFEOS/SWATHS'
+ print, groupName
+ noSwaths = H5G_Get_NMembers(fileID, groupName)
+ if (noswaths gt 1) then begin
+ for swathindex=0, noswaths-1 do begin
+ thisName = H5G_Get_Member_Name(fileID, groupName, swathIndex)
+ print,strtrim(swathindex, 2), ') Swath= ', thisname
+ endfor
+ ;read, 'Which swath do you want? ', ans_swath
+ans_swath = 'Temperature'
+swathname=H5G_Get_Member_Name(fileID, groupName, ans_swath)
+ endif else begin
+ swathname=H5G_Get_Member_Name(fileID, groupName, 0)
+ endelse
+ ;
+ ; Get the geolocation fields info (Time, Latitude, Longitude, Pressure, etc.)
+ ;
+ path2=groupname+'/'+swathname+'/Geolocation Fields'
+ geo_members=H5G_GET_NMEMBERS(fileid,path2)
+ geo=strarr(geo_members)
+ for jj= 0, geo_members-1 do begin
+ geo[jj]=H5G_Get_Member_Name(fileid, path2, jj)
+ endfor
+
+ ; Reading geolocation Fields
+ path3=groupname+'/'+swathname+'/Geolocation Fields/'+'Time'
+ dsID = H5D_Open(fileid, path3)
+ time = H5D_Read(dsiD)
+ ntimes = N_Elements(time)
+ H5D_Close, dsID
+ path3=groupname+'/'+swathname+'/Geolocation Fields/'+'Latitude'
+ dsID = H5D_Open(fileid, path3)
+ latitude = H5D_Read(dsiD)
+ H5D_Close, dsID
+ path3=groupname+'/'+swathname+'/Geolocation Fields/'+'Longitude'
+ dsID = H5D_Open(fileid, path3)
+ longitude = H5D_Read(dsiD)
+ H5D_Close, dsID
+
+ ; For some swaths (e.g. O3 column-GEOS5), there is no levels
+ dummy = Where(geo EQ 'Pressure', cnt)
+ IF cnt GT 0 THEN BEGIN
+ path3=groupname+'/'+swathname+'/Geolocation Fields/'+'Pressure'
+ dsID = H5D_Open(fileid, path3)
+ pressure = H5D_Read(dsID)
+ H5D_Close, dsID
+ nLevels = N_Elements(pressure)
+ ENDIF ELSE BEGIN
+ nLevels = 1
+ pressure = [0.0]
+ ENDELSE
+
+ path3=groupname+'/'+swathname+'/Geolocation Fields/'+'LocalSolarTime'
+ dsID = H5D_Open(fileid, path3)
+ localsolartime = H5D_Read(dsiD)
+ H5D_Close, dsID
+ path3=groupname+'/'+swathname+'/Geolocation Fields/'+'SolarZenithAngle'
+ dsID = H5D_Open(fileid, path3)
+ solarzenithangle = H5D_Read(dsiD)
+ H5D_Close, dsID
+ path3=groupname+'/'+swathname+'/Geolocation Fields/'+'LineOfSightAngle'
+ dsID = H5D_Open(fileid, path3)
+ lineofsightangle = H5D_Read(dsiD)
+ H5D_Close, dsID
+ path3=groupname+'/'+swathname+'/Geolocation Fields/'+'OrbitGeodeticAngle'
+ dsID = H5D_Open(fileid, path3)
+ orbitgeodeticangle = H5D_Read(dsiD)
+ H5D_Close, dsID
+ path3=groupname+'/'+swathname+'/Geolocation Fields/'+'ChunkNumber'
+ dsID = H5D_Open(fileid, path3)
+ ChunkNumber = H5D_Read(dsiD)
+ H5D_Close, dsID
+
+ ;
+ ; Get the data fields info (L2geophysicla Value, precision, status, quality, convergence)
+ ;
+ path4=groupname+'/'+swathname+'/Data Fields'
+ data_members=H5G_GET_NMEMBERS(fileid,path4)
+ for kk= 0, data_members-1 do begin
+ dat=H5G_Get_Member_Name(fileid, path4, kk)
+ endfor
+
+ ;Reading data Fields (and attributes for the geophysical value only)
+ atts = ''
+ path3=groupname+'/'+swathname+'/Data Fields/'+'L2gpValue'
+ dsID = H5D_Open(fileid, path3)
+ l2gpvalue = H5D_Read(dsiD)
+ FOR i = 0, H5A_Get_Num_Attrs(dsId) - 1 DO BEGIN
+ attId = H5A_Open_Idx(dsId, i)
+ atts = i EQ 0 ? Create_Struct(H5A_Get_Name(attId), (H5A_Read(attId))[0]) : $
+ Create_Struct(atts, H5A_Get_Name(attId), (H5A_Read(attId))[0])
+ H5A_Close, attId
+ ENDFOR
+ H5D_Close, dsID
+
+ path3=groupname+'/'+swathname+'/Data Fields/'+'L2gpPrecision'
+ dsID = H5D_Open(fileid, path3)
+ L2gpPrecision = H5D_Read(dsiD)
+ H5D_Close, dsID
+
+ path3=groupname+'/'+swathname+'/Data Fields/'+'Status'
+ dsID = H5D_Open(fileid, path3)
+ status = H5D_Read(dsiD)
+ H5D_Close, dsID
+
+ path3=groupname+'/'+swathname+'/Data Fields/'+'Quality'
+ dsID = H5D_Open(fileid, path3)
+ quality = H5D_Read(dsiD)
+ nLevels = N_Elements(pressure)
+ H5D_Close, dsID
+
+ path3=groupname+'/'+swathname+'/Data Fields/'+'Convergence'
+ dsID = H5D_Open(fileid, path3)
+ convergence = H5D_Read(dsiD)
+ H5D_Close, dsID
+
+ ; Close file
+ H5F_Close, fileID
+
+
+ ; Construct the result
+ result = {swathName:swathName, nTimes:nTimes, nLevels:nLevels, $
+ pressure:pressure,latitude:latitude,longitude:longitude, $
+ time:time,localSolarTime:localSolarTime, $
+ solarZenithAngle:solarZenithAngle, $
+ lineOfSightAngle:lineOfSightAngle, $
+ orbitGeodeticAngle:orbitGeodeticAngle, $
+ chunkNumber:chunkNumber, $
+ l2gpValue:l2gpValue, $
+ l2gpPrecision:l2gpPrecision, $
+ status:status, $
+ quality:quality, $
+ convergence:convergence, $
+ attributes:atts $
+ }
+
+
+; NMP - output the data into a netcdf file
+ id = NCDF_CREATE(outfile, /CLOBBER) ; open the netcdf file
+ t_dimid = NCDF_DIMDEF(id,'times',ntimes)
+ l_dimid = NCDF_DIMDEF(id,'levels',nlevels)
+ t_vid = NCDF_VARDEF(id,'Time',[t_dimid],/DOUBLE)
+ l_vid = NCDF_VARDEF(id,'Pressure',l_dimid,/FLOAT)
+ lat_vid = NCDF_VARDEF(id,'Latitude',t_dimid,/FLOAT)
+ lon_vid = NCDF_VARDEF(id,'Longitude',t_dimid,/FLOAT)
+ lst_vid = NCDF_VARDEF(id,'LocalSolarTime',t_dimid,/FLOAT)
+ temp_vid = NCDF_VARDEF(id,'Temperature',[l_dimid,t_dimid],/FLOAT)
+ prec_vid = NCDF_VARDEF(id,'Precision',[l_dimid,t_dimid],/FLOAT)
+ qual_vid = NCDF_VARDEF(id,'Quality',t_dimid,/FLOAT)
+ con_vid = NCDF_VARDEF(id,'Convergence',t_dimid,/FLOAT)
+ NCDF_CONTROL, id, /ENDEF ; TAKE OUT OF DEF MODE
+ NCDF_VARPUT, id,t_vid,time
+ NCDF_VARPUT, id,l_vid,pressure
+ NCDF_VARPUT, id,lat_vid,latitude
+ NCDF_VARPUT, id,lon_vid,longitude
+ NCDF_VARPUT, id,lst_vid,localsolartime
+ NCDF_VARPUT, id,temp_vid,l2gpvalue
+ NCDF_VARPUT, id, prec_vid, l2gpPrecision
+ NCDF_VARPUT, id, qual_vid, quality
+ NCDF_VARPUT, id, con_vid, convergence
+ NCDF_CLOSE, id ;close the file
+
+END
Added: DART/branches/development/observations/AURA/data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d244.he5
===================================================================
(Binary files differ)
Property changes on: DART/branches/development/observations/AURA/data/MLS-Aura_L2GP-Temperature_v03-33-c01_2011d244.he5
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: DART/branches/development/observations/AURA/work/input.nml
===================================================================
--- DART/branches/development/observations/AURA/work/input.nml (rev 0)
+++ DART/branches/development/observations/AURA/work/input.nml 2013-05-31 22:55:16 UTC (rev 6219)
@@ -0,0 +1,95 @@
+
+! notes on the gps namelist items:
+! only one of file or filelist can be specified:
+! file is a single input source.
+! filelist is the name of a text file containing a list of
+! filenames, one per line, to convert into a single output file.
+!
+! local operator is a single tangent-point calculation
+! non-local operator integrates along the ray-path
+!
+! obs_levels are specified in kilometers
+! ray delta-step and top ray height are specified in meters
+!
+! ray_ds and ray_htop are ignored for local operator.
+! for the non-local operator, ray_ds is the integration length
+! of each step along the ray path, starting from the tangent
+! point and going out in each of the two directions.
+! ray_htop is the height at which the integration stops, when
+! the next end point exceeds this height.
+!
+! obs_window is obsolete and should be removed from your namelist.
+! use the obs_sequence_tool to select obs within a particular
+! time-window.
+
+&convert_aura_nml
+ aura_netcdf_file = '/glade/scratch/nickp/aura_data/MLS_T_2011-273.nc',
+ aura_netcdf_filelist = '',
+ aura_outfile = '/glade/scratch/nickp/aura_data/daily_obs_seq/obs_seq.auramls_2011273',
+ aura_yr = 2011,
+ aura_doy = 273,
+ /
+
+
+&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_gps_mod.f90',
+ '../../../obs_def/obs_def_altimeter_mod.f90',
+ '../../../obs_def/obs_def_SABER_mod.f90',
+ '../../../obs_def/obs_def_AURA_mod.f90',
+ '../../../obs_def/obs_def_reanalysis_bufr_mod.f90'
+ /
+
+&obs_kind_nml
+ assimilate_these_obs_types = 'RADIOSONDE_TEMPERATURE',
+ 'ACARS_TEMPERATURE',
+ 'AIRCRAFT_TEMPERATURE',
+ 'RADIOSONDE_U_WIND_COMPONENT',
+ 'RADIOSONDE_V_WIND_COMPONENT',
+ 'AIRCRAFT_U_WIND_COMPONENT',
+ 'AIRCRAFT_V_WIND_COMPONENT',
+ 'ACARS_U_WIND_COMPONENT',
+ 'ACARS_V_WIND_COMPONENT',
+ 'SAT_U_WIND_COMPONENT',
+ 'SAT_V_WIND_COMPONENT',
+ 'GPSRO_REFRACTIVITY',
+ 'AURAMLS_TEMPERATURE',
+ 'SABER_TEMPERATURE',
+ /
+
+
+&obs_def_gps_nml
+ /
+
+&location_nml
+ /
+
+&utilities_nml
+ module_details = .false.,
+ nmlfilename = 'convert.nml'
+ /
+
+&obs_sequence_nml
+ write_binary_obs_sequence = .false. /
+
+&obs_sequence_tool_nml
+ num_input_files = 1,
+ filename_seq = '../obs_seq2007010106',
+ filename_out = 'unused',
+ print_only = .true.,
+ gregorian_cal = .true.,
+ first_obs_days = -1,
+ first_obs_seconds = -1,
+ last_obs_days = -1,
+ last_obs_seconds = -1,
+/
+! obs_types =
+! keep_types =
+! min_lat =
+! max_lat =
+! min_lon =
+! max_lon =
+
Property changes on: DART/branches/development/observations/AURA/work/input.nml
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Added: DART/branches/development/observations/AURA/work/inputDOY244.nml
===================================================================
--- DART/branches/development/observations/AURA/work/inputDOY244.nml (rev 0)
+++ DART/branches/development/observations/AURA/work/inputDOY244.nml 2013-05-31 22:55:16 UTC (rev 6219)
@@ -0,0 +1,95 @@
+
+! notes on the gps namelist items:
+! only one of file or filelist can be specified:
+! file is a single input source.
+! filelist is the name of a text file containing a list of
+! filenames, one per line, to convert into a single output file.
+!
+! local operator is a single tangent-point calculation
+! non-local operator integrates along the ray-path
+!
+! obs_levels are specified in kilometers
+! ray delta-step and top ray height are specified in meters
+!
+! ray_ds and ray_htop are ignored for local operator.
+! for the non-local operator, ray_ds is the integration length
+! of each step along the ray path, starting from the tangent
+! point and going out in each of the two directions.
+! ray_htop is the height at which the integration stops, when
+! the next end point exceeds this height.
+!
+! obs_window is obsolete and should be removed from your namelist.
+! use the obs_sequence_tool to select obs within a particular
+! time-window.
+
+&convert_aura_nml
+ aura_netcdf_file = '/glade/scratch/nickp/aura_data/MLS_T_2011-244.nc',
+ aura_netcdf_filelist = '',
+ aura_outfile = '/glade/scratch/nickp/aura_data/daily_obs_seq/obs_seq.auramls_2011244',
+ aura_yr = 2011,
+ aura_doy = 244,
+ /
+
+
+&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_gps_mod.f90',
+ '../../../obs_def/obs_def_altimeter_mod.f90',
+ '../../../obs_def/obs_def_SABER_mod.f90',
+ '../../../obs_def/obs_def_AURA_mod.f90',
+ '../../../obs_def/obs_def_reanalysis_bufr_mod.f90'
+ /
+
+&obs_kind_nml
+ assimilate_these_obs_types = 'RADIOSONDE_TEMPERATURE',
+ 'ACARS_TEMPERATURE',
+ 'AIRCRAFT_TEMPERATURE',
+ 'RADIOSONDE_U_WIND_COMPONENT',
+ 'RADIOSONDE_V_WIND_COMPONENT',
+ 'AIRCRAFT_U_WIND_COMPONENT',
+ 'AIRCRAFT_V_WIND_COMPONENT',
+ 'ACARS_U_WIND_COMPONENT',
+ 'ACARS_V_WIND_COMPONENT',
+ 'SAT_U_WIND_COMPONENT',
+ 'SAT_V_WIND_COMPONENT',
+ 'GPSRO_REFRACTIVITY',
+ 'AURAMLS_TEMPERATURE',
+ 'SABER_TEMPERATURE',
+ /
+
+
+&obs_def_gps_nml
+ /
+
+&location_nml
+ /
+
+&utilities_nml
+ module_details = .false.,
+ nmlfilename = 'convert.nml'
+ /
+
+&obs_sequence_nml
+ write_binary_obs_sequence = .false. /
+
+&obs_sequence_tool_nml
+ num_input_files = 1,
+ filename_seq = '../obs_seq2007010106',
+ filename_out = 'unused',
+ print_only = .true.,
+ gregorian_cal = .true.,
+ first_obs_days = -1,
+ first_obs_seconds = -1,
+ last_obs_days = -1,
+ last_obs_seconds = -1,
+/
+! obs_types =
+! keep_types =
+! min_lat =
+! max_lat =
+! min_lon =
+! max_lon =
+
Property changes on: DART/branches/development/observations/AURA/work/inputDOY244.nml
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Added: DART/branches/development/observations/AURA/work/mkmf_advance_time
===================================================================
--- DART/branches/development/observations/AURA/work/mkmf_advance_time (rev 0)
+++ DART/branches/development/observations/AURA/work/mkmf_advance_time 2013-05-31 22:55:16 UTC (rev 6219)
@@ -0,0 +1,18 @@
+#!/bin/csh
+#
+# DART software - Copyright 2004 - 2011 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$
+
+../../../mkmf/mkmf -p advance_time -t ../../../mkmf/mkmf.template -c"-Duse_netCDF" \
+ -a "../../.." path_names_advance_time
+
+exit $status
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Revision$
+# $Date$
+
Property changes on: DART/branches/development/observations/AURA/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/branches/development/observations/AURA/work/mkmf_convert_aura
===================================================================
--- DART/branches/development/observations/AURA/work/mkmf_convert_aura (rev 0)
+++ DART/branches/development/observations/AURA/work/mkmf_convert_aura 2013-05-31 22:55:16 UTC (rev 6219)
@@ -0,0 +1,18 @@
+#!/bin/csh
+#
+# DART software - Copyright 2004 - 2011 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$
+
+../../../mkmf/mkmf -p convert_aura -t ../../../mkmf/mkmf.template -c"-Duse_netCDF" \
+ -a "../../.." path_names_convert_aura
+
+exit $status
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Revision$
+# $Date$
+
Property changes on: DART/branches/development/observations/AURA/work/mkmf_convert_aura
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Date Rev Author HeadURL Id
Added: svn:eol-style
+ native
Added: DART/branches/development/observations/AURA/work/mkmf_obs_sequence_tool
===================================================================
--- DART/branches/development/observations/AURA/work/mkmf_obs_sequence_tool (rev 0)
+++ DART/branches/development/observations/AURA/work/mkmf_obs_sequence_tool 2013-05-31 22:55:16 UTC (rev 6219)
@@ -0,0 +1,18 @@
+#!/bin/csh
+#
+# DART software - Copyright 2004 - 2011 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$
+
+../../../mkmf/mkmf -p obs_sequence_tool -t ../../../mkmf/mkmf.template -c"-Duse_netCDF" \
+ -a "../../.." path_names_obs_sequence_tool
+
+exit $status
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Revision$
+# $Date$
+
Property changes on: DART/branches/development/observations/AURA/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/branches/development/observations/AURA/work/mkmf_preprocess
===================================================================
--- DART/branches/development/observations/AURA/work/mkmf_preprocess (rev 0)
+++ DART/branches/development/observations/AURA/work/mkmf_preprocess 2013-05-31 22:55:16 UTC (rev 6219)
@@ -0,0 +1,18 @@
+#!/bin/csh
+#
+# DART software - Copyright 2004 - 2011 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$
+
+../../../mkmf/mkmf -p preprocess -t ../../../mkmf/mkmf.template -c"-Duse_netCDF" \
+ -a "../../.." path_names_preprocess
+
+exit $status
+
+# <next few lines under version control, do not edit>
+# $URL$
+# $Revision$
+# $Date$
+
Property changes on: DART/branches/development/observations/AURA/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/branches/development/observations/AURA/work/path_names_advance_time
===================================================================
--- DART/branches/development/observations/AURA/work/path_names_advance_time (rev 0)
@@ Diff output truncated at 40000 characters. @@
More information about the Dart-dev
mailing list