Welcome to my web suite! If you are reading this file, then you are in the right place: this is the home to the most orthogonal orthogonal curvilinear grids ever! Meaning of files in this directory: xygrid0.nc - contains X,Y-coordinates of "flat" orthogonal curvilinear grid with twice the desired resolution defined on the projection plane. This file (with "0" in its name) is created by "izogrid", https://presentations.copernicus.org/EGU21/EGU21-15325_presentation.pdf and it is precursor to everything else in this directory. norkyst6.in - input file for "izogrid". Basically, it contains genetic code for the future grid: everything else is predetermined by this file. relaxed_grid.nc - multi-record file, containing sequence of X,Y-coordinates of grids with progressively reduced orthogonality error, simply put, xygrid0.nc is just initial condition for a specially designed relaxation procedure, designed to adjust grid-point placement on the perimeter of the grid, then solve Dirichlet problem, measure orthogonality error again, re-adjust perimeter points, and so on - infinite loop, and it takes forever.. Do not expect any visual differences between X,Y from different records: orthogonality errors are too small, even for the initial xygrid0.nc; relax.log - log file of for relaxation procedure. In contains history of maximum negative, maximum positive, and r.m.s. measure for orthogonality error, e.g., 13683 min =-1.3719E-09 max = 2.2753E-09 rms = 5.9921E-10 r_dydx = 0.999985348039 which means that r.m.s. error ~ 6.0E-10 radians is achieved after 13683 iterations, while the extreme values for the entire grid are within the specified bounds. Yes, it is ten ti minus nine, Karl, and I am very proud of it; The last number r_dydx = 0.999985348039 is the ratio of dy(i,j)/dx(i,j) -- it is ratio of grid spacings dy/dx in ETA- and XI-direction. It is close to one, but it is not expected to be exacltly one, however, what is expected is that while dx(i,j) and dy(i,j) have different values in different locations of the grid, changing by an order of magnitute for this particular grid design, their ratio dy(i,j)/dy(i,j) should be constant on the entire grid, and should be equal to this number with great accuracy, and it does. This is nature of conformal mapping - not only orthogonality, but the aspect rations of grid cells are preserved. Everything said avove applies to "flat" xygrid-grids. When flat grid is converted into spherical coordinates, ROMS pm(i,j) and pn(i,j) are almost the same, that is pm(i,j)/pn(i,j)=0.999985348039 (the same number). The reason why r_dydx is not exactly equal to one is because the numbers of grid points are integer numbers, so given, a user specified value of ny, nx is adjusted autmatically to make it as close to one as possible. xygrid1.nc, xygrid2.nc, etc, xygrid.nc - different snapshots of X,Y-coordinates extracted from relaxed_grid.nc - "1" is somewhen near the beginning of the relaxation process; "2" is later; xygrid.nc (without index) is at the end; llgrid.nc - contains spherical lat-lon coordinates, corresponding to X,Ys of the most recent version of "flat" grid (basically xygrid.nc transferred to the surface of the sphere); xymask.nc - land mask corresponding to llgrid.nc; xymask.png - PNG image of xymask.nc produced by ncview -frames, solely for visualization purposes (the only reason why llgrid.nc is needed is to produce xymask.nc, and the only reason why xymask.nc is needed is to generate contour image of coastline in orthogonality error files; orterr0.nc - file containing measure of orthogonality error of xygrid0.nc (hence matching 0 - 0 in both names). Orthogonality error is defined as in slide 56 of IZOGRID presentation above. Essentially it is the cosine of angle of intersection of cubic spline curves drawn through X=X(i,j) and Y=Y(i,j) points of the grid in both principle directions. The error is expressed in radians. The other variables are "isoerror" is isotropy error, or, to be precise, dydeta(i,j)/dxdxi(i,j)-0.999985348039 (same r_dydx ratio). here dxdxi is derivative dx/dxi computed via compact diffferencing method (cubic spline). orterr0.png - visualization of orterr0.n via ncview -frames. orterr0_cbar.pdf - color bar for orterr0.png; orterr1.nc - the same as above, but for xygrid1.nc (early stage in relaxation); orterr1.png orterr1_cbar.pdf orterr2.nc - the same as above, but for xygrid2.nc (early stage in relaxation); orterr2.png orterr2_cbar.pdf orterr.nc - the same as above, but for xygrid.nc (latest stage in relaxation); orterr.png orterr_cbar.pdf roms_grid.nc - ROMS grid file, constructed from xygrid.nc by converting X,Y into lat,lon coordinates for staggered C-grid arrangement (hence half the resolution relatively to xygrid.nc, but having lon_rho,lat_rho and lom_psi,lat_psi. THIS FILE CAN BE USED TO RUN ROMS CODE, provided some editing of land mask and extra steps in topography generation. roms_grid.pdf - visualization of roms_grid.nc roms_grid_res.pdf - map of grid resolution in meters and km. roms_east_angle.pdf - map of angle from local east direction on the Earth to the local direction of XI-coordinate. roms_grid_topo.pdf - map of bottom topography.