[Dart-dev] DART/branches Revision: 12933
dart at ucar.edu
dart at ucar.edu
Mon Nov 26 15:01:58 MST 2018
nancy at ucar.edu
2018-11-26 15:01:58 -0700 (Mon, 26 Nov 2018)
183
update the code for closest_member_tool (from rma_distrib branch)
and fix up the comments and formatting in the advance_time utility;
including adding in the CESM formatting option.
Modified: DART/branches/recam/assimilation_code/programs/advance_time/advance_time.f90
===================================================================
--- DART/branches/recam/assimilation_code/programs/advance_time/advance_time.f90 2018-11-26 20:36:27 UTC (rev 12932)
+++ DART/branches/recam/assimilation_code/programs/advance_time/advance_time.f90 2018-11-26 22:01:58 UTC (rev 12933)
@@ -4,41 +4,80 @@
!
! $Id$
+!> @mainpage
+!> @{
+!> @brief Compute with time quantities
+!>
+!> The advance_time program computes the resulting time when either
+!> adding or subtracting time intervals. The increments can be
+!> expressed in days, hours, minutes or seconds. The output can be
+!> formatted as native WRF, CESM, Julian or Gregorian format.
+!>
+!> Reads input from standard input to be more portable, since older
+!> versions of iargc() weren't standardized.
+!>
+!> Based on the WRF da_advance_cymdh utility.
+!>
+!> All time computations call DART time manager.
+!>
+!> - has accuracy down to second,
+!> - can use day/hour/minute/second (with/without +/- sign) to advance time,
+!> - can digest various input date format if it still has the right order (ie. cc yy mm dd hh nn ss)
+!> - can digest flexible time increment
+!> - can output in wrf date format (ccyy-mm-dd_hh:nn:ss)
+!> - can specify output date format
+!> - can output Julian day
+!> - can output Gregorian days and seconds (since year 1601)
+!> - can output in CESM time format (ccyy-mm-dd-fffff where fffff is seconds of day)
+!>
+!> Examples
+!>
+!> - advance 12 h
+!>
+!> echo 20070730 12 | advance_time
+!>
+!> - go back 1 day 2 hours 30 minutes and 30 seconds
+!>
+!> echo 2007073012 -1d2h30m30s | advance_time
+!>
+!> - go back 3 hours 30 minutes less 1 second
+!>
+!> echo 2007073012 1s-3h30m | advance_time
+!>
+!> - advance 2 days and 1 second, output in wrf date format (three ways)
+!>
+!> echo 200707301200 2d1s -w | advance_time
+!>
+!> echo 2007-07-30_12:00:00 2d1s -w | advance_time
+!>
+!> echo 200707301200 2d1s -f ccyy-mm-dd_hh:nn:ss | advance_time
+!>
+!> - advance 120 h, and print year and Julian day
+!>
+!> echo 2007073006 120 -j | advance_time
+!>
+!> - advance 120 h, print year, Julian day, hour, minute and second
+!>
+!> echo 2007073006 120 -J | advance_time
+!>
+!> - print Gregorian day and second (since year 1601)
+!>
+!> echo 2007073006 0 -g | advance_time
+!>
+!> - print CESM format time (ccyy-mm-dd-fffff where fffff is sec of day)
+!>
+!> echo 2007073006 0 -c | advance_time
+!>
+!> @todo if run with no inputs ... it just hangs. Can we make it fail straight away?
+!> @}
+
program advance_time
-
-! interface identical to da_advance_cymdh, except for reading the arg line
-! from standard input, to be more portable since iargc() is nonstandard across
-! different fortran implementations.
-!
-! i/o sections of file lightly modified from da_advance_cymdh
-! time computations all call DART time manager
-!
-! - has accuracy down to second,
-! - can use day/hour/minute/second (with/without +/- sign) to advance time,
-! - can digest various input date format if it still has the right order (ie. cc yy mm dd hh nn ss)
-! - can digest flexible time increment
-! - can output in wrf date format (ccyy-mm-dd_hh:nn:ss)
-! - can specify output date format
-! - can output Julian day
-! - can output Gregorian days and seconds (since year 1601)
-!
-! e.g:
-! echo 20070730 12 | advance_time # advance 12 h
-! echo 2007073012 -1d2h30m30s | advance_time # back 1 day 2 hours 30 minutes and 30 seconds
-! echo 2007073012 1s-3h30m | advance_time # back 3 hours 30 minutes less 1 second
-! echo 200707301200 2d1s -w | advance_time # advance 2 days and 1 second, output in wrf date format
-! echo 2007-07-30_12:00:00 2d1s -w | advance_time # same as previous example
-! echo 200707301200 2d1s -f ccyy-mm-dd_hh:nn:ss | advance_time # same as previous example
More information about the Dart-dev
mailing list