@@ -3135,10 +3135,12 @@ end subroutine ESMF_ParseDurString
3135
3135
#undef ESMF_METHOD
3136
3136
#define ESMF_METHOD "ESMF_TimeIntervalSetStr()"
3137
3137
! BOP
3138
- ! !IROUTINE: ESMF_TimeIntervalSet - Initialize or set a TimeInterval from ISO format string
3138
+ ! !IROUTINE: ESMF_TimeIntervalSet - Initialize or set a TimeInterval from an ISO format string
3139
+ ! \label{API:TimeIntervalSetStr}
3139
3140
3140
3141
! !INTERFACE:
3141
- ! Private name; call using ESMF_TimeIntervalSet()
3142
+ ! Private name; call using ESMF_TimeIntervalSet()
3143
+
3142
3144
subroutine ESMF_TimeIntervalSetStr (timeinterval , timeIntervalString , rc )
3143
3145
3144
3146
! !ARGUMENTS:
@@ -3150,14 +3152,25 @@ subroutine ESMF_TimeIntervalSetStr(timeinterval, timeIntervalString, rc)
3150
3152
!
3151
3153
! !DESCRIPTION:
3152
3154
! Sets the value of the {\tt ESMF\_TimeInterval} using a user specified
3153
- ! string in ISO duration format (P[n]Y[n]M[n]DT[n]H[n]M[n]S).
3155
+ ! string in ISO duration format P[y]Y[mm]M[d]DT[h]H[m]M[s]S. See ~\cite{ISO} and ~\cite{ISOnotes} for information about the format. In ESMF's implementation the time values can have the following types:
3156
+ ! \begin{description}
3157
+ ! \item[y] - the number of years expressed in up to a 64-bit integer
3158
+ ! \item[mm] - the number of months expressed in up to a 64-bit integer
3159
+ ! \item[d] - the number of days expressed in up to a 64-bit integer or a 64-bit floating point value (double)
3160
+ ! \item[h] - the number of hours expressed in up to a 32-bit integer or a 64-bit floating point value (double)
3161
+ ! \item[m] - the number of minutes expressed in up to a 32-bit integer or a 64-bit floating point value (double)
3162
+ ! \item[s] - the number of seconds expressed in up to a 64-bit integer or a 64-bit floating point value (double)
3163
+ ! \end{description}
3154
3164
!
3165
+ ! As with the ISO format, in ESMF's implementation the specifier and value can be left out if the value is 0. For example, P1YT1H3M4S is a valid format if the number of months and
3166
+ ! days are both 0. The time part including the T can also be left off if the time values are all 0, so P1Y is a valid string if just 1 year is being specified.
3167
+ !
3155
3168
! The arguments are:
3156
3169
! \begin{description}
3157
3170
! \item[timeinterval]
3158
3171
! The object instance to initialize.
3159
3172
! \item[timeIntervalString]
3160
- ! ISO format duration string.
3173
+ ! ISO format duration string (e.g. P[y]Y[mm]M[d]DT[h]H[m]M[s]S).
3161
3174
! \item[{[rc]}]
3162
3175
! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors.
3163
3176
! \end{description}
@@ -3179,9 +3192,6 @@ subroutine ESMF_TimeIntervalSetStr(timeinterval, timeIntervalString, rc)
3179
3192
if (present (rc)) rc = ESMF_RC_NOT_IMPL
3180
3193
localrc = ESMF_RC_NOT_IMPL
3181
3194
3182
- ! DEBUG OUTPUT:
3183
- ! write(*,*) "Duration string is:",timeIntervalString
3184
-
3185
3195
! Parse string into values for each time unit
3186
3196
call ESMF_ParseDurString(timeintervalString, &
3187
3197
yy_i8= yy_i8, mm_i8= mm_i8, d_i8= d_i8, d_r8 = d_r8 , &
@@ -3219,7 +3229,7 @@ end subroutine ESMF_TimeIntervalSetStr
3219
3229
#undef ESMF_METHOD
3220
3230
#define ESMF_METHOD "ESMF_TimeIntervalSetStrCal()"
3221
3231
! BOP
3222
- ! !IROUTINE: ESMF_TimeIntervalSet - Initialize or set a TimeInterval from ISO format string
3232
+ ! !IROUTINE: ESMF_TimeIntervalSet - Initialize or set a TimeInterval from an ISO format string and calendar
3223
3233
3224
3234
! !INTERFACE:
3225
3235
! Private name; call using ESMF_TimeIntervalSet()
@@ -3235,9 +3245,12 @@ subroutine ESMF_TimeIntervalSetStrCal(timeinterval, calendar, &
3235
3245
!
3236
3246
!
3237
3247
! !DESCRIPTION:
3238
- ! Sets the value of the {\tt ESMF\_TimeInterval} using a user specified
3239
- ! string in ISO duration format (P[n]Y[n]M[n]DT[n]H[n]M[n]S).
3240
- !
3248
+ ! Sets the value of the {\tt ESMF\_TimeInterval} using a user specified
3249
+ ! string in ISO duration format P[y]Y[mm]M[d]DT[h]H[m]M[s]S. See ~\cite{ISO} and ~\cite{ISOnotes} for
3250
+ ! information about the format. Also, see the description for the method
3251
+ ! {\tt ESMF\_TimeIntervalSetStr()}~\ref{API:TimeIntervalSetStr}
3252
+ ! for the specific types supported by ESMF for the values in the duration string.
3253
+ !
3241
3254
! The arguments are:
3242
3255
! \begin{description}
3243
3256
! \item[timeinterval]
@@ -3252,7 +3265,7 @@ subroutine ESMF_TimeIntervalSetStrCal(timeinterval, calendar, &
3252
3265
! it contains a calendar. Alternate to, and mutually exclusive with,
3253
3266
! calkindflag below. Primarily for specifying a custom calendar kind.
3254
3267
! \item[timeIntervalString]
3255
- ! ISO format duration string.
3268
+ ! ISO format duration string (e.g. P[y]Y[mm]M[d]DT[h]H[m]M[s]S).
3256
3269
! \item[{[rc]}]
3257
3270
! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors.
3258
3271
! \end{description}
@@ -3274,9 +3287,6 @@ subroutine ESMF_TimeIntervalSetStrCal(timeinterval, calendar, &
3274
3287
if (present (rc)) rc = ESMF_RC_NOT_IMPL
3275
3288
localrc = ESMF_RC_NOT_IMPL
3276
3289
3277
- ! DEBUG OUTPUT:
3278
- ! write(*,*) "Duration string is:",timeIntervalString
3279
-
3280
3290
! Parse string into values for each time unit
3281
3291
call ESMF_ParseDurString(timeintervalString, &
3282
3292
yy_i8= yy_i8, mm_i8= mm_i8, d_i8= d_i8, d_r8 = d_r8 , &
@@ -3315,7 +3325,7 @@ end subroutine ESMF_TimeIntervalSetStrCal
3315
3325
#undef ESMF_METHOD
3316
3326
#define ESMF_METHOD "ESMF_TimeIntervalSetStrCalTyp()"
3317
3327
! BOP
3318
- ! !IROUTINE: ESMF_TimeIntervalSet - Initialize or set a TimeInterval from ISO format string
3328
+ ! !IROUTINE: ESMF_TimeIntervalSet - Initialize or set a TimeInterval from an ISO format string and calendar kind
3319
3329
3320
3330
! !INTERFACE:
3321
3331
! Private name; call using ESMF_TimeIntervalSet()
@@ -3331,8 +3341,11 @@ subroutine ESMF_TimeIntervalSetStrCalTyp(timeinterval, calkindflag, &
3331
3341
!
3332
3342
!
3333
3343
! !DESCRIPTION:
3334
- ! Sets the value of the {\tt ESMF\_TimeInterval} using a user specified
3335
- ! string in ISO duration format (P[n]Y[n]M[n]DT[n]H[n]M[n]S).
3344
+ ! Sets the value of the {\tt ESMF\_TimeInterval} using a user specified
3345
+ ! string in ISO duration format P[y]Y[mm]M[d]DT[h]H[m]M[s]S. See ~\cite{ISO} and ~\cite{ISOnotes} for
3346
+ ! information about the format. Also, see the description for the method
3347
+ ! {\tt ESMF\_TimeIntervalSetStr()}~\ref{API:TimeIntervalSetStr}
3348
+ ! for the specific types supported by ESMF for the values in the duration string.
3336
3349
!
3337
3350
! The arguments are:
3338
3351
! \begin{description}
@@ -3343,7 +3356,7 @@ subroutine ESMF_TimeIntervalSetStrCalTyp(timeinterval, calkindflag, &
3343
3356
! calendar above. More convenient way of specifying a built-in
3344
3357
! calendar kind.
3345
3358
! \item[timeIntervalString]
3346
- ! ISO format duration string.
3359
+ ! ISO format duration string (e.g. P[y]Y[mm]M[d]DT[h]H[m]M[s]S).
3347
3360
! \item[{[rc]}]
3348
3361
! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors.
3349
3362
! \end{description}
@@ -3365,10 +3378,7 @@ subroutine ESMF_TimeIntervalSetStrCalTyp(timeinterval, calkindflag, &
3365
3378
if (present (rc)) rc = ESMF_RC_NOT_IMPL
3366
3379
localrc = ESMF_RC_NOT_IMPL
3367
3380
3368
- ! DEBUG OUTPUT:
3369
- ! write(*,*) "Duration string is:",timeIntervalString
3370
-
3371
- ! Parse string into values for each time unit
3381
+ ! Parse string into values for each time unit
3372
3382
call ESMF_ParseDurString(timeintervalString, &
3373
3383
yy_i8= yy_i8, mm_i8= mm_i8, d_i8= d_i8, d_r8 = d_r8 , &
3374
3384
h_r8 = h_r8 , m_r8 = m_r8 , s_i8= s_i8, s_r8 = s_r8 , rc= localrc)
@@ -3404,7 +3414,7 @@ end subroutine ESMF_TimeIntervalSetStrCalTyp
3404
3414
#undef ESMF_METHOD
3405
3415
#define ESMF_METHOD "ESMF_TimeIntervalSetStrStart()"
3406
3416
! BOP
3407
- ! !IROUTINE: ESMF_TimeIntervalSet - Initialize or set a TimeInterval from ISO format string
3417
+ ! !IROUTINE: ESMF_TimeIntervalSet - Initialize or set a TimeInterval from an ISO format string and start time
3408
3418
3409
3419
! !INTERFACE:
3410
3420
! Private name; call using ESMF_TimeIntervalSet()
@@ -3420,8 +3430,11 @@ subroutine ESMF_TimeIntervalSetStrStart(timeinterval, startTime, &
3420
3430
!
3421
3431
!
3422
3432
! !DESCRIPTION:
3423
- ! Sets the value of the {\tt ESMF\_TimeInterval} using a user specified
3424
- ! string in ISO duration format (P[n]Y[n]M[n]DT[n]H[n]M[n]S).
3433
+ ! Sets the value of the {\tt ESMF\_TimeInterval} using a user specified
3434
+ ! string in ISO duration format P[y]Y[mm]M[d]DT[h]H[m]M[s]S. See ~\cite{ISO} and ~\cite{ISOnotes} for
3435
+ ! information about the format. Also, see the description for the method
3436
+ ! {\tt ESMF\_TimeIntervalSetStr()}~\ref{API:TimeIntervalSetStr}
3437
+ ! for the specific types supported by ESMF for the values in the duration string.
3425
3438
!
3426
3439
! The arguments are:
3427
3440
! \begin{description}
@@ -3433,7 +3446,7 @@ subroutine ESMF_TimeIntervalSetStrStart(timeinterval, startTime, &
3433
3446
! in time. If not set, and calendar also not set, calendar interval
3434
3447
! "floats" across all calendars and times.
3435
3448
! \item[timeIntervalString]
3436
- ! ISO format duration string.
3449
+ ! ISO format duration string (e.g. P[y]Y[mm]M[d]DT[h]H[m]M[s]S).
3437
3450
! \item[{[rc]}]
3438
3451
! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors.
3439
3452
! \end{description}
@@ -3455,9 +3468,6 @@ subroutine ESMF_TimeIntervalSetStrStart(timeinterval, startTime, &
3455
3468
if (present (rc)) rc = ESMF_RC_NOT_IMPL
3456
3469
localrc = ESMF_RC_NOT_IMPL
3457
3470
3458
- ! DEBUG OUTPUT:
3459
- ! write(*,*) "Duration string is:",timeIntervalString
3460
-
3461
3471
! Parse string into values for each time unit
3462
3472
call ESMF_ParseDurString(timeintervalString, &
3463
3473
yy_i8= yy_i8, mm_i8= mm_i8, d_i8= d_i8, d_r8 = d_r8 , &
0 commit comments