-
Notifications
You must be signed in to change notification settings - Fork 153
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
Remove snet from Noah LSM #669
Comments
I modified radiation_surface.f, so the four albedo components over land will be outputted to GFS_radiation_surface.F90 with ialb=1 and then passed to lsm_drv.f. I added the following lines to radiation_surface.f:
and changed these four to intent(inout). But the model always crashed on these lines with the error (forrtl: severe (174): SIGSEGV, segmentation fault occurred). Dom, do you have any idea? Thanks. |
These arrays may not be allocated for Noah LSM, can you check |
You are absolutely right. Nice catch. Thanks. |
So all three land surface models have these four common variables. Should I move them together? This will require more changes. Maybe we can do them later. For simplicity's sake, I can redefine them for Noah LSM. What is your suggestion? |
How about changing the following line in GFS_typedefs.F90?
if (Model%lsm == Model%lsm_ruc .or. Model%lsm == Model%lsm_noahmp) then
To:
if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_ruc .or. Model%lsm == Model%lsm_noahmp ) then
We may need to check if those additional fields also need to be written to the restart files for Noah LSM.
… On Jun 1, 2021, at 7:19 AM, HelinWei-NOAA ***@***.***> wrote:
I modified radiation_surface.f, so the four albedo components over land will be outputted to GFS_radiation_surface.F90 with ialb=1 and then passed to lsm_drv.f. I added the following lines to radiation_surface.f:
lsmalbdnir(i) = min(0.99,max(0.01,alndnb))
lsmalbinir(i) = min(0.99,max(0.01,alndnd))
lsmalbdvis(i) = min(0.99,max(0.01,alndvb))
lsmalbivis(i) = min(0.99,max(0.01,alndvd))
and changed these four to intent(inout). But the model always crashed on these lines with the error (forrtl: severe (174): SIGSEGV, segmentation fault occurred). Dom, do you have any idea? Thanks.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub <#669 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AB5C2RKHDBL5BTFYJ4BS25DTQTM4RANCNFSM45WS5FQQ>.
|
I don't think that's enough. Maybe we can move these four variables here
if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp
.or. Model%lsm == Model%lsm_noah_wrfv4) then
temp2d(i,j,35) = GFS_Data(nb)%Sfcprop%slc(ix,1)
temp2d(i,j,36) = GFS_Data(nb)%Sfcprop%slc(ix,2)
temp2d(i,j,37) = GFS_Data(nb)%Sfcprop%slc(ix,3)
temp2d(i,j,38) = GFS_Data(nb)%Sfcprop%slc(ix,4)
temp2d(i,j,39) = GFS_Data(nb)%Sfcprop%smc(ix,1)
temp2d(i,j,40) = GFS_Data(nb)%Sfcprop%smc(ix,2)
temp2d(i,j,41) = GFS_Data(nb)%Sfcprop%smc(ix,3)
temp2d(i,j,42) = GFS_Data(nb)%Sfcprop%smc(ix,4)
temp2d(i,j,43) = GFS_Data(nb)%Sfcprop%stc(ix,1)
temp2d(i,j,44) = GFS_Data(nb)%Sfcprop%stc(ix,2)
temp2d(i,j,45) = GFS_Data(nb)%Sfcprop%stc(ix,3)
temp2d(i,j,46) = GFS_Data(nb)%Sfcprop%stc(ix,4)
On Tue, Jun 1, 2021 at 10:15 AM Dom Heinzeller ***@***.***>
wrote:
… How about changing the following line in GFS_typedefs.F90?
if (Model%lsm == Model%lsm_ruc .or. Model%lsm == Model%lsm_noahmp) then
To:
if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_ruc .or.
Model%lsm == Model%lsm_noahmp ) then
We may need to check if those additional fields also need to be written to
the restart files for Noah LSM.
> On Jun 1, 2021, at 7:19 AM, HelinWei-NOAA ***@***.***> wrote:
>
>
> I modified radiation_surface.f, so the four albedo components over land
will be outputted to GFS_radiation_surface.F90 with ialb=1 and then passed
to lsm_drv.f. I added the following lines to radiation_surface.f:
>
> lsmalbdnir(i) = min(0.99,max(0.01,alndnb))
> lsmalbinir(i) = min(0.99,max(0.01,alndnd))
> lsmalbdvis(i) = min(0.99,max(0.01,alndvb))
> lsmalbivis(i) = min(0.99,max(0.01,alndvd))
> and changed these four to intent(inout). But the model always crashed on
these lines with the error (forrtl: severe (174): SIGSEGV, segmentation
fault occurred). Dom, do you have any idea? Thanks.
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub <
#669 (comment)>,
or unsubscribe <
https://github.com/notifications/unsubscribe-auth/AB5C2RKHDBL5BTFYJ4BS25DTQTM4RANCNFSM45WS5FQQ
>.
>
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<#669 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALPHKYGDYWASNTCQLZ6BGW3TQTTOZANCNFSM45WS5FQQ>
.
|
This code is just for calculating checksums. Can/should be updated, but if you don't it won't affect the runs.
… On Jun 1, 2021, at 8:22 AM, HelinWei-NOAA ***@***.***> wrote:
I don't think that's enough. Maybe we can move these four variables here
if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp
.or. Model%lsm == Model%lsm_noah_wrfv4) then
temp2d(i,j,35) = GFS_Data(nb)%Sfcprop%slc(ix,1)
temp2d(i,j,36) = GFS_Data(nb)%Sfcprop%slc(ix,2)
temp2d(i,j,37) = GFS_Data(nb)%Sfcprop%slc(ix,3)
temp2d(i,j,38) = GFS_Data(nb)%Sfcprop%slc(ix,4)
temp2d(i,j,39) = GFS_Data(nb)%Sfcprop%smc(ix,1)
temp2d(i,j,40) = GFS_Data(nb)%Sfcprop%smc(ix,2)
temp2d(i,j,41) = GFS_Data(nb)%Sfcprop%smc(ix,3)
temp2d(i,j,42) = GFS_Data(nb)%Sfcprop%smc(ix,4)
temp2d(i,j,43) = GFS_Data(nb)%Sfcprop%stc(ix,1)
temp2d(i,j,44) = GFS_Data(nb)%Sfcprop%stc(ix,2)
temp2d(i,j,45) = GFS_Data(nb)%Sfcprop%stc(ix,3)
temp2d(i,j,46) = GFS_Data(nb)%Sfcprop%stc(ix,4)
On Tue, Jun 1, 2021 at 10:15 AM Dom Heinzeller ***@***.***>
wrote:
> How about changing the following line in GFS_typedefs.F90?
>
> if (Model%lsm == Model%lsm_ruc .or. Model%lsm == Model%lsm_noahmp) then
>
> To:
>
> if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_ruc .or.
> Model%lsm == Model%lsm_noahmp ) then
>
> We may need to check if those additional fields also need to be written to
> the restart files for Noah LSM.
>
> > On Jun 1, 2021, at 7:19 AM, HelinWei-NOAA ***@***.***> wrote:
> >
> >
> > I modified radiation_surface.f, so the four albedo components over land
> will be outputted to GFS_radiation_surface.F90 with ialb=1 and then passed
> to lsm_drv.f. I added the following lines to radiation_surface.f:
> >
> > lsmalbdnir(i) = min(0.99,max(0.01,alndnb))
> > lsmalbinir(i) = min(0.99,max(0.01,alndnd))
> > lsmalbdvis(i) = min(0.99,max(0.01,alndvb))
> > lsmalbivis(i) = min(0.99,max(0.01,alndvd))
> > and changed these four to intent(inout). But the model always crashed on
> these lines with the error (forrtl: severe (174): SIGSEGV, segmentation
> fault occurred). Dom, do you have any idea? Thanks.
> >
> > —
> > You are receiving this because you authored the thread.
> > Reply to this email directly, view it on GitHub <
> #669 (comment)>,
> or unsubscribe <
> https://github.com/notifications/unsubscribe-auth/AB5C2RKHDBL5BTFYJ4BS25DTQTM4RANCNFSM45WS5FQQ
> >.
> >
>
> —
> You are receiving this because you were assigned.
> Reply to this email directly, view it on GitHub
> <#669 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/ALPHKYGDYWASNTCQLZ6BGW3TQTTOZANCNFSM45WS5FQQ>
> .
>
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub <#669 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AB5C2RL4UNR3SSNOD2ADRIDTQTULXANCNFSM45WS5FQQ>.
|
After modifying FV3GFS_io.F90 to include them to restart files, now I got
FATAL from PE 153: fms_io(restore_state_all): unable to find mandatory
variable albdvis_lnd in restart file sfc_data.tile5.nc
This is already an coldstart run, anyway to overcome this problem?
On Tue, Jun 1, 2021 at 10:27 AM Dom Heinzeller ***@***.***>
wrote:
… This code is just for calculating checksums. Can/should be updated, but if
you don't it won't affect the runs.
> On Jun 1, 2021, at 8:22 AM, HelinWei-NOAA ***@***.***> wrote:
>
>
> I don't think that's enough. Maybe we can move these four variables here
>
> if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp
> .or. Model%lsm == Model%lsm_noah_wrfv4) then
> temp2d(i,j,35) = GFS_Data(nb)%Sfcprop%slc(ix,1)
> temp2d(i,j,36) = GFS_Data(nb)%Sfcprop%slc(ix,2)
> temp2d(i,j,37) = GFS_Data(nb)%Sfcprop%slc(ix,3)
> temp2d(i,j,38) = GFS_Data(nb)%Sfcprop%slc(ix,4)
> temp2d(i,j,39) = GFS_Data(nb)%Sfcprop%smc(ix,1)
> temp2d(i,j,40) = GFS_Data(nb)%Sfcprop%smc(ix,2)
> temp2d(i,j,41) = GFS_Data(nb)%Sfcprop%smc(ix,3)
> temp2d(i,j,42) = GFS_Data(nb)%Sfcprop%smc(ix,4)
> temp2d(i,j,43) = GFS_Data(nb)%Sfcprop%stc(ix,1)
> temp2d(i,j,44) = GFS_Data(nb)%Sfcprop%stc(ix,2)
> temp2d(i,j,45) = GFS_Data(nb)%Sfcprop%stc(ix,3)
> temp2d(i,j,46) = GFS_Data(nb)%Sfcprop%stc(ix,4)
>
> On Tue, Jun 1, 2021 at 10:15 AM Dom Heinzeller ***@***.***>
> wrote:
>
> > How about changing the following line in GFS_typedefs.F90?
> >
> > if (Model%lsm == Model%lsm_ruc .or. Model%lsm == Model%lsm_noahmp) then
> >
> > To:
> >
> > if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_ruc .or.
> > Model%lsm == Model%lsm_noahmp ) then
> >
> > We may need to check if those additional fields also need to be
written to
> > the restart files for Noah LSM.
> >
> > > On Jun 1, 2021, at 7:19 AM, HelinWei-NOAA ***@***.***> wrote:
> > >
> > >
> > > I modified radiation_surface.f, so the four albedo components over
land
> > will be outputted to GFS_radiation_surface.F90 with ialb=1 and then
passed
> > to lsm_drv.f. I added the following lines to radiation_surface.f:
> > >
> > > lsmalbdnir(i) = min(0.99,max(0.01,alndnb))
> > > lsmalbinir(i) = min(0.99,max(0.01,alndnd))
> > > lsmalbdvis(i) = min(0.99,max(0.01,alndvb))
> > > lsmalbivis(i) = min(0.99,max(0.01,alndvd))
> > > and changed these four to intent(inout). But the model always
crashed on
> > these lines with the error (forrtl: severe (174): SIGSEGV, segmentation
> > fault occurred). Dom, do you have any idea? Thanks.
> > >
> > > —
> > > You are receiving this because you authored the thread.
> > > Reply to this email directly, view it on GitHub <
> > #669 (comment)
>,
> > or unsubscribe <
> >
https://github.com/notifications/unsubscribe-auth/AB5C2RKHDBL5BTFYJ4BS25DTQTM4RANCNFSM45WS5FQQ
> > >.
> > >
> >
> > —
> > You are receiving this because you were assigned.
> > Reply to this email directly, view it on GitHub
> > <
#669 (comment)>,
> > or unsubscribe
> > <
https://github.com/notifications/unsubscribe-auth/ALPHKYGDYWASNTCQLZ6BGW3TQTTOZANCNFSM45WS5FQQ
>
> > .
> >
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub <
#669 (comment)>,
or unsubscribe <
https://github.com/notifications/unsubscribe-auth/AB5C2RL4UNR3SSNOD2ADRIDTQTULXANCNFSM45WS5FQQ
>.
>
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<#669 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALPHKYFYTQPPWBLOU6DQKJDTQTU3XANCNFSM45WS5FQQ>
.
|
I am trying to make them optional for restart to see if it is working. |
With the change shown below, it is still not working and I got the same error (FATAL from PE 86: fms_io(restore_state_all): unable to find mandatory variable albivis_lnd in restart file sfc_data.tile3.nc) !--- register the 2D fields |
Helin, this is more an fv3atm question than a CCPP question. Can you follow what was done for NoahMP and RUC in FV3GFS_io.F90?
… On Jun 1, 2021, at 1:00 PM, HelinWei-NOAA ***@***.***> wrote:
With the change shown below, it is still not working and I got the same error (FATAL from PE 86: fms_io(restore_state_all): unable to find mandatory variable albivis_lnd in restart file sfc_data.tile3.nc)
!--- register the 2D fields
do num = 1,nvar_s2m
var2_p => sfc_var2(:,:,num)
if (trim(sfc_name2(num)) == 'sncovr'.or. trim(sfc_name2(num)) == 'tsfcl' .or. trim(sfc_name2(num)) == 'zorll' &
.or. trim(sfc_name2(num)) == 'zorli' .or. trim(sfc_name2(num)) == 'zorlwav'&
.or.trim(sfc_name2(num)) == 'albdvis_lnd' .or. trim(sfc_name2(num)) == 'albdnir_lnd' &
.or.trim(sfc_name2(num)) == 'albvis_lnd' .or. trim(sfc_name2(num)) == 'albnir_lnd') then
id_restart = register_restart_field(Sfc_restart, fn_srf, sfc_name2(num), var2_p, domain=fv_domain, mandatory=.false.)
else
id_restart = register_restart_field(Sfc_restart, fn_srf, sfc_name2(num), var2_p, domain=fv_domain)
endif
enddo
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub <#669 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AB5C2RMWMCQ53JO647CKTC3TQUU3TANCNFSM45WS5FQQ>.
|
The modification and tests have been completed. Which branch should I try to merge? test results: https://www.emc.ncep.noaa.gov/mmb/gcp/gfs/snetfix/www/maps/d2/maps2d_sfc.html |
We need PRs for ccpp-physics, fv3atm (and ufs-weather-model, even if it only is the update of the fv3atm submodule pointer). The submodule pointers and
will give exactly the same code that is in your different branches. |
Okay. I created a branch under my ufs-weather-model fork. This modification will also change all baseline runs with Noah LSM. Do I need to recreate those by myself? |
It would be good to create baselines on hera with Intel and GNU (using |
I used git clone -b remove_snet_from_noah_lsm --recursive https://github.com/HelinWei-NOAA/ufs-weather-model to check out the code, but I didn't get the right branch for both FV3 and ccpp-physics. Can you please take a look at .gitmodules in /scratch1/NCEPDEV/global/Helin.Wei/save/git/sync/snet/ufs-weather-model? Thanks. |
I checked your directories, I see that both fv3atm and ccpp-physics point to your branches. What is the problem? |
Description
In PR, #627 a commit was made to remove
snet
(net solar radiation is computed from the incoming SW and albedo), but only fromsfc_drv_ruc.F90
.sfc_drv.f
should also be modified for Noah LSM.Solution
Remove
snet
from Noah LSM (check if it can be removed altogether) and compute it there from the radiation output.Alternatives (optional)
No alternatives.
Related to (optional)
#627
The text was updated successfully, but these errors were encountered: