**** June 10, 1994 :  debugging for the CRAY.

     (1)  cgpois.f
            version 7.3
              * Local variable J was declared twice.
              * Remove IPT declaration ans statements.
              * Put routine TRANSBDY in the standard style.

     (2)  external.f
            version 7.3
              * Mask UBAR and VBAR in coastal set-up only.

     (3)  get_param.f
            version 7.3
              * Remove comas from format statement.

     (4)  header_qg.f
            version 7.3
              * Remove declaration of BETA. It is declared in common
                block MODDAT.

     (5)  Makefile.cray
            version 7.3
              * Correct path for macro definitions SHELL and CPP.
                Remove c-preprocessing option SUNFPE from CPPFLAGS.

     (6)  All other relevant codes are upgrated to VERSION 7.3.


**** June 13, 1994 :  Debugging

     (1)  get_param.f
            version 7.4
              * Underdimensioned array FNAME.

     (2)  my_handler.F
            version 7.4
              * Define MY_HANDLER to zero for other computers.

     (3)  PE_initial.f
            version 7.4
              * Correct logical statement "OR" with "AND" to avoid
                writing boundary condition data at the end of assimilation
                data when JOB=1 or JOB=2.

     (4)  put_bry.f
            version 7.4
              * Remove logical statement used in the computation of
                local DT.

     (5)  All other relevant codes are upgrated to VERSION 7.4.


**** June 21, 1994 :  Debugging

     (1)  PE_initial.f
            version 7.5
              * Add computation of TSCUR after the last field is
                processed to avoid DT being zero in routine PUT_BRY.

     (2)  All other relevant codes are upgrated to VERSION 7.5.


**** August 18, 1994 :  Output changed to NetCDF format.

     (1)  cstseg.h
            version 7.6
              * Add new variable LSEGMX as the current maximum of
                points per coastal segment.
               
     (2)  curflds.h
            version 7.6
              * Document variables in common block.
              * Rename variable TSCUR to DCUR.
              * Rename variable PBRY to P_BRY because a new boundary
                array PBRY is introduced in routine PUT_BRY.

     (3)  defcdf.f
            version 7.6
              * NEW routine used to create and define output NetCDF
                file.  If defines dimension, variables, and their
                attributes.  If writes out all geometry variables
                and arrays.

     (4)  external.f
            version 7.6
              * Modify time reporting to echo file.

     (5)  exitus.F
            version 7.6
              * NEW routine. It is used to terminate execution after
                all the datasets have been properly closed.

     (6)  fdiagn.f
            version 7.6
              * Remove scaling of transport streamfunction when carring
                out diagnostics.  Observation errors for transport
                streamfunction are normalized (by their variance) as
                required by the PE mode OI assimilation scheme.

     (7)  get_data.f
            version 7.6
              * This routine was re-structured to accomodate the changes
                due to NetCDF output.
              * Time management is now in modified Julian days (preferable)
                or in terms of year day.  For now, if the input file
                is of QG origin, the time is in days since QG
                initialization.  Time variables were renamed to have
                a more consisting (self-describing) name.

     (8)  get_land.f
            version 7.6
              * Add reading of number of islands NISLE to process, if any.
                If NISLE>0, the read the starting and ending indices
                for the island boxes from input land/sea file.

     (9)  get_parm.f
            version 7.6
              * Remove intialization of obsolete variable HEXOUT.
              * Modify documentation of switch JOB (see update for
                "pe_initial.in").
              * Rename TPERS to TSKIP and provide new documentation
                (see update for "pe_initial.in").
              * Change logical statements involved with the switch JOB
                because the options for JOB have changed.

     (10) get_trc.f
            version 7.6
              * This routine was re-structured to accomodate the changes
                due to NetCDF output.
              * Time management is now in modified Julian days (preferable)
                or in terms of year day. Time variables were renamed to have
                a more consisting (self-describing) name.

     (11) header_fm.f
            version 7.6
              * Change format statement.

     (12) header_qg.f
            version 7.6
              * Change format statement.

     (13) iounits.h
            version 7.6
              * Add array FNAME to the common block.
              * eliminate variable hexout from the common block.

     (14) Makefile.cray, Makefile.iris, Makefile.sun3, Makefile.sun4,
            version 7.6
              * Modify dependencies for routines: PUT_BRY and PUT_INIT.
              * Eliminate obsolete routine XWRITE.
              * Add new routines "defcdf.f" and "exitus.F" and new
                common blocks "netcdf.inc" and "pi_netcdf.h".
              * Add new C-preprocessing option DECDATE which uses
                DEC's intrinsic time managing routines.

     (15) moddat.h
            version 7.6
              * Rename variable TPERS to TSKIP.  TSKIP is now the time
                interval (days) to scan and process input data.

     (16) netcdf.inc
            version 7.6
              * NEW common block. NetCDF library main common block.

     (17) oldflds.h
            version 7.6
              * Document variables in common block.
              * Rename variable TSOLD to DOLD.

     (18) PE_initial.F
            version 7.6
              * Add include file "pi_netcdf.h"
              * Re-structure task distribution because of output fields
                are now in NetCDF format.
              * Add call to new routine DEFCDF which define output
                NetCDF dimesnions, variables, and attributes.
              * Change logical statements involved with the switch JOB
                because the options for JOB have changed.
              * Terminate execution by calling new routine EXITUS.

     (19) pe_initial.in
            version 7.6
              * Replace obsolete input parameter TPERS with TSKIP.
                TSKIP is the time interval for scanning and processing
                input data. Output fields having a time-coordinate,
                like boundary conditions, assimilation fields, and
                forcing will be processed and written every other TSKIP
                days.  However, if TSKIP=0, then the input data is
                scanned and processed at its own (input) time frequency.
              * Because the output file is of NetCDF type, some of
                the option of switch JOB became obsolete. The new options
                for switch JOB are:
                       JOB = [0] initial and boundary condition fields
                             [1] assimilation fields
                             [2] forcing fields
                             [3] initial and boundary conditions for
                                 diagnostic initialization
                             [4] initial and boundary conditions with
                                 barotropic mode specification

     (20) pi_netcdf.h
            version 7.6
              * NEW common block containing all the ID's associated
                with the output NetCDF file.

     (21) put_bry.f
            version 7.6
              * This routine was re-structured to accomodate the changes
                due to NetCDF output (initialization or assimilation)
                file.
              * Split boundary array PO into PBRY and QBRY for clarity.
              * Rename boundary number to variables: WEST, SOUTH, EAST,
                and NORTH.

     (22) put_init.f
            version 7.6
              * This routine was re-structured to accomodate the changes
                due to NetCDF output (initialization or assimilation)
                file.

     (23) set_oerr.f
            version 7.6
              * For now, eliminate integration of streamfunction errors
                to compute error for transport streamfunction.  Use
                Normalized streanfunction error at the first level.
              * Re-order the field identification in arrays OERRMIN and
                OERRMAX for facilitate the expansion of tracer type
                varaibles:
                     IFIELD = 1   transport streamfunction.
                              2   internal mode, u-velocity compinent.
                              3   internal mode, v-velocity compinent.
                              4   temperature.
                              5   salinity.
                              ... other tracers.

     (24) set_oerr.f
            version 7.6
              * Modify time reporting to echo file.
              * Rename time variables TSOLD, TSCUR to DOLD and DCUR.


     (25) switches.h
            version 7.6
              * Eliminate obsolete switches IFIRST and ILAST.
              * Add logical switch LAST.

     (26) velocity.f
            version 7.6
              * Modify time reporting to echo file.
              * Change logical statements involved with the switch JOB
                because the options for JOB have changed.

     (25) workspa.h
            version 7.6
              * Document variables in common block.
              * Rename variables TCUR and DAY to TSAVE and TREAD.

     (27) xwrite.h
            version 7.6
              * Obsolete routine eliminated.  Output is now via
                NetCDF format.

     (28) All other relevant codes are upgrated to VERSION 7.6.


**** September 7, 1994 :  Output NetCDF format continued.

     (1)  defcdf.f
            version 7.7
              * Modify dimension order of output NetCDF fields.  NetCDF
                fields are modified to comform a right-hand system
                (...,level,lon,lat,...) to facilitate the visualization
                via IBM data explorer.
              * Velocity components are defined in the same NetCDF
                variable but as a vector (vector,level,...)
              * Tracer type variables are defined as one variables per
                tracer.
              * Add additional attributes for visualization via IBM
                data explorer: "field" and "positions".
              * Define "units" in standard form following NetCDF
                convections.

     (2)  exitus.F
            version 7.7
              * Add include file "param.h"

     (3)  fsave.f
            version 7.7
              * Modify dimension order of output NetCDF fields.  NetCDF
                fields are modified to comform a right-hand system
                (...,level,lon,lat,...) to facilitate the visualization
                via IBM data explorer.
              * Switch saving order from (row,level) to (level,row).

     (4)  get_parm.f
            version 7.7
              * Rename dimension paramenter NM to NPROF.

     (5)  iounits.h
            version 7.7
              * Document the common block variables.

     (6)  meants.h
            version 7.7
              * Rename dimension paramenter NM to NPROF.

     (7)  pi_netcdf.h
            version 7.7
              * Re-structure completely the common block.

     (8)  put_bry.f
            version 7.7
              * Add logical statement to prevent division by zero in
                the computation of QBRY.
              * Modify dimension order of output NetCDF fields.  NetCDF
                fields are modified to comform a right-hand system
                (...,level,lon,lat,...) to facilitate the visualization
                via IBM data explorer.
              * Velocity components are saved in the same NetCDF
                variable but as a vector (vector,level,...)

     (9)  put_init.f
            version 7.7
              * Modify dimension order of output NetCDF fields.  NetCDF
                fields are modified to comform a right-hand system
                (...,level,lon,lat,...) to facilitate the visualization
                via IBM data explorer.
              * Velocity components are saved in the same NetCDF
                variable but as a vector (vector,level,...)
              * Tracer type variables are written as one variables per
                tracer.

     (10) workspa.h
            version 7.7
              * Rename common block from WRKSPA to WORKSPA internally.

     (11) xwrite.f
            version 7.6
              * Routine is eliminated.

     (12) All other relevant codes are upgrated to VERSION 7.7.


**** Octover 27, 1994:  Add capability to read a NetCDF file as input.


     (1)  defcdf.f:
            version 7.8
              * Correct attribute for time serie field.
              * Correct computation of the longitude at tracer and
                velocity points.

     (2)  get_cdfdat:
            version 7.8
              * NEW routine which is used to read input NetCDF fields.

     (3)  get_date.F:
            version 7.8
              * Replace C-preprocessing construnction ELIF whit ELSE.
                ELIF is not supported on the CRAY. 

     (4)  get_parm.f:
            version 7.8
              * Add call to new routine OPENCDF which inquire about
                the content of the input NetCDF file.

     (5)  Makefile.cray Makefile.iris Makefile.sun3 Makefile.sun4
            version 7.8
              * Add new routines GET_CDFDAT, OPENCDF, and READCDF and
                their dependencies.

     (6)  opencdf.f
            version 7.8
              * NEW routine used to inquire about the content of input
                NetCDF file.

     (7)  pe_initial.in:
            version 7.8
              * Add capability to read NetCDF files in input switch
                IFILE.
 
     (8)  PE_initial.F:
            version 7.8
              * Add call to new routine GET_CDFDAT which read input
                NetCDF fields.

     (9)  pi_netcdf.h:
            version 7.8
              * Add new parameters associtiated with input NetCDF fields
                to the common block.

     (10) readcdf:
            version 7.8
              * NEW routine which is used to read a NetCDF field.

     (11) All other relevant codes are upgrated to VERSION 7.8.


**** March 17, 1995:  (tranport arround islands and along coastal segments.

     (1)  cgpois1.f:
            version 7.9
              * Routine is re-structured to set transport around islands
                and at open segments.

     (2)  cstseg.h
            version 7.9
              * Add new variables CSMASK, CVAL, CVALIS, CVALOPN, ICVALIS,
                NOPNSEG, NPTSOPN, and OPENSEG to the common block.

     (3)  defcdf.f:
            version 7.9
              * Add tranport filename for island and open segments to
                global attribute.
              * Activate definitions for JOB=3
              * Write NISLE to the NetCDF file.  Write a zero value.
                The PE model cannot handle islands by boxes.  However,
                it can handle by coastal segments.

     (4)  get_land.f:
            version 7.9
              * Add checking of number of segments and island against
                those specified in the parameter statement.

     (5)  get_parm.f:
            version 7.9
              * Add reading of new file for the tranport around islands
                and open segments.
              * Re-number statements.

     (6)  iounits.h:
            version 7.9
              * Increment dimension of array FNAME to 9.  Add filename
                for transport around islands and open segments.
              * Add new variable ISLINP.

     (7)  inside.f:
            version 7.9
              * New routine used in TRANSBDY to determine is the coastal
                segments are bounded.

     (8)  Makefile.cray Makefile.iris Makefile.sun3 Makefile.sun4
            version 7.9
              * Add new routine INSIDE.
              * Add "cstseg.h" to "get_parm.o" depensdencies.

     (9)  meants.h:
            version 7.9
              * Increment dimension of array TSZ to NZ+2.

     (10) param_tmp.h
            version 7.9
              * The input parameter statement "param.h" it is removed
                from the SCCS. The template parameter file "param_tmp.h"
                is loaded instead.  This allow the changing of "param.h"
                outside of the SCCS system.

     (11) PE_initial.F:
            version 7.9
              * Modify some logical statements in order to activate
                JOB=3 (diagnostic initialization).

     (12) pe_initial.in:
            version 7.9
              * Add new input filename for the specification of the
                transport around islands and open segments.
              * Upgrate documentation.

     (13) readtopo.f:
            version 7.9
              * Remove call to EXITUS.  Use STOP instead.  This is to
                allow READTOPO to be used in the program COAST.

     (14) set_land.f:
            version 7.9
              * Rename variable "landT" to "landt".
              * Add reporting of LANDV as used in PE_INITIAL and in
                similar way to LANDT.
              * Renumber statements.

     (15) All other relevant codes are upgrated to VERSION 7.9.

**** April 28, 1995:  Rename NetCDF variables so input and output field
                      names to the PE model are the same.

      (1) defout.f:
            version 7.10
              * Define new dimension and variable "time0" for initial fields.
              * NetCDF varaibles renamed from VINI to VCLIN, PINI to PBAR,
                and TRC#INI to TRC#.  These variables have now a time
                dimension.  This is done to have input and output 
                variables to the PE model with the same NetCDF variable
                name.

      (2)  Makefile.cray Makefile.iris Makefile.sun3 Makefile.sun4
            version 7.10
              * Remove C-preprocessing option "P" from CPPFLGAS.  This
                option in now included in the definition of macro
                CPP.
 
      (3) put_init.f:
            version 7.10
              * Modify rational to writing initial fields; add the time
                dimention when writing to the NetCDF file.

      (4) pi_netcdf.h:
            version 7.10
              * Add new NetCDF IDs TIME0DIM and TIMEOID.
              * Increment parameter MAXTRC from 6 to 7.
              * Add detritus variable to TNAME array.

      (5) All other relevant codes are upgrated to VERSION 7.10.


****  August 8, 1995:  Restructure package to read GRIDS NetCDF file.
                       Add spherical (unrotated and rotated) grids
                       capability.  Convert some two dimensional array
                       to one dimension.

      (1) ageovel.f:
            version 7.9
              * Obsolete routine removed. This routine uses NCAR's
                Poisson solver fot the velocity potential.  It is
                difficult to accomodate the spherical metric terms
                so this rarely used option is eliminated.

      (2) cgpois.f:
            version 7.11
              * Include general metric terms into Laplacian.
              * Split routine OP.

      (3) cgpois1.f:
            version 7.11
              * Include general metric terms into Laplacian.
              * Split routine OP1.

      (4) coast.f:
            version 7.9
              * Program to process Land/sea mask data is removed
                from mother SCCS.  This package is now located in
                the subdirectory "Mask".

      (5) cstseg.h:
            version 7.11
              * Convert arrays CSMASK, ISMASK, LANDT, and
                LANDV to one dimension.

      (6) curflds.h:
            version 7.11
              * Convert arrays PBAR, UBAR, and VBAR to one dimension.

      (7) defcdf.f:
            version 7.11
              * Added coordinate flag COORD.
              * Flag for state of NetCDF output file.
              * POBSERR renamed to PBARERR for consistency with
                PE model versions 7.27 and higher.
              * Accomodate removal of land mask file
              * Write number of islands as zero.  Values greater than
                zero will activate code in the PE model that is not
                working yet.  Recall that the PE model has a redundacy
                in the specification of the number of islands. They
                are also specified via coastal segments.

      (8) exitus.F:
            version 7.11
              * New GRIDS NetCDF file.
              * Flags for states of NetCDF files.

      (9) external.f:
            version 7.11
              * Include general metric terms into laplacian and vorticity.
              * Modify rational from two to one dimensional arrays for
                statements involving LANDV, LANDT, UBAR, VBAR, and PBAR.

     (10) filter.f:
            version 7.11
              * Change dimension of local array G.  Dimension parameters
                NX and NY are obsolete.

     (11) fsave.f:
            version 7.11
              * Modify rational from two to one dimensional arrays for
                statements involving LANDV.

     (12) get_cdfdat.f:
            version 7.11
              * Add capability to reading dyanmic height from input
                NetCDF file.  The dynamic height is scaled to
                streamfunction.  Notice conversion scale.

     (13) get_data.f:
             version 7.11
               * Suppress call to SCALEH.

     (14) get_land.f:
            version 7.9
              * Obsolete routine removed.

     (15) get_parm.f:
            version 7.11
              * Eliminate overlap with new GRIDS NetCDF file.
              * Accomodate removal of AGEOVEL.
              * Accomodate removal of coastal switch and land mask file
                from input script.
              * Corrected reporting of Coriolis adjustment.
              * Protected against illegal array access.
              * Remove wrong value for JOB=2.  PE_initial does not
                process forcing fields. Previous option JOB=4 becomes
                JOB=2.
              * Move option IFILE=3 to IFILE=0.
              * Modify rational from two to one dimensional arrays for
                statements involving H, UBAR, and VBAR.

     (16) grddat.h:
            version 7.11
              * NEW common block for metric coefficients and other grid
                data.

     (17) header_fm.f:
            version 7.11
              * Check domain against new GRIDS NetCDF file.

     (18) header_qg.f:
            version 7.11
              * Check domain against new GRIDS NetCDF file.

     (19) hybrid.h:
            version 7.11
              * Modify rational from two to one dimensional arrays for
                statements involving HV.
              * Document common block.

     (20) iounits.h:
            version 7.11
              * Co-opted topography file for GRIDS file (fname(5)).
              * Accomodate removal of land mask file.

     (21) Makefile.cray Makefile.iris Makefile.sun3 Makefile.sun4:
            version 7.11
              * Update documentation.
              * Add global compiling macros.
              * Accomodate removal of dead files
                (including removal of NCAR's Poisson solver)
              * Accomodate addition of new files: OP, OP1, READ_GRIDS,
                and TRANSBDY.
              * Forgotten files/routines: INSIDE and INTERP.

     (22) moddat.h:
            version 7.11
              * Add new variable COORD.

     (23) oldflds.h:
            version 7.11
              * Modify rational from two to one dimensional arrays for
                statements involving PBAROLD, UBAROLD, and VBAROLD.

     (24) op.f:
            version 7.11
              * NEW routine splited from "cgpois.f".
              * Include general metric terms.

     (25) op1.f:
            version 7.11
              * NEW routine splited from "cgpois1.f".
              * Include general metric terms.

     (26) opencdf.f:
            version 7.11
              * Flag for state of NetCDF input file.
              * Check domain against new GRIDS NetCDF file.

     (27) param_tmp.h:
            version 7.11
              * Remove horizontal dimension parameters NX and NY.
                Provide number of horizontal points in NP.

     (28) PE_initial.F:
            version 7.11
              * Accomodate removal of AGEOVEL.
              * Write beta-plane correction independent of coordinate
                system.
              * Take data statements from "pi_netcdf.h".
              * Rename IFILE=3 to IFILE=0 and JOB=4 to JOB=2.

     (29) pe_initial.in:
            version 7.11
              * Eliminate overlap with new GRIDS NetCDF file.
              * Accomodate removal of AGEOVEL.
              * Remove coastal switch and land mask file.

     (30) pi_netcdf.h:
            version 7.11
              * Add IDs for new GRIDS input NetCDF file.
              * Flags for states of NetCDF files.
              * Remove initialization of TNAME from common block;
                move data statements to "PE_initial.F".

     (31) psibar.f:
            version 7.11
              * Modify rational from two to one dimensional arrays for
                statements involving PBAR.

     (32) put_bry.f:
            version 7.11
              * Modify rational from two to one dimensional arrays for
                statements involving UBAR, UBAROLD, VBAR, VBAROLD,
                PBAR, PBAROLD, LANDT.
              * Include general metric terms.
              * Add synchronization of NetCDF data to disk.

     (33) put_init.f:
            version 7.11
              * Modify rational from two to one dimensional arrays for
                statements involving PBAR.
              * Add synchronization of NetCDF data to disk.

     (34) readcdf.f:
            version 7.11
              * Fix the computaion of LEVAR.

     (35) read_grids.f:
            version 7.11
              * NEW routine to read GRIDS NetCDF file.

     (36) readtopo.f:
            version 7.9
              * Obsolete file removed.

     (37) setdepths.f:
            version 7.11
              * Computation of flat thicknesses removed.
              * Modify rational from two to one dimensional arrays for
                statements involving H and HV.

     (38) set_land.f:
            version 7.11
              * Modify rational from two to one dimensional arrays for
                statements involving LANST, LANDV, and ISMASK.

     (39) swapdata.f:
            version 7.11
              * Modify rational from two to one dimensional arrays for
                statements involving UBAR, UBAROLD, VBAR, VBAROLD, PBAR,
                and PBAROLD.

     (40) switches.h:
            version 7.11
              * Add logical switch LWRTDYNHT.

     (41) transbdy.f:
            version 7.11
              * NEW routine splited from "cgpois1.f".
              * Correct dimension of XB and YB.
              * Modify rational from two to one dimensional arrays for
                statements involving ISMASK and CSMASK.

     (42) velocity.f:
            version 7.11
              * Include general metric terms.
              * Change extrapolations to second order (Loops 40 and 50).
              * Accomodate removal of AGEOVEL.
              * Modify rational from two to one dimensional arrays for
                statements involving UBAR, VBAR, UMEAN, VMEAN, and PBAR.

     (43) vertgrid.f:
            version 7.11
              * Modify rational from two to one dimensional arrays for
                statements involving H and HV.

     (44) zdat.h:
            version 7.11
              * Document common block.
              * Modify rational from two to one dimensional arrays for
                statements involving H.

     (45) All other relevant codes are upgrated to VERSION 7.11.


****  August 8, 1995: 

        Version 8.1
          * All files from version 7.11 are moved to version 8.1.
          * All routines *.f are copied to *.F and loaded into the SCCS.
          * The parameter and include files are included during
            C-preprocessing.
          * Add new routine DAY_CODE and rewrite routine GET_DATE.
          * Add new C-preprocessing options: RMCOMMENTS and RMDOCINC.
          * Add new include file "qgfldid.h" and update "pefldid.h".
            Use the field IDs defined in these include files.
          * Replace program RMBLKLINES with that used in the PE model.
          * Re-structure routines FSAVE, PUT_BOUNDRY, PUT_INIT to write
            data into output NetCDF file as volume instead of slabs
            to avoid to many call to NetCDF routines.
          * The parameter file "param.h" is included as <param.h> to force
            CPP to use the "param.h" in the directory specified in the
            in the makefile.  This allows to compile the package in other
            directories without the source code in it.


 ***  July 25, 1996:

      Version 9.1:

       * All UNIX make files changed to GNU makefiles.  This handles
         the alternate directory paths better and much more uniformly
         than version 8.1.  Names changed from Makefile.* to
         GNUmakefile.*

       * All CPP include directives delimited with " " changed to
         being delimited with < >.

      (1) GNUmakefile.alpha
           * New makefile (GNU) for DEC ALPHA machine.

      (2) GNUmakefile.rs6000
           * New makefile (GNU) for IBM RS-6000 machine.

      (3) PE_initial.F
           * Beta-plane correction moved to routine velocity.

      (4) VMSmakefile.com
           * A "Makefile" type script for VMS systems (untested).

      (5) avg_isle.F   (new)
           * New "routine" to compute average transport streamfunction
             along island coastal segment.

      (6) baropar.h   (new)
           * New common block to contain barotropic computation parameters.

      (7) blkdat.F   (new)
           * New "routine" to initialize some common blocks.

      (8) cgpois.F
           * Correct convergence criteria.

      (9) cgpois1.F
           * Correct convergence criteria.

      (10) defcdf.F
           * Accept version information from common block.
           * Correct long name for OERRMAX
           * Document order of boundary conditions in netCDF file.

      (11) exitus.F
           * Close surface of no-motion netCDF input file.

      (12) external.F
           * Control "weighting" of barotropic estimate.

      (13) fdiagn.F
           * Allow flushing of standard output.

      (14) get_cdfdat.F
           * Read standard deviations for rescaling error.
           * Generalized tracer input to names based on array TNAME.

      (15) get_data.F
           * Use new tracer and tracer error field identifier arrays.

      (16) get_parm.F
           * Only open hex-file if it IS a hex-file.
           * Write date and version number in echo file.
           * Only initialize tracer names that are different from blkdat set.
           * Updated for additional barotropic options.
           * Move checking of model levels against data levels to SETDEPTHS.
           * Allow flushing of standard output.

      (17) headln.F   (new)
           * New routine to write date and version number on echo file.

      (18) intrp2d.F   (new)
           * New routine to interpolate volume data onto a surface.

      (19) iounits.h
           * Storage for name of surface of no-motion netCDF input file.

      (20) obserr.h
           * Add RMS deviation scaling for error fields.

      (21) opencdf.F
           * Compute input depths from input thicknesses if necessary.
           * Set implicit total input depth ZBOT.

      (22) pe_initial.in
           * Updated for additional barotropic options.

      (23) pi_netcfd.h
           * Correct declaration of variable TNAME.
           * ID and Flag for surface of no-motion netCDF input file.

      (24) psibdy.F   (new)
           * New routine compute boundary condition for inversion of
             transport streamfunction from desired barotropic velocities.

      (25) read1cdf.F   (new)
           * New routine to read in 1D (spatial) from netCDF file.

      (26) rmblklines.FF   (new)
           * New program to remove C Pre-Processing blank lines when
             compiling codes.

      (27) save.F
           * Use new tracer error field identifer array.

      (28) scale_err.F   (new)
           * New routine to nondimensionalize dimensional error fields.

      (29) set_baro.F   (new)
           * New routine to reset barotropic velocities with topographic
             steering.

      (30) set_psi.F   (new)
           * New routine to reset reference depth for dynamic height.

      (31) set_oerr.F
           * Remove unnecessary loop in setting transport streamfunction
             errors.

      (32) setdepths.F
           * Correct boundary computations for hv.
           * Correct checking of model levels against data levels.
           * Allow flushing of standard output.

      (33) switches.h
           * Add flag to indicate necessity of rescaling error fields.
           * Updated for additional barotropic options.
           * Add arrays of tracer & tracer error field identifiers for
             hexadecimal input.

      (34) transbdy.F
           * Change method for setting stream function.
           * Automatic streamfunction along island coast now from average
             value, not first.

      (35) velocity.F
           * Beta-plane correction after differencing.
           * Call SET_BARO to set barotropic velocities.
           * Call PSIBDY to set boundary conditions for inversion of
             transport streamfunction.

      (36) version.h   (new)
           * New common block to contain version data.


 ***  August 8, 1996:

      Version 9.2:

      (1) GNUmakefile.*
           * New compilier option -Dreset_h.

      (2) blkdat.F
           * New version number and release date.

      (3) defcdf.F
           * Optional variable name for topography depending upon -Dreset_h.

      (4) setdepths.F
           * Reset topography for new fluxes (PE 8.3) depending upon -Dreset_h.

      (5) wrtdump.F
           * New output format.

      (6) zdat.h
           * Storage for old topography depending upon -Dreset_h.


 ***  December 12, 1996:

      Version 9.3:

      (1) GNUmakefile.*
           * Dependency for "read1cdf.f" added.
           * Change "vaxdate" to "decdate".
           * Ensure output of cpp is directed to local directory.
           * Add rmblklines to items deleted by clean.
           * Protect against GNU make aborts from ill-defined vpaths (includes)
           * Consistent with code changes.

      (2) GNUmakefile.alpha
           * "-Ddecdate" added to default CPPFLAGS.
           * "-O4" added to default FFLAGS.

      (3) GNUmakefile.rs6000
           * Compilier option to increase memory limit.

      (4) *.com
           * Change vaxdate to decdate
           * Consistent with code changes.

      (5) PE_initial.F
           * Support creation of horizontally uniform T,S from profile.
           * Support creation of QG streamfunction from T,S fields.
           * Support non-re-referencing of QG streamfunction.
           * Correct debugging output of flat T,S fields.

      (6) blkdat.F
           * New version number and release date.

      (7) cgpois.F
           * Correct management of ITERMAX.

      (8) external.F
           * Allow for DX not equal to DY.
           * Remove unused filtering.
           * Remove buffering at coastal nodes.
           * Add option for switching topographic weighting.

      (9) get_date.F
           * Change "vaxdate" to "decdate".
           * Protect against misnavigation of blank date string.

      (10) get_parm.F
           * Add "status='unknown'" to OPEN statement at line 207.
           * IF statement at line 47 changed to test IFILE not JOB.
           * Move reading of external mode components to VELOCITY.
           * Support creation of horizontally uniform T,S from profile.
           * Support creation of QG streamfunction from T,S fields.
           * Support non-re-referencing of QG streamfunction.
           * Support additional option in setting barotropic PSI BC's.

      (11) get_trc.F
           * Protect array indexing for small values of MT.

      (12) get_unif.F   (new)
           * New file to set up horizontally uniform T,S fields.

      (13) iounits.h
           * Increase length of file names to 80 characters.

      (14) opencdf.F
           * Remove extra commas in FORMAT statements 901, 902 and 906.

      (15) pefldid.h
           * Document variables TFERID, TID and TOERID.

      (16) pe_initial.in
           * Support creation of horizontally uniform T,S from profile.
           * Support creation of QG streamfunction from T,S fields.
           * Support non-re-referencing of QG streamfunction.

      (17) psibdy.F
           * Slow down barotropic velocity along boundary at deep points.

      (18) read_surfnm.F   (new)
           * New routine to read variable surface of no motion.

      (19) set_baro.F
           * Change method of dealing with zero slopes.

      (20) set_land.F
           * Add "status='unknown'" to OPEN statements at lines 85 & 86.

      (21) set_oerr.F
           * Ensure errors are in the range [0 , 1].

      (22) set_psi.F
           * Move reading of variable reference surface to READ_SURFNM.

      (23) state_ini.F   (new)
           * New routine to compute density from T,S,Z.

      (24) switches.h
           * Support creation of QG streamfunction from T,S fields.
           * Document creation of horizontally uniform T,S from profile.
           * Document non-re-referencing of QG streamfunction.

      (25) transbdy.F
           * Direct some of the debugging output to a second file.

      (26) ts2psi.F   (new)
           * New routine to compute QG streamfunction from T,S fields.

      (27) velocity.F
           * Support creation of horizontally uniform T,S from profile.
           * Read imposed barotropic components.



 *** March 6, 1997:
 
      Version 9.4:

      (1) GNUmakefile.*
           * Consistent with current changes.
           * Temporary CPP option "cjl_weight" is a winner.
           * Temporary CPP option "cjl_renorm" is a winner.
           * Temporary CPP option "vel_conv" is a winner.
           * Set CPP option "unesco" as a default choice.

      (2) GNUmakefile.sun5   (new)
           * New GNUmakefile for SUN Ultra systems.

      (3) PE_initial.F
           * Allow for filtering of tracers on PE model levels.

      (4) blkdat.F
           * Update version data.
           * Temporary CPP option "vel_conv" is a winner.

      (5) cgpois.F
           * Temporary CPP option "vel_conv" is a winner.

      (6) cgpois1.F
           * Temporary CPP option "vel_conv" is a winner.

      (7) external.F
           * Tighten convergence requirements.
           * Temporary CPP option "cjl_weight" is a winner.
           * Temporary CPP option "cjl_renorm" is a winner.

      (8) fdiagn.F
           * Enable reporting of bathymetry statistics.

      (9) get_parm.F
           * Correct file handling for horizontally uniform initializations.

      (10) psibdy.F
           * Correct sign error in deriving transport streamfunction BC's.

      (11) set_land.F
           * Correct boundaries of ISMASK (loops 90 & 100).

      (12) set_oerr.F
           * Correct limit on loop 41 from kfld to km.
           * Correct limit on loop 150 from km to kfld.

      (13) ts2psi.F
           * Correct scaling for computing velocities.

      (14) velocity.F
           * Correct indexing for setting zero velocities.

      (15) wrtdump.F
           * Use more controlled formatting.


 *** October 10, 1997:
 
      Version 9.5:

      (1) GNUmakefile.*
           * Consistent with current changes.
           * Should now have unique name in search paths

      (2) blkdat.F
           * Consistent version data.

      (3) defcdf.F
           * Allow reactivation of islands in netCDF file.
           * Remove ()s from attribute names.

      (4) external.F
           * Reinstate choices for weighting function in PSIBAR calculation.

      (5) read1cdf.F
           * Allow more room for name of netCDF dimensions.
           * Report insufficient storage correctly.
           * In error messages, change READCDF to READ1CDF.

      (6) readcdf.F
           * Allow more room for name of netCDF dimensions.
           * Test number of vertical levels for insufficient storage.



 *** July 19, 1998:
 
      Version 9.6:

      (1) GNUmakefile.*
           * Consistent with current changes.
           * Should now have unique name in search paths
           * Don't assume "." is in user's path (when using rmblklines)
           * Corrected IRIS (Silicon Graphics) makefile.
           * Improve alternate path search (don't confuse partial matches).
           * Don't supply netcdf.inc  (allows user to specify correct version)

      (2) blkdat.F
           * Consistent version data.

      (3) defcdf.F
           * Allow shift from coordinate transformation point to grid center.

      (4) get_date.F
           * Allow AIX (IBM RS6000) date.

      (5) get_ewpt.F   (new)
           * New routine to determine new equator for rotated spherical grid.

      (6) get_parm.F
           * Allow shift from coordinate transformation point to grid center.
           * Allow full Coriolis in velocity estimates.

      (7) get_trc.F
           * Allow shift from coordinate transformation point to grid center.
           * Check domain parameters against GRIDS values.

      (8) header_fm.F
           * Allow shift from coordinate transformation point to grid center.

      (9) header_qg.F
           * Allow shift from coordinate transformation point to grid center.

      (10) length.F   (new)
           * New routine to determine the length of strings.

      (11) ll2xy.F   (new)
           * New routine to transform from (lat/lon) to (x,y) coordinates.

      (12) moddat.h
           * Allow shift from coordinate transformation point to grid center.

      (13) opencdf.F
           * Allow shift from coordinate transformation point to grid center.

      (14) pe_initial.in
           * Allow full Coriolis in velocity estimates.

      (15) pefldid.h
           * Remove unpaired quote.

      (16) read_grids.F
           * Allow shift from coordinate transformation point to grid center.
           * Allow full Coriolis in velocity estimates.

      (17) rotparm.F   (new)
           * New routine to determine parameters for rotated spherical grid.

      (18) setdepths.F
           * Remove unpaired quotes.

      (19) switches.h
           * Allow full Coriolis in velocity estimates.
           * Remove unpaired quote.

      (20) transport.dat
           * Correct internal documentation.

      (21) velocity.F
           * Allow shift from coordinate transformation point to grid center.
           * Allow full Coriolis in velocity estimates.

      (22) vertgrid.F
           * Make T-grid calculations consistent with those in PE model.

      (23) xy2ll.F   (new)
           * New routine to transform from (x,y) to (lat/lon) coordinates.


 *** January 17, 2000:
 
      Version 9.7:

      (1) GNUmakefile.*
           * Consistent with current changes.

      (2) *.com
           * Consistent with current changes.

      (3) blkdat.F
           * Consistent version data.

      (4) PE_initial.F
           * Compute "mean" tracer fields for Shapiro filtering.
           * Disable Shapiro filtering along sigma coords for JOB=3.

      (5) all_uc.F   (new)
           * New routine to create an upper case copy of a character string.

      (6) cstseg.h
           * Add switch for using external transport streamfunction
             boundary conditions in open domains.

      (7) curflds.h
           * Add storage for "mean" tracer fields.

      (8) defcdf.F
           * On initialization, define "mean" tracer fields to be subtracted
             prior to Shapiro filtering in PE.
           * Test taking both T & V grid topographies & interfaces from GRIDS
             file.

      (9) external.F
           * Increase maximum number of iterations.
           * Allow imposed transport streamfunction boundary conditions
             on open domains
           * Disable scaling of transport streamfunction poisson
             equation for CPP option "ubpsib".  (Note:  This leaves
             only 1 such option with an effective rescaling.

      (10) fdiagn.F
           * Improve tests against overflow.

      (11) get_date.F
           * Set for new century marker.

      (12) get_parm.F
           * Allow imposed transport streamfunction boundary conditions
             on open domains
           * Read uniform field depths before checking depths.

      (13) head_unif.F   (new)
           * New routine to get depth information for uniform initialization.
             Used so depth checking works.

      (14) opencdf.F
           * When looking for depths of input fields (loop 70) use
             correct length for netCDF variable names.

      (15) pi_netcdf.h
           * Add storage for "mean" tracer field identifiers.
           * Test taking both T & V grid topographies & interfaces from GRIDS
             file.

      (16) psibdy.F
           * Remove barotropic velocity slow-down in deep water.
           * Remove disabled test.  Always ensure net transport sums to zero.
           * Remove obsolete constants.
           * Only use interior velocity estimate.
           * Make velocity correction for zero total transport proportional
             to local velocity.

      (17) put_bry.F
           * Ensure continuity between corner BCs and corner ICs for the
             transport streamfunction.

      (18) put_init.F
           * Write "mean" tracers fields at initialization.

      (19) read_grids.F
           * Correct conversions of double sigma parameters.
                - must ALWAYS be in centimeters
                - remove a double negative conversion
           * Test taking both T & V grid topographies & interfaces from GRIDS
             file.

      (20) set_meantrc.F   (new)
           * New routine to compute mean tracer fields.

      (21) set_oerr.F
           * Optional insurance that the error scaling range reported to the
             PE model is at least [0, 1].

      (22) setdepths.F
           * Test taking both T & V grid topographies & interfaces from GRIDS
             file.

      (23) shapmean.F   (new)
           * New routine to subtract/add mean field from/to synoptic field.

      (24) transobdy.F   (new)
           * New routine to impose transport streamfunction boundary values
             in an open domain.

      (25) ts2psi.F
           * Correct loop 20: km->kfld
           * Ensure zm & zfld have same sign & units

      (26) vertgrid.F
           * Test taking both T & V grid topographies & interfaces from GRIDS
             file.

      (27) zdat.F
           * Test taking both T & V grid topographies & interfaces from GRIDS
             file.


 *** August 4, 2000:
 
      Version 9.8:

      (1) GNUmakefile.*
           * Consistent with current changes.

      (2) PE_initial.F
           * Include Dusenberry biology.

      (3) bess1d.F   (new)
           * New routine for 1D, cubic interpolation.

      (4) bess2d.F   (new)
           * New routine for 2D, cubic interpolation.

      (5) bess2d_pmsk.F   (new)
           * New routine for 2D, cubic interpolation of streamfunction
             in the presence of land.

      (6) blkdat.F
           * Update version data.
           * Include Dusenberry biology.
           * Remove unused variable BTHINP.

      (7) cstseg.h
           * Allow for iterative reset of island values.

      (8) defcdf.F
           * Record local box thicknesses.

      (9) exitus.F
           * Allow for use by multiple programs.
           * Close all I/O files (not just netCDF files).

      (10) external.F
           * consistent with changes to TRANSOBDY.F.
           * Allow for iterative reset of island values.

      (11) fdiagn.F
           * Include Dusenberry biology.

      (12) get_dom.F  (new)
           * New routine to get domain data.

      (13) get_pbar.F  (new)
           * New routine to get transport streamfunction.

      (14) get_opn.F  (new)
           * New routine to find indices defining an open segment.

      (15) get_parm.F
           * Include Dusenberry biology.
           * Convert coastal tests to agree with rest of the code.

      (16) get_trc.F
           * Include Dusenberry biology.

      (17) get_unif.F
           * Include Dusenberry biology.

      (18) hybrid.F
           * New storage for thickness-based vertical grid.

      (19) intrp_pbar.F  (new)
           * New routine to interpolate transport streamfunction to
             open boundary segments.

      (20) iounits.h
           * Remove unused variable BTHINP.
           * Remove unused parameter NAMELEN.

      (21) make_transbdy.F (new)
           * New extract transport streamfunction boundary conditions
             from a previous PE_initial run.  Used to initial for
             nested domains.

      (22) mktby_data.F (new)
           * New routine to get raw data needed by MAKE_TRANSBDY.

      (23) mktby_parm.F (new)
           * New routine to get run parameters needed by MAKE_TRANSBDY.

      (24) param.h
           * Include Dusenberry biology.

      (25) pconst.h (new)
           * New include file to define numerical parameters.

      (26) pefldid.h
           * Include Dusenberry biology.

      (27) pi_netcdf.h
           * Include Dusenberry biology.

      (28) psibar.F
           * Under CPP option "gridavg", use saved thicknesses.

      (29) reset_isle.F  (new)
           * New routine to reset island values based on solution where
             those islands were ignored.  Also resets working arrays for
             conjugate gradien routine.

      (30) set_meantrc.F
           * Slight reduction in averaging scale.

      (31) set_pmask.F  (new)
           * New routine to set-up mask for initializing transport
             streamfunction on coasts & in land.

      (32) setbyclsd.F  (new)
           * New routine to reset open boundary segements by supplied
             values for the coasts.

      (33) setbyopn.F  (new)
           * New routine to reset open boundary segements by supplied
             values along the open segments.

      (34) setclsd.F  (new)
           * New routine to reset closed boundary segements by values
             at the ends of the open segments.

      (35) spline.F
           * Use constants as in PE version.

      (36) splint.F
           * Use constants as in PE version.

      (37) transbdy.F
           * Simplify logic.
           * Allow for iterative reset of island values.

      (38) transobdy.F
           * Reset IC array in addition to forcing/BC array.

      (39) transport.dat
           * Update documentation.
           * Update sample value for OPENSEG.

      (40) trc_names.F
           * Include Dusenberry biology.

      (41) velocity.F
           * Under CPP option "gridavg", use saved thicknesses.

      (42) vertgrid.F
           * Compute vertical grid based on thicknesses.

      (43) vertgrid_old.F  (new)
           * New routine to maintain old method of computing vertical grid.

      (44) wrt_transbdy.F (new)
           * New routine to write transport streamfunction boundary condition
             file.

      (45) xtr_psiby.F (new)
           * New routine to extract transport streamfunction boundary data.


 *** November 20, 2000:
 
      Version 9.9:

      (1) GNUmakefile.*
           * Consistent with current changes.
           * Only allow "registered" CPP options.

      (2) *.com
           * Consistent with current changes.

      (3) PE_initial.F
           * Remove printing of IDBUG information.
           * Remove filtering of tracer fields along terrain-following levels.
           * Define output netCDF file before processing first fields.

      (4) blkdat.F
           * Update version data.
           * Consistent with current changes.
           * Initialize new common block in PEFLDID.H.

      (5) check_depths.F  (new)
           * New routine to compare model levels with supplied data levels.

      (6) defcdf.F
           * Make CPP option "gridavg" the default.  Put the contrary
             under the new CPP option "gridold".
           * Add parameters describing recomputation of velocity fields.

      (7) external.F
           * Remove printing of IDBUG information.
           * Correct construction of V-component of final barotropic velocity.

      (8) get_cdfdat.F
           * Move save statement before data statement. (ANSI compliance)

      (9) get_data.F
           * Move save statement before data statement. (ANSI compliance)

      (10) get_parm.F
           * Consistent with SET_LAND.
           * Remove pre-spacing TAB. (ANSI compliance)

      (11) get_trc.F
           * Move save statement before data statement. (ANSI compliance)

      (12) inside.F
           * Move save statement before data statement. (ANSI compliance)

      (13) ll2xy.F
           * Move save statement before data statement. (ANSI compliance)

      (14) pe_initial.in
           * Consistent with current changes.

      (15) pefldid.h
           * Make local tracer vectors common.
           * Break-up very long continued statements. (ANSI compliance)

      (16) pi_netcdf.h
           * Make CPP option "gridavg" the default.  Put the contrary
             under the new CPP option "gridold".

      (17) psibar.F
           * Make CPP option "gridavg" the default.  Put the contrary
             under the new CPP option "gridold".

      (18) psibavg.F
           * Remove pre-spacing TAB. (ANSI compliance)

      (19) putdiag.F  (new)
           * New routine to write diagnostic velocity data.

      (20) read_grids.F
           * Make CPP option "gridavg" the default.  Put the contrary
             under the new CPP option "gridold".

      (21) read_surfnm.F
           * Remove printing of IDBUG information.
           * Move save statement before data statement. (ANSI compliance)

      (22) set_land.F
           * Remove printing of IDBUG information.

      (23) set_meantrc.F
           * Add option for un-smoothed mean fields (speed).
           * Convert DFLOAT to DBLE. (ANSI compliance)

      (24) setbyclsd.F
           * Correct setting of boundary values

      (25) setdepths.F
           * Make CPP option "gridavg" the default.  Put the contrary
             under the new CPP option "gridold".
           * Remove printing of IDBUG information.
           * Move comparison of model levels to supplied data levels.
           * Remove pre-spacing TAB. (ANSI compliance)

      (26) swapdata.F
           * Move save statement before data statement. (ANSI compliance)

      (27) velocity.F
           * Make CPP option "gridavg" the default.  Put the contrary
             under the new CPP option "gridold".
           * Add shapiro filtering of velocity on flat levels.
           * Convert IDBUG output to netCDF.

      (28) vertgrid_old.F
           * Move save statement before data statement. (ANSI compliance)

      (29) wrt_transbdy.F
           * Put missing ) in string for output of island values.

      (30) xy2ll.F
           * Move save statement before data statement. (ANSI compliance)

      (31) zdat.h
           * Make CPP option "gridavg" the default.  Put the contrary
             under the new CPP option "gridold".


 *** August 17, 2001:
 
      Version 9.10:

      (1) GNUmakefile.*
           * Consistent with current changes.

      (2) *.com
           * Consistent with current changes.

      (3) blkdat.F
           * Update version data.

      (4) check_depths.F
           * It is no longer an error for the mean TS levels to fail
             to span the model levels.

      (5) defcdf.F
           * Remove YEP_ISLANDS as CPP option, make it always true.
           * Add "protective" fill-values.

      (6) fne_dom.h
           * Add coastal mask for extracting island values.

      (7) get_isval.F   (new)
           * New routine to extract island values in fine domains from
             corresponding coasts in coarse domain.

      (8) get_nbhrs.F   (new)
           * New routine to extract the coarse grid coastal values which
             bound a fine grid point.

      (9) isincrs.F   (new)
           * New routine to determine if fine grid point is contained
             withing coarse mask.

      (10) interp.F
           * Allow actual interpolation routines to handle extrapolation.

      (11) intrp2d.F
           * Allow actual interpolation routines to handle extrapolation.

      (12) lintrp.F
           * Clean code & documentation.

      (13) make_transbdy.F
           * Extract island values from corresponding coasts.

      (14) mktby_data.F
           * Construct coastal mask for extracting island values.

      (15) opencdf.F
           * Check for error fields so DEFCDF defines them.

      (16) putdiag.F
           * Actually write the V-component of diagnostic barotropic velocities.

      (17) read_grids.F
           * Always read the interface variables from GRIDS.

      (18) reset_isle.F
           * Rename variable in preparation for free surface updates.

      (19) set_oerr.F
           * Remove LOCK_ERRRANGE as CPP option, make it always true.

      (20) setclsd.F
           * Rename variable in preparation for free surface updates.

      (21) splint.F
           * Use constant extrapolation.

      (22) transbdy.F
           * Rename variable in preparation for free surface updates.

      (23) ts2psi.F
           * Allow actual interpolation routines to handle extrapolation.

      (24) wrt_transbdy.F
           * Write island values extracted from corresponding coarse coasts.
