[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