[mpas-developers] Proposed Changes to mpas-ocean core

Doug Jacobsen jacobsen.douglas at gmail.com
Thu Sep 8 15:38:06 MDT 2011


Hello All,

We are working on re-factoring the mpas-ocean core right now to add
modularity to the code. I have attached six documents that you can feel free
to examine. There are three types of documents, pdf files, odg files, and
txt files. They all represent the same information in different ways. The
odg files are Open Document Graphics files that I drew in Libre Office draw,
so if anyone wants to edit or add to the diagrams feel free. The pdf
versions are exports of the Libre Office diagrams to allow everyone to view
in that fashion. The txt files are simple text based versions of the diagram
as well which allows another method of editing and viewing. If you want to
make edits to the txt documents and have me update the graphical diagram
please feel free.

Currently the meat of the ocean core takes place inside what it called
module_time_integration.F. In attempt to make the code more readable, and
improve a developers ability to add new parameterizations we are working on
splitting module_time_integration.F into several sub-modules each with a
distinct purpose. The diagrams that are attached allow you to visualize my
proposed modularization of the existing code. Each set of documents has a
CurrentDiagram and ProposedDiagram version, where current is what can
currently be found in module_time_integration, and proposed is what will be
in place after I am finished.

In addition to the changes described, we have discussed changing the actual
file names. The documents attached don't reflect this proposal, but
essentially we would like to change module names from having module_ as a
prefix to having mpas_ as a prefix. This change would allow the addition of
different model components with would have a prefix relevant for the model
they are coming from, i.e. mom_ or something similar.

I will be modifying these documents more for our specific case, and can send
them individually to people if anyone is interested as I progress, but none
of the changes should be drastic enough that the ideas contained are
different.

Please let me know if anyone has questions/comments/suggestions on these
documents.

Doug
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/mpas-developers/attachments/20110908/a5f24d17/attachment-0001.html 
-------------- next part --------------
- module_time_integration
|
| - sub: timestep
|        |
|        | - sub: rk4
                  |
				  | - sub: compute_tend
				  | - sub: compute_scalar_tend
				  | - sub: compute_solve_diagnostics
				  | - sub: compute_vertical_mix_coefficients
				  |        | - sub: equation_of_state
				  |                 | - sub: equation_of_state_jm
				  | - sub: enforce_boundaryEdge
				  | - sub: tridiagonal_solve
				  | - sub: tridiagonal_solve_mult
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CurrentDiagram.pdf
Type: application/pdf
Size: 18130 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/mpas-developers/attachments/20110908/a5f24d17/attachment-0002.pdf 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ProposedDiagram.pdf
Type: application/pdf
Size: 25359 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/mpas-developers/attachments/20110908/a5f24d17/attachment-0003.pdf 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ProposedDiagram.odg
Type: application/vnd.oasis.opendocument.graphics
Size: 14963 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/mpas-developers/attachments/20110908/a5f24d17/attachment-0002.odg 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CurrentDiagram.odg
Type: application/vnd.oasis.opendocument.graphics
Size: 12294 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/mpas-developers/attachments/20110908/a5f24d17/attachment-0003.odg 
-------------- next part --------------
- module_time_integration.F
|
| - module_OcnTimeStep.F
|   |  | - module_OcnTimeStepRk4.F
|   |  | - module_OcnTimeStepHigdon.F
|   |
|   | - sub: compute_tend (could split into compute_tend_u and compute_tend_h)
|   |   | - module_OcnThicknessHadv.F 
|   |   | - module_OcnThicknessVadv.F
|   |   | - module_OcnMomHmix.F
|   |   |   | - module_OcnMomHmixDel2.F
|   |   |   | - module_OcnMomHmixDel4.F
|   |   |
|   |   | - module_OcnMomVmix.F
|   |   |   | - module_OcnMomVmixConst.F
|   |   |   | - module_OcnMomVmixRich.F
|   |   |
|   |   | - module_OcnMomHadv.F
|   |   | - module_OcnMomVadv.F
|   |   | - module_OcnMomCoriolis.F
|   |   | - module_OcnMomPressureGrad.F
|   |   | - module_OcnMomForcing.F
|   |       | - module_OcnMomForcingWindStress.F (could be sub)
|   |       | - module_OcnMomForcingBottomDrag.F (could be sub)
|   |
|   | - sub: compute_scalar_tend
|   |   | - module_OcnTracerHadv.F
|   |   |   | - module_OcnTracerHadv2nd.F
|   |   |   | - module_OcnTracerHadv3rd.F
|   |   |   | - module_OcnTracerHadv4th.F
|   |   |
|   |   | - module_OcnTracerVadv.F
|   |   |   | - module_OcnTracerVadvStencil.F
|   |   |   |   | - module_OcnTracerVadvStencil2nd.F
|   |   |   |   | - module_OcnTracerVadvStencil3rd.F
|   |   |   |   | - module_OcnTracerVadvStencil4th.F
|   |   |   | 
|   |   |   | - module_OcnTracerVadvSpline.F
|   |   |   |   | - module_OcnTracerVadvSpline2nd.F
|   |   |   |   | - module_OcnTracerVadvSpline3rd.F
|   |   |
|   |   | - module_OcnTracerHmix.F
|   |   |   | - module_OcnTracerHmixDel2.F
|   |   |   | - module_OcnTracerHmixDel4.F
|   |   |
|   |   | - module_OcnTracerVmix.F
|   |   |   | - module_OcnTracerVmixConst.F
|   |   |   | - module_OcnTracerVmixRich.F
|   |   |
|   |   | - module_OcnRestoring.F
|   |
|   | - sub: compute_solve_diagnostics
|   | - sub: enforce_boundaryEdge
|   | - sub: compute_vertical_mix_coefficients
|   | - sub: tridiagonal_solve
|   | - sub: tridiagonal_solve_mult


More information about the mpas-developers mailing list