Improvements for the Primitive Equation model

    current suggestions

  1. DOCUMENTATION

  2. Two-way nesting:

  3. Check all netCDF files to make sure that they're of the correct type. (e.g. initialization & assimilation files should come from PE_inintial not OAG). Provide understandable messages when this isn't the case.

  4. Islands:

  5. Changes to tracer balance codes:

  6. In drifter codes:

  7. In vertical diffusivity codes:

  8. Bring back a restart:

  9. In defout.F: A working array is filled with the 2D positions at every requested output level. The problem -- the user can request more levels than exist in model (level numbers > km are interpolated to that depth in meters). This can lead to unpredictable problems with writing beyond array bounds.

  10. In clinic.F & relax.F, the internal documentation suggests that the variable ztd should remain zero under the mask (except for islands). The problem: the boundary condition routines and the nesting don't ensure this.

  11. Remove CPP option gridold. If all vertical specification in current PE_initial output isn't available, construct the necessary fields from what data is available.

  12. CPP option linear_physics does NOT work with biology. The problem is the background profile matrix is always sized tinit(mprof,3) but loops 220 and 230 in tracer.F assume a size of tinit(mprof,nt+1).

  13. PE Biology

  14. Assimilation:

  15. Pressure Gradient Calculation:

  16. Take implicit Coriolis out from the transport relaxation operator. Should be simply a matter of "untwisting" the implicit Coriolis matrix before forming the barotropic vorticity tendency.

  17. Laplacian viscosity/diffusion:

  18. Point tracer sources (CPP option pttrcsrc):

  19. infld.F:

  20. Surface forcing:

  21. For energetics, try using counters to position data in arrays.

  22. Either fix bug (RR96) in boundary relaxation or eliminate that option.

  23. Make a version of PE that can be compiled in "case sensitive" FORTRAN. Use to check for violations of FLOAT/FLoaT rules.

  24. remove restriction that PE model has its arrays dimensioned exactly. This will be especially handy for middle nodes in an extended telescopic nest.

  25. Include Julian starting time in PE output files.

  26. Surface ice. (Actually this isn't nitty-gritty, but I don't have anyplace else to keep it.)

  27. On diagnostic initialization, make sure that NO filtering is done until fields are released.

  28. PE model probably cannot be run with a horizontal grid smaller than 5x5. On a 4x4, jmtm2=2 and wrtcdf clearly fails to write all the information necessary. step MAY not be calling osav all the times it needs either.

    Blasts from the past

  1. (11/94, PFJL) infld.F:

  2. (11/94, PFJL) hvgrid.F:

  3. (11/94, PFJL) for input/output netCDF files, make kc a variable. Don't use iflag(8) to pass it.

  4. (11/94, PFJL) Change masking logic to preventing calculations on land points, not just wiping out the results on them.

  5. (12/94, PFJL) Check xtr_trc, xtr_vel & hvgrid

  6. (12/94, PFJL) "Replace iflag(9) with CPP option dblsigma"

  7. (9/95, PFJL) Request that PE model write velocity data from slab jmt-1 into netCDF output slab jmt as well. Now, the PE just leaves fill values in that slab.