lp:~fluidity-core/fluidity/doodson

Created by Stephan Kramer and last modified
Get this branch:
bzr branch lp:~fluidity-core/fluidity/doodson
Members of Fluidity Core Team can upload to this branch. Log in for directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Fluidity Core Team
Project:
Fluidity
Status:
Development

Recent revisions

3994. By Stephan Kramer

Merging in trunk.

3993. By Stephan Kramer

Make sure we null-terminate the time_units string passed to c.

3992. By Stephan Kramer

Hook up the days_since_1jan1975 calendar to the option set under /timestepping/current_time/time_units. A warning is given if no time_units is set and a default 1 Jan 1975 is used.

3991. By Stephan Kramer

Start of reimplementation of tidal boundary forcing (and probably also equilibrium tide). Can now compute Greenwich tide at arbitrary datetime.

Movign Tidal_Modelling.F90 to ocean_forcing/ as it's more appropriate there and we can use its tests/ directory.
Supported tidal constituents: K1,O1,Q1,P1,M2,S2,N2,K2,L2,Mm,Mf and SSa (others could easily be added)
Not yet hooked up to actual boundary forcing.

3990. By Stephan Kramer

This adds the -fno-realloc-lhs flag to FCFLAGS and FFLAGS during configure, when using a gfortran that accepts it. This is a work-around for memory leaks caused by gfortran >=4.6, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53389

3989. By Stephan Kramer

Fixing changed dependencies ('make makefiles') since my gmsh commit.

3988. By Jon Hill

Minor change to fldecomp makefile.in to get fldecomp to compile on HECToR. Almost got a fully working build...

3987. By Stephan Kramer

Fixing gmsh reader to read meshes on the sphere (i.e. meshes with topological dimension 2, and coordinate dimension 3).

Also adding a parallel spherical_patch test case that tests this reading, writing out to a checkpoint, and flredecomping to a different number of processes.

Some optimisation and cleaning up of Read_GMSH.F90:
- prevent reading of the gmsh file twice. This was because read_gmsh_simple() called identify_gmsh_file() to establish
various dimensions, which it can only do by reading the entire file. Then an appropriate shape functon was allocated
and read_gmsh_to_field was called which read the file again.
- the only version of read_gmsh_files to remain is the _simple version (as this was the only one in use). It
first reads in all the data, then establishes the necessary dimensions and then allocates the appropriate femtools
objects.
- the dimension of the read gmsh mesh is now established from the topology of the mesh, basically looking at the
highest dimension elements present, i.e. if there's tets or hexes it's 3d, otherwise 2d (1d gmsh reading is untested)
Previously this was done by looking at the z coordinate and seeing if it was small using some arbitray, hard-coded definition
of small. This is obviously not a good idea.
- the dimension of the coordinate field that is returned (X%dim) is in most cases chosen to be the same as
the topological dimension. Only with the /geometry/spherical_earth option this is always 3 so that a 2d spherical
horizontal mesh (to be extruded inside fluidity) can be read. This was broken before. The other codes that use
embedded meshes (shallow water) use a specific option that only works for triangle, so that functionality should
remain unchanged.
- remove identify_gmsh_files()
- because of this remove identify_mesh_files() from the mesh_files module
- in all subroutines of the mesh_files module make format a required argument. Before, if the argument was not present
a "guess" would be made. In some tools where no option tree is present (e.g. test_laplacian) this would always default
to "triangle". These therefore now directly call read_triangle_files. In all other cases the format should be worked
out. For output this can be a bit tricky. For checkpointing the same logic is followed as before (look at the option
under the external mesh). For adaptivity debugging meshes it now always uses gmsh.
- identify_mesh_files() was only used in populate_state, in the case of inactive process (flredecomp from less
to more processes), where inactive processed needed to know the dimensions of the mesh. This is now communicated
via a MPI_Scatter()

3986. By Stephan Kramer

Removing three places with hard-coded values (two different ones) for the radius of the earth. This was all in dead code. Hard-coding this is not a good idea, as the mesh generator may have used another one.

Two more places remain: femtools/projection.cpp and ocean_forcing/climate_reader.cpp, these are used in determining what layer of 3D input data to use. This will be fixed (instead using the outer radius
of the original input mesh coordinates) in the rewrite of the netcdf readers.

3985. By Lawrence Mitchell

Fix null dereference when checking halo types

Logical evaluations aren't necessarily short-circuited when an
argument evaluates to .false., so

   if (associated(foo) .and. (foo%bar == baz))

may dereference foo even if it is unassociated. So don't do it.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:fluidity
This branch contains Public information 
Everyone can see this information.