-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: CAM SE Manhattan #343
Comments
This shared module seems like it should be a submodule. I think then you do not have to faff about having copies of the namelist options in the shared module. Will finish the split, then try out a submodule version. |
precise_dry_mass_get_close is a namelist option (module global) but is passed as a subroutine argument
There are two different cases when the use of precise vertical coordinates is relevant. One if for doing get_close computations, and the namelist flag controls this. Generally, it is okay to be less that precise for get_close because it's just doing a broad modulation of the impact. However, if there were a need for very tight vertical localization, it could have more impact. JLA What is the goal of this hard coded
This second 'precise' is for doing the interpolation for forward operators. Here, precision can often be much more important because a lack of precision results in a biased vertical coordinate computation which then leads to a biased forward operator. I hard coded this here because I don't think it should be an option (unless there is enormous cost associated with it in some particular application). JLA It is passed all the way down to here, The calling tree for get_close and for model_interpolated intersect down at low-levels, so the precise argument is needed. There are clearly some intermediate levels in the get_close computation where the namelist could still be used rather than the argument. While I was developing, I found it easier to just convert the namelist variable into an argument so I didn't have to worry about the details of where the hard-coded precise for interpolation 'merged' into the calling tree. JLA find_se_vertical_levels:
if(dry_mass_vertical_coordinate .and. precise) then
call build_dry_mass_pressure_columns(ens_handle, ens_size, ref_nlevels, column, surf_pressure, &
pressure_array, status1) |
SE test cases: Test case from svn trunk:
The netcdf files are from -- Run of CAM SE with cesm 2.2.0:
The netcdf files are from Not sure about the cesm2.2.0 nenpnp vs ncol yet.
Edit: running cam-se cesm2.2.0 but outputting initial files gives the familiar:
To output initial files add
edit 2: To output the SEMapping.nc file
|
In get_close there is a check on the type:
but in model_interpolate, you don't have type you have only quantity If number of qts > number of types you get:
If number of qts < number of types, then you will get through this if statement without exiting, but then I think your distance calculation can be affected by |
there is a get_close_obs() that includes an obs type as one of the args. there is also a get_close_state() that includes a quantity and an index into the model state as part of the arg list. not sure which one is wanted in this context. |
@nancycollins so it doesn't matter, get_close is using the type to cuttoff map which is initialized in get_close_init
There is a note (FIXME Nancy) in the model code, about using XYZ location_mod: DART/models/cam-se/model_mod.f90 Line 2846 in 24814a5
I intentionally removed use of the xyz get_close from threed_cartesian in the update. This simplifies code and handles the concerns about precise computation. The comment is left for a future exploration of computational cost. JLA |
…ose call See #343 for the issue. Assuming that there will be at least one observation type. The get_close does not find a second closest node if approximate_distance=.true. I do not understand this.
Note on approximate_distance = .true. vs. approximate_distance = .false. approximate_distance = .true. approximate_distance = .false. Edit: separating this out into a new issue #346 Can test this independently of CAM |
Identity obs might have 0 distance.
Kevin
…On Thu, Apr 21, 2022 at 9:59 AM hkershaw-brown ***@***.***> wrote:
Note on approximate_distance = .true. vs. approximate_distance = .false.
approximate_distance = .true.
one close points, distance = 0. Can it really be zero? (un)lucky
observation location?
[image: Screen Shot 2022-04-21 at 9 13 10 AM]
<https://user-images.githubusercontent.com/20047007/164501696-07074e67-b0da-43b6-9b61-5ebfb9ce1532.png>
approximate_distance = .false.
five close points
[image: Screen Shot 2022-04-21 at 9 50 22 AM]
<https://user-images.githubusercontent.com/20047007/164501783-be3f4c52-e548-483a-b042-1037459241d4.png>
—
Reply to this email directly, view it on GitHub
<#343 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADFFGEGCOTITZQFMDQVTQODVGF3MHANCNFSM5SWL7HWQ>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
good suggestion Kevin, the killer is the two runs above are with the same obs_seq.out (one obs). |
Ah, sorry that I didn't read all the context first!
…On Thu, Apr 21, 2022 at 10:47 AM hkershaw-brown ***@***.***> wrote:
good suggestion Kevin, the killer is the two runs above are with the same
obs_seq.out (one obs).
—
Reply to this email directly, view it on GitHub
<#343 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADFFGEEY4NTI3V5JMRPQECTVGGBDFANCNFSM5SWL7HWQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Never be sorry about chiming in. Sometimes without context it the best way to view things. |
About cam_common_code_mod.f90
All of the CAMs up to CAM6 have a p_top ~ 340 Pa. |
Use case
Manhattan release for CAM-SE
Is your feature request related to a problem?
Describe your preferred solution
I believe this is the code that people have been using for cam-se using the cam-common-code:
https://github.com/jlaucar/DART/tree/CAM_SE
Brought up to date with main here:
https://github.com/NCAR/DART/tree/CAM_SE
Be aware: index swap #246
edit: 9/22/22 Just in case anyone wants to resurrect the CAM_SE branch here is copy:
https://github.com/hkershaw-brown/DART/tree/CAM_SE
Tidy (not changed the code): https://github.com/NCAR/DART/tree/cam-fv-se-shared f93ba7d
CAM_SE...cam-fv-se-shared
The text was updated successfully, but these errors were encountered: