-
Notifications
You must be signed in to change notification settings - Fork 10
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
New parameter: config_gvf_update #49
New parameter: config_gvf_update #49
Conversation
then green vegetation fraction is updated from climatology, when false - the GVF value from *init.nc is used for the length of the forecast.
@jderrico-noaa Janet, could you lease merge this really small PR. It is a work around the overwriting vegetation green fraction with climatology. The default for the new config parameter is .true., thus the NCAR MPAS will run as is, but in our MPAS_GSL we have to add a nameist option: config_gvf_update=.false. Thank you! |
@tanyasmirnova can you run a test without your changes and config_sfc_albedo = .false. if your namelist is setting this to true. I don't know what the default is. There seems to be some conflation in the code between greeness (or greenness) updates and albedo updates. The alarm frequency is set with greenness but the actually update is triggered by albedo (I believe). Alternatively, I can think of a one line change that should also solve what you are trying to do without adding anything to the namelist. |
@barlage Mike, config_sfc_albedo is used only inphysics/mpas_atmphys_update_surface.F to interpolate surface albedo from the climatology to the current day:!updates the surface background albedo for the current date as a function of the monthly-mean
endif So it does not control greenness inside mpas_atmphys_update_surface.F. My change does not call this subroutine if config_gvf_update=false. It is not good, because if config_sfc_albedo=true, we have to update albedo independently from GVF. To fix this, I'll pass into mpas_atmphys_update_surface.F config_gvf_upate, and put the 'if' only around the greenness update. |
that if config_gvf_update=false, the VEGFRA is not overwritten by the climatology.
I have updated my PR as I explained in the message to @barlage. The test with updated code runs fine. |
…ion when nvegopt=2, but there is no green vegetation fraction in the RAP/RRFS grib output.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My overall issue here is whether all these additions are necessary and will complicate merging in the future. The config_gvf_update
flag seems redundant to config_greeness_update = "none"
. Why not just send config_greeness_update
into physics_surface_update
and check if it is "none"
?
call mpas_set_timeInterval(alarmTimeStep,timeString=config_greeness_update,ierr=ierr) | ||
alarmStartTime = startTime | ||
call mpas_add_clock_alarm(clock,greenAlarmID,alarmStartTime,alarmTimeStep,ierr=ierr) | ||
if (config_gvf_update) then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@tanyasmirnova this if block seems unnecessary now and maybe even not working correctly if you want to update albedo and not vegetation, in that case greenAlarmID needs to be set and ringing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@barlage To begin with, it is a very bad set-up to do albedo and greenness updating connected to each other. Our situation proves it not robust, because we treat greenness in a special way. I would rewrite surface updating but as you said there wil be more issues with merging in future.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I chose the least invasive solution to get the real-time greenness vegetation fraction from the parent model to MPAS. I see some problems in MPAS with surface updating, but my understanding that we are not supposed to change any of their code, it is "untouchable" because of future commits. Therefore, I added a new config_gvf_update parameter to achieve our goal.
@tanyasmirnova this if block seems unnecessary now and maybe even not working correctly if you want to update albedo and not vegetation, in that case greenAlarmID needs to be set and ringing
I have removed the if(config_gvf_update) from line 554. So - the "green" alarm will be still created, but I pass config_gvf_update into physics_update_surface, and when it is set to false, the GVF will not be overwritten with climatology, but background albedo will be created. At initial forecast time surface_update repeats what was already done in mpas_atmphys_initialize_real.F at the INIT step. Therefore, background albedo was already computed. And we do not want update the background albedo in our MPAS runs. The actual albedo will be updated for grid points covered with snow. In RRFS we also update it for low solar angles, but so far not in MPAS.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@barlage Mike, could you please revisit my PR. I think I took into account all your comments and the PR should be ready to merge. Thank you.
The problem with config_greeness_update is that it is called misleading. It is actually the interval of updating and if you set it to 'none' the model crashes. |
…eal.F where it is not used.
GVF, although it is not needed for GVF.
modified: core_init_atmosphere/mpas_init_atm_cases.F Returned nveg_opt which I erroneously deleted.
Jensen): shdmin and shdmax are in the first guess entity now, not in mesh.
…into config_gvf Removed a conflict.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have resolved all comments and conflicts.
@tanyasmirnova check out this suggestion. This will prevent the updating of the |
@barlage I have commented on your PR#52. Additional IF is not needed. And in the code I propose, |
the model will not crash with this change; as noted I have tested it and it works. The model crashes because of the call inside this if block. |
Note that this is also the same approach that is used for other config options that have "none" as an option, for example |
The new configuration parameter: config_gvf_update is added to core_atmosphere. When config_gvf_update = true, then green vegetation fraction is updated from climatology, when false - the GVF value from *init.nc is used for the length of the forecast.
With config_gvf_update=false, the real-time VIIRS grean vegetation fraction from RAP or RRFS is used in the model.
Enter a description of this PR. This should include why this PR was created, and what it does.
With config_gvf_update=false, the real-time VIIRS green vegetation fraction from RAP or RRFS is used in the MPAS model.
Testing and relations to other Pull Requests should be added as subsequent comments.
See the below examples for more information.
MPAS-Dev/MPAS#930
MPAS-Dev/MPAS#931