Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/NOAA-EMC/fv3atm into bug…
Browse files Browse the repository at this point in the history
…fix_nests_namelist
  • Loading branch information
climbfuji committed Mar 31, 2021
2 parents 5930832 + ebccc53 commit b0c1d9b
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 7 deletions.
7 changes: 6 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,12 @@ list(APPEND _fv3dycore_srcs
atmos_cubed_sphere/model/tp_core.F90
atmos_cubed_sphere/model/nh_core.F90
atmos_cubed_sphere/model/nh_utils.F90
atmos_cubed_sphere/tools/coarse_grained_diagnostics.F90
atmos_cubed_sphere/tools/coarse_grained_restart_files.F90
atmos_cubed_sphere/tools/coarse_graining.F90
atmos_cubed_sphere/tools/external_ic.F90
atmos_cubed_sphere/tools/external_sst.F90
atmos_cubed_sphere/tools/fv_diag_column.F90
atmos_cubed_sphere/tools/fv_diagnostics.F90
atmos_cubed_sphere/tools/fv_eta.F90
atmos_cubed_sphere/tools/fv_grid_tools.F90
Expand Down Expand Up @@ -103,7 +107,8 @@ set_target_properties(fv3dycore PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURR

target_compile_definitions(fv3dycore PRIVATE "${_fv3dycore_defs_private}")
target_include_directories(fv3dycore PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/atmos_cubed_sphere
${CMAKE_CURRENT_BINARY_DIR}/ccpp/driver/mod)
${CMAKE_CURRENT_SOURCE_DIR}/atmos_cubed_sphere/tools
${CMAKE_CURRENT_BINARY_DIR}/ccpp/driver/mod)
target_include_directories(fv3dycore INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)

Expand Down
2 changes: 1 addition & 1 deletion atmos_cubed_sphere
2 changes: 1 addition & 1 deletion ccpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ elseif (${CMAKE_Fortran_COMPILER_ID} MATCHES "Intel")
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftrapuv -traceback")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftrapuv -traceback")
set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -check -check noarg_temp_created -check nopointer -warn -warn noerrors -fp-stack-check")
set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fstack-protector-all -fpe0 -traceback -debug -ftrapuv")
set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fstack-protector-all -fpe0 -traceback -debug -ftrapuv -init=snan,arrays")
elseif (${CMAKE_BUILD_TYPE} MATCHES "Bitforbit")
if(LEGACY_INTEL)
set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -debug minimal -fp-model strict -qoverride-limits -traceback")
Expand Down
18 changes: 14 additions & 4 deletions ccpp/data/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -691,6 +691,12 @@ module GFS_typedefs

!--- microphysical switch
integer :: ncld !< choice of cloud scheme
logical :: convert_dry_rho = .true. !< flag for converting mass/number concentrations from moist to dry
!< for physics options that expect dry mass/number concentrations;
!< this flag will no longer be needed once the CCPP standard
!< names and the CCPP framework logic have been augmented to
!< automatically determine whether such conversions are necessary
!< and if yes, perform them; hardcoded to .true. for now
!--- new microphysical switch
integer :: imp_physics !< choice of microphysics scheme
integer :: imp_physics_gfdl = 11 !< choice of GFDL microphysics scheme
Expand Down Expand Up @@ -5772,7 +5778,8 @@ subroutine diag_create (Diag, IM, Model)
allocate (Diag%tav_ugwp (IM,Model%levs) )
endif

if (Model%do_ugwp_v1 .or. Model%gwd_opt==33 .or. Model%gwd_opt==22) then
if (Model%do_ugwp_v1 .or. Model%gwd_opt==33 .or. Model%gwd_opt==22 &
.or. Model%gwd_opt==3 .or. Model%gwd_opt==2) then
allocate (Diag%dudt_ogw (IM,Model%levs))
allocate (Diag%dvdt_ogw (IM,Model%levs))
allocate (Diag%dudt_obl (IM,Model%levs))
Expand Down Expand Up @@ -6039,7 +6046,8 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center)
Diag%dtdt_gw = zero
Diag%kdis_gw = zero

if (Model%do_ugwp_v1 .or. Model%gwd_opt==33 .or. Model%gwd_opt==22) then
if (Model%do_ugwp_v1 .or. Model%gwd_opt==33 .or. Model%gwd_opt==22 &
.or. Model%gwd_opt==3 .or. Model%gwd_opt==2) then
Diag%dudt_ogw = zero
Diag%dvdt_ogw = zero
Diag%dudt_obl = zero
Expand Down Expand Up @@ -6526,7 +6534,8 @@ subroutine interstitial_create (Interstitial, IM, Model)
allocate (Interstitial%zngw (IM) )

! CIRES UGWP v1
if (Model%do_ugwp_v1) then
if (Model%do_ugwp_v1 .or. Model%gwd_opt==33 .or. Model%gwd_opt==22 &
.or. Model%gwd_opt==3 .or. Model%gwd_opt==2) then
allocate (Interstitial%dudt_ngw (IM,Model%levs))
allocate (Interstitial%dvdt_ngw (IM,Model%levs))
allocate (Interstitial%dtdt_ngw (IM,Model%levs))
Expand Down Expand Up @@ -7139,7 +7148,8 @@ subroutine interstitial_phys_reset (Interstitial, Model)
Interstitial%zngw = clear_val

! CIRES UGWP v1
if (Model%do_ugwp_v1) then
if (Model%do_ugwp_v1 .or. Model%gwd_opt==33 .or. Model%gwd_opt==22 &
.or. Model%gwd_opt==3 .or. Model%gwd_opt==2) then
Interstitial%dudt_ngw = clear_val
Interstitial%dvdt_ngw = clear_val
Interstitial%dtdt_ngw = clear_val
Expand Down
26 changes: 26 additions & 0 deletions ccpp/data/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -2846,6 +2846,12 @@
units = count
dimensions = ()
type = integer
[convert_dry_rho]
standard_name = flag_for_converting_hydrometeors_from_moist_to_dry_air
long_name = flag for converting hydrometeors from moist to dry air
units = flag
dimensions = ()
type = logical
[imp_physics]
standard_name = flag_for_microphysics_scheme
long_name = choice of microphysics scheme
Expand Down Expand Up @@ -7259,111 +7265,127 @@
dimensions = (horizontal_loop_extent,vertical_dimension)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[dvdt_ogw]
standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag
long_name = y momentum tendency from meso scale ogw
units = m s-2
dimensions = (horizontal_loop_extent,vertical_dimension)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[du_ogwcol]
standard_name = vertically_integrated_x_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag
long_name = integrated x momentum flux from meso scale ogw
units = Pa
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[dv_ogwcol]
standard_name = vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag
long_name = integrated y momentum flux from meso scale ogw
units = Pa
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[dudt_obl]
standard_name = tendency_of_x_momentum_due_to_blocking_drag
long_name = x momentum tendency from blocking drag
units = m s-2
dimensions = (horizontal_loop_extent,vertical_dimension)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[dvdt_obl]
standard_name = tendency_of_y_momentum_due_to_blocking_drag
long_name = y momentum tendency from blocking drag
units = m s-2
dimensions = (horizontal_loop_extent,vertical_dimension)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[du_oblcol]
standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag
long_name = integrated x momentum flux from blocking drag
units = Pa
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[dv_oblcol]
standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag
long_name = integrated y momentum flux from blocking drag
units = Pa
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[dudt_oss]
standard_name = tendency_of_x_momentum_due_to_small_scale_gravity_wave_drag
long_name = x momentum tendency from small scale gwd
units = m s-2
dimensions = (horizontal_loop_extent,vertical_dimension)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[dvdt_oss]
standard_name = tendency_of_y_momentum_due_to_small_scale_gravity_wave_drag
long_name = y momentum tendency from small scale gwd
units = m s-2
dimensions = (horizontal_loop_extent,vertical_dimension)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[du_osscol]
standard_name = vertically_integrated_x_momentum_flux_due_to_small_scale_gravity_wave_drag
long_name = integrated x momentum flux from small scale gwd
units = Pa
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[dv_osscol]
standard_name = vertically_integrated_y_momentum_flux_due_to_small_scale_gravity_wave_drag
long_name = integrated y momentum flux from small scale gwd
units = Pa
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[dudt_ofd]
standard_name = tendency_of_x_momentum_due_to_form_drag
long_name = x momentum tendency from form drag
units = m s-2
dimensions = (horizontal_loop_extent,vertical_dimension)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[dvdt_ofd]
standard_name = tendency_of_y_momentum_due_to_form_drag
long_name = y momentum tendency from form drag
units = m s-2
dimensions = (horizontal_loop_extent,vertical_dimension)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[du_ofdcol]
standard_name = vertically_integrated_x_momentum_flux_due_to_form_drag
long_name = integrated x momentum flux from form drag
units = Pa
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[dv_ofdcol]
standard_name = vertically_integrated_y_momentum_flux_due_to_form_drag
long_name = integrated y momentum flux from form drag
units = Pa
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[dv3dt_ngw]
standard_name = time_integral_of_change_in_y_wind_due_to_nonstationary_gravity_wave
long_name = time integral of change in y wind due to NGW
Expand Down Expand Up @@ -10015,27 +10037,31 @@
dimensions = (horizontal_loop_extent,vertical_dimension)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[dvdt_ngw]
standard_name = tendency_of_y_wind_due_to_nonorographic_gravity_wave_drag
long_name = meridional wind tendency due to non-stationary GWs
units = m s-2
dimensions = (horizontal_loop_extent,vertical_dimension)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[dtdt_ngw]
standard_name = tendency_of_air_temperature_due_to_nonorographic_gravity_wave_drag
long_name = air temperature tendency due to non-stationary GWs
units = K s-1
dimensions = (horizontal_loop_extent,vertical_dimension)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[kdis_ngw]
standard_name = atmosphere_momentum_diffusivity_due_to_nonorographic_gravity_wave_drag
long_name = eddy mixing due to non-stationary GWs
units = m2 s-1
dimensions = (horizontal_loop_extent,vertical_dimension)
type = real
kind = kind_phys
active = (flag_for_ugwp_version_1 .or. gwd_opt==33 .or. gwd_opt==22 .or. gwd_opt==3 .or. gwd_opt==2)
[zlwb]
standard_name = height_of_low_level_wave_breaking
long_name = height of low level wave breaking
Expand Down

0 comments on commit b0c1d9b

Please sign in to comment.