[MITgcm-devel] example of pkg/layers setup for latest MITgcm
Gael Forget
gforget at MIT.EDU
Wed Sep 19 17:27:09 EDT 2012
Ryan,
sorry for the extra work it is going to take to fit your modifs in the
revised pkg/layers. The recent changes should make pkg/layers
more flexible and easier to use/augment though. So hopefully
you will not struggle too much.
My particular motiviation was :
1) not to have to do three runs to diagnoze three types of layers.
2) be able to output using the diagnostics pkg (rather than the custom
timeave/layers code) consistent with what we do for anything else.
Ross had also been modifying pkg/layers to be able to compute the layer
transports online but based on time averaged uv and THETA (I think).
The first change I did was to add the diagnostics stuff (yesterday 5pm30 EDT).
The second change I commited (yesterday 7pm02) is to add Ross' layers_calcflux.F routine,
where the 'meat' of pkg/layers was moved. layers_calc.F now mostly calls layers_calcflux.F
The third change is the one you found the CVS message for, where I added an index
('iLa' in the code loops, with iLa.LE. layers_maxNum, as defined in LAYERS_SIZE.h)
so that one can diagnoze several cases in a single run.
Your changes/additions make sense and I believe are largely in
line with with our thinking here. To be more explicit :
1) the following name changes are nice
C layers_UH :: U integrated over layer (m^2/s) (used to be layers_UFlux)
C layers_VH :: V integrated over layer (m^2/s) (used to be layers_VFlux)
C layers_Hw :: Layer thickness at the U point (m) (used to be layers_HU)
C layers_Hs :: Layer thickness at the V point (m) (used to be layers_HV)
In fact you will see that the variable names used in layers_calcflux.F
and in the diagnostics are quite consistent with the new names.
2) the following additions
C layers_PIw :: 1 if layer exists, 0 otherwise (new)
C layers_PIs :: 1 if layer exists, 0 otherwise (new)
C layers_U :: mean zonal velocity in layer (only if layer exists) (m/s) (new)
C layers_U :: mean meridional velocity in layer (only if layer exists) (m/s) (new)
sounds very close to what Ross was aiming for (as far I understand), and
I suppose he will come back to you in this regard.
3) as far as outputing the results I would encourage you to use pkg/diagnostics
You now have a blue print in layers_diagnostics_init.F / layers_diagnostics_fill.F
and pkg/layers has several advantages (incl. cal and mnc treatments).
Cheers,
Gael
ps : I am moving this thread to the devel list so that it is
documented and can be followed by anyone interested.
On Sep 19, 2012, at 4:37 PM, rpa wrote:
> Gael,
>
> I have recently made some major changes to the LAYERS package that allow you to diagnose new variables in isopycnal coordinates. I was actually just about to email Jean Michel to ask about committing this to CVS. to I was unaware that there was any development going at at MIT. (I get the CVS emails in digest mode and usually don't read them.)
>
> Now we have to versions that are out of sync. What are you guys doing? What is the goal of the code changes? (I cannot find your explanation of the changes in the cvs digest. Would you mind emailing it to me?)
>
> -R
>
>
> On Sep 19, 2012, at 1:19 PM, Gael Forget wrote:
>
>> Hi guys,
>> I commited the planned pkg/layers change to the repository.
>> I explained the revision in some details in the cvs message
>> (e.g. see the mitgcm-cvs email earlier today). In case you
>> want to give it a try, I attach the namelists I used for testing :
>> data.layers (and LAYERS_SIZE.h) sets up three types of
>> layers, and data.diagnostics sets up the output format.
>> Cheers,
>> Gael
>>
>>
>>
>> <data.diagnostics><data.layers>
>> <LAYERS_SIZE.h><DIAGNOSTICS_SIZE.h>
>>
>>
>
More information about the MITgcm-devel
mailing list