[MITgcm-devel] lab_sea.hb87 restart problem
Martin Losch
Martin.Losch at awi.de
Wed Nov 14 11:05:36 EST 2007
Hi Jean-Michel,
1. @#$%^&*( pickup for seaice: I will fix the exchange in
seaice_pickup. The cubed sphere or llc grid problem with the corners
needs to be kept in mind (but how). For the LLC grids we usually make
sure that the corners are over land. For the CS510, the ice does not
reach the corners (and will not in near future (o:), but for aqua-
planet and other hypothetical configurations this is an issue and EVP
should not be used until we find a solution with the sigma12 pickup.
How do we keep track of that? Put some error check into the code?
2. macros for exchanges. When and why are they needed?
3. calc_strainrates: I have gone with your solution, because it's the
simplest.
4. testing the pickup
> If we agree to drop few options (globalFiles,
> useSingleCpuIO, startTime, endTime, mdsioLocalDir, pickupSuff,
> mnc pickups) for this restart test, should be able to generate
> automatically a data.tst and do all the steps in 1.
globalFiles, useSingleCpuIO, mdsioLocalDir, pickupSuff, mnc pickups,
can be commented out "sed" in the script, right? likewise starttime
and endtime can be replaced by nIter0 and nTimeSteps according to the
last pickup up that's available (instead of having an nIter0
corresponding to the original starttime, couldn't your script use a
data.tst, that has the "correct" nIter0 in it, so "10" for lab_sea?).
Martin
On 13 Nov 2007, at 19:04, Jean-Michel Campin wrote:
> Hi Martin,
>
> On Tue, Nov 13, 2007 at 11:36:53AM +0100, Martin Losch wrote:
>> Hi Jean-Michel,
>>
>> nice work, now it makes sense:
>> for free slip e12, seaice_shear, and seaice_sigma12 are zero on grid
>> (corner) points that are part of a dry/land cell. In lab_sea this is
>> the case for j=17 and j=1, so e12(:,1)=e12(:,17)=0.
>> The same is (should be) true for i=1 and i=21. For no slip e12 is
>> non-
>> zero on cornerpoints belonging to land and the problem you describe
>> (inappropriate exchanges of seaice_sigma12 from j=1 to j=sNx+1, etc.)
>> occurs.
>>
> You are right.
>
>> What we really need is a pickup that stores seaice_sigma12(1:sNx
>> +1,1:sNy+1,:,:), right?
>> Actually the exchange of seaice_sigma12 in seaice_pickup is wrong! It
>> should be a Z-exchange. Could you tell me what the correct macro is.
>> I can then fix this.
>
> We don't have the proper IO S/R to do
> the correct pickup (up to sNy+1). Note that we will
> have also a problem on the cube (the 2 missing corners !)
> unless sea-ice is not floating around the corners.
> And when I want to find plenty of exotic EXCH call,
> I look to ini_curvilinear_grid.F. No macro, just:
> CALL EXCH_Z_3D_RL( seaice_sigma12, 1, myThid )
> should do it.
>
>> The quick solution is your suggestion: only use domains that have
>> their solid boundaries in the North and East within the domain. I
>> didn't like the exchange solution, either (and I knew that e12 needs
>> a Z-exchange, was too lazy to look it up), and in fact, it's wrong.
>>
>> Go ahead and add extra parameters to seaice_calc_strainrates
>
> I think I will do the same opration for seaice_calc_viscosities,
> since it's the same set of S/R to modify.
>
>> Yes, in ocean_stress, uIce/vIce should be copied to 4D fields which
>> should then be passed to calc_strain rates. Alternatively one could
>> move the bi/bj-loops out of calc strain rates and then pass only 2D
>> arrays. Sorry about that. What do you prefer?
>>
>> Martin
>>
>
> It's up to you. There is also a 3rd possibility, no copy, but
> require to add the number of "levels" of uIce,vIce as argument
> to S/R seaice_calc_strainrates.F (e.g.: kSize)
> (and inside seaice_calc_strainrates.F, declare those 2 array with
> kSize but only refer to the level 1). This way you don't have
> to change the bi,bj loops, just need to call seaice_calc_strainrates
> with the right kSize.
>
> And regarding the usefullness of a "good" script (like tst1+1)
> to test the restart, I agree, and I think it should be possible
> to avoid the addition of a "data.tst" file (my bad suggestion of
> the other day). If we agree to drop few options (globalFiles,
> useSingleCpuIO, startTime, endTime, mdsioLocalDir, pickupSuff,
> mnc pickups) for this restart test, should be able to generate
> automatically a data.tst and do all the steps in 1.
>
> Cheers,
> Jean-Michel
More information about the MITgcm-devel
mailing list