doc/updates.doc ***************************************************************************** * * * L A M P S 9 0 * * * * U P D A T E S * * * ***************************************************************************** Latest update : 17-Jul-2019 Contributing author(s) : Robert Cohen (East Stroudsburg University) Notice : LAMPS 90 is written by and for the Numerical Model Development Facility at Drexel University. For further information contact Dr. Robert Cohen at East Stroudsburg University. General updates --------------- 17-Jul-19 Debian Linux adaptations are implemented under Windows 10. 18-May-98 Linux adaptations are implemented. 03-Sep-97 Three-dimensional analysis package is implemented (initialization). 08-Aug-97 DEC alpha adaptations are implemented. 11-Aug-94 Changed installation procedure to Install and Setup. Changed directory structure: the src directory now has init, model, post and rlib sub-directories. The inp, mks, defs and cfg sub-directories have been incorporated into one config sub-directory. 15-Apr-94 Changed installation procedure to linstall and lsetup. 02-Mar-94 Implemented NMC 381 km first-guess program (frstg381). 25-Feb-94 Implemented new installation procedure (make install, setup_user, setup_case, setup_input). 24-Feb-94 SGI IRIX adaptations are implemented. 23-Feb-94 Implemented new directory and makefile structure in which the main LAMPS 90 directory (and the source codes) remain untouched by each user. Any changes to the source code is done in individual user directories. **-Dec-92 The tutorial file is written to introduce new users to LAMPS 90. 28-Oct-92 Analytic is implemented. **-Oct-92 Modeldry is implemented. **-May-92 The old LAMPS card routines (rdcard) are removed. **-May-92 LAMPS 90 is run on the Drexel HP's. **-Apr-92 The model history file is changed to the data volume format. The rdmhis step is added to the post-processing procedure. The post-processing graphics are rewritten. Trajectory code is added. **-Mar-92 LAMPS 90 is compared with the NASA/CRAY version of LAMPS to insure that any updates made to the NASA/CRAY version up to that point would be present within LAMPS 90. Isenv2p2, however, was not compared for the most part because it was felt the version received from the programmer was better than the version used at NASA. **-Feb-92 LAMPS 90 is run on a loaner HP. **-Dec-91 A machine-independent data volume structure is created. **-Nov-91 A temporary scheme is created to allow portability of the data volume. 07-Nov-91 Updates are made to frstg25 and isenv2p2. **-Sep-91 LAMPS 90 is tested on the CRAY, but the data volume structure isn't transportable. **-Jul-91 LAMPS 90 is run on the Sony. **-Jun-91 The current input card structure is implemented. **-May-91 The first working version of LAMPS 90 is completed and tested on the Convex and Sun computers at Drexel University. **-Mar-91 Work is started on replacing IFMAC with FORTRAN and C-preprocessor statements. **-Feb-91 Work is started on creating a UNIX directory structure for the LAMPS initialization process, utilizing the makefile structure. **-Jan-91 Discussion starts on revising LAMPS. Data Volume ----------- **-Nov-91 A temporary scheme is created to allow portability of the data volume. **-Dec-91 A machine-independent data volume structure is created, utilizing the current data volume procedure. The packing scheme is dubbed LAMPS900. In addition, the data volume utility is rewritten. dvutil takes the place of readios and dvinit. The capability to access two or more data volumes at once is lost. The subroutines ggbytes and ssbytes were deleted, along with all references to them in favor of gbytes and sbytes (see src/rlib/gsbytes.c), two routines extracted from the NCAR graphics library. 15-Mar-92 The capability to use the fifth component of the itime array was added. 27-Apr-92 The ability to specify whether supplemental information is printed was implemented (i.e., added lprint). 11-May-92 The calculation of the number of bits needed to keep the desired precision was changed. 20-May-92 LAMPS901 packing scheme was implemented. **-Aug-92 LAMPS902 Packing scheme was implemented. The number of bits for storing certain header parameters was increased to handle large file sizes. 14-Dec-92 To avoid inadvertently accessing the data volume, a new file header is created only when the first writedv call is made. Previously, a new file header was created when the data volume was positioned at the new file. **-Dec-92 The ability to list the header information in model history or model output data volumes was made available through the use of the .hdrlist card. 18-Jan-93 The ability to skip backward in the data volume was made available. 18-Jan-93 The ability to access internal files according to placement within the data volume (rather than time and file id) was added via pos2dv. 17-May-93 The search for a matching internal file via matchbl was changed to insure that the file id number is checked when posdv is used. Previously, a request for file id number 0 positioned the data volume at the latest available internal file that matched the requested time, whether or not the file id also matched. 30-May-93 The capability to access more than one data volume was added. Use switchdv to switch the logical unit to be accessed (use close2dv to close all opened data volumes). 31-May-93 The capability to copy internal files from one data volume to another was added to dvutil. 27-Jan-94 The capability to access data volume information was added (via the iinfodv and cinfodv routines). 11-Aug-97 A fortran version of gsbytes was created for DEC alpha. It isn't clear why the C version doesn't work. It may be related to how the DEC stores its bytes (big vs. little endian). To deal with this, a call to switch_bytes is made after every read and before every write to the data volume. Initialization -------------- *terrain* No major changes were made to terrain. *begin* **-Aug-92 Enabled choice of obtaining ERICA SST from 14/50km ASCII file. Begin can now handle 14 km SST data. In addition, the table listing of SST data has been improved. **-Dec-92 An option is added to specify the grid by either the center point or by the western and southern boundaries. *frstg25* 03-Jul-91 The units of RH upon output were changed from unitless to percent. 07-Nov-91 Special treatment is added for extrapolation of mass and wind fields at the lower boundary (below 1000 mb or below the surface) and the surface data (pressure and temperature) are redefined according to the LAMPS' terrain data, so that the data fields have lower boundary consistent with the other LAMPS' programs. **-Mar-92 The use_newg option is added to allow the user to use the old graphics routines (plt and pltwnd) or the new ones (conmap and wndmap). 02-Mar-94 Removed some routines that can be shared with frstg381. *frstg381* 02-Mar-94 Implemented NMC 381 km first-guess program (frstg381). *sound* **-Sep-91 100*PP factor was removed (units are already correct). 02-Oct-91 Character variables were removed from common/dpass/ and put into common/cpass/. 03-Oct-91 JMAX0 redefined as MAX0. 22-Oct-91 Added #if statements for CRAY to change formatted reads to unformatted reads for sounding data. **-Jul-93 In subroutine bleck, corrected m1 loop increment during check for dubious temperature data (introduced during IFMAC to pre conversion). 13-Oct-93 In subroutine bleck, corrected m1 loop increment during check for dubious wind data (introduced during IFMAC to pre conversion). *lyrmean* No major changes were made to lyrmean. *rhanal* 13-Jun-91 The amplitude of CORREL was changed from 1.0 to 0.98 to allow for closely-spaced soundings. *isenv2p2* 07-Nov-91 Some bugs removed. 23-Jun-92 The input card structure was changed to the current structure. *vertran* No major changes were made to vertran. *wdadjust* No major changes were made to wdadjust. *3-D analysis* The 3-D analysis is currently unavailable. *merge* 14-Aug-92 Merge rewritten to run faster. 14-May-93 Added capability to read cloud and rain data, if available, from vertran file. *tbound* No major changes were made to tbound. *analytic* 28-Oct-92 Analytic was created. The program creates analytic initial conditions and was written so that new users could get a feel for LAMPS 90 without needing to go through the initialization process. *gdinterp* 13-May-93 Gdinterp created to read rhanal and wdadjust data and interpolate to a new grid specified by begin. 14-May-93 Added capability to read from merge output or volume-format data volumes. *fgsa3d* 03-Sep-97 Implemented. *masa3d* 03-Sep-97 Implemented. *reha3d* 03-Sep-97 Implemented. *wina3d* 03-Sep-97 Implemented. *mrga3d* 03-Sep-97 Implemented. Dynamic model ------------- *model* **-Apr-92 The model history file was changed to the data volume format. This allows the user to specify via the input cards which variables to store in the history and which variables to list for output. **-Oct-92 Check for time-dependent boundaries implemented. The program will now stop if it has been set up for a time-dependent boundary conditions and no time-dependent boundary file was specified. Likewise, the program will now stop if it has been set up for a sponge or cyclic boundary conditions and a time-dependent boundary file was specified. **-Nov-92 The hisstart routine has been incorporated into the begin routine and the hisdiag routine has been incorporated into the begdiag routine. These routines now have the ability to determine which variables are present and which variables need to be derived. If not enough information is available, the program will stop. 08-Dec-92 The vertical velocity calculation has been slightly updated to better represent the distinction across the htop boundary. Also, use of alpha with the h array has been removed in favor of the zz array. **-Jan-93 All non-cloud routines have had their constants changed to the general purpose constant commons. In addition, the variables names have been changed to the general purpose routine names. The cumulus and cloud routines have remained unchanged because their sensitivity to constants is uncertain. That is, while the values of constants elsewhere in the model are now obtained from rlib/const_param.h, the constants in the cloud subroutines are still defined internally. The only change done to the cumulus routine was the change of a FOR UNTIL loop to a FOR WHILE loop in CUMLS (804 exit). 10-May-93 The variable ID for virtual temperature was changed from T to TV and the variable ID for relative humidity (model) was changed from RH to RHM, in order to avoid ambiguity. 17-Nov-93 Three corrections were made to the cumulus.pre routines. The first restricts entrance to the ws loop within the interpolate.and.test.with.rins block to cases when reduction of xe to saturation (if supersaturated) or reduction of qce (if not saturated and clouds exist) is needed [correction made by Kevin Doty]. The second changes the test for non-saturation with a test for saturation within this loop [made by Jing Guo]. The third involves the invocation of the error message only when saturation isn't reached within 5 iterations (rather than when it reaches non-saturation in exactly 5 iterations) [made by Jing Guo]. 17-Nov-93 The q,c,t loop within diags1 was rearranged. Calculations of cld_new and th_new were moved out of the iteration toward saturation loop and the test for non-convergence was moved before the resetting of moisture variables (in order to maintain balance even in the event of non-convergence). 13-Jan-94 The loop for stable clouds in subroutine sfceng was changed from "1 to kmax" to "1 to kmax-1". Calculations are for the layers from 1 to kmax-1 so at kmax the array was out-of-bounds. 14-Jan-94 Within subroutine diags1, the ground temperature for the previous time step (tgb_new) is set to tg for land. It had been incorrectly set as tg_new. 25-Feb-94 The surface heat flux is multiplied by cpd upon output to the history data volume in order to have it in units of W/m2. 14-May-94 Moved diffcoefs, ocean_params and land_params to pblphys.pre. Cleaned up diffcoefs and land_params by utilizing more internal blocks. Fixed incorrect calculation of dt1 and dq1 for unstable conditions over land. 27-May-94 Corrected dt1 and dq1 calculation. 27-May-94 Replaced procedure for calculating ustar for stable environments over land. Subroutine cubic is no longer called. 17-Jun-95 Added surface roughness length (ZO) as workspace variable and removed CRAIN and SRAIN from model. 17-Jun-95 Added CPRCPRE and CPRCPRB as workspace variables to hold instantaneous precip rates. CPRCPR was changed to average rate. *modeldry* **-Oct-92 The dry, simple model was created for new users. However, it can be used to test a forecast since it runs faster and there is no influence of water vapor or boundary-layer physics. 27-May-94 Added a dry planetary boundary layer formulation based on the formulation in model. Post-processing --------------- *rdmhis* 07-Apr-92 Created for LAMPS 90 17-Aug-92 Derivation calculation was corrected. Before this date, any calculations of vorticity, divergence or advection would be incorrect. 17-Jan-93 Before this date, if dependencies were missing, a warning message would be generated and execution would not be interrupted. Now, the program exits when dependent variables are missing. 17-Jan-93 For purposes of creating skew-T maps, the conversions to RHW (relative humidity with respect to water) and TDRY (dry air temperature) were added. 20-Jan-93 The pos2dv routine is added to data volume routines. By utilizing the pos2dv routine, the .stime, .etime and .dtime input cards are no longer necessary. Without these input cards, the default is that all model history data volume files which can be found will be converted. 08-Feb-93 Added capability to derive P, T when they are missing. That is, for those derivations which depend upon P and T, the user can use CPI and/or TH if P and/or T are missing from the model history data volume. 24-Feb-93 Advection and ageostrophic wind calculations corrected. 28-Jan-94 Added capability to read from rdmhis output. 05-Feb-94 Renamed to reformat. *pltmout* 15-Apr-92 Created for LAMPS 90 from xstmap (cross-sections) and hormap (horizontal maps). The programs now access the model output data volume rather than the history file. As such, rather than the variable derivations being done by the plotting programs (and requiring the user to determine dependencies), the derivations are now accomplished by rdmhis. In addition, the use of the new data volume structure allows the user to specify variables according to ID name rather than history file placement. 17-Apr-92 Capability to make difference maps added, replacing diffmap. 13-Aug-92 Capability to handle oblique cross-sections added via the use of the .latlon card with parameters for longitude, latitude and angle of cross-section. 24-Nov-92 Capability to create subset maps added via the use of the .bndary card with parameters for west and east longitude, south and north latitude, bottom and top heights. 18-Jan-93 Capability to create skew-t log-p maps added via the use of the .skewt card with parameters for longitude and latitude. This requires specifying TDRY and RHW during the rdmhis phase, however. 22-Feb-93 Capability to read from model history data volume added. 23-Jun-93 Capability added to plot relative trajectory source position information. 23-Jun-93 Capability added to plot data at cloud tops. 24-Jun-93 Capability to plot cross-section vector winds (horizontal) added. 15-Jul-93 Capability to values along a constant field surface (like THV) added. 15-Jul-93 Input card style changed slightly to allow for more flexibility. 28-Jan-94 Added capability to overlay plots. 28-Jan-94 Added capability to derive variables (via getvar). 17-May-94 Corrected mistake that hindered the incorporation of new getvar routine for difference maps. 22-Jul-94 Added the following capabilities: - time series (four to a page) - vertical profiles (one to a page) - wind barbs or arrows (for xsections and horizontal maps) - improved overlay capability (for xsections and hor. maps) 26-Jul-94 Added capability to do a standard time series graph. 03-Apr-98 New format of input cards, many new features (see pltmout.pre). *reformat* 31-Jul-93 Created for LAMPS 90 to reformat the model data to the specific format required by a graphics system external to the LAMPS90/NCAR graphics system. Currently, only output to the AVS (Advanced Visual Systems) field file format is available. 05-Feb-94 Merged with rdmhis. 16-Aug-94 Added capability to create binary (unformatted) output. *trajec* 21-Apr-92 The ability to create trajectories was added. 30-May-93 The capability to create output in the data volume format was added (so that 3-D grids can be generated). 03-Apr-98 Added maxinc to maxpts.h (needed for new pltmout package) *trajplt* 09-Aug-94 Added statistical comparison option, and ".no ids" and ".use ids" options. 26-Apr-92 The ability to plot trajectories was added. 29-Apr-92 The ability to trace variables along a trajectory was added. 30-Apr-92 The ability to plot in 2 or 3 dimensions was added. 02-May-92 Tracing calculation corrected. 08-Oct-92 Tracing plotting improved. 24-Nov-92 Improved tracing plots by adding automatic label formats. 30-Dec-92 Added capability to reconstruct fields using starting and ending points of trajectories. **-Feb-93 Added capability to plot fronts. **-Oct-93 Improved capability to plot air stream boundaries and reconstruct passive tracer fields. Libraries --------- *Graphics libraries* **-Mar-92 The frstg25 and isenv2p2 graphing routines (conmap and wndmap) are added. 28-Jan-93 A skew-t file (skewtlib.f) has been added to the graphics library (graflib). In the process, it has been updated to work with both the post-processing programs and the initialization program of sound. 24-Jun-93 Capability to plot cross-section vector winds (horizontal) added. 31-Jan-94 The conmap routine was separated into two routines, conmap1 (to set up graph) and conmap2 (to plot isopleths). Similarly, the plotxmap routine was separated into two routines, plotxmap1 (to set up graph) and plotxmap2 (to plot isopleths). The wndmap routine was made to utilize the conmap1 routine (to set up graph) and the vector wind plotting portion was renamed to wndmap2. Similarly, the plotxwnd routine was made to utilize the plotxmap1 routine (to set up graph) and the vector wind plotting portion was renamed to plotxwnd2. The original calls for conmap, wndmap, plotxmap and plotxwnd can still be used. The new configuration allows for overlay capability. 31-Jan-94 The wndmap2 and plotxwnd2 routines were rewritten to allow for either vector arrow plots or wind flags (via the ijskip/ikskip option). *General purpose libraries* **-May-91 Every program is now linked to the same general purpose library. **-May-91 The ipun variable has been deleted from all iountc common references and is no longer used. 25-May-91 Getdateid was created to handle the computer-specific ways of accessing the current date and time. **-Jun-91 The routines for handling the input cards were rewritten so that any number of spaces can separate fields. 28-Jun-91 Sony functions are added to getdateid. 25-Sep-91 UNICOS functions are added to getdateid. 19-May-92 HP functions are added to getdateid. 15-Jun-92 Getdateid updated to check if date has been set. **-Aug-92 Allowed the use of # as a comment delineator in the input cards. **-Oct-92 Allowed any combination of tabs and spaces in the input cards. **-Dec-92 General purpose constants now stored in const_param.h file. In addition, the constants were updated to correspond to the latest estimates. To obtain the LAMPS 90 constants, the user can do one of the following : 1. include the const_param.h file into their program 2. use the getconst call to obtain constant values 3. use the const call to set-up all the const commons 28-Jan-93 The libraries were reorganized to make them more consistent. This included removing those gpur2.F routines which were no longer being used (now in oldgpur.F) and moving those routines used by the post-processing programs (rdmhis, pltmout, trajec and trajplt) to postlib. 28-Jan-93 The function atan2d was utilized in arctan for those machines which have this function. 17-May-94 Allowed the use of the backslash character as a continuation character. *Math libraries* 28-Jan-93 The math03.pre routines are no longer linked in the liblamps library. In addition, the smooth and sort routines which are no longer used were combined with the math03.pre routines. This file is still included in the src/rlib directory, but it is no longer linked to the liblamps library. *Post-processing library* 28-Jan-93 During the process of reorganizing the libraries, routines used by the post-processing programs (rdmhis, pltmout, trajec and trajplt) were moved to postlib. 31-Jul-93 Made subroutine julian capable of deriving negative differences. *Model I/O library* 22-Oct-92 Model I/O library (modelio) created for doing I/O to the model history data volume and the model output data volume. 18-Nov-92 Model I/O library updated. 28-Jan-94 Added getvar set of routines. These routines can read data in either block 11 (slab) or block 12 (variable-array) format and derive new variables. 01-Jun-94 Added capability to derive advection of any variable. Makefile -------- **-May-91 Makefile structure is first implemented. **-May-91 Allowed use of .log and log/.log to differentiate between desired levels of dependencies. 24-Oct-91 The set_up shell is added. **-Nov-92 Allowed use of "FORCE=force" to differentiate between desired levels of dependencies. 20-Aug-93 Allowed use of user-dependent source codes and dependency lists. 08-Sep-93 Simplified structure of Makefile. 03-Feb-94 Allowed use of user-dependent libraries. 12-Aug-97 Version 4 of the NCAR graphics package requires linkage with the X-library. During install, a check is made and the makefile is altered accordingly. 02-Apr-98 Added mxgd to user.cfg (Setup was changed accordingly). Documentation ------------- Some information files (.i suffix) are available that document the physics and mathematics used in the source code. If any exist, they will be in an info sub-directory of the appropriate src sub-directory. 19-May-94 Created LAMPS 90 Programmer's Guide. 19-May-94 Created Resource Manual No. 1 for documenting the dynamic model equations. 19-May-94 Created Resource Manual No. 2 for documenting the geophysical constants used in LAMPS 90. 27-May-94 Created Resource Manual No. 3 for documenting the geophysical relationships (as a replacement for many .i files).