----------------------------------------------------------------- Current history file: lev = 29: vertical dimension of interfaces lev(lev): vertical coord array at interfaces (zp = -7 to 7 by 0.5) all fields: (lon,lat,lev,time) There are at least two problems with the current history files: 1) The model calculates some (most) fields at midpoints, and a few fields at interfaces, however, the history provides only one vertical coordinate array, at interfaces. This means fields calculated on the midpoints are presented incorrectly on the history. 2) The bottom interface level (zp -7.0) for T,U,V are calculated separately in the model. This is ok, but they are then stored in the top slot (k=nlevp1, zp=7.25) on the history. This is not obvious and is confusing for anybody not familiar with the histories. ----------------------------------------------------------------- Proposed new history file: Goals: 1) Accurately represent the model results 2) Solve the 2 problems with current history files described above 3) Decouple model and post-processors, i.e., make it relatively easy for an outsider to understand and read the history files without having to use our elaborate post-processors. 4) Conform, at least in part, with the netCDF CF conventions. Provide two coordinate arrays (both dimensioned 29): lev = 29; vertical dimension of fields at midpoints lev(lev); lev: long_name = "level midpoints" (e.g., lev = -6.75 to 7.25 by 0.5) lev: units = "ln(p0/p)" lev: positive = "up" levi = 29: vertical dimension of interfaces levi(levi): levi: long_name = "level interfaces" (e.g., lev = -7 to 7 by 0.5) levi: units = "ln(p0/p)" levi: positive = "up" TN,UN,VN,O2,O,N4S,NO,N2D,OP,O2P,TE,TI: (lon,lat,lev,time) NE,W,Z,POTEN: (lon,lat,levi,time) New variables: double press(lev); press:long_name = "Pressure at midpoints" press:units = "mb" press:positive = "up" double pressi(levi): pressi:long_name = "Pressure at interfaces" pressi:units = "mb" press:positive = "up" double tlbc(lon,lat); tlbc:long_name = "Bottom interface boundary of TN" double ulbc(lon,lat); ulbc:long_name = "Bottom interface boundary of UN" double vlbc(lon,lat); vlbc:long_name = "Bottom interface boundary of VN" dday(time): Decimal day (alternate time coord array) New Field Attributes: cell_method = "zp: interfaces" "zp: midpoints" "zp: unknown" ----------------------------------------------------------------- Proposed new software: Provide short, concise procedures to read a generic TGCM history file, in fortran, IDL, and NCL. These should be written so that they are easy to import into a user's own visualization and analysis software. Provide a command (based on above procedures) to read and print fields from a history file (various options such as interfaces vs midpoints, which variables, slices, etc).