[ecco-support] [EXTERNAL] Calculating transports with gcmfaces in Matlab

Samar Khatiwala samkat6 at gmail.com
Tue Jun 11 16:08:28 EDT 2024


Hi Ou,

Thanks for replying.

Sorry, my notation wasn't good. My uTrans and vTrans are in fact UVELMASS
and VVELMASS.

If I use your code I get the same T as I did (since you pre mask it by
omitting 'hfac') but T itself looks nothing like what is shown in the
tutorial. So my question was more to do with doing a cumsum on T. It is
done within the python calc_section_stf but not in the Matlab
calc_transport (apart from the cumsum they seem to be doing the same
calculation) and I'm confused by the difference in behavior. If I do a
cumsum on T after calling calc_transport I get something more like in the
tutorial but that could just be accidental and not for the right reason.
What then is the correct way to reproduce the tutorial results using Matlab?

Thanks,

Samar

On Mon, Jun 10, 2024 at 5:09 PM Wang, Ou (US 329B) <ou.wang at jpl.nasa.gov>
wrote:

> Samar,
>
>
>
> What are the two variables uTrans and vTrans in
> T=calc_transports(uTrans,vTrans,mygrid.LINES_MASKS,{'dh','dz','hfac'});?
>
> The names suggest they are transport, but they should be
> UVELMASS.*mygrid.mskW and VVELMASS.*mygrid.mskS.
>
>
>
> You may want to replace
> T=calc_transports(uTrans,vTrans,mygrid.LINES_MASKS,{'dh','dz','hfac'}) with
> the following:
>
> uTrans = UVELMASS.*mygrid.mskW;
>
> vTrans = VVELMASS.*mygrid.mskS;
>
> T=calc_transports(uTrans,vTrans,mygrid.LINES_MASKS,{'dh','dz'});
>
>
>
> Best regards,
>
> Ou Wang
>
>
>
> *From: *ecco-support <ecco-support-bounces at mit.edu> on behalf of Samar
> Khatiwala <samkat6 at gmail.com>
> *Date: *Monday, June 10, 2024 at 2:59 AM
> *To: *ECCO support list, wider membership <ecco-support at mit.edu>
> *Subject: *[EXTERNAL] [ecco-support] Calculating transports with gcmfaces
> in Matlab
>
> Hello,
>
>
>
> I'm trying to reproduce the calculations for the overturning
> streamfunction described on
> https://ecco-v4-python-tutorial.readthedocs.io/ECCO_v4_Example_OSNAP.html
> <https://urldefense.us/v3/__https:/ecco-v4-python-tutorial.readthedocs.io/ECCO_v4_Example_OSNAP.html__;!!PvBDto6Hs4WbVuu7!NGtdgDhELdz3kVixjJCZ0q9D_VYms1T7Hzzy8y1T4DYa0C8LDN7tENkuljBhQzluMQEaUo_MK2G514L6FD8$>
> with the Matlab version of gcmfaces. The OSNAP example described in the
> tutorial uses the python function calc_section_stf which returns 'psi_moc'.
> I can't quite figure out what the equivalent Matlab function is. The
> documentation refers to calc_overturn.m and calc_transports.m, but the
> former returns transports for all (179) quasi-zonal lines, while the output
> of calc_transports is nowhere close to what is plotted in the tutorial.
> After looking through the python code the closest I've gotten is with:
>
>
>
> lonPairs=[-44 -5;-56 -45];
> latPairs=[60 56;51 60];
> names={'OSNAP East','OSNAP West'};
> gcmfaces_lines_transp(lonPairs,latPairs,names);
> T=calc_transports(uTrans,vTrans,mygrid.LINES_MASKS,{'dh','dz','hfac'});
>
> psi_moc=cumsum(T')/1e6;
>
>
>
> But I'm not confident this is correct. Can someone please tell me if this
> is right and if not what the correct way is?
>
>
>
> Thanks,
>
>
>
> Samar
>
>
> _______________________________________________
> ecco-support mailing list
> ecco-support at mit.edu
> https://mailman.mit.edu/mailman/listinfo/ecco-support
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.mit.edu/pipermail/ecco-support/attachments/20240611/a5c7fd58/attachment.htm>


More information about the ecco-support mailing list