Merge pull request #1 from kjordahl/master

Added variable declarations
did a little cleaning up of step.f95 and run.py but not much. More will probably happen over time in the process of doing other things.
altered formulation for gradients of slope in the anisodiffusion flag in diffusion.f95. However, I am not sure it is correct quite yet. I want to carefully evaluate the indices used in both h and the grid spacing.
commented out and added thoughts to a bunch of places where there seems to be a hardwired east-west periodic boundary condition. I think the original intent of the code was for global modeling and hence the fact that it is hardwired,  but I am not sure if another boundary condition is needed to replace that one. That is a question to yet be answered.
fixed anisodiffusion calculation for grdx and grdy calculation
Added functionality for isoslice (2d) particle drifters. also working to generalize the run script so that it is easier to use for other applications
changing files a little
updating to have some test cases to run. Currently test1 works and there is a figure to compare with in the examples directory. Still working out some other problems including the s isoslice and 3d options at the moment (something changed just recently causing trouble).
There was a bug when converting the indices back from fortran indexing to python indexing in the run loop. there was also a bug in readfields for a z depth isoslice in which the dzt calculation using isoslice had the input arguments switched in order such that the whole array ended up masked out.
I do not remember what this branch was originally for, but I did some changes in readfields to improve the speed. The interpolation, flipping of arrays, and depth calculations should all be improved for speed if possible.
switched so that choices in run (3d/2d and turbulence/diffusion type) are chosen with flags in run.py instead of through compiler flags. Also worked on a problem in the anisodiffusion scheme.
forgot to do a branch for this. I sorted out some gridding questions, particularly fixed the triangulation object made in readgrid.py to be on a psi grid instead of a rho grid, so that, for example, a drifter in the middle of a cell has the grid-relative position of [something].5, [something].5. I have updated the tests, and made sure that inner walls as well as open numerical boundaries are behaving as expected. Results have been written in document on this.
added savetracks.py for saving track x,y,z,t positions to netcdf file
ordering has been a little more consistently established in the code, though it did not affect any results.
combined python scripts related to input/output into one file, inout.py
moved initiation routines from run.py to init.py for ease of use
I redid the test plots for comparison. Also, I added a check to diffusion.f95 that checks to see if the drifter is on land, and if its new displacement puts it on land, then it calculates a new displacement. With this change, the different subgrid turbulence parameterizations have consistent behavior at the coastline, which is to disallow drifters beaching.
just have changed some of the examples a little
Added location of files, loc, to netcdf save

The location of the model output files used to run the numerical drifters for the simulation, loc, has been added to the function savetracks() for ease of reproducibiliity of results.
Added loc and git hash to particle track save

I can't figure out how to save a string to a netCDF4 variable, so I saved the empty variables 'loc' and 'git_hash' which in their 'long_name' metadata have their descriptions and values. loc has the location of the model output used to move drifters, and git_hash has the unique identifier for the commit version of the code used to do the tracking.