release.txt JUPITER API Release Notes This file describes changes introduced into the JUPITER API with each official release. Every effort will be made to ensure that applications written to work with one version of the API will work the same with later versions of the API. However, correction of errors that may be identified in the API may result in differences between versions. NOTE: Any use of trade, product or firm names is for descriptive purposes only and does not imply endorsement by the U.S. Government. o Version 1.2.3 2/4/2008: UTILITIES module: The CHAR2NUM subroutine was modified so that it no longer interprets "D" and "E" as numbers. Previously, the strings "D" and "E" would have been interpreted as zero. EQUATION module: The EQN_PARSE_EDIT subroutine was modified to correct a minor bug. SENSITIVITY module: In SEN_INI_DI, a bug was corrected in check of validity of dependent names listed in Derivatives Interface file. The SEN_UEV_DX_WRITE_SEN subroutine was modified to correct a spacing problem in writing an _sc file o Version 1.2.2 7/25/2007: EQUATIONS module: EQN_LINEAR_COEFFS is revised to optionally edit a prior-information equation in the case where a log-transformed parameter appears as the only term of a prior-information equation but is not included in the parentheses of a log10 function. It returns the revised equation and a flag indicating whether the equation is revised so that the programmer can convert the associated statistic to log10 space (perhaps by using the revised UTL_CALCWT). If such a parameter occurs in any form other than log10(param-name) or param-name alone, an error message is written and control is returned with IFAIL=1. The revised subroutine EQN_LINEAR_COEFFS is described in file subprograms_addendum.pdf in the doc directory. PRIOR_INFORMATION module: Coding was added to accomodate the case where additional parameters are considered for evaluation of predictive uncertainty. This is appropriate when parameters cannot be included in the regression because the simulated equivalents have little or no sensitivity to them, yet the predictions are sensitive to those parameters. In this case uncertainty associated with those parameters can be included by using the features added in this version of the API. Specific changes include: 1. Support has been added for two new optional input blocks, to be read by the Prior-Information Module. Neither is required. The new blocks are as follows: Prior_Information_Groups_For_Prediction (LLIST pointer: LLPTRGPPRIORFP) Linear_Prior_Information_For_Prediction (LLIST pointer: LLPTRPRIORFP) Support for the new input blocks is provided by new subroutines PRI_INI_READ_WPRED and PRI_INI_STORE_WPRED, which may be used in place of PRI_INI_READ and PRI_INI_STORE, respectively. The new subroutines are documented in file subprograms_addendum.pdf in the doc directory. The sequence of blocks read by PRI_INI_READ_WPRED, if all four are present, is as follows: Prior_Information_Groups Prior_Information_Groups_For_Prediction Linear_Prior_Information Linear_Prior_Information_For_Prediction 2. A new subroutine, PRI_UEV_DX_WRITE_PRP, has been added to write a _prp data-exchange file, which also is new. The structure of the _prp file is identical to the _pr file except that it contains prior information added for evaluation of predictions. The new subroutine is described in file subprograms_addendum.pdf in the doc directory. 3. A new subroutine, PRI_UEV_DX_READ_PRP, has been added to read a _prp file. The new subroutine is described in file subprograms_addendum.pdf in the doc directory. The modifications to EQN_LINEAR_COEFFS, described above, support editing of a prior-information equation if the parameter involved is log-transformed and the parameter is not included in parentheses after a log10 function in the prior-information equation. SENSITIVITY module: SEN_UEV_DX_READ_SU has been revised to support reading of files with extension _supri or _ suprip, by the addition of an optional argument. The expected file structure is the same as that of an _su file, regardless of the extension. The modified SEN_UEV_DX_READ_SU is described in file subprograms_addendum.pdf in the doc directory. STATISTICS module: STA_UEV_FIT was modified to write the simulated value even if it is omitted from an analysis, as indicated by the corresponding element of the OMIT array. UTILITIES module: UTL_DX_READ_MCMV was modified to allow the EXT argument to be specified as '_mvp'. UTL_DX_WRITE_MCMV was modified to allow the EXT argument to be specified as '_mvp'. UTL_DX_READ_WT was modified to allow the EXT argument to be specified as '_wtprip'. UTL_DX_WRITE_WT was modified to allow the EXT argument to be specified as '_wtprip'. UTL_CALCWT was modified to accomodate conversion of variance from native to log10 space by the addition of an optional argument. The modified subroutine is described in file subprograms_addendum.pdf in the doc directory. o Version 1.1.0 2/7/2007: EQUATION module: The ATERM array was converted from PRIVATE to PUBLIC. Several changes were made to accomodate large problems (e.g. problems with more than about 46,000 observations): 1. To avoid stack errors in storing potentially large arrays, several automatic arrays in the DEPENDENTS, EQUATION, PRIOR_INFORMATION, SENSITIVITY, STATISTICS, and UTILITIES modules were converted to allocatable arrays. 2. To avoid stack errors in functions that return arrays, four subroutines have been added that can be used in place of functions: function subroutine -------------- ------------------ UTL_DIAGONAL UTL_DIAGONAL_SUB UTL_MATMUL UTL_MATMUL_SUB UTL_MATMULVEC UTL_MATMULVEC_SUB UTL_SUBSTITUTE UTL_SUBSTITUTE_SUB The new subroutines are documented in file subprograms_addendum.pdf in the doc directory. 3. To increase maximum size of arrays that can be stored in a CDMATRIX structure, in the DATATYPES module, the definition of type CDMATRIX was modified to declare array IPOS as KIND=8. Numerous references to IPOS and variables used in conjunction with IPOS were modified to use KIND=8 integers. With this change, the maximum row and column dimension of a square matrix stored in CDMATRIX structure is no longer limited (to 46,340) by the size of an integer that can be stored in IPOS. (Note that the value stored in IPOS for the element at row NR, column NC equals NR*NC.) Now, the size of a matrix stored in CDMATRIX structure is limited by the size of an integer that can be stored in an integer (KIND=4) variable (approximately 2 billion). Depending on the number of non-zero values to be stored, the matrix size may be further limited by the availability of memory for allocation. 4. A new specific subroutine for the UTL_RWORD generic interface has been implemented. With this addition, the "N" argument can be a KIND=8 integer if the "D" argument is DOUBLE PRECISION. 5. A new subroutine, UTL_INVERT_DIAG, has been added to the UTILITIES module to invert a diagonal matrix stored in a CDMATRIX structure. UTL_INVERT_DIAG can be invoked instead of UTL_SVD when the matrix to be inverted has no non-zero off- diagonal terms. For situations where this restriction is met, UTL_INVERT_DIAG is substantially faster than UTL_SVD, especially when the matrix dimension is large. The new subroutine is documented in file subprograms_addendum.pdf in the doc directory. o Version 1.0.2 12/11/2006: UTILITIES module: UTL_SSVD2 was edited to write a more meaningful message and stop execution when ITER==30. UTL_SVD was edited to eliminate redundant check for BUFF3<=0. BASIC module: BAS_INI_MODELEXEC was edited to initialize MODCOMLINE and COMMANDID arrays with ' ' after they are allocated. EQUATION module: EQN_INI was edited to change ACHAR arguments (200-207) to values between 0 and 127 (14-21) to comply with Fortran standard. o Version 1.0.0 07/26/2006: Initial release of the JUPITER API.