Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

vertical interpolation to the isobaric levels by modifying the mpas_isobaric_diagnostics.F

LZH

New member
Good day,
Thanks for being a help to us newbies.
I am trying to obtain wind components, vertical velocity, potential temperature and geopotential Height at isobaric levels from the MPAS model.
I am trying to achieve this goal by modifying mpas_isobaric_diagnostic.F.
so far, I have made a simple modification,
nIsoLevelsT = 18
nIsoLevelsZ = 18

if (need_t_isobaric) then
t_iso_levels(1) = 10000.0
t_iso_levels(2) = 15000.0
t_iso_levels(3) = 20000.0
t_iso_levels(4) = 25000.0
t_iso_levels(5) = 30000.0
t_iso_levels(6) = 35000.0
t_iso_levels(7) = 40000.0
t_iso_levels(8) = 45000.0
t_iso_levels(9) = 50000.0
t_iso_levels(10) = 55000.0
t_iso_levels(11) = 60000.0
t_iso_levels(12) = 65000.0
t_iso_levels(13) = 70000.0
t_iso_levels(14) = 75000.0
t_iso_levels(15) = 80000.0
t_iso_levels(16) = 85000.0
t_iso_levels(17) = 90000.0
t_iso_levels(18) = 95000.0
end if

if (need_z_isobaric) then
z_iso_levels(1) = 10000.0
z_iso_levels(2) = 15000.0
z_iso_levels(3) = 20000.0
z_iso_levels(4) = 25000.0
z_iso_levels(5) = 30000.0
z_iso_levels(6) = 35000.0
z_iso_levels(7) = 40000.0
z_iso_levels(8) = 45000.0
z_iso_levels(9) = 50000.0
z_iso_levels(10) = 55000.0
z_iso_levels(11) = 60000.0
z_iso_levels(12) = 65000.0
z_iso_levels(13) = 70000.0
z_iso_levels(14) = 75000.0
z_iso_levels(15) = 80000.0
z_iso_levels(16) = 85000.0
z_iso_levels(17) = 90000.0
z_iso_levels(18) = 95000.0
end if
but it doesnot work, the t_isobaric in diagnostic.2021-07-10_00:00:00.nc still have five levels same as the original code.
I cannot figure out the reason.
Is there a way to solve the problem ?

Thank you
 

Attachments

  • mpas_isobaric_diagnostics.F
    56.7 KB · Views: 5
Following the README, I have already written a new Fortran program put in diagnostics, compiled it successfully. but when I run the model, there is an error, that is, ERROR: Requested field t_isobaric2 not available CRITICAL ERROR: xml stream parser failed: streams.atmosphere. t_isobaric2 is indeed a new diagnotic. And I have already put it in the Registry.
 
Sorry, I do not quite understand you question. I can obtain history*****.nc. On one hand, I feel that it would save much time to obtain data while model is running. on the other hand, python script for interpolation is too slow, and I am not very familiar with the Fortran.
 
@LZH I've un-deleted this thread in case others might have an interest in following the discussion. In general, please don't delete threads, especially after others have posted to them.
 
I've attempted to modify the set of isobaric levels for the t_isobaric output diagnostic myself.

1) I've set nIsoLevelsT to 18 in Registry_isobaric.xml
2) I've set the 18 values for t_iso_levels in the interp_diagnostics routine
3) I've then re-compiled and re-run a simulation

It does appear that the 't_isobaric' and 't_iso_levels' variables in the diagnostics files contain the updated set of 18 levels.

> ncdump -h diag.2010-10-23_00.00.00.nc | grep nIsoLevelsT
nIsoLevelsT = 18 ;
float t_isobaric(Time, nCells, nIsoLevelsT) ;
float t_iso_levels(nIsoLevelsT) ;

ncdump -v t_iso_levels diag.2010-10-23_00.00.00.nc
...
t_iso_levels = 10000, 15000, 20000, 25000, 30000, 35000, 40000, 45000,
50000, 55000, 60000, 65000, 70000, 75000, 80000, 85000, 90000, 95000 ;

Note that the nIsoLevelsT dimension and the list of t_iso_levels only apply to the 't_isobaric' variable.
 
I've attempted to modify the set of isobaric levels for the t_isobaric output diagnostic myself.

1) I've set nIsoLevelsT to 18 in Registry_isobaric.xml
2) I've set the 18 values for t_iso_levels in the interp_diagnostics routine
3) I've then re-compiled and re-run a simulation

It does appear that the 't_isobaric' and 't_iso_levels' variables in the diagnostics files contain the updated set of 18 levels.





Note that the nIsoLevelsT dimension and the list of t_iso_levels only apply to the 't_isobaric' variable.
Thank you very much for your reply. Sorry, I just saw it. I have successfully implemented the modification of the isobaric levels using the same method as you mentioned.
 
Top