22 |
Initial version. |
Initial version. |
23 |
</revremark> |
</revremark> |
24 |
</revision> |
</revision> |
25 |
|
<revision> |
26 |
|
<revnumber>0.02</revnumber> |
27 |
|
<date>2010-01-21</date> |
28 |
|
<authorinitials>jmc</authorinitials> |
29 |
|
<revremark> |
30 |
|
update links. |
31 |
|
</revremark> |
32 |
|
</revision> |
33 |
</revhistory> |
</revhistory> |
34 |
|
|
35 |
<abstract> |
<abstract> |
45 |
<sect2> |
<sect2> |
46 |
<title>New Versions of This Document</title> <para>You can |
<title>New Versions of This Document</title> <para>You can |
47 |
obtain the latest version of this document <ulink |
obtain the latest version of this document <ulink |
48 |
url="http://mitgcm.org/dev_docs/devel_HOWTO/">online</ulink> in |
url="http://mitgcm.org/public/docs.html">online</ulink> in |
49 |
various formats.</para> |
various formats.</para> |
50 |
</sect2> |
</sect2> |
51 |
<sect2> |
<sect2> |
64 |
<title>User Manual</title> |
<title>User Manual</title> |
65 |
|
|
66 |
<para>Before jumping into development, please familiarize yourself with |
<para>Before jumping into development, please familiarize yourself with |
67 |
the <ulink url="http://mitgcm.org/docs.html"> MITgcm user manual |
the <ulink url="http://mitgcm.org/public/docs.html"> MITgcm user manual |
68 |
</ulink>. This document contains volumes of useful information and is |
</ulink>. This document contains volumes of useful information and is |
69 |
included here by reference.</para> |
included here by reference.</para> |
70 |
|
|
138 |
e|- tools |
e|- tools |
139 |
?| tutorial_examples documented tests |
?| tutorial_examples documented tests |
140 |
| only populated on release1 branch |
| only populated on release1 branch |
141 |
| and not validated during "testscript" |
| and not validated during "testreport" |
142 |
'- utils |
'- utils |
143 |
verification std tests |
verification std tests |
144 |
|
|
190 |
<title>Branches</title> |
<title>Branches</title> |
191 |
|
|
192 |
<para>As shown in the online <ulink |
<para>As shown in the online <ulink |
193 |
url="http://dev.mitgcm.org/cgi-bin/viewcvs.cgi/MITgcm/doc/tag-index?graph=1.174"> |
url="http://mitgcm.org/viewvc/MITgcm/MITgcm/doc/tag-index?view=graph"> |
194 |
ViewCVS-generated tree</ulink>, the MITgcm codebase is split into to two |
ViewCVS-generated tree</ulink>, the MITgcm codebase is split into to two |
195 |
branches or "lines" under which development proceeds. These two lines are |
branches or "lines" under which development proceeds. These two lines are |
196 |
referred to as the "MAIN" and "ecco" versions of the code. While not |
referred to as the "MAIN" and "ecco" versions of the code. While not |
224 |
|
|
225 |
<listitem> |
<listitem> |
226 |
<para>The developer then runs the <ulink |
<para>The developer then runs the <ulink |
227 |
url="http://dev.mitgcm.org/cgi-bin/viewcvs.cgi/MITgcm/verification/testscript"> |
url="http://mitgcm.org/viewvc/MITgcm/MITgcm/verification/testreport"> |
228 |
testscript</ulink> shell script to see if any problems are introduced. |
testreport</ulink> shell script to see if any problems are introduced. |
229 |
While not intended to be exhaustive, the test cases within the |
While not intended to be exhaustive, the test cases within the |
230 |
verification directory do provide some indication whether gross errors |
verification directory do provide some indication whether gross errors |
231 |
have been introduced. |
have been introduced. |
240 |
<listitem> |
<listitem> |
241 |
<para>adds a "checkpointXY_pre" comment (where X is a checkpoint |
<para>adds a "checkpointXY_pre" comment (where X is a checkpoint |
242 |
number and Y is a letter) to the <ulink |
number and Y is a letter) to the <ulink |
243 |
url="http://dev.mitgcm.org/cgi-bin/viewcvs.cgi/MITgcm/doc/tag-index"> |
url="http://mitgcm.org/viewvc/MITgcm/MITgcm/doc/tag-index"> |
244 |
tag-index</ulink> file and checks it into the CVS |
tag-index</ulink> file and checks it into the CVS |
245 |
repository</para> |
repository</para> |
246 |
</listitem> |
</listitem> |
298 |
$ export CVS_RSH=ssh |
$ export CVS_RSH=ssh |
299 |
$ export CVSROOT=':ext:NAME@mitgcm.org:/u/gcmpack' |
$ export CVSROOT=':ext:NAME@mitgcm.org:/u/gcmpack' |
300 |
$ mkdir scratch |
$ mkdir scratch |
301 |
$ cvs co MITgcm manual mitgcm.org |
$ cvs co -P MITgcm manual mitgcm.org |
302 |
</screen> |
</screen> |
303 |
|
|
304 |
<para>These commands extract the necessary information from the CVS server |
<para>These commands extract the necessary information from the CVS server |
795 |
special command option (see "-command" below) to invoke the MPI |
special command option (see "-command" below) to invoke the MPI |
796 |
executable. Examples of PBS scripts using MPI with testreport can be |
executable. Examples of PBS scripts using MPI with testreport can be |
797 |
found in the <ulink |
found in the <ulink |
798 |
url="http://dev.mitgcm.org/cgi-bin/viewcvs.cgi/MITgcm_contrib/test_scripts/"> |
url="http://mitgcm.org/viewvc/MITgcm/MITgcm_contrib/test_scripts/"> |
799 |
MITgcm-contrib area</ulink></para> |
MITgcm-contrib area</ulink></para> |
800 |
</listitem> |
</listitem> |
801 |
</varlistentry> |
</varlistentry> |
807 |
output.txt" is not sufficient. This option allows a more general |
output.txt" is not sufficient. This option allows a more general |
808 |
command (or shell script) to be invoked. Examples of PBS scripts |
command (or shell script) to be invoked. Examples of PBS scripts |
809 |
using MPI with testreport can be found in the <ulink |
using MPI with testreport can be found in the <ulink |
810 |
url="http://dev.mitgcm.org/cgi-bin/viewcvs.cgi/MITgcm_contrib/test_scripts/"> |
url="http://mitgcm.org/viewvc/MITgcm/MITgcm_contrib/test_scripts/"> |
811 |
MITgcm-contrib area</ulink></para> |
MITgcm-contrib area</ulink></para> |
812 |
</listitem> |
</listitem> |
813 |
</varlistentry> |
</varlistentry> |
991 |
|
|
992 |
#ifdef ALLOW_${PKG} |
#ifdef ALLOW_${PKG} |
993 |
if ( use${Pkg} ) |
if ( use${Pkg} ) |
994 |
& CALL ${PKG}_DIAGS( ) [ or CALL ${PKG}_OUTPUT( ) ] |
& CALL ${PKG}_OUTPUT( ) |
995 |
#endif |
#endif |
996 |
|
|
997 |
7. S/R PACKAGES_WRITE_PICKUP() |
7. S/R PACKAGES_WRITE_PICKUP() |
1037 |
use for e.g. ${PKG}_INI_VARS, ${PKG}_INIT_VARIABLES, or the old |
use for e.g. ${PKG}_INI_VARS, ${PKG}_INIT_VARIABLES, or the old |
1038 |
form ${PKG}_INIT |
form ${PKG}_INIT |
1039 |
|
|
1040 |
- ${PKG}_DIAGS() [or ${PKG}_OUTPUT( ) ] |
- ${PKG}_OUTPUT( ) |
1041 |
is responsible for writing time-average fields to output files |
is responsible for writing time-average fields to output files |
1042 |
(but the cumulating step is done within the package main S/R). |
(but the cumulating step is done within the package main S/R). |
1043 |
Can also contain other diagnostics (.e.g. CALL ${PKG}_MONITOR) |
Can also contain other diagnostics (.e.g. CALL ${PKG}_MONITOR) |
1044 |
and write snap-shot fields that are hold in common blocks. Other |
and write snap-shot fields that are hold in common blocks. Other |
1045 |
temporary fields are directly dump to file where they are available. |
temporary fields are directly dump to file where they are available. |
1046 |
NOTE: 1) ${PKG}_OUTPUT is progressively replacing ${PKG}_DIAGS() |
NOTE: 1) the S/R old name ${PKG}_DIAGS is used in some packages |
1047 |
|
but is beeing replaced by ${PKG}_OUTPUT |
1048 |
to avoid confusion with pkg/diagnostics functionality. |
to avoid confusion with pkg/diagnostics functionality. |
1049 |
2) the output part is not yet in a standard form and might still |
2) the output part is not yet in a standard form and might still |
1050 |
evolve a lot. |
evolve a lot. |
1084 |
* ${pkg}_check.F checks package dependencies and consistencies |
* ${pkg}_check.F checks package dependencies and consistencies |
1085 |
* ${pkg}_init_varia.F initialises package-related fields |
* ${pkg}_init_varia.F initialises package-related fields |
1086 |
* ${pkg}_... .F package source code |
* ${pkg}_... .F package source code |
1087 |
* ${pkg}_diags.F write output to file. |
* ${pkg}_output.F write output to file. |
|
or ${pkg}_output.F write output to file. |
|
1088 |
* ${pkg}_write_pickup.F write a package pickup file to restart the model |
* ${pkg}_write_pickup.F write a package pickup file to restart the model |
1089 |
|
|
1090 |
New: Subroutine in one package (pkgA) that only contains code which |
New: Subroutine in one package (pkgA) that only contains code which |