From 70b306581b24ab5e6b21e0a2b16b95f3a980660c Mon Sep 17 00:00:00 2001 From: DavidNew-NOAA <134300700+DavidNew-NOAA@users.noreply.github.com> Date: Tue, 27 Aug 2024 09:32:46 -0400 Subject: [PATCH] Add ability to read increment files on native cubed sphere grid (#837) * Add namelist parameter, ncrement_file_on_native_grid --- atmos_cubed_sphere | 2 +- atmos_model.F90 | 4 ++-- ccpp/data/GFS_typedefs.F90 | 8 ++++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 3f8153364..ac3055eff 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 3f81533642be6060e1ac382ac99ce1481892dddd +Subproject commit ac3055eff06099d61cd65e18bc4f0353ffd83f46 diff --git a/atmos_model.F90 b/atmos_model.F90 index 4b3b87d20..6938ee4ce 100644 --- a/atmos_model.F90 +++ b/atmos_model.F90 @@ -407,7 +407,7 @@ subroutine update_atmos_radiation_physics (Atmos) if (mpp_pe() == mpp_root_pe()) print *,'PHYSICS STEP2 ', GFS_control%kdt, GFS_control%fhour call fv3atm_checksum(GFS_control, GFS_Statein, GFS_Stateout, GFS_Grid, GFS_Tbd, GFS_Cldprop, GFS_Sfcprop, GFS_Radtend, GFS_Coupling, Atm_block) endif - call getiauforcing(GFS_control,IAU_data) + call getiauforcing(GFS_control,IAU_data,Atm(mygrid)) if (mpp_pe() == mpp_root_pe() .and. debug) write(6,*) "end of radiation and physics step" !--- execute the atmospheric timestep finalize step @@ -725,7 +725,7 @@ subroutine atmos_model_init (Atmos, Time_init, Time, Time_step) Atm(mygrid)%flagstruct%do_skeb = GFS_control%do_skeb ! initialize the IAU module - call iau_initialize (GFS_control,IAU_data,Init_parm) + call iau_initialize (GFS_control,IAU_data,Init_parm,Atm(mygrid)) Init_parm%blksz => null() Init_parm%ak => null() diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index 5a25f0c36..05eb48679 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -1606,6 +1606,9 @@ module GFS_typedefs real(kind=kind_phys), pointer :: si(:) !< vertical sigma coordinate for model initialization real(kind=kind_phys) :: sec !< seconds since model initialization +!--- Increment grid + logical :: increment_file_on_native_grid ! increment on native grid else Gaussian grid + !--- IAU integer :: iau_offset real(kind=kind_phys) :: iau_delthrs ! iau time interval (to scale increments) in hours @@ -3889,6 +3892,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & logical :: ca_entr = .false. logical :: ca_trigger = .false. +!--- Increment grid + logical :: increment_file_on_native_grid = .false. ! increment on native grid else Gaussian grid + !--- IAU options real(kind=kind_phys) :: iau_delthrs = 0 !< iau time interval (to scale increments) character(len=240) :: iau_inc_files(7) = '' !< list of increment files @@ -4110,6 +4116,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & nseed, nseed_g, nthresh, do_ca, ca_advect, & ca_sgs, ca_global,iseed_ca,ca_smooth, & nspinup,ca_amplitude,nsmooth,ca_closure,ca_entr,ca_trigger, & + !--- Increment grid + increment_file_on_native_grid, & !--- IAU iau_delthrs,iaufhrs,iau_inc_files,iau_filter_increments, & iau_drymassfixer, &