-
Notifications
You must be signed in to change notification settings - Fork 27
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
Merge GFDL new dynamic core to EMC fork/branch #15
Conversation
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.
Holy cow, quite a number of changes. Looks ok to my limited understanding of the dycore. I was looking specifically for changes with impact on the CCPP. I left a comment on the MULTI_GASES option and a few requests for cosmetic changes.
driver/fvGFS/atmosphere.F90
Outdated
@@ -112,7 +112,7 @@ module atmosphere_mod | |||
! <tr> | |||
! <td>mpp_mod</td> | |||
! <td>mpp_error, stdout, FATAL, NOTE, input_nml_file, mpp_root_pe, | |||
! mpp_npes, mpp_pe, mpp_chksum,mpp_get_current_pelist, | |||
! mpp_npes, mpp_pe, mpp_chksum,mpp_get_current_pelist, |
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.
Would you mind removing the trailing whitespaces that are added by this commit?
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.
Dom:
Is this the only place to revise about the trailing whitespaces?
I noticed that there are many "^M" hiding in the file fv_regional_bc.F90 at the end of each line. Is it matter?
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.
^M will be removed.
call fill_gfs(blen, npz, IPD_Data(nb)%Statein%prsi, IPD_Data(nb)%Stateout%gq0, 1.e-9_kind_phys) | ||
if (Atm(n)%flagstruct%fill_gfs) call fill_gfs(blen, npz, IPD_Data(nb)%Statein%prsi, IPD_Data(nb)%Stateout%gq0, 1.e-9_kind_phys) | ||
|
||
!LMH 28sep18: If the name of a tracer ends in 'nopbl' then do NOT update it; |
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 wonder if this feature is/will be used by the UFS and if this is documented somewhere.
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.
This is the part added when merge the master branch of GFDL dycore. Lucas could know it better.
! Read FVCORE namelist | ||
read (f_unit,fv_core_nml,iostat=ios) | ||
ierr = check_nml_error(ios,'fv_core_nml') | ||
call close_file(f_unit) | ||
#ifdef MULTI_GASES |
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.
Since we do not have regression tests with MULTI_GASES turned on, has someone tested this feature manually. In particular of the CCPP version works as expected?
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.
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.
Multi_GASES was tested for this version with 64-bits.
Another pull requests is generated to the regression test ufs-community/ufs-weather-model#112. Some fixes are needed for 32-bits runs in that pull request.
jsd = bd%jsd | ||
jed = bd%jed | ||
|
||
|
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 would remove the extra whitespaces in lines 215, 218, 227.
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.
Please see the inlined comments regarding multi-gases namelist reads.
#ifdef MULTI_GASES | ||
namelist /multi_gases_nml/ rilist,cpilist | ||
#endif |
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.
This new version of fv_control has each namelist read contained within its own programmatic unit. Please create a separate subroutine for the multi-gases nml read and add a #ifdef gated call in the proper place.
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.
Can this be changed in the next pull request when we add the regression test for MULTI_GASES?
@@ -738,26 +1067,12 @@ subroutine run_setup(Atm, dt_atmos, grids_on_this_pe, p_split) | |||
read (input_nml_file,multi_gases_nml,iostat=ios) | |||
ierr = check_nml_error(ios,'multi_gases_nml') | |||
#endif |
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.
See comment above regarding separate programmatic unit for multi-gases nml.
There are many *_nml included in input.nml, so all *_nml use the same unit
number through input.nml. I don't see any reason to have one of them doing
something different from others....
…On Thu, May 14, 2020 at 11:04 AM bensonr ***@***.***> wrote:
***@***.**** requested changes on this pull request.
Please see the inlined comments regarding multi-gases namelist reads.
------------------------------
In model/fv_control.F90
<#15 (comment)>
:
> +#ifdef MULTI_GASES
+ namelist /multi_gases_nml/ rilist,cpilist
+#endif
This new version of fv_control has each namelist read contained within its
own programmatic unit. Please create a separate subroutine for the
multi-gases nml read and add a #ifdef gated call in the proper place.
------------------------------
In model/fv_control.F90
<#15 (comment)>
:
> @@ -738,26 +1067,12 @@ subroutine run_setup(Atm, dt_atmos, grids_on_this_pe, p_split)
read (input_nml_file,multi_gases_nml,iostat=ios)
ierr = check_nml_error(ios,'multi_gases_nml')
#endif
See comment above regarding separate programmatic unit for multi-gases nml.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#15 (review)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALRWWEPDW5R6RXTNCCPVQLDRRQB7RANCNFSM4KUZZYTA>
.
|
I see, sorry! Each one has its own unit.
Well! What is the good reason to have each nml have its own unit?
…On Thu, May 14, 2020 at 11:04 AM bensonr ***@***.***> wrote:
***@***.**** requested changes on this pull request.
Please see the inlined comments regarding multi-gases namelist reads.
------------------------------
In model/fv_control.F90
<#15 (comment)>
:
> +#ifdef MULTI_GASES
+ namelist /multi_gases_nml/ rilist,cpilist
+#endif
This new version of fv_control has each namelist read contained within its
own programmatic unit. Please create a separate subroutine for the
multi-gases nml read and add a #ifdef gated call in the proper place.
------------------------------
In model/fv_control.F90
<#15 (comment)>
:
> @@ -738,26 +1067,12 @@ subroutine run_setup(Atm, dt_atmos, grids_on_this_pe, p_split)
read (input_nml_file,multi_gases_nml,iostat=ios)
ierr = check_nml_error(ios,'multi_gases_nml')
#endif
See comment above regarding separate programmatic unit for multi-gases nml.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#15 (review)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALRWWEPDW5R6RXTNCCPVQLDRRQB7RANCNFSM4KUZZYTA>
.
|
@HenryJuang-NOAA The comment is not referring to a file unit, but a programmatic unit - i.e. subroutine. Each namelist read in the updated code base is now encapsulated within a separate subroutine. If the multi-gases namelist logic is encapsulated within a separate, dedicated subroutine, it will remove many MULTI_GASES #ifdef-#endif pairs as the subroutine would not need any. In fact, now that I look more closely at the codebase itself, all of the namelist logic regarding multi-gases should be encapsulated within the multi-gases_Init within the multi_gases.F90 source file. |
Sure. As mentioned in a later comment, this logic should all be moved to
the multi_gases_init routine in multi_gases.F90 and the call to
multi_gases_init should be moved to the same level as the calls to the
individual namelist reads.
|
In fact, I like all nml in one place instead of spreading around different
subroutines.... it is easily to find one place for all nml lists instead of
all places for one function for nml.... especially, we all are used to the
original way, why keep changing.......?????
ifdef multi-gases is an option, but it can be in as default, then all ifdef
can be removed later... I don't worry too much of ifdef... many options
around in the code, I have already used to them... good thing for itdef is
that it saves running time if statement and very easy to insert and remove
from code...
…On Thu, May 14, 2020 at 12:00 PM bensonr ***@***.***> wrote:
@HenryJuang-NOAA <https://github.com/HenryJuang-NOAA> The comment is not
referring to a file unit, but a programmatic unit - i.e. subroutine. Each
namelist read in the updated code base is now encapsulated within a
separate subroutine. If the multi-gases namelist logic is encapsulated
within a separate, dedicated subroutine, it will remove many MULTI_GASES
#ifdef-#endif pairs as the subroutine would not need any. In fact, now that
I look more closely at the codebase itself, all of the namelist logic
regarding multi-gases should be encapsulated within the multi-gases_Init
within the multi_gases.F90 source file.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#15 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALRWWEI7T3NLN2DSR3JKLNLRRQISNANCNFSM4KUZZYTA>
.
|
multi-gases originally is for WAM, and you already put it with WAM in RT.
If you want to create a new RT for regular gfs in next pull, it is fine to
me. It should be better with gfs RT.
…On Thu, May 14, 2020 at 12:08 PM XiaqiongZhou-NOAA ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In model/fv_control.F90
<#15 (comment)>
:
> +#ifdef MULTI_GASES
+ namelist /multi_gases_nml/ rilist,cpilist
+#endif
Can this be changed in the next pull request when we add the regression
test for MULTI_GASES?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#15 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ALRWWELGB6V74FDDINWWHADRRQJN5ANCNFSM4KUZZYTA>
.
|
To avoid the error for debug
…rt files when write_restart_with_bcs=.true. corresponding to the removal of the halo of delz in new FV3 dycore (by Tom Black)
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 did review this PR a few weeks ago, not much has changed since then. I mainly focussed on changes around the CCPP fast physics blocks, looks good to me.
!* useful, but WITHOUT ANYWARRANTY; without even the implied warranty | ||
!* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
!* The FV3 dynamical core is distributed in the hope that it will be | ||
!* useful, but WITHOUT ANYWARRANTY; without even the implied warranty |
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.
typo: ANYWARRANTY -> ANY WARRANTY
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.
Regional module changes in particular appear to be okay.
Merge GFDL new dynamic core 201912 release version to dev/emc.
* Updates needed for fms2_io * Updating variable naming
To merge GFDL new dynamic core 201912 release version to EMC fork/branch
Related pull requests:
fv3atm #65
universe-weather-model #58
ccpp-physics #397