[Thread Prev][Thread Next][Index]

Re: [ferret_users] Calculation of Meridional Overturning Circulation



Dear Gary, Russel, Olivier and Ansley,

I've been travelling so was not able to check your suggestions yet 
but thank you very much for your help. Ansley to start with you: 

> Have you looked at plots of the regridded data, and compared with a plot of the data on a curvilinear grid?  Does the regridded data look 
> wrong?  What do you mean that the results are "very different"? Are they way off in character, or in magnitude or what?

Yes the data looks the same after regridding so I guess the CURV_TO_RECT function is not the problem. Attached are 2 plots of the 
global MOC as it should be (calculated by POP) and the MOC that I calculated via meridional velocity VVEL with the Ferret script that I showed in an earlier mail. You see that the 0-contours look very similar and the range of the colour labels is also not far off but still it's obvious that the results are different.

> Another tack you might take is to do the calculation in Ferret on the native curvilinear grid - I the tripolar grid has grid cell edges that one could > create (sum of data* box sizes)/ (sum of box sizes)  being careful to do the calculation with the box sizes in radians and applying a 
> cosine(latitude) correction. 

Oke I did not try this yet but then I will get an x axis with j-values and loose the axis with latitudes in degrees right ?

Then Russel:

I tried your missing values theory e.g. setting missing (land) values to zero. I was very hopeful because my land values were indeed 
not 0 but 9.96e+36 but unfortunately it did not make any difference.

>Also, (though this may be irrelevant since I'm not familiar with POP) is VVEL the true North/South velocity
>or is it the component along the grid?

As far as I know it is indeed the true North/South velocity

>Any contribution due to variable cell thickness (e.g. free surfaces, partial cells) will also be missed using the
>standard Ferret integrations.

>It may be better (but tedious) to perform the integration in a manner consistent with the original code and then
>regrid the result.

Both comments very true and especially the last one. That is why I followed the answer from Gary Strand from NCAR and got in contact 
with Mat Maltrud from LANL. He sent me the piece of Fortran code that Gary mentioned and I'm now finally able to calculate the MOC 
(global, atlantic and indo-pacific) for the POP model of CCSM3. 

Gary, you also said:
> It's also preferable to let POP compute MOC as POP is running, rather than from the output data. POP is more accurate.

That is true but POP then does not calculate the MOC for the Indo-Pacific ocean (the fortran code does) and I really need that. 

Cheers,
-- Michael






 


On Jan 13, 2010, at 12:19 AM, Gary Strand wrote:


It's not easy to compute MOC from CCSM3 POP - we here at NCAR use a piece of Fortran code, to avoid remapping to a regular grid, which can strongly change the answers.

It's also preferable to let POP compute MOC as POP is running, rather than from the output data. POP is more accurate.

On Tue Jan 12, 2010, at 3:29 PM, Kliphuis, M. (Michael) wrote:


Dear ferreter's

I am having big problems in calculating the meridional overturning
for the POP ocean model of CCSM3. POP is defined on a curvilinear
grid so I figured that the way to do this is to first convert this grid
to a rectangular grid with Ferret's CURV_TO_RECT function.
I created a file map_deg_control.nc containing the weights for the
mapping with help of the user's guide.

After that I calculated the MOC with the .jnl script below. It is possible to let POP
output the MOC field so I was able to check if my own calculated MOC
was good but the fields are very different.

I think that something goes wrong with the conversion from curvilinear to
a rectangular grid so I looked for other ways to do this e.g. with NCO or CDO
but I could not find anything.

Are there people who have experience with the calculation of  the MOC for POP output from CCSM3 ?

Kind regards,
Michael

!------------------------------------
! my moc.jnl script
!------------------------------------
! read file containing meridional velocity VVEL
use reversed_rotation_pd.pop.h.0300-01_vvel_world.nc

! Determine velocity on rectangular LON-LAT grid
! Apply mapping to variables
USE "umap_deg_control.nc"
LET vnew = curv_to_rect(VVEL[D=1], map[D=2])
! Save variable + grid to a file
save/clobber/file=basinshelp.nc vnew

! Now determine moc
cancel data/all
cancel var/all
use basinshelp.nc
! divide by 1.e8 for conversion from cm^3/sec to Sv
let vdash = vnew/1.e8

! do the integration
let moc = vdash[x=@din,z=@iin] - vdash[x=@din,z=@din]
shade/nolab moc
contour/ov/nolab moc
label/nou 4 6.5 0 0 .25 MOC (Sv)




Gary Strand





[Thread Prev][Thread Next][Index]

Contact Us
Dept of Commerce / NOAA / OAR / PMEL / TMAP

Privacy Policy | Disclaimer | Accessibility Statement