From e45b4f4f3c9f8c3e3a6caba2790ca07237dcde59 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Mon, 4 Nov 2019 10:30:12 -0700 Subject: [PATCH 001/206] add GFS_GWD_generic_post scheme to SDFs using default GWD and substitute GFS_GWD_generic_pre,post for drag_suite_pre,post --- ccpp/suites/suite_FV3_CPT_v0.xml | 1 + ccpp/suites/suite_FV3_GFS_2017.xml | 1 + ccpp/suites/suite_FV3_GFS_2017_csawmg.xml | 1 + ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml | 1 + ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml | 1 + ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml | 1 + ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml | 1 + ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml | 1 + ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml | 1 + ccpp/suites/suite_FV3_GFS_2017_myj.xml | 1 + ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml | 1 + ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml | 1 + ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml | 1 + ccpp/suites/suite_FV3_GFS_2017_shinhong.xml | 1 + ccpp/suites/suite_FV3_GFS_2017_stretched.xml | 1 + ccpp/suites/suite_FV3_GFS_2017_ysu.xml | 1 + ccpp/suites/suite_FV3_GFS_v15.xml | 1 + ccpp/suites/suite_FV3_GFS_v15_gf.xml | 1 + ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml | 1 + ccpp/suites/suite_FV3_GFS_v15_mynn.xml | 1 + ccpp/suites/suite_FV3_GFS_v15_thompson.xml | 1 + ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml | 1 + ccpp/suites/suite_FV3_GFS_v15plus.xml | 1 + ccpp/suites/suite_FV3_GSD_noah.xml | 1 + ccpp/suites/suite_FV3_GSD_v0.xml | 1 + ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml | 4 ++-- 26 files changed, 27 insertions(+), 2 deletions(-) diff --git a/ccpp/suites/suite_FV3_CPT_v0.xml b/ccpp/suites/suite_FV3_CPT_v0.xml index 618c16106..2e0718970 100644 --- a/ccpp/suites/suite_FV3_CPT_v0.xml +++ b/ccpp/suites/suite_FV3_CPT_v0.xml @@ -64,6 +64,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 diff --git a/ccpp/suites/suite_FV3_GFS_2017.xml b/ccpp/suites/suite_FV3_GFS_2017.xml index d42d5fb8a..5f0808dd4 100644 --- a/ccpp/suites/suite_FV3_GFS_2017.xml +++ b/ccpp/suites/suite_FV3_GFS_2017.xml @@ -59,6 +59,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys diff --git a/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml b/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml index 587dd3c49..abca6d237 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml @@ -59,6 +59,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 diff --git a/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml b/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml index 0e993dbda..9fc0b6dae 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml @@ -59,6 +59,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml index 0fe2ee81a..8277cdcfe 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml @@ -64,6 +64,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml index 4e27dbc21..1402e663b 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml @@ -65,6 +65,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml index fba2dc00e..ba247b796 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml @@ -59,6 +59,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml index e1e189170..2e208f6e7 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml @@ -59,6 +59,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys diff --git a/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml b/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml index f32e6a7b7..f95070670 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml @@ -59,6 +59,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys diff --git a/ccpp/suites/suite_FV3_GFS_2017_myj.xml b/ccpp/suites/suite_FV3_GFS_2017_myj.xml index 8fc295020..f8390e62f 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_myj.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_myj.xml @@ -64,6 +64,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 diff --git a/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml b/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml index 5f95229b1..0331483c6 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml @@ -64,6 +64,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys diff --git a/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml b/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml index 0e2a3d068..310df3733 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml @@ -59,6 +59,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 diff --git a/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml b/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml index c598a76e1..b7f58db39 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml @@ -59,6 +59,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys diff --git a/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml b/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml index a690a90ba..e12c294e0 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml @@ -63,6 +63,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys diff --git a/ccpp/suites/suite_FV3_GFS_2017_stretched.xml b/ccpp/suites/suite_FV3_GFS_2017_stretched.xml index 8e8fbf2da..59631dd45 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_stretched.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_stretched.xml @@ -64,6 +64,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post GFS_suite_stateout_update ozphys GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_ysu.xml b/ccpp/suites/suite_FV3_GFS_2017_ysu.xml index 9f14cd457..8ec485c2b 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ysu.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ysu.xml @@ -63,6 +63,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys diff --git a/ccpp/suites/suite_FV3_GFS_v15.xml b/ccpp/suites/suite_FV3_GFS_v15.xml index 672c39280..124c86707 100644 --- a/ccpp/suites/suite_FV3_GFS_v15.xml +++ b/ccpp/suites/suite_FV3_GFS_v15.xml @@ -64,6 +64,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 diff --git a/ccpp/suites/suite_FV3_GFS_v15_gf.xml b/ccpp/suites/suite_FV3_GFS_v15_gf.xml index 8e7a209ad..0d56e54c8 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_gf.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_gf.xml @@ -64,6 +64,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 diff --git a/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml b/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml index 4ff6a7acf..1e51e5a13 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml @@ -59,6 +59,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 diff --git a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml index 4f299719c..0b14e37f5 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml @@ -64,6 +64,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson.xml index cd69334f6..9400bbf98 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson.xml @@ -59,6 +59,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml index 92637bd84..6f46141b8 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml @@ -59,6 +59,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 diff --git a/ccpp/suites/suite_FV3_GFS_v15plus.xml b/ccpp/suites/suite_FV3_GFS_v15plus.xml index 3ea9ec743..40397d4f1 100644 --- a/ccpp/suites/suite_FV3_GFS_v15plus.xml +++ b/ccpp/suites/suite_FV3_GFS_v15plus.xml @@ -64,6 +64,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 diff --git a/ccpp/suites/suite_FV3_GSD_noah.xml b/ccpp/suites/suite_FV3_GSD_noah.xml index 56f421e82..e9795b6ef 100644 --- a/ccpp/suites/suite_FV3_GSD_noah.xml +++ b/ccpp/suites/suite_FV3_GSD_noah.xml @@ -59,6 +59,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index e46467857..3f83b5dc5 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -61,6 +61,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 diff --git a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml b/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml index 0ca9cd610..8c56c07e5 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml @@ -58,9 +58,9 @@ sfc_diag_post GFS_surface_generic_post mynnedmf_wrapper - drag_suite_pre + GFS_GWD_generic_pre drag_suite - drag_suite_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys_2015 From 759997d244a0eedb846cd8e47ce5876a7361261a Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 5 Nov 2019 08:12:49 +0900 Subject: [PATCH 002/206] Add CCPP annotations to GFS_driver.F90, GFS_physics_driver.F90, GFS_radiation_driver.F90 --- gfsphysics/GFS_layer/GFS_driver.F90 | 70 ++- gfsphysics/GFS_layer/GFS_physics_driver.F90 | 432 ++++++++++++++---- gfsphysics/GFS_layer/GFS_radiation_driver.F90 | 31 +- 3 files changed, 439 insertions(+), 94 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_driver.F90 b/gfsphysics/GFS_layer/GFS_driver.F90 index 3b6a94336..bea7f3987 100644 --- a/gfsphysics/GFS_layer/GFS_driver.F90 +++ b/gfsphysics/GFS_layer/GFS_driver.F90 @@ -105,6 +105,11 @@ module GFS_driver !-------------- ! GFS initialze !-------------- +!## CCPP ## For the CCPP, much (*but not all*) of the code in this routine has been +! put into CCPP interstitial schemes, especially their init stages. Where this has been +! done, the code is wrapped in both preprocessor directives and comments describing the +! location of the code for CCPP execution. Lines in this routine that are not wrapped in +! a CCPP comment are still executed through this subroutine. subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & Coupling, Grid, Tbd, Cldprop, Radtend, & #ifdef CCPP @@ -197,6 +202,11 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & #endif ) +!## CCPP ##* These are called automatically in GFS_phys_time_vary.fv3.F90/GFS_phys_time_vary_init +! as part of CCPP physics init stage. The reason why these are in GFS_phys_time_vary_init and not +! in ozphys/h2ophys is that the ozone and h2o interpolation of the data read here is done in +! GFS_phys_time_vary_run, i.e. all work related to the ozone/h2o input data is in GFS_phys_time_vary, +! while ozphys/h2ophys are applying ozone/h2o forcing to the model state. #ifndef CCPP call read_o3data (Model%ntoz, Model%me, Model%master) call read_h2odata (Model%h2o_phys, Model%me, Model%master) @@ -207,6 +217,7 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & call read_cidata ( Model%me, Model%master) endif #endif +!*## CCPP ## do nb = 1,nblks ix = Init_parm%blksz(nb) @@ -227,12 +238,12 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & call Diag (nb)%create (ix, Model) enddo -#ifdef CCPP -! This logic deals with non-uniform block sizes for CCPP. When non-uniform block sizes +!## CCPP ##* This logic deals with non-uniform block sizes for CCPP. When non-uniform block sizes ! are used, it is required that only the last block has a different (smaller) size than ! all other blocks. This is the standard in FV3. If this is the case, set non_uniform_blocks ! to .true. and initialize nthreads+1 elements of the interstitial array. The extra element ! will be used by the thread that runs over the last, smaller block. +#ifdef CCPP if (minval(Init_parm%blksz)==maxval(Init_parm%blksz)) then non_uniform_blocks = .false. @@ -258,10 +269,13 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & call Interstitial (nthrds+1)%create (Init_parm%blksz(nblks), Model) end if #endif +!*## CCPP ## !--- populate the grid components call GFS_grid_populate (Grid, Init_parm%xlon, Init_parm%xlat, Init_parm%area) +!## CCPP ##* GFS_phys_time_vary.fv3.F90/GFS_phys_time_vary_init; Note: this is run +! automatically during the CCPP physics initialization stage. #ifndef CCPP !--- read in and initialize ozone and water if (Model%ntoz > 0) then @@ -297,15 +311,20 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & enddo endif #endif +!*## CCPP ## +!## CCPP ##* GFS_time_vary_pre.fv3.F90/GFS_time_vary_pre_init; Note: This is called +! during the CCPP physics initialization stage. #ifndef CCPP !--- Call gfuncphys (funcphys.f) to compute all physics function tables. call gfuncphys () #endif +!*## CCPP ## ! call gsmconst (Model%dtp, Model%me, .TRUE.) ! This is for Ferrier microphysics - notused - moorthi #ifndef CCPP +!## CCPP ##* GFS_typedefs.F90/control_initialize !--- define sigma level for radiation initialization !--- The formula converting hybrid sigma pressure coefficients to sigma coefficients follows Eckermann (2009, MWR) !--- ps is replaced with p0. The value of p0 uses that in http://www.emc.ncep.noaa.gov/officenotes/newernotes/on461.pdf @@ -313,13 +332,17 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & allocate(si(Model%levr+1)) si = (Init_parm%ak + Init_parm%bk * p_ref - Init_parm%ak(Model%levr+1)) & / (p_ref - Init_parm%ak(Model%levr+1)) +!*## CCPP ## +!## CCPP ##* This functionality is now in GFS_rrtmg_setup.F90/GFS_rrtmg_setup_init; Note: it is automatically +! called during the CCPP physics initialization stage. call rad_initialize (si, Model%levr, Model%ictm, Model%isol, & Model%ico2, Model%iaer, Model%ialb, Model%iems, & Model%ntcw, Model%num_p2d, Model%num_p3d, Model%npdf3d, & Model%ntoz, Model%iovr_sw, Model%iovr_lw, Model%isubc_sw, & Model%isubc_lw, Model%icliq_sw, Model%crick_proof, Model%ccnorm,& Model%imp_physics, Model%norad_precip, Model%idate, Model%iflip, Model%me) +!*## CCPP ## deallocate (si) #endif @@ -328,6 +351,8 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & if (Model%imp_physics == Model%imp_physics_mg) then !--- initialize Morrison-Gettelman microphysics #ifndef CCPP +!## CCPP ##* m_micro.F90/m_micro_init; Note: This is automatically called during the +! CCPP physics initialization stage. if (Model%fprcp <= 0) then call ini_micro (Model%mg_dcs, Model%mg_qcvar, Model%mg_ts_auto_ice(1)) elseif (Model%fprcp == 1) then @@ -364,6 +389,7 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & endif call aer_cloud_init () +!*## CCPP ## #endif ! elseif (Model%imp_physics == Model%imp_physics_thompson) then !--- initialize Thompson Cloud microphysics @@ -371,13 +397,16 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & print *,'SHOC is not currently compatible with Thompson MP -- shutting down' stop endif +!## CCPP ##* mp_thompson.F90/mp_thompson_init; Note: This is automatically called during the +! CCPP physics initialization stage. The check for SHOC is not included in the initialization +! (it is only performed above as part of the current routine). #ifndef CCPP call thompson_init() !--- add aerosol version later if(Model%ltaerosol) then print *,'Aerosol awareness is not included in this version of Thompson MP -- shutting down' stop endif -! +!*## CCPP ## elseif(Model%imp_physics == Model%imp_physics_wsm6) then !--- initialize WSM6 Cloud microphysics if(Model%do_shoc) then print *,'SHOC is not currently compatible with WSM6 -- shutting down' @@ -387,6 +416,8 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & #endif ! else if(Model%imp_physics == Model%imp_physics_gfdl) then !--- initialize GFDL Cloud microphysics +!## CCPP ##* gfdl_cloud_microphys.F90/gfdl_cloud_microphys_init; Note: This is automatically called during the +! CCPP physics initialization stage. The check for SHOC is included in the GFDL microphysics initialization routine. #ifndef CCPP if(Model%do_shoc) then print *,'SHOC is not currently compatible with GFDL MP -- shutting down' @@ -395,6 +426,7 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & call gfdl_cloud_microphys_init (Model%me, Model%master, Model%nlunit, Model%input_nml_file, & Init_parm%logunit, Model%fn_nml) #endif +!*## CCPP ## endif #ifndef CCPP @@ -402,8 +434,14 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & if (Model%ras) call ras_init (Model%levs, Model%me) #endif +!## CCPP ##* sfc_drv.f/lsm_noah_init and sfc_noahmp_drv.f/noahmpdrv_init; Note: This is +! automatically called during the CCPP physics initialization stage. +#if 1 +!ifndef CCPP !--- initialize soil vegetation call set_soilveg(Model%me, Model%isot, Model%ivegsrc, Model%nlunit) +#endif +!*## CCPP ## !--- lsidea initialization if (Model%lsidea) then @@ -472,6 +510,7 @@ subroutine GFS_time_vary_step (Model, Statein, Stateout, Sfcprop, Coupling, & integer :: iw3jdn real(kind=kind_phys), parameter :: cn_hr = 3600._kind_phys +!## CCPP ##* GFS_time_vary_pre.fv3.F90/GFS_time_vary_pre_run nblks = size(blksz) !--- Model%jdat is being updated directly inside of FV3GFS_cap.F90 !--- update calendars and triggers @@ -552,12 +591,18 @@ subroutine GFS_time_vary_step (Model, Statein, Stateout, Sfcprop, Coupling, & print *,' phour ', Model%phour print *,' solhr ', Model%solhr endif +!*## CCPP ## +!## CCPP ##* All functionality except for the call to radupdate is now in +! GFS_rad_time_vary.fv3.F90/GFS_rad_time_vary_run. The call to radupdate is now +! in GFS_rrtmg_setup.F90/GFS_rrtmg_setup_run. !--- radiation time varying routine if (Model%lsswr .or. Model%lslwr) then call GFS_rad_time_vary (Model, Statein, Tbd, sec) endif +!*## CCPP ## +!## CCPP ##* All functionality is now in GFS_phys_time_vary.fv3.F90/GFS_phys_time_vary_run !--- physics time varying routine call GFS_phys_time_vary (Model, Grid, Tbd, Statein) @@ -593,7 +638,8 @@ subroutine GFS_time_vary_step (Model, Statein, Stateout, Sfcprop, Coupling, & enddo endif endif -! +!*## CCPP ## +!## CCPP ## This is not yet in the CCPP if (Model%iau_offset > 0) then kdt_iau = nint(Model%iau_offset*con_hr/Model%dtp) if (Model%kdt == kdt_iau+1) then @@ -605,6 +651,7 @@ subroutine GFS_time_vary_step (Model, Statein, Stateout, Sfcprop, Coupling, & if(Model%me == Model%master) print *,'in gfs_driver, at iau_center, zero out rad/phys accumulated diag fields, kdt=',Model%kdt,'kdt_iau=',kdt_iau,'iau_offset=',Model%iau_offset endif endif +!*## CCPP ## ! kludge for output if (Model%do_skeb) then @@ -629,10 +676,10 @@ subroutine GFS_time_vary_step (Model, Statein, Stateout, Sfcprop, Coupling, & enddo enddo endif - +!*## CCPP ## end subroutine GFS_time_vary_step - +!## CCPP ##* GFS_stochastics.F90/GFS_stochastics_run !------------------------------------------------------------------------- ! GFS stochastic_driver !------------------------------------------------------------------------- @@ -795,7 +842,7 @@ subroutine GFS_stochastic_driver (Model, Statein, Stateout, Sfcprop, Coupling, & endif end subroutine GFS_stochastic_driver - +!*## CCPP ## !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -804,6 +851,8 @@ end subroutine GFS_stochastic_driver ! !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +!## CCPP ##* GFS_rad_time_vary.fv3.F90/GFS_rad_time_vary_run except for the call to +! radupdate, which is in GFS_rrtmg_setup.F90/GFS_rrtmg_setup_run !----------------------------------------------------------------------- ! GFS_rad_time_vary !----------------------------------------------------------------------- @@ -869,8 +918,9 @@ subroutine GFS_rad_time_vary (Model, Statein, Tbd, sec) endif end subroutine GFS_rad_time_vary +!*## CCPP ## - +!## CCPP ## GFS_phys_time_vary.fv3.F90/GFS_phys_time_vary_run !----------------------------------------------------------------------- ! GFS_phys_time_vary !----------------------------------------------------------------------- @@ -985,8 +1035,9 @@ subroutine GFS_phys_time_vary (Model, Grid, Tbd, Statein) end subroutine GFS_phys_time_vary #endif +!*## CCPP ## - +!## CCPP ##* This is not in the CCPP !------------------ ! GFS_grid_populate !------------------ @@ -1027,6 +1078,7 @@ subroutine GFS_grid_populate (Grid, xlon, xlat, area) enddo end subroutine GFS_grid_populate +!*## CCPP ## end module GFS_driver diff --git a/gfsphysics/GFS_layer/GFS_physics_driver.F90 b/gfsphysics/GFS_layer/GFS_physics_driver.F90 index 401fbbf86..8c9283198 100644 --- a/gfsphysics/GFS_layer/GFS_physics_driver.F90 +++ b/gfsphysics/GFS_layer/GFS_physics_driver.F90 @@ -474,6 +474,13 @@ subroutine GFS_physics_driver & type(GFS_diag_type), intent(inout) :: Diag #endif ! +!## CCPP ## Note: Variables defined locally in this file for temporary calculations +! or transfer of data between schemes are defined in gfsphysics/GFS_layer/GFS_typedefs.F90 +! in the GFS_interstitial_type datatype. Type-bound procedures create, rad_reset, +! phys_reset, and mprint exist to allocate memory, to reset variables used in GFS_radiation_driver.F90, +! to reset variables used in GFS_physics_driver.F90, and to print the contents of the +! data type to the console + ! --- local variables !--- INTEGER VARIABLES @@ -692,22 +699,27 @@ subroutine GFS_physics_driver & !Stateout%gv0(:,:) = Statein%vgrs(:,:) !Stateout%gq0(:,:,:) = Statein%qgrs(:,:,:) +!## CCPP ## Note: Setting local variables from the Model DDT (without additional +! logic attached) is not necessary with the CCPP interstitial schemes with exceptions +! noted below. + !===> ... begin here ldiag_ugwp = Model%ldiag_ugwp ! !===> master = Model%master - me = Model%me - ix = size(Grid%xlon,1) - im = size(Grid%xlon,1) - ipr = min(im,10) + me = Model%me + ix = size(Grid%xlon,1) !## CCPP ## set in GFS_typedefs.F90/interstitial_create + im = size(Grid%xlon,1) !## CCPP ## set in GFS_typedefs.F90/interstitial_create + ipr = min(im,10) !## CCPP ## set in GFS_typedefs.F90/interstitial_create levs = Model%levs lsoil = Model%lsoil ntrac = Model%ntrac dtf = Model%dtf dtp = Model%dtp +!## CCPP ##* this block not yet in CCPP !------- ! For COORDE-2019 averaging with fwindow, it was done before ! 3Diag fixes and averaging ingested using "fdaily"-factor @@ -722,9 +734,11 @@ subroutine GFS_physics_driver & print *, 'VAY Model%fhzero = 0., Bad Averaged-diagnostics ' endif !------- +!*## CCPP ## kdt = Model%kdt lprnt = Model%lprnt +!## CCPP ## see GFS_typedefs.F90/interstitial_setup_tracers for logic for setting nvdiff nvdiff = ntrac ! vertical diffusion of all tracers! ntcw = Model%ntcw ntoz = Model%ntoz @@ -748,6 +762,7 @@ subroutine GFS_physics_driver & imp_physics = Model%imp_physics +!## CCPP ##* GFS_typedefs.F90/interstitial_setup_tracers nncl = ncld ! perform aerosol convective transport and PBL diffusion @@ -806,11 +821,12 @@ subroutine GFS_physics_driver & if (trans_aero) nvdiff = nvdiff + Model%ntchm if (ntke > 0) nvdiff = nvdiff + 1 ! adding tke to the list endif +!*## CCPP ## ! - ! For CCPP, this is in GFS_Interstitial%phys_reset(Model) in GFS_typedefs.F90 - +!## CCPP ##* GFS_typedefs.F90/interstitial_phys_reset kdtminus1 = kdt - 1 reset = mod(kdtminus1, nint(Model%avg_max_length/dtp)) == 0 +!*## CCPP ## ! !------------------------------------------------------------------------------------------- @@ -847,8 +863,10 @@ subroutine GFS_physics_driver & frain = dtf / dtp +!## CCPP ##* GFS_typedefs.F90/interstitial_create skip_macro = .false. - +!*## CCPP ## +!## CCPP ##* GFS_typedefs.F90/interstitial_setup_tracers if (ntiw > 0) then if (ntclamt > 0) then nn = ntrac - 2 @@ -860,8 +878,11 @@ subroutine GFS_physics_driver & else nn = ntrac + 1 endif +!*## CCPP ## +!## CCPP ##* GFS_typedefs.F90/interstitial_create allocate (clw(ix,levs,nn)) - +!*## CCPP ## +!## CCPP ##* GFS_typedefs.F90/interstitial_create Note: cnvc and cnvw are always allocated and initialized regardless of test condition if (Model%imfdeepcnv >= 0 .or. Model%imfshalcnv > 0 .or. & (Model%npdf3d == 3 .and. Model%num_p3d == 4) .or. & (Model%npdf3d == 0 .and. Model%ncnvcld3d == 1) ) then @@ -872,6 +893,8 @@ subroutine GFS_physics_driver & cnvw(i,k) = zero enddo enddo +!*## CCPP ## +!## CCPP ##* GFS_typedefs.F90/control_initialize Note: these are calculated regardless of test condition if (Model%npdf3d == 3 .and. Model%num_p3d == 4) then num2 = Model%num_p3d + 2 num3 = num2 + 1 @@ -881,7 +904,12 @@ subroutine GFS_physics_driver & !CCPP: num2 = Model%ncnvw !CCPP: num3 = Model%ncnvc endif +!*## CCPP ## ! +!## CCPP ##* initialization in GFS_typedefs.F90/tbd_create; calculation in sfc_noahmp_pre.F90/sfc_noahmp_pre_run, +! although similar variables are calculated in GFS_MP_generic_post_run using up-to-date values of Diag%X, +! which arguably makes more sense (the way it is done probably erroneously causes NoahMP to use 0 for +! these values after diagnostics are zeroed.) ! --- initization for those precip type used in Noah MP ! if (Model%lsm == Model%lsm_noahmp) then @@ -906,7 +934,9 @@ subroutine GFS_physics_driver & enddo endif endif ! if (Model%lsm == Model%lsm_noahmp) +!*## CCPP ## +!## CCPP ##* GFS_surface_generic.F90/GFS_surface_generic_pre_run ! --- set initial quantities for stochastic physics deltas if (Model%do_sppt) then Tbd%dtdtr = zero @@ -919,6 +949,8 @@ subroutine GFS_physics_driver & ! mg, sfc-perts ! --- scale random patterns for surface perturbations with perturbation size ! --- turn vegetation fraction pattern into percentile pattern +!## CCPP ##* Note: initialzations to zero are not needed in GFS_surface_generic.F90/GFS_surface_generic_pre_run +! since this function occurs in GFS_typedefs.F90/interstitial_phys_reset do i=1,im z01d(i) = zero zt1d(i) = zero @@ -956,7 +988,9 @@ subroutine GFS_physics_driver & enddo endif endif +!*## CCPP ## ! +!## CCPP ##* GFS_typedefs.F90/interstitial_create if (Model%do_shoc) then allocate (qrn(im,levs), qsnw(im,levs), & ncpl(im,levs), ncpi(im,levs)) @@ -969,7 +1003,7 @@ subroutine GFS_physics_driver & enddo enddo endif -! +!## CCPP ##* GFS_typedefs.F90/coupling_create ## if (imp_physics == Model%imp_physics_thompson) then if(Model%ltaerosol) then allocate(ice00(im,levs)) @@ -979,7 +1013,8 @@ subroutine GFS_physics_driver & allocate(ice00(im,levs)) endif endif - +!*## CCPP ## +!## CCPP ##* allocated in GFS_typedefs.F90/interstitial_create; initialized in GFS_typedefs.F90/interstitial_phys_reset if (imp_physics == Model%imp_physics_mg) then ! For MGB double moment microphysics allocate (qlcn(im,levs), qicn(im,levs), w_upi(im,levs), & cf_upi(im,levs), CNV_MFD(im,levs), & @@ -1001,12 +1036,14 @@ subroutine GFS_physics_driver & ncgl(i,k) = zero enddo enddo -! +!*## CCPP ## +!## CCPP ##* These variables are currently being allocated fully (im,levs) in GFS_typedefs.F90/interstitial_create else allocate (qlcn(1,1), qicn(1,1), w_upi(1,1), cf_upi(1,1), & CNV_MFD(1,1), CNV_DQLDT(1,1), & ! CNV_MFD(1,1), CNV_PRC3(1,1), CNV_DQLDT(1,1), & clcn(1,1), cnv_fice(1,1), cnv_ndrop(1,1), cnv_nice(1,1)) +!## CCPP ##* The following variables are local to gfdl_cloud_microphys.F90/gfdl_cloud_microphys_run if (imp_physics == Model%imp_physics_gfdl) then ! GFDL MP allocate (delp(im,1,levs), dz(im,1,levs), uin(im,1,levs), & vin(im,1,levs), pt(im,1,levs), qv1(im,1,levs), ql1(im,1,levs), & @@ -1017,7 +1054,9 @@ subroutine GFS_physics_driver & qg_dt(im,1,levs), p123(im,1,levs), refl(im,1,levs), den(im,levs)) endif endif +!*## CCPP ## +!## CCPP ## Only get_prs_fv3.F90/get_prs_fv3_run is a scheme (GFS_HYDRO is assumed to be undefined) #ifdef GFS_HYDRO call get_prs(im, ix, levs, ntrac, Statein%tgrs, Statein%qgrs, & Model%thermodyn_id, Model%sfcpress_id, & @@ -1028,7 +1067,9 @@ subroutine GFS_physics_driver & call get_prs_fv3 (ix, levs, ntrac, Statein%phii, Statein%prsi, & Statein%tgrs, Statein%qgrs, del, del_gz) #endif +!*## CCPP ## +!## CCPP ##* GFS_surface_generic.F90/GFS_surface_generic_pre_run do i = 1, IM sigmaf(i) = max( Sfcprop%vfrac(i),0.01 ) islmsk(i) = nint(Sfcprop%slmsk(i)) @@ -1053,9 +1094,13 @@ subroutine GFS_physics_driver & if (vegtype(i) < 1) vegtype(i) = 17 if (slopetyp(i) < 1) slopetyp(i) = 1 endif +!*## CCPP ## ! --- ... xw: transfer ice thickness & concentration from global to local variables +!## CCPP ## global to local variable transfer not necessary for these two zice(i) = Sfcprop%hice(i) fice(i) = Sfcprop%fice(i) ! ice fraction of lake/ocean wrt whole cell +!*## CCPP ##* +!## CCPP ##* GFS_surface_composites.F90/GFS_surface_composites_pre_run tice(i) = Sfcprop%tisfc(i) ! !GFDL work1(i) = (log(coslat(i) / (nlons(i)*latr)) - dxmin) * dxinv @@ -1065,23 +1110,34 @@ subroutine GFS_physics_driver & work1(i) = max(zero, min(one, work1(i))) work2(i) = one - work1(i) Diag%psurf(i) = Statein%pgr(i) +!*## CCPP ## +!## CCPP ##* GFS_surface_generic.F90/GFS_surface_generic_pre_run work3(i) = Statein%prsik(i,1) / Statein%prslk(i,1) +!*## CCPP ## !GFDL tem1 = con_rerth * (con_pi+con_pi)*coslat(i)/nlons(i) !GFDL tem2 = con_rerth * con_pi / latr !GFDL garea(i) = tem1 * tem2 +!## CCPP ## global to local variable transfer not necessary for these variables tem1 = Grid%dx(i) tem2 = Grid%dx(i) garea(i) = Grid%area(i) +!*## CCPP ## +!## CCPP ##* gwdc.f/gwdc_pre_run dlength(i) = sqrt( tem1*tem1+tem2*tem2 ) cldf(i) = Model%cgwf(1) * work1(i) + Model%cgwf(2) * work2(i) +!*## CCPP ## +!## CCPP ##* cs_conv.F90/cs_conv_pre_run wcbmax(i) = Model%cs_parm(1) * work1(i) + Model%cs_parm(2) * work2(i) -! +!*## CCPP ## +!## CCPP ##* GFS_typedefs.F90/interstitial_phys_reset dry(i) = .false. icy(i) = .false. wet(i) = .false. flag_cice(i) = .false. +!*## CCPP ## enddo ! +!## CCPP ##* note: this block is not yet in CCPP if (Model%cplflx) then do i=1,im islmsk_cice(i) = nint(Coupling%slimskin_cpl(i)) @@ -1096,8 +1152,9 @@ subroutine GFS_physics_driver & endif enddo endif +!*## CCPP ## -! DH* In CCPP, this is in GFS_surface_composites_pre +!## CCPP ##* GFS_surface_composites.F90/GFS_surface_composites_pre if (Model%frac_grid) then ! here Sfcprop%fice is fraction of the whole grid that is ice do i = 1, IM frland(i) = Sfcprop%landfrac(i) @@ -1189,7 +1246,6 @@ subroutine GFS_physics_driver & enddo enddo -! DH* In CCPP, this is in GFS_surface_composites_pre if (.not. Model%cplflx .or. .not. Model%frac_grid) then do i=1,im Sfcprop%zorll(i) = Sfcprop%zorl(i) @@ -1231,9 +1287,9 @@ subroutine GFS_physics_driver & semis3(i,2) = 0.95d0 endif enddo -! *DH +!*## CCPP ## -! +!## CCPP ## global to local variable transfer not necessary for these variables ! --- ... transfer soil moisture and temperature from global to local variables do k=1,lsoil do i=1,im @@ -1242,6 +1298,7 @@ subroutine GFS_physics_driver & slsoil(i,k) = Sfcprop%slc(i,k) !! clu: slc -> slsoil enddo enddo +!*## CCPP ## do k=1,levs do i=1,im @@ -1250,6 +1307,7 @@ subroutine GFS_physics_driver & dtdt(i,k) = zero dtdtc(i,k) = zero +!## CCPP ##* note: this block is not yet in CCPP !vay-2018 ! Pure tendency arrays w/o accumulation of Phys-tendencies from each ! chain of GFS-physics (later add container for species) @@ -1265,9 +1323,10 @@ subroutine GFS_physics_driver & gw_dvdt(i,k) = zero gw_dtdt(i,k) = zero gw_kdis(i,k) = zero -! *DH +!*## CCPP ## enddo enddo +!## CCPP ##* GFS_suite_interstitial.F90/GFS_suite_interstitial_1_run do n=1,ntrac do k=1,levs do i=1,im @@ -1275,7 +1334,9 @@ subroutine GFS_physics_driver & enddo enddo enddo +!*## CCPP ## +!## CCPP ##* This block is not yet in CCPP. !----------------------------------------------- !vay-2018-19 ORO/UGWP process-oriented diagnostics ! @@ -1381,6 +1442,7 @@ subroutine GFS_physics_driver & endif endif !===========================Above Phys-tend Diag for COORDE ====================== +!*## CCPP ## ! --- ... initialize dtdt with heating rate from dcyc2 @@ -1388,7 +1450,7 @@ subroutine GFS_physics_driver & ! faster model time steps. ! sw: using cos of zenith angle as scaling factor ! lw: using surface air skin temperature as scaling factor - +!## CCPP ##* This is not in the CCPP yet. if (Model%pre_rad) then call dcyc2t3_pre_rad & ! --- inputs: @@ -1408,7 +1470,8 @@ subroutine GFS_physics_driver & ) else - +!*## CCPP ## +!** CCPP ## dcyc2.f/dcyc2t3_run Note: Check for Model%pre_rad was omitted, so this option is broken in CCPP call dcyc2t3 & ! --- inputs: ( Model%solhr, Model%slag, Model%sdec, Model%cdec, Grid%sinlat, & @@ -1429,15 +1492,17 @@ subroutine GFS_physics_driver & adjnirbmu, adjnirdfu, adjvisbmu, adjvisdfu, & adjnirbmd, adjnirdfd, adjvisbmd, adjvisdfd & ) - +!*## CCPP ## ! ! save temp change due to radiation - need for sttp stochastic physics !--------------------------------------------------------------------- endif ! +!## CCPP ##* This is not in the CCPP yet. if (Model%lsidea) then !idea jw dtdt(:,:) = zero endif +!*## CCPP ## ! --- convert lw fluxes for land/ocean/sea-ice models ! note: for sw: adjsfcdsw and adjsfcnsw are zenith angle adjusted downward/net fluxes. @@ -1457,12 +1522,15 @@ subroutine GFS_physics_driver & ! --- ... define the downward lw flux absorbed by ground +!## CCPP ##* GFS_surface_composites.F90/GFS_surface_composites_pre_run do i=1,im if (dry(i)) gabsbdlw3(i,1) = semis3(i,1) * adjsfcdlw(i) if (icy(i)) gabsbdlw3(i,2) = semis3(i,2) * adjsfcdlw(i) if (wet(i)) gabsbdlw3(i,3) = semis3(i,3) * adjsfcdlw(i) enddo +!*## CCPP ## +!## CCPP ##* GFS_suite_interstitial.F90/GFS_suite_interstitial_2_run if (Model%lssav) then ! --- ... accumulate/save output variables ! --- ... sunshine duration time is defined as the length of time (in mdl output @@ -1550,8 +1618,8 @@ subroutine GFS_physics_driver & endif ! end if_lssav_block do i=1,im - kcnv(i) = 0 - kinver(i) = levs + kcnv(i) = 0 !## CCPP ## GFS_typedefs.F90/interstitial_phys_reset + kinver(i) = levs !## CCPP ## GFS_typedefs.F90/interstitial_phys_reset invrsn(i) = .false. tx1(i) = zero tx2(i) = 10.0 @@ -1600,10 +1668,11 @@ subroutine GFS_physics_driver & enddo enddo endif - +!*## CCPP ## ! --- ... lu: initialize flag_guess, flag_iter, tsurf +!## CCPP ##* These initializations are done in GFS_typedefs.F90/interstitial_phys_reset except for as noted below do i=1,im ! tsurf(i) = Sfcprop%tsfc(i) flag_guess(i) = .false. @@ -1628,16 +1697,19 @@ subroutine GFS_physics_driver & Statein%vgrs(i,1)*Statein%vgrs(i,1)) & + max(zero, min(Tbd%phy_f2d(i,Model%num_p2d), 30.0)), one) enddo +!*## CCPP ## ! --- ... lu: iter-loop over (sfc_diff,sfc_drv,sfc_ocean,sfc_sice) - +!## CCPP ##* This loop is implemented using the subcycle/iteration capability in the CCPP SDF do iter=1,2 +!*## CCPP ## ! --- ... surface exchange coefficients ! ! if (lprnt) write(0,*)' tsfc=',Sfcprop%tsfc(ipr),' tsurf=',tsurf(ipr),'iter=', & ! iter ,'wet=',wet(ipr),'dry=',dry(ipr),' icy=',icy(ipr) +!## CCPP ##* sfc_diff.f/sfc_diff_run call sfc_diff & ! --- inputs: (im, Statein%pgr, & @@ -1655,13 +1727,16 @@ subroutine GFS_physics_driver & ! cd3, cdq3, rb3, stress3, ffmm3, ffhh3, fm103, fh23, wind, lprnt, ipr) ! ! --- ... lu: update flag_guess - +!*## CCPP ## +!## CCPP ##* GFS_surface_loop_control/GFS_surface_loop_control_part1_run do i=1,im if (iter == 1 .and. wind(i) < 2.0) then flag_guess(i) = .true. endif enddo - +!*## CCPP ## +!## CCPP ##* sfc_nst.f/sfc_nst_pre_run Note: the conditional is not included in the CCPP scheme, so calling +! this code is controlled by its presence in the active CCPP SDF if (Model%nstf_name(1) > 0) then do i=1,im if (wet(i)) then @@ -1692,7 +1767,8 @@ subroutine GFS_physics_driver & endif ! if (lprnt) write(0,*)' bef nst tseal=',tseal(ipr) & ! ,' tsfc3=',tsfc3(ipr,3),' tsurf3=',tsurf3(ipr,3),' tem=',tem - +!*## CCPP ## +!## CCPP ##* sfc_nst.f/sfc_nst_run call sfc_nst & ! --- inputs: (im, Statein%pgr, Statein%ugrs(:,1), Statein%vgrs(:,1), & @@ -1713,6 +1789,8 @@ subroutine GFS_physics_driver & ! --- outputs: qss3(:,3), gflx3(:,3), cmm3(:,3), chh3(:,3), evap3(:,3), & hflx3(:,3), ep1d3(:,3)) +!*## CCPP ## +!## CCPP ##* sfc_nst.f/sfc_nst_post_run ! do i=1,im !! if (wet(i) .and. .not.icy(i)) then @@ -1741,14 +1819,15 @@ subroutine GFS_physics_driver & endif enddo endif - +!*## CCPP ## ! if (lprnt) print *,' tseaz2=',Sfcprop%tsfc(ipr),' tref=',tref(ipr), & ! & ' dt_cool=',dt_cool(ipr),' dt_warm=',dt_warm(ipr),' kdt=',kdt +!## CCPP ## Note: This conditional is replaced by whether the sfc_ocean scheme is in the CCPP SDF else ! --- ... surface energy balance over ocean - +!## CCPP ##* sfc_ocean.F/sfc_ocean_run call sfc_ocean & ! --- inputs: (im, Statein%pgr, & @@ -1758,6 +1837,7 @@ subroutine GFS_physics_driver & ! --- outputs: qss3(:,3), cmm3(:,3), chh3(:,3), gflx3(:,3), evap3(:,3), & hflx3(:,3), ep1d3(:,3)) +!*## CCPP ## endif ! if nstf_name(1) > 0 @@ -1768,12 +1848,16 @@ subroutine GFS_physics_driver & ! --- ... surface energy balance over land ! +!## CCPP ##* Note: the conditional is not included in the CCPP, so calling +! the LSM scheme is controlled by its presence in the active CCPP SDF if (Model%lsm == Model%lsm_noah) then ! noah lsm call +!*## CCPP ## ! if (lprnt) write(0,*)' tseal=',tseal(ipr),' tsurf=',tsurf(ipr),iter & ! ,' stsoil0=',stsoil(ipr,:) ! &,' pgr=',pgr(ipr),' sfcemis=',sfcemis(ipr) +!## CCPP ##* sfc_drv.f/lsm_noah_run call sfc_drv & ! --- inputs: (im, lsoil, Statein%pgr, & @@ -1795,12 +1879,14 @@ subroutine GFS_physics_driver & hflx3(:,1), ep1d3(:,1), runof, & cmm3(:,1), chh3(:,1), evbs, evcw, sbsno, snowc, Diag%soilm, & snohf, Diag%smcwlt2, Diag%smcref2, Diag%wet1) +!*## CCPP ## ! if (lprnt) write(0,*)' tseae=',tseal(ipr),' tsurf=',tsurf(ipr),iter& ! ,' phy_f2d=',phy_f2d(ipr,num_p2d) ! if (lprnt) write(0,*)' hflx3=',hflx3(ipr,:),' evap3=',evap3(i,:) +!## CCPP ##* sfc_noahmp_drv.f/noahmpdrv_run ! Noah MP call ! elseif (Model%lsm == Model%lsm_noahmp) then @@ -1846,6 +1932,7 @@ subroutine GFS_physics_driver & ! if (lprnt) write(0,*)' tseae=',tsea(ipr),' tsurf=',tsurf(ipr),iter & ! &,' phy_f2d=',phy_f2d(ipr,num_p2d) +!*## CCPP ## elseif (Model%lsm == Model%lsm_ruc) then write (0,*) 'RUC LSM is available only in CCPP' @@ -1858,7 +1945,7 @@ subroutine GFS_physics_driver & ! &,' stsoil=',stsoil(ipr,:) ! --- ... surface energy balance over seaice - +!## CCPP ##* This section is not in the CCPP yet if (Model%cplflx) then do i=1,im if (flag_cice(i)) then @@ -1879,10 +1966,12 @@ subroutine GFS_physics_driver & qss3(:,2), cmm3(:,2), chh3(:,2), evap3(:,2), hflx3(:,2), & stress3(:,2)) endif +!*## CCPP ## ! ! call sfc_sice for lake ice and for the uncoupled case, sea ice (i.e. islmsk=2) ! +!## CCPP ##* sfc_sice.f/sfc_sice_run call sfc_sice & ! --- inputs: (im, lsoil, Statein%pgr, & @@ -1898,7 +1987,8 @@ subroutine GFS_physics_driver & ! --- outputs: snowd3(:,2), qss3(:,2), snowmt, gflx3(:,2), cmm3(:,2), chh3(:,2), & evap3(:,2), hflx3(:,2)) - +!*## CCPP ## +!## CCPP ##* This section is not in the CCPP yet. if (Model%cplflx) then do i = 1, im if (flag_cice(i)) then @@ -1906,12 +1996,13 @@ subroutine GFS_physics_driver & endif enddo endif +!*## CCPP ## ! if (lprnt) write(0,*)' tseaafticemodel =',tsfc3(ipr,2),' me=',me & ! &, ' kdt=',kdt,' iter=',iter,' fice=',fice(ipr) ! --- ... lu: update flag_iter and flag_guess - +!## CCPP ##* GFS_surface_loop_control.F90/GFS_surface_loop_control_part_2 do i=1,im flag_iter(i) = .false. flag_guess(i) = .false. @@ -1924,12 +2015,14 @@ subroutine GFS_physics_driver & endif enddo +!*## CCPP ## enddo ! end iter_loop ! --- generate ocean/land/ice composites +!## CCPP ##* GFS_surface_compoistes.F90/GFS_surface_composites_post_run if (Model%frac_grid) then do i=1, im ! @@ -2072,32 +2165,43 @@ subroutine GFS_physics_driver & endif enddo endif ! if (Model%frac_grid) +!*## CCPP ## ! --- compositing done ! if (lprnt) write(0,*) 'tisfc=',Sfcprop%tisfc(ipr),'tice=',tice(ipr),' kdt=',kdt do i=1,im +!## CCPP ##* GFS_surface_generic.F90/GFS_surface_generic_post_run Diag%epi(i) = ep1d(i) +!*## CCPP ## Diag%dlwsfci(i) = adjsfcdlw(i) Diag%ulwsfci(i) = adjsfculw(i) +!## CCPP ##* dcyc2.f/dcyc2t3_post_run Diag%uswsfci(i) = adjsfcdsw(i) - adjsfcnsw(i) +!*## CCPP ## Diag%dswsfci(i) = adjsfcdsw(i) +!## CCPP ##* GFS_surface_generic.F90/GFS_surface_generic_post_run Diag%gfluxi(i) = gflx(i) Diag%t1(i) = Statein%tgrs(i,1) Diag%q1(i) = Statein%qgrs(i,1,1) Diag%u1(i) = Statein%ugrs(i,1) Diag%v1(i) = Statein%vgrs(i,1) +!*## CCPP ## enddo ! --- ... update near surface fields +!## CCPP ##* sfc_diag.f/sfc_diag_run call sfc_diag (im, Statein%pgr, Statein%ugrs(:,1), Statein%vgrs(:,1), & Statein%tgrs(:,1), Statein%qgrs(:,1,1), work3, evap, & Sfcprop%ffmm, Sfcprop%ffhh, fm10, fh2, Sfcprop%tsfc, qss, & Sfcprop%f10m, Diag%u10m, Diag%v10m, Sfcprop%t2m, Sfcprop%q2m) +!*## CCPP ## +!## CCPP ##* This block is not in the CCPP Tbd%phy_f2d(:,Model%num_p2d) = zero +!*## CCPP ## if (Model%lsm == Model%lsm_noahmp) then do i=1,im @@ -2186,7 +2290,8 @@ subroutine GFS_physics_driver & Diag%snowca(i) = Diag%snowca(i) + snowc(i) * dtf Diag%snohfa(i) = Diag%snohfa(i) + snohf(i) * dtf Diag%ep(i) = Diag%ep(i) + ep1d(i) * dtf - +!*## CCPP ## +!## CCPP ##* sfc_diag_post.F90/sfc_diag_post_run Diag%tmpmax(i) = max(Diag%tmpmax(i), Sfcprop%t2m(i)) Diag%tmpmin(i) = min(Diag%tmpmin(i), Sfcprop%t2m(i)) @@ -2209,6 +2314,7 @@ subroutine GFS_physics_driver & enddo endif +!*## CCPP ## !!!!!!!!!!!!!!!!!Commented by Moorthi on July 18, 2012 !!!!!!!!!!!!!!!!!!! ! do i=1,im @@ -2247,6 +2353,8 @@ subroutine GFS_physics_driver & ! write(0,*)' before monsho hflx=',hflx,' me=',me ! write(0,*)' before monsho evap=',evap,' me=',me +!## CCPP ##* Note: In the CCPP, the vdftra array is prepared in GFS_PBL_generic.F90/GFS_PBL_generic_pre_run +! regardless of the following conditions. Therefore, this block is redundant in the CCPP and is not included. if (nvdiff == ntrac .or. Model%do_ysu .or. Model%shinhong) then ! ntiwx = 0 @@ -2366,10 +2474,15 @@ subroutine GFS_physics_driver & endif ! end if_hybedmf endif ! end if_do_shoc else +!*## CCPP ## +!## CCPP ## These variables are allocated in GFS_typedefs.F90/interstitial_create and +! initialized in GFS_typedefs.F90/interstitial_phys_reset; ntiwx is set in +! GFS_typedef.F90/interstitial_setup_tracers allocate(vdftra(ix,levs,nvdiff), dvdftra(im,levs,nvdiff)) dvdftra(:,:,:) = zero ntiwx = 0 ! +!## CCPP ##* GFS_PBL_generic.F90/GFS_PBL_generic_pre_run (ntiwx is set in GFS_typedef.F90/interstitial_setup_tracers) if (imp_physics == Model%imp_physics_wsm6) then ! WSM6 do k=1,levs @@ -2495,10 +2608,12 @@ subroutine GFS_physics_driver & enddo enddo endif -! +!*## CCPP ## ! for SHOC nvdiff=ntrac, so the following is not needed unless cplchm is true ! ----------------------------------------------------- if (Model%do_shoc) then +!## CCPP ##* moninshoc.f/moninshoc_run Note: The conditional above is not checked in the CCPP scheme; +! therefore the use of this scheme is controlled via the CCPP SDF call moninshoc(ix, im, levs, nvdiff, ntcw, nncl, dvdt, dudt, dtdt, dvdftra, & Statein%ugrs, Statein%vgrs, Statein%tgrs, vdftra, & Tbd%phy_f3d(1,1,ntot3d-1), prnum, ntkev, & @@ -2509,9 +2624,12 @@ subroutine GFS_physics_driver & dvsfc1, dtsfc1, dqsfc1, dkt, Diag%hpbl, kinver, & Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, Model%xkzminv, & lprnt, ipr, me) +!*## CCPP ## else if (Model%satmedmf) then if (Model%isatmedmf == 0) then ! initial version of satmedmfvdif (Nov 2018) +!## CCPP ## satmedmfvdif.F/satmedmfvdif_run Note: The conditional above is not checked in the CCPP scheme; +! therefore the use of this scheme is controlled via the CCPP SDF call satmedmfvdif(ix, im, levs, nvdiff, ntcw, ntiwx, ntkev, & dvdt, dudt, dtdt, dvdftra, & Statein%ugrs, Statein%vgrs, Statein%tgrs, vdftra, & @@ -2522,7 +2640,9 @@ subroutine GFS_physics_driver & Statein%prslk, Statein%phii, Statein%phil, dtp, & Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s) +!*## CCPP ## elseif (Model%isatmedmf == 1) then ! updated version of satmedmfvdif (May 2019) +!## CCPP ##* This scheme is not in the CCPP yet. call satmedmfvdifq(ix, im, levs, nvdiff, ntcw, ntiwx, ntkev, & dvdt, dudt, dtdt, dvdftra, & Statein%ugrs, Statein%vgrs, Statein%tgrs, vdftra, & @@ -2534,8 +2654,11 @@ subroutine GFS_physics_driver & Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, & Model%dspfac, Model%bl_upfr, Model%bl_dnfr) +!*## CCPP ## endif elseif (Model%hybedmf) then +!## CCPP ## moninedmf.f/hedmf_run Note: The conditional above is not checked in the CCPP scheme; +! therefore the use of this scheme is controlled via the CCPP SDF if ( Model%moninq_fac > 0 ) then call moninedmf(ix, im, levs, nvdiff, ntcw, dvdt, dudt, dtdt, dvdftra, & Statein%ugrs, Statein%vgrs, Statein%tgrs, vdftra, & @@ -2548,6 +2671,8 @@ subroutine GFS_physics_driver & gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac) +!*## CCPP ## +!## CCPP ##* The following schemes are not in the CCPP yet. else call moninedmf_hafs(ix, im, levs, nvdiff, ntcw, dvdt, dudt, dtdt, dvdftra, & Statein%ugrs, Statein%vgrs, Statein%tgrs, vdftra, & @@ -2594,7 +2719,8 @@ subroutine GFS_physics_driver & endif ! end if_satmedmf endif ! end if_do_shoc -! +!*## CCPP ## +!## CCPP ## GFS_PBL_generic.F90/GFS_PBL_generic_post_run if (ntke > 0) then do k=1,levs do i=1,im @@ -2708,7 +2834,9 @@ subroutine GFS_physics_driver & deallocate(vdftra, dvdftra) endif +!*## CCPP ## +!## CCPP ##* This block is not yet in CCPP if (Model%cplchm) then do i = 1, im tem1 = max(Diag%q1(i), 1.e-8) @@ -2717,6 +2845,7 @@ subroutine GFS_physics_driver & enddo Coupling%dkt (:,:) = dkt (:,:) endif +!*## CCPP ## ! if (lprnt) then ! write(0,*) ' dusfc1=',dusfc1(ipr),' kdt=',kdt,' lat=',lat @@ -2729,6 +2858,8 @@ subroutine GFS_physics_driver & ! --- ... coupling insertion +!## CCPP ## This block is not in the CCPP yet. It should probably be put in +! GFS_PBL_generic.F90/GFS_PBL_generic_post_run. if (Model%cplflx) then do i=1,im if (Sfcprop%oceanfrac(i) > zero) then ! Ocean only, NO LAKES @@ -2770,7 +2901,9 @@ subroutine GFS_physics_driver & endif ! Ocean only, NO LAKES enddo endif +!*## CCPP ## !-------------------------------------------------------lssav if loop ---------- +!## CCPP ## GFS_PBL_generic.F90/GFS_PBL_generic_post_run if (Model%lssav) then do i=1,im Diag%dusfc (i) = Diag%dusfc(i) + dusfc1(i)*dtf @@ -2809,7 +2942,9 @@ subroutine GFS_physics_driver & endif endif ! end if_lssav +!*## CCPP ## +!## CCPP ##* This block not yet in CCPP. ! if (ldiag_ugwp) then ! @@ -2836,12 +2971,14 @@ subroutine GFS_physics_driver & enddo endif endif +!*## CCPP ## !============================================================= GW-physics start ! ! Orographic gravity wave drag parameterization ! --------------------------------------------- +!## CCPP ##* GFS_GWD_generic.F90/GFS_GWD_generic_pre_run if (nmtvr == 14) then ! current operational - as of 2014 do i=1,im ! vay-2018 @@ -2897,7 +3034,9 @@ subroutine GFS_physics_driver & gamma = zero ; sigma = zero ; elvmax = zero endif ! end if_nmtvr +!*## CCPP ## +!## CCPP ##* cires_ugwp.F90/cires_ugwp_run - only V0 is implemented ! !===== UGWP-start: two versions V0 (knob_ugwp_version=0) and V1(knob_ugwp_version=1) ! @@ -3043,6 +3182,8 @@ subroutine GFS_physics_driver & !! enddo !! endif +!## CCPP ##* rayleigh_damp.f/rayleigh_damp_run Note: Conditional IS checked +! within the scheme (returns from scheme if condition is not met) ! Rayleigh damping near the model top if( .not. Model%lsidea .and. Model%ral_ts > zero) then call rayleigh_damp(im, ix, im, levs, dvdt, dudt, dtdt, & @@ -3059,6 +3200,9 @@ subroutine GFS_physics_driver & ! Standard accum-Update before "moist physics" by "PBL + GWP + RF" as in GFS/GSM ! +!## CCPP ##* GFS_suite_interstitial.F90/GFS_suite_stateout_update Note: Terms +! containing gw_* are related to the CIRES UGWP code and are not currently in +! this scheme. do k=1,levs do i=1,im Stateout%gt0(i,k) = Statein%tgrs(i,k) + dtdt(i,k) * dtp @@ -3067,10 +3211,9 @@ subroutine GFS_physics_driver & enddo enddo Stateout%gq0(1:im,:,:) = Statein%qgrs(1:im,:,:) + dqdt(1:im,:,:) * dtp +!*## CCPP ## -! *DH - -! DH* this block not yet in CCPP +! DH* TODO - WHERE IS THIS IN CCPP? !================================================================================ ! above: updates of the state by UGWP oro-GWS and RF-damp ! Diag%tav_ugwp & Diag%uav_ugwp(i,k)-Updated U-T state before moist/micro ! physics @@ -3085,24 +3228,30 @@ subroutine GFS_physics_driver & enddo enddo endif +! *DH !================================================================================ ! It is not clear Do we need it, "ideaca_up", having stability check inside UGWP-module - +!## CCPP ##* This is not in the CCPP yet. if (Model%lsidea) then ! idea convective adjustment call ideaca_up(Statein%prsi,Stateout%gt0,ix,im,levs+1) endif +!*## CCPP ## ! --- ... ozone physics if (ntoz > 0 .and. ntrac >= ntoz) then if (oz_coeff > 4) then +!## CCPP ##* ozphys_2015.f/ozphys_2015_run Note: The conditionals above are not +! checked in the scheme. The scheme's use is controlled by its presense in the +! CCPP SDF call ozphys_2015 (ix, im, levs, levozp, dtp, & Stateout%gq0(1,1,ntoz), & Stateout%gq0(1,1,ntoz), & Stateout%gt0, oz_pres, Statein%prsl, & Tbd%ozpl, oz_coeff, del, Model%ldiag3d, & dq3dt_loc(1,1,6), me) +!*## CCPP ## ! if (Model%ldiag3d) then ! do k=1,levs ! do i=1,im @@ -3114,12 +3263,14 @@ subroutine GFS_physics_driver & ! enddo ! endif else +!## CCPP ##* ozphys.f/ozphys_run call ozphys (ix, im, levs, levozp, dtp, & Stateout%gq0(1,1,ntoz), & Stateout%gq0(1,1,ntoz), & Stateout%gt0, oz_pres, Statein%prsl, & Tbd%ozpl, oz_coeff, del, Model%ldiag3d, & dq3dt_loc(1,1,6), me) +!*## CCPP ## ! if (Model%ldiag3d) then ! do k=1,levs ! do i=1,im @@ -3134,10 +3285,13 @@ subroutine GFS_physics_driver & endif if (Model%h2o_phys) then +!## CCPP ## h2ophys.f/h2ophys_run Note: The conditional is not checked within +! the scheme. The scheme's use is controlled via the CCPP SDF. call h2ophys (ix, im, levs, levh2o, dtp, Stateout%gq0(1,1,1), & Stateout%gq0(1,1,1), h2o_pres, Statein%prsl, & Tbd%h2opl, h2o_coeff, Model%ldiag3d, & dq3dt_loc(1,1,1), me) +!*## CCPP ## endif ! --- ... to side-step the ozone physics @@ -3172,6 +3326,7 @@ subroutine GFS_physics_driver & ! &,' lat=',lat,' kdt=',kdt,' me=',me ! if (lprnt) write(7000,*)' bef convection gv0=',gv0(ipr,:) +!## CCPP ## GFS_DCNV_generic.F90/GFS_DCNV_generic_pre_run if (Model%ldiag3d) then do k=1,levs do i=1,im @@ -3187,7 +3342,9 @@ subroutine GFS_physics_driver & if (Model%ldiag3d) then dqdt(1:im,:,1) = Stateout%gq0(1:im,:,1) endif ! end if_ldiag3d +!*## CCPP ## +!## CCPP ## Only get_prs_fv3.F90/get_phi_fv3_run is a scheme (GFS_HYDRO is assumed to be undefined) #ifdef GFS_HYDRO call get_phi(im, ix, levs, ntrac, Stateout%gt0, Stateout%gq0, & Model%thermodyn_id, Model%sfcpress_id, & @@ -3198,7 +3355,10 @@ subroutine GFS_physics_driver & call get_phi_fv3 (ix, levs, ntrac, Stateout%gt0, Stateout%gq0, & del_gz, Statein%phii, Statein%phil) #endif +!*## CCPP ## +!## CCPP ## These variables are initialized every physics time step through +! GFS_typedefs.F90/interstitial_phys_reset do k=1,levs do i=1,im clw(i,k,1) = zero @@ -3214,16 +3374,20 @@ subroutine GFS_physics_driver & ice00 (:,:) = zero endif endif - +!*## CCPP ## ! --- ... for convective tracer transport (while using ras, csaw, or samf) ! (the code here implicitly assumes that ntiw=ntcw+1) +!## CCPP ## Most of this code block is in GFS_typedefs.F90/interstitial_setup_tracers except +! for code that needs to be executed every time step (noted below). For those lines, +! they are in GFS_suite_interstitial.F90/GFS_suite_interstitial_3_run. ntk = 0 tottracer = 0 if (Model%cscnv .or. Model%satmedmf .or. Model%trans_trac ) then otspt(:,:) = .true. ! otspt is used only for cscnv otspt(1:3,:) = .false. ! this is for sp.hum, ice and liquid water +!## CCPP ##* GFS_suite_interstitial.F90/GFS_suite_interstitial_3_run tracers = 2 do n=2,ntrac if ( n /= ntcw .and. n /= ntiw .and. n /= ntclamt .and. & @@ -3235,6 +3399,7 @@ subroutine GFS_physics_driver & clw(i,k,tracers) = Stateout%gq0(i,k,n) enddo enddo +!*## CCPP ## if (ntke == n ) then otspt(tracers+1,1) = .false. ntk = tracers @@ -3248,19 +3413,21 @@ subroutine GFS_physics_driver & enddo tottracer = tracers - 2 endif ! end if_ras or cfscnv or samf +!*## CCPP ## ! if (kdt == 1 .and. me == 0) & ! write(0,*)' trans_trac=',Model%trans_trac,' tottracer=', & ! & tottracer,' kdt=',kdt,' ntk=',ntk - +!## CCPP ##* These variables are initialized in GFS_typedefs.F90/interstitial_phys_reset do i=1,im ktop(i) = 1 kbot(i) = levs enddo +!*## CCPP ## ! --- ... calling condensation/precipitation processes ! -------------------------------------------- - +!## CCPP ## GFS_suite_interstitial.F90/GFS_suite_interstitial_3_run if (ntcw > 0) then ! if (imp_physics == Model%imp_physics_mg .and. .not. Model%do_shoc) then ! compute rhc for GMAO macro physics cloud pdf if (imp_physics == Model%imp_physics_mg .and. Model%crtrh(2) < 0.5) then ! compute rhc for GMAO macro physics cloud pdf @@ -3307,13 +3474,17 @@ subroutine GFS_physics_driver & enddo endif endif ! ntcw > 0 +!*## CCPP ## ! if (imp_physics == Model%imp_physics_zhao_carr .or. & imp_physics == Model%imp_physics_zhao_carr_pdf) then ! zhao-carr microphysics +!## CCPP ##* precpd.f/zhaocarr_precpd_run do i=1,im psautco_l(i) = Model%psautco(1)*work1(i) + Model%psautco(2)*work2(i) prautco_l(i) = Model%prautco(1)*work1(i) + Model%prautco(2)*work2(i) enddo +!*## CCPP ## +!## CCPP ##* GFS_suite_interstitial.F90/GFS_suite_interstitial_3_run do k=1,levs do i=1,im clw(i,k,1) = Stateout%gq0(i,k,ntcw) @@ -3342,24 +3513,39 @@ subroutine GFS_physics_driver & clw(i,k,2) = Stateout%gq0(i,k,ntcw) ! water enddo enddo +!*## CCPP ## +!## CCPP ## These lines are not in the CCPP since it appeared that they were +! not needed. These variables are only ever used if (imp_physics == 99 .or. imp_physics == 98) +! which is handled by the first if statement. else do i=1,im psautco_l(i) = Model%psautco(1)*work1(i) + Model%psautco(2)*work2(i) prautco_l(i) = Model%prautco(1)*work1(i) + Model%prautco(2)*work2(i) enddo +!*## CCPP ## +!## CCPP ##* GFS_suite_interstitial.F90/GFS_suite_interstitial_3_run rhc(:,:) = one +!*## CCPP ## endif ! ! Call SHOC if do_shoc is true and shocaftcnv is false ! +!## CCPP ##* gcm_shoc.F90/shoc_run Note: do_shoc is not checked in the scheme, so +! using this scheme is controlled via the CCPP SDF. if (Model%do_shoc .and. .not. Model%shocaftcnv) then if (imp_physics == Model%imp_physics_mg) then do k=1,levs do i=1,im +!## CCPP ##* These lines are commented out in gcm_shoc.F90/shoc_run since they are +! previously executed in GFS_suite_interstitial.F90/GFS_suite_interstitial_3_run ! clw(i,k,1) = Stateout%gq0(i,k,ntiw) ! ice ! clw(i,k,2) = Stateout%gq0(i,k,ntcw) ! water +!*## CCPP ## +!## CCPP ##* These lines are commented out in gcm_shoc.F90/shoc_run since it is +! not necessary to copy global variables to local variables ncpl(i,k) = Stateout%gq0(i,k,ntlnc) ncpi(i,k) = Stateout%gq0(i,k,ntinc) +!*## CCPP ## enddo enddo if (abs(Model%fprcp) == 1 .or. mg3_as_mg2) then @@ -3471,6 +3657,7 @@ subroutine GFS_physics_driver & ! &, Stateout%gq0(1:ix,1:levs,1),clw(1,1,2),clw(1,1,1) & ! &, ' shoc ', grid%xlon(1:im), grid%xlat(1:im)) +!## CCPP ## this is in CCPP's gcm_shoc (but commented out because not needed) if (imp_physics == Model%imp_physics_mg) then do k=1,levs do i=1,im @@ -3479,7 +3666,7 @@ subroutine GFS_physics_driver & enddo enddo endif - +!*## CCPP ## ! do k=1,levs ! do i=1,im ! sgs_cld(i,k) = sgs_cld(i,k) + shoc_cld(i,k) @@ -3502,6 +3689,7 @@ subroutine GFS_physics_driver & ! write(0,*)' aft shoc gq0=',gq0(1,:,1),' lat=',lat ! write(0,*)' aft shoc gu0=',gu0(1,:),' lat=',lat ! +!*## CCPP ## endif ! if(do_shoc) ! @@ -3509,6 +3697,9 @@ subroutine GFS_physics_driver & ! ----------------------------------- if (Model%do_deep) then +!## CCPP ## GFS_DCNV_generic.F90/GFS_DCNV_generic_pre_run Note: The conditional +! above is not checked within the scheme, so the execution of the code below +! is controlled via its presence in the CCPP SDF. if (Model%do_ca) then do k=1,levs do i=1,im @@ -3528,7 +3719,8 @@ subroutine GFS_physics_driver & enddo enddo endif - +!*## CCPP ## +!## CCPP ##* This scheme is not in the CCPP. if (.not. Model%ras .and. .not. Model%cscnv) then if (Model%imfdeepcnv == 1) then ! no random cloud top @@ -3545,12 +3737,16 @@ subroutine GFS_physics_driver & Model%c1_deep, Model%betal_deep, Model%betas_deep, & Model%evfact_deep, Model%evfactl_deep, & Model%pgcon_deep) +!*## CCPP ## elseif (Model%imfdeepcnv == 2) then +!## CCPP ##* GFS_typedefs.f90/interstitial_setup_tracers if(.not. Model%satmedmf .and. .not. Model%trans_trac) then nsamftrac = 0 else nsamftrac = tottracer endif +!*## CCPP ## +!## CCPP ##* samfdeepcnv.f/samfdeepcnv_run call samfdeepcnv(im, ix, levs, dtp, itc, Model%ntchm, ntk, nsamftrac, & del, Statein%prsl, Statein%pgr, Statein%phil, clw, & Stateout%gq0(:,:,1), Stateout%gt0, & @@ -3566,6 +3762,7 @@ subroutine GFS_physics_driver & Model%c1_deep, Model%betal_deep, Model%betas_deep, & Model%evfact_deep, Model%evfactl_deep, & Model%pgcon_deep, Model%asolfac_deep) +!*## CCPP ## ! if (lprnt) print *,' rain1=',rain1(ipr) !elseif (Model%imfdeepcnv == 3) then ! if (Model%me==0) then @@ -3578,6 +3775,7 @@ subroutine GFS_physics_driver & ! stop ! end if elseif (Model%imfdeepcnv == 0) then ! random cloud top +!## CCPP ##* This is not in the CCPP yet. call sascnv (im, ix, levs, Model%jcap, dtp, del, & Statein%prsl, Statein%pgr, Statein%phil, clw(:,:,1:2), & Stateout%gq0(:,:,1), Stateout%gt0, Stateout%gu0, & @@ -3588,9 +3786,10 @@ subroutine GFS_physics_driver & ! QLCN, QICN, w_upi,cf_upi, CNV_MFD, CNV_PRC3, & CNV_DQLDT,CLCN,CNV_FICE,CNV_NDROP,CNV_NICE,imp_physics ) ! if (lprnt) print *,' rain1=',rain1(ipr),' rann=',rann(ipr,1) +!*## CCPP ## endif -! +!## CCPP ##* GFS_DCNV_generic.F90/GFS_DCNV_generic_post_run if (Model%npdf3d == 3 .and. Model%num_p3d == 4) then do k=1,levs do i=1,im @@ -3612,9 +3811,10 @@ subroutine GFS_physics_driver & if(Model%do_ca) then Coupling%cape(:) = cld1d(:) endif - +!*## CCPP ## ! else ! ras or cscnv +!## CCPP ## cs_conv.F90/cs_conv_pre_run fscav(:) = zero if (Model%cscnv) then ! Chikira-Sugiyama convection scheme (via CSU) @@ -3629,6 +3829,7 @@ subroutine GFS_physics_driver & ! dqdt(i,k,3) = clw(i,k,1) ! enddo ! enddo +!*## CCPP ## ! ! JLS NOTE: The convective mass fluxes (dt_mf, dd_mf and ud_mf) passed in and out of cs_conv have not been multiplied by @@ -3644,6 +3845,7 @@ subroutine GFS_physics_driver & ! JLS NOTE: The variable rain1 output from cs_convr (called prec inside the subroutine) is a precipitation flux (kg/m2/sec), ! not meters LWE like the other schemes. It is converted to m after the call to cs_convr. +!## CCPP ## cs_conv.F90/cs_conv_run call cs_convr (ix, im, levs, ntrac+1, nn, tottracer+3, & Model%nctp, otspt(1:ntrac+1,1:2), 1, & kdt, Stateout%gt0, Stateout%gq0(:,:,1:1), rain1, & @@ -3658,7 +3860,7 @@ subroutine GFS_physics_driver & w_upi, cf_upi, CNV_MFD, CNV_DQLDT, & ! w_upi, cf_upi, CNV_MFD, CNV_PRC3, CNV_DQLDT, & CLCN, CNV_FICE, CNV_NDROP, CNV_NICE, imp_physics) - +!*## CCPP ## ! if (lprnt) write(0,*)'aftcsgt0=',Stateout%gt0(ipr,:) ! if (lprnt) write(0,*)'aftcstke=',clw(ipr,1:25,ntk) @@ -3672,8 +3874,9 @@ subroutine GFS_physics_driver & ! &, Stateout%gq0(1:ix,1:levs,1),clw(1,1,2),clw(1,1,1) & ! &, ' cs_conv', grid%xlon(1:im), grid%xlat(1:im)) - +!## CCPP ##* Not in the CCPP. TODO: Does this need to be in cs_conv_post_run? rain1(:) = rain1(:) * (dtp*0.001) +!## CCPP ##* cs_conv.F90/cs_conv_post_run if (Model%do_aw) then do k=1,levs kk = min(k+1,levs) ! assuming no cloud top reaches the model top @@ -3682,7 +3885,7 @@ subroutine GFS_physics_driver & enddo enddo endif - +!*## CCPP ## ! if (lprnt) then ! write(0,*)' gt01=',stateout%gt0(ipr,:),' kdt=',kdt ! write(0,*)' gq01=',stateout%gq0(ipr,:,1),' kdt=',kdt @@ -3694,7 +3897,7 @@ subroutine GFS_physics_driver & else ! ras version 2 -! DH* this code not yet in CCPP (belongs to GFS_DCNV_generic_pre?) +!## CCPP ##* This code not yet in CCPP Note: Likely belongs in rascnv_pre. if (Model%ccwf(1) >= zero .or. Model%ccwf(2) >= 0) then do i=1,im ccwfac(i) = Model%ccwf(1)*work1(i) + Model%ccwf(2)*work2(i) @@ -3726,14 +3929,14 @@ subroutine GFS_physics_driver & ! if (ncld ==2) revap = .false. trcmin(:) = -999999.0 if (ntk-2 > 0) trcmin(ntk-2) = 1.0e-4 - +!*## CCPP ## ! if (lprnt) write(0,*)' gt04bras=',Stateout%gt0(ipr,:) ! if (lprnt) write(0,*)' gq04bras=',Stateout%gq0(ipr,:,1) ! if (lprnt) write(0,*)'befrasclw1=',clw(ipr,:,1) ! if (lprnt) write(0,*)'befrasclw2=',clw(ipr,:,2) ! if (lprnt) write(0,*)'befrastke=',clw(ipr,:,ntk) ! if (lprnt) write(0,*)'trcmin=',trcmin(ntk-2),' ntk=',ntk - +!## CCPP ## Not in CCPP yet. call rascnv (im, ix, levs, dtp, dtf, Tbd%rann, Stateout%gt0, & Stateout%gq0, Stateout%gu0, Stateout%gv0, clw, & tottracer, fscav, Statein%prsi, Statein%prsl, & @@ -3749,6 +3952,7 @@ subroutine GFS_physics_driver & CLCN, CNV_FICE, CNV_NDROP, CNV_NICE, imp_physics, & ! trcmin) trcmin, ntk) +!*## CCPP ## ! if (lprnt) write(0,*)' gt04=',Stateout%gt0(ipr,1:60) ! if (lprnt) write(0,*)' gq04=',Stateout%gq0(ipr,1:60,1) @@ -3768,10 +3972,13 @@ subroutine GFS_physics_driver & ! &,' cnv_prc3sum=',sum(cnv_prc3(ipr,1:levs)) ! if (lprnt) write(0,*)' gt04=',gt0(ipr,1:10) +!## CCPP ##* Not in CCPP yet. cld1d = 0 +!*## CCPP ## endif ! end if_not_ras +!## CCPP ##* GFS_DCNV_generic.F90/GFS_DCNV_generic_post if(Model%isppt_deep)then do k=1,levs do i=1,im @@ -3783,13 +3990,16 @@ subroutine GFS_physics_driver & enddo deallocate(savet, saveq, saveu, savev) endif - +!*## CCPP ## else ! no parameterized deep convection +!## CCPP ##* GFS_typedefs.F90/interstitial_phys_reset Note: These are only zeroed out +! initially, prior to calling physics. cld1d = zero rain1 = zero ud_mf = zero dd_mf = zero dt_mf = zero +!*## CCPP ## endif ! if (lprnt) then @@ -3799,6 +4009,7 @@ subroutine GFS_physics_driver & ! write(0,*)' aftcnvgq1=',(stateout%gq0(ipr,k,ntcw),k=1,levs) ! endif ! +!## CCPP ## GFS_DCNV_generic.F90/GFS_DCNV_generic_post_run do i=1,im Diag%rainc(i) = frain * rain1(i) enddo @@ -3824,7 +4035,9 @@ subroutine GFS_physics_driver & endif ! if (ldiag3d) endif ! end if_lssav +!*## CCPP ## ! +!## CCPP ##* This block not yet in CCPP. if (ldiag_ugwp) then tem = frain/dtp do k=1,levs @@ -3854,6 +4067,7 @@ subroutine GFS_physics_driver & ! from previous time step we need: LH-release + cld_top/bot + precip ! ! endif +!*## CCPP ## ! if (lprnt) write(7000,*)' bef cnvgwd gu0=',gu0(ipr,:) ! &,' lat=',lat,' kdt=',kdt,' me=',me @@ -3861,7 +4075,9 @@ subroutine GFS_physics_driver & ! !----------------Convective gravity wave drag parameterization starting -------- -! DH* this block is in gwdc_pre +!## CCPP ##* gwdc.f/gwdc_pre Note: The conditional above is not in the scheme, so +! the execution of the code below is controlled by its presence in the CCPP SDF +! --- ... calculate maximum convective heating rate if (Model%do_cnvgwd) then ! call convective gravity wave drag allocate(gwdcu(im,levs), gwdcv(im,levs)) @@ -3883,6 +4099,7 @@ subroutine GFS_physics_driver & do i=1,im if (work4(i) > zero) cumabs(i) = cumabs(i) / (dtp*work4(i)) enddo +!*## CCPP ## ! DH* 20180817 - note: the above non-CCPP code modifies work3, which until then was defined ! as the ratio of the exner function between midlayer and interface at lowest model layer: @@ -3961,6 +4178,9 @@ subroutine GFS_physics_driver & ! --- ... end check print ******************************************** +!## CCPP ##* gwdc.f/gwdc_run Note: The conditional above is not in the scheme, so +! the execution of the code below is controlled by its presence in the CCPP SDF + !GFDL replacing lat with "1" ! call gwdc(im, ix, im, levs, lat, gu0, gv0, gt0, gq0, dtp, & call gwdc (im, ix, im, levs, 1, Statein%ugrs, Statein%vgrs, & @@ -3991,7 +4211,7 @@ subroutine GFS_physics_driver & ! endif ! --- ... write out cloud top stress and wind tendencies - +!## CCPP ## gwdc.f/gwdc_post_run if (Model%lssav) then do i=1,im Diag%dugwd(i) = Diag%dugwd(i) + dusfcg(i)*dtf @@ -4022,6 +4242,7 @@ subroutine GFS_physics_driver & ! &gwdcu(ipr,k), ' gv0=', gv0(ipr,k),' gwdcv=',gwdcv(ipr,k) ! &,' k=',k enddo +!*## CCPP ## ! if (lprnt) then ! if (fhour >= fhourpr) then @@ -4051,6 +4272,7 @@ subroutine GFS_physics_driver & ! &,' lat=',lat,' kdt=',kdt,' me=',me !----------------Convective gravity wave drag parameterization over -------- +!## CCPP ## GFS_SCNV_generic.F90/GFS_SCNV_generic_pre_run if (Model%ldiag3d) then do k=1,levs do i=1,im @@ -4058,6 +4280,7 @@ subroutine GFS_physics_driver & enddo enddo endif +!*## CCPP ## if (.not. Model%do_shoc) then @@ -4065,6 +4288,7 @@ subroutine GFS_physics_driver & ! -------------------------------------- if (Model%imfshalcnv == 1) then ! opr option now at 2014 !----------------------- +!## CCPP ##* Not in the CCPP yet. call shalcnv (im, ix, levs, Model%jcap, dtp, del, Statein%prsl, & Statein%pgr, Statein%phil, clw, Stateout%gq0, & Stateout%gt0, Stateout%gu0, Stateout%gv0, rain1, & @@ -4091,13 +4315,17 @@ subroutine GFS_physics_driver & enddo enddo endif +!*## CCPP ## elseif (Model%imfshalcnv == 2) then +!## CCPP ##* GFS_typedef.F90/interstitial_setup_tracers if(.not. Model%satmedmf .and. .not. Model%trans_trac) then nsamftrac = 0 else nsamftrac = tottracer endif +!*## CCPP ## +!## CCPP ##* samfshalcnv.f/samfshalcnv_run call samfshalcnv (im, ix, levs, dtp, itc, Model%ntchm, ntk, nsamftrac, & del, Statein%prsl, Statein%pgr, Statein%phil, clw, & Stateout%gq0(:,:,1), Stateout%gt0, & @@ -4107,7 +4335,8 @@ subroutine GFS_physics_driver & dt_mf, cnvw, cnvc, & Model%clam_shal, Model%c0s_shal, Model%c1_shal, & Model%pgcon_shal, Model%asolfac_shal) - +!*## CCPP ## +!## CCPP ##* samfshalcnv.f/samfshalcnv_post_run do i=1,im Diag%rainc(i) = Diag%rainc(i) + frain * rain1(i) enddo @@ -4126,6 +4355,7 @@ subroutine GFS_physics_driver & enddo enddo endif +!*## CCPP ## !elseif (Model%imfshalcnv == 3) then !if (Model%me==0) write(0,*) "CCPP DEBUG: shallow convection of GF is called in gf_driver" @@ -4135,6 +4365,7 @@ subroutine GFS_physics_driver & elseif (Model%imfshalcnv == 0) then ! modified Tiedtke Shallow convecton !----------------------------------- +!## CCPP ## This block is not in the CCPP yet. levshc(:) = 0 do k=2,levs do i=1,im @@ -4163,8 +4394,10 @@ subroutine GFS_physics_driver & ! if (lprnt) print *,' levshcm=',levshcm,' gt0sha=',gt0(ipr,:) endif ! end if_imfshalcnv +!*## CCPP ## endif ! end if_shal_cnv +!## CCPP ## GFS_SCNV_generic.F90/GFS_SCNV_generic_post_run if (Model%lssav) then if (Model%ldiag3d) then do k=1,levs @@ -4190,7 +4423,7 @@ subroutine GFS_physics_driver & if (clw(i,k,2) <= -999.0) clw(i,k,2) = zero enddo enddo - +!*## CCPP ## ! if (lprnt) then ! write(0,*)' prsl=',prsl(ipr,:) ! write(0,*) ' del=',del(ipr,:) @@ -4198,6 +4431,7 @@ subroutine GFS_physics_driver & ! write(0,*) ' befshgq0=',gq0(ipr,:,1) ! endif +!## CCPP ##* gcm_shoc.F90/shoc_run elseif (Model%shocaftcnv) then ! if do_shoc is true and shocaftcnv is true call shoc if (imp_physics == Model%imp_physics_mg) then do k=1,levs @@ -4286,6 +4520,7 @@ subroutine GFS_physics_driver & ! write(0,*)' aft shoc gq0=',gq0(1,:,1),' lat=',lat ! write(0,*)' aft shoc gu0=',gu0(1,:),' lat=',lat ! +!*## CCPP ## endif ! if( .not. do_shoc) ! ! if (lprnt) then @@ -4295,6 +4530,7 @@ subroutine GFS_physics_driver & ! write(0,*) ' aftshgq0=',gq0(ipr,:,1) ! endif ! +!## CCPP ##* GFS_suite_interstitial.F90/GFS_suite_interstitial_4_run !------------------------------------------------------------------------------ ! --- update the tracers due to deep & shallow cumulus convective transport ! (except for suspended water and ice) @@ -4365,12 +4601,15 @@ subroutine GFS_physics_driver & enddo enddo endif ! end if_ntcw +!*## CCPP ## ! Legacy routine which determines convectve clouds - should be removed at some point - +!## CCPP ## cnvc90.f/cnvc90_run call cnvc90 (Model%clstp, im, ix, Diag%rainc, kbot, ktop, levs, Statein%prsi, & Tbd%acv, Tbd%acvb, Tbd%acvt, Cldprop%cv, Cldprop%cvb, Cldprop%cvt) +!*## CCPP ## +!## CCPP ##* This is not in the CCPP yet. if (Model%moist_adj) then ! moist convective adjustment ! --------------------------- ! @@ -4409,7 +4648,8 @@ subroutine GFS_physics_driver & ! endif ! endif endif ! moist convective adjustment over -! +!*## CCPP ## +!## CCPP ## GFS_MP_generic.F90/GFS_MP_generic_pre_run if (Model%ldiag3d .or. Model%do_aw) then do k=1,levs do i=1,im @@ -4421,8 +4661,10 @@ subroutine GFS_physics_driver & dqdt(1:im,:,n) = Stateout%gq0(1:im,:,n) enddo endif - +!*## CCPP ## ! dqdt_v : instaneous moisture tendency (kg/kg/sec) +!## CCPP ##* GFS_suite_interstitial.F90/GFS_suite_interstitial_4_run +! Note: ( these lines are relevant for shallow and deep convection) if (Model%cplchm) then do k=1,levs do i=1,im @@ -4430,15 +4672,16 @@ subroutine GFS_physics_driver & enddo enddo endif +!*## CCPP ## ! ! grid-scale condensation/precipitations and microphysics parameterization ! ------------------------------------------------------------------------ - +!## CCPP ##* This is not in the CCPP yet. if (ncld == 0) then ! no cloud microphysics call lrgscl (ix, im, levs, dtp, Stateout%gt0, Stateout%gq0, & Statein%prsl, del, Statein%prslk, rain1, clw) - +!*## CCPP ## else ! all microphysics if (imp_physics == Model%imp_physics_zhao_carr) then ! call zhao/carr/sundqvist microphysics ! ------------ @@ -4452,23 +4695,28 @@ subroutine GFS_physics_driver & ! write(0,*) ' beflsgw0=',gq0(ipr,:,3),' kdt=',kdt ! endif ! ------------------ +!## CCPP ##* This is not in the CCPP yet. if (Model%do_shoc) then call precpd_shoc (im, ix, levs, dtp, del, Statein%prsl, & Stateout%gq0(1,1,1), Stateout%gq0(1,1,ntcw), & Stateout%gt0, rain1, Diag%sr, rainp, rhc, & psautco_l, prautco_l, Model%evpco, Model%wminco, & Tbd%phy_f3d(1,1,ntot3d-2), lprnt, ipr) +!*## CCPP ## else +!## CCPP ##* gscond.f/zhaocarr_gscond_run call gscond (im, ix, levs, dtp, dtf, Statein%prsl, Statein%pgr, & Stateout%gq0(1,1,1), Stateout%gq0(1,1,ntcw), & Stateout%gt0, Tbd%phy_f3d(1,1,1), Tbd%phy_f3d(1,1,2), & Tbd%phy_f2d(1,1), Tbd%phy_f3d(1,1,3), & Tbd%phy_f3d(1,1,4), Tbd%phy_f2d(1,2), rhc,lprnt, ipr) - +!*## CCPP ## +!## CCPP ##* precpd.f/zhaocarr_precpd_run call precpd (im, ix, levs, dtp, del, Statein%prsl, & Stateout%gq0(1,1,1), Stateout%gq0(1,1,ntcw), & Stateout%gt0, rain1, Diag%sr, rainp, rhc, psautco_l, & prautco_l, Model%evpco, Model%wminco, lprnt, ipr) +!*## CCPP ## endif ! if (lprnt) then ! write(0,*)' prsl=',prsl(ipr,:) @@ -4481,6 +4729,7 @@ subroutine GFS_physics_driver & deallocate(rainp) elseif (imp_physics == Model%imp_physics_zhao_carr_pdf) then ! with pdf clouds +!## CCPP ##* These schemes are not in the CCPP yet. allocate(rainp(im,levs)) call gscondp (im, ix, levs, dtp, dtf, Statein%prsl, & Statein%pgr, Stateout%gq0(1,1,1), & @@ -4498,11 +4747,13 @@ subroutine GFS_physics_driver & Tbd%phy_f3d(1,1,Model%num_p3d+1), psautco_l, & prautco_l, Model%evpco, Model%wminco, lprnt, ipr) deallocate(rainp) +!*## CCPP ## ! if (lprnt) write(0,*) ' rain1=',rain1(ipr),' rainc=',rainc(ipr),' lat=',lat elseif (imp_physics == Model%imp_physics_thompson) then ! Thompson MP ! ------------ +!## CCPP ##* mp_thompson.F90/mp_thompson_run ims = 1 ; ime = ix ; kms = 1 ; kme = levs ; its = 1 ; ite = ix ; kts = 1 ; kte = levs if (Model%ltaerosol) then @@ -4541,9 +4792,9 @@ subroutine GFS_physics_driver & Diag%refl_10cm, Model%lradar, & Tbd%phy_f3d(:,:,1),Tbd%phy_f3d(:,:,2),Tbd%phy_f3d(:,:,3),me,Statein%phii) endif - +!*## CCPP ## elseif (imp_physics == Model%imp_physics_wsm6) then ! WSM6 - ! ----- +!## CCPP ##* This is not in the CCPP yet. ! ----- ims = 1 ; ime = ix ; kms = 1 ; kme = levs ; its = 1 ; ite = ix ; kts = 1 ; kte = levs call wsm6(Stateout%gt0, Statein%phii(1:im,1:levs+1), & @@ -4559,18 +4810,19 @@ subroutine GFS_physics_driver & Tbd%phy_f3d(:,:,1),Tbd%phy_f3d(:,:,2),Tbd%phy_f3d(:,:,3), & ims,ime, kms,kme, & its,ite, kts,kte) -! +!*## CCPP ## elseif (imp_physics == Model%imp_physics_mg) then ! MGB double-moment microphysics ! ------------------------------ - +!## CCPP ##* GFS_typedefs.F90/control_initialize kk = 5 if (Model%fprcp >= 2) kk = 6 - +!*## CCPP ## ! Acheng used clw here for other code to run smoothly and minimum change ! to make the code work. However, the nc and clw should be treated ! in other procceses too. August 28/2015; Hope that can be done next ! year. I believe this will make the physical interaction more reasonable ! Anning 12/5/2015 changed ntcw hold liquid only +!## CCPP ##* m_micro_insterstitial.F90/m_micro_pre_run if (Model%do_shoc) then skip_macro = Model%do_shoc if (Model%fprcp == 0) then @@ -4651,6 +4903,7 @@ subroutine GFS_physics_driver & Tbd%phy_f3d(i,k,1) = min(one, Tbd%phy_f3d(i,k,1) + clcn(i,k)) enddo enddo +!*## CCPP ## ! notice clw ix instead of im ! call m_micro_driver(im,ix,levs,flipv,del,dtp,prsl,prsi, @@ -4672,7 +4925,7 @@ subroutine GFS_physics_driver & ! do k=1,levs ! write(1000+me,*)' maxwatncb=',maxval(Stateout%gq0(1:im,k,ntlnc)),' k=',k,' kdt',kdt ! enddo - +!## CCPP ##* m_micro.F90/m_micro_run call m_micro_driver (im, ix, levs, Model%flipv, dtp, Statein%prsl, & Statein%prsi, Statein%phil, Statein%phii, & Statein%vvl, clw(1,1,2), QLCN, clw(1,1,1), QICN, & @@ -4697,6 +4950,7 @@ subroutine GFS_physics_driver & ! ipr, kdt, Grid%xlat, Grid%xlon) Model%mg_alf, Model%mg_qcmin, Model%pdfflag, & ipr, kdt, Grid%xlat, Grid%xlon, rhc) +!*## CCPP ## ! do k=1,levs ! write(1000+me,*)' maxwatnca=',maxval(Stateout%gq0(1:im,k,ntlnc)),' k=',k,' kdt=',kdt ! enddo @@ -4724,7 +4978,7 @@ subroutine GFS_physics_driver & ! if (lprnt) write(0,*)' qrna=',qrn(ipr,:),' kdt=',kdt ! if (lprnt) write(0,*)' qsnwa=',qsnw(ipr,:),' kdt=',kdt ! if (lprnt) write(0,*)' qglba',qgl(ipr,:),' kdt=',kdt - +!## CCPP ##* m_micro_interstitial.F90/m_micro_post_run tem = dtp * con_p001 / con_day if (abs(Model%fprcp) == 1 .or. mg3_as_mg2) then do k=1,levs @@ -4760,7 +5014,7 @@ subroutine GFS_physics_driver & Diag%snow(i) = tem * qsnw(i,1) Diag%graupel(i) = tem * qgl(i,1) enddo - +!*## CCPP ## endif ! if (lprnt) write(0,*)' cloudsm=',tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt @@ -4773,8 +5027,11 @@ subroutine GFS_physics_driver & elseif (imp_physics == Model%imp_physics_gfdl) then ! GFDL MP ! ------- do i = 1, im +!## CCPP ##* Not necessary in the CCPP. land (i,1) = frland(i) area (i,1) = Grid%area(i) +!*## CCPP ## +!## CCPP ##* gfdl_cloud_microphys.F90/gfdl_cloud_microphys_run rain0 (i,1) = zero snow0 (i,1) = zero ice0 (i,1) = zero @@ -4887,6 +5144,8 @@ subroutine GFS_physics_driver & enddo endif enddo +!*## CCPP ## +!## CCPP ##* maximum_hourly_diagnostics.F90/maximum_hourly_diagnsostics_run !Calculate hourly max 1-km agl and -10C reflectivity if (Model%lradar .and. & (imp_physics == Model%imp_physics_gfdl .or. & @@ -4907,7 +5166,8 @@ subroutine GFS_physics_driver & deallocate (refd) deallocate (refd263k) endif -! +!*## CCPP ## +!## CCPP ##* gfdl_cloud_microphys.F90/gfdl_cloud_microphys_run if(Model%effr_in) then call cloud_diagnosis (1, im, 1, levs, den(1:im,1:levs), & del(1:im,1:levs), islmsk(1:im), & @@ -4918,7 +5178,7 @@ subroutine GFS_physics_driver & Tbd%phy_f3d(1:im,1:levs,1), Tbd%phy_f3d(1:im,1:levs,2), & Tbd%phy_f3d(1:im,1:levs,3), Tbd%phy_f3d(1:im,1:levs,4), & Tbd%phy_f3d(1:im,1:levs,5)) - +!*## CCPP ## ! do k = 1, levs ! do i=1,im ! @@ -4953,6 +5213,9 @@ subroutine GFS_physics_driver & ! adjust sfc rainrate for conservation ! vertically integrate reduction of water increments, reduce precip by that amount +!## CCPP ##* cs_conv_aw_adj.F90/cs_conv_aw_adj_run Note: The conditional above +! is not checked in the scheme, so the control of the code below is through its +! inclusion in a CCPP SDF temrain1(:) = zero do k = 1,levs @@ -4991,7 +5254,8 @@ subroutine GFS_physics_driver & rain1(i) = max(rain1(i) - temrain1(i)*0.001, 0.0_kind_phys) enddo endif - +!*## CCPP ## +!## CCPP ##* GFS_MP_generic.F90/GFS_MP_generic_post_run Diag%rain(:) = Diag%rainc(:) + frain * rain1(:) if (Model%cal_pre) then ! hchuang: add dominant precipitation type algorithm @@ -5060,7 +5324,8 @@ subroutine GFS_physics_driver & enddo endif endif - +!*## CCPP ## +!## CCPP ##* this block not yet in CCPP !-------------------------------- ! vay-2018 for Dycore-Tendencies save Stateout%X => Diag%dX3dt_cgw ! @@ -5070,6 +5335,8 @@ subroutine GFS_physics_driver & Diag%du3dt_cgw = Stateout%gu0 endif !-------------------------------- +!*## CCPP ## +!## CCPP ##* GFS_MP_generic.F90/GFS_MP_generic_post_run ! --- ... estimate t850 for rain-snow decision @@ -5158,9 +5425,10 @@ subroutine GFS_physics_driver & Coupling%rainc_cpl(i) = Coupling%rainc_cpl(i) + Diag%rainc(i) enddo endif - +!*## CCPP ## ! --- ... end coupling insertion +!## CCPP ##* GFS_surface_generic.F90/GFS_surface_generic_post_run ! --- ... total runoff is composed of drainage into water table and ! runoff at the surface and is accumulated in unit of meters if (Model%lssav) then @@ -5169,7 +5437,9 @@ subroutine GFS_physics_driver & Diag%srunoff(i) = Diag%srunoff(i) + runof(i) * dtf enddo endif - +!*## CCPP ## +!## CCPP ##* This block is not in the CCPP because data transfer between global +! and local variables is not necessary in the CCPP. ! --- ... return updated smsoil and stsoil to global arrays if (Model%frac_grid) then do k=1,lsoil @@ -5190,6 +5460,7 @@ subroutine GFS_physics_driver & enddo enddo endif +!*## CCPP ## ! --- ... calculate column precipitable water "pwat" Diag%pwat(:) = zero @@ -5246,7 +5517,8 @@ subroutine GFS_physics_driver & endif enddo endif - +!*## CCPP ## +!## CCPP ##* This block is not in the CCPP since it is not needed in the CCPP. deallocate (clw) if (allocated(cnvc)) deallocate(cnvc) if (allocated(cnvw)) deallocate(cnvw) @@ -5288,6 +5560,8 @@ subroutine GFS_physics_driver & w, qv_dt, ql_dt, qr_dt, qi_dt, qs_dt, qg_dt,p123,refl) deallocate (den) endif +!*## CCPP ## +!## CCPP ##* maximum_hourly_diagnostics.F90/maximum_hourly_diagnostics_run if (allocated(tke)) deallocate (tke) if (Model%cscnv) then deallocate (sigmatot, sigmafrac) @@ -5327,7 +5601,7 @@ subroutine GFS_physics_driver & Diag%T02MAX(I) = MAX(Diag%T02MAX(I), Sfcprop%t2m(i)) !<--- Hourly max 2m T Diag%T02MIN(I) = MIN(Diag%T02MIN(I), Sfcprop%t2m(i)) !<--- Hourly min 2m T enddo - +!*## CCPP ## ! if (kdt > 2 ) stop return !................................... diff --git a/gfsphysics/GFS_layer/GFS_radiation_driver.F90 b/gfsphysics/GFS_layer/GFS_radiation_driver.F90 index c7323d6bb..bacf23d6c 100644 --- a/gfsphysics/GFS_layer/GFS_radiation_driver.F90 +++ b/gfsphysics/GFS_layer/GFS_radiation_driver.F90 @@ -412,6 +412,7 @@ module module_radiation_driver ! contains ! ================= +!## CCPP ## This is now a private subroutine in GFS_rrtmg_setup.F90/radinit. !> This subroutine initialize a model's radiation process through !! calling of specific initialization subprograms that directly !! related to radiation calculations. This subroutine needs to be @@ -652,6 +653,7 @@ end subroutine radinit !----------------------------------- !> @} +!## CCPP ## This is now a private subroutine in GFS_rrtmg_setup.F90/radupdate. !> This subroutine checks and updates time sensitive data used by !! radiation computations. This subroutine needs to be placed inside !! the time advancement loop but outside of the horizontal grid loop. @@ -1256,7 +1258,8 @@ subroutine GFS_radiation_driver & ! !--- only call GFS_radiation_driver at radiation time step - +!## CCPP ##* GFS_rrtmg_pre.F90/GFS_rrtmg_pre_run for code required to run before +! SW and LW. if (.not. (Model%lsswr .or. Model%lslwr )) return !--- set commonly used integers @@ -1544,9 +1547,10 @@ subroutine GFS_radiation_driver & ! enddo enddo endif ! end_if_ivflip +!*## CCPP ## !> - Check for daytime points for SW radiation. - +!## CCPP ##* rrtmg_sw_pre.F90/rrtmg_sw_pre_run nday = 0 do i = 1, IM if (Radtend%coszen(i) >= 0.0001) then @@ -1554,12 +1558,13 @@ subroutine GFS_radiation_driver & idxday(nday) = i endif enddo +!*## CCPP ## !> - Call module_radiation_aerosols::setaer(),to setup aerosols !! property profile for radiation. !check print *,' in grrad : calling setaer ' - +!## CCPP ##* GFS_rrtmg_pre.F90/GFS_rrtmg_pre_run call setaer (plvl, plyr, prslk1, tvly, rhly, Sfcprop%slmsk, & ! --- inputs tracer1, Grid%xlon, Grid%xlat, IM, LMK, LMP, & Model%lsswr,Model%lslwr, & @@ -1843,9 +1848,9 @@ subroutine GFS_radiation_driver & endif endif ! mg, sfc-perts +!*## CCPP ## - - +!## CCPP ##* rrtmg_sw_pre.F90/rrtmg_sw_pre_run; Note: includes check for lsswr in scheme !> -# Start SW radiation calculations if (Model%lsswr) then @@ -1863,7 +1868,10 @@ subroutine GFS_radiation_driver & !> -# Approximate mean surface albedo from vis- and nir- diffuse values. Radtend%sfalb(:) = max(0.01, 0.5 * (sfcalb(:,2) + sfcalb(:,4))) +!*## CCPP ## +!## CCPP ##* radsw_main.f/rrtmg_sw_run; Note: The checks for nday and lsswr are included in the scheme (returns if +! nday <= 0 or lsswr == F). Optional arguments are used to handle the different calls below. if (nday > 0) then !> - Call module_radsw_main::swrad(), to compute SW heating rates and @@ -1889,7 +1897,9 @@ subroutine GFS_radiation_driver & cldtausw, & FDNCMP=scmpsw) ! --- optional endif +!*## CCPP ## +!## CCPP ##* rrtmg_sw_post.F90/rrtmg_sw_post_run do k = 1, LM k1 = k + kd Radtend%htrsw(1:im,k) = htswc(1:im,k1) @@ -1964,7 +1974,9 @@ subroutine GFS_radiation_driver & enddo endif ! end_if_lsswr +!*## CCPP ## +!## CCPP ## rrtmg_lw_pre.F90/rrtmg_lw_pre_run; Note: scheme includes check for lslwr. !> -# Start LW radiation calculations if (Model%lslwr) then @@ -1975,11 +1987,14 @@ subroutine GFS_radiation_driver & Sfcprop%snowd, Sfcprop%sncovr, Sfcprop%zorl, & tsfg, tsfa, Sfcprop%hprime(:,1), IM, & Radtend%semis) ! --- outputs +!*## CCPP ## !> - Call module_radlw_main::lwrad(), to compute LW heating rates and !! fluxes. ! print *,' in grrad : calling lwrad' +!## CCPP ##* radlw_main.f/rrtmg_lw_run; Note: The check lslwr is included in the scheme (returns if +! lslwr == F). Optional arguments are used to handle the different calls below. if (Model%lwhtr) then call lwrad (plyr, plvl, tlyr, tlvl, qlyr, olyr, gasvmr, & ! --- inputs clouds, Tbd%icsdlw, faerlw, Radtend%semis, & @@ -1994,7 +2009,9 @@ subroutine GFS_radiation_driver & IM, LMK, LMP, Model%lprnt, & htlwc, Diag%topflw, Radtend%sfcflw, cldtaulw) ! --- outputs endif +!*## CCPP ## +!## CCPP ## rrtmg_lw_post.F90/rrtmg_lw_post_run; Note: includes check for lslwr. !> -# Save calculation results !> - Save surface air temp for diurnal adjustment at model t-steps Radtend%tsflw (:) = tsfa(:) @@ -2027,7 +2044,9 @@ subroutine GFS_radiation_driver & Coupling%sfcdlw(:) = Radtend%sfcflw(:)%dnfxc endif ! end_if_lslwr +!*## CCPP ## +!## CCPP ## GFS_rrtmg_post.F90/GFS_rrtmg_post_run !> - For time averaged output quantities (including total-sky and !! clear-sky SW and LW fluxes at TOA and surface; conventional !! 3-domain cloud amount, cloud top and base pressure, and cloud top @@ -2131,7 +2150,7 @@ subroutine GFS_radiation_driver & endif endif ! end_if_lssav -! +!*## CCPP ## return !........................................ end subroutine GFS_radiation_driver From 8bd0c2e6fcbd9111a7768a1c998dc2d3ee8b242b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 5 Nov 2019 08:13:29 +0900 Subject: [PATCH 003/206] Update .gitmodules for NCAR fork, branch dtc/develop, and update submodule pointers --- .gitmodules | 6 ++++-- CODEOWNERS | 14 ++++++++++++++ atmos_cubed_sphere | 2 +- ccpp/framework | 2 +- ccpp/physics | 2 +- 5 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 CODEOWNERS diff --git a/.gitmodules b/.gitmodules index 949d298df..2fdeca40a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,10 +1,12 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - url = https://github.com/NOAA-EMC/GFDL_atmos_cubed_sphere - branch = dev/emc + url = https://github.com/NCAR/GFDL_atmos_cubed_sphere + branch = dtc/develop [submodule "ccpp/framework"] path = ccpp/framework url = https://github.com/NCAR/ccpp-framework + branch = dtc/develop [submodule "ccpp/physics"] path = ccpp/physics url = https://github.com/NCAR/ccpp-physics + branch = dtc/develop diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 000000000..0d5230f89 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,14 @@ +# Lines starting with '#' are comments. +# Each line is a file pattern followed by one or more owners. + +# These owners will be the default owners for everything in the repo. +#* @defunkt +* @climbfuji @llpcarson @grantfirl @JulieSchramm + +# Order is important. The last matching pattern has the most precedence. +# So if a pull request only touches javascript files, only these owners +# will be requested to review. +#*.js @octocat @github/js + +# You can also use email addresses if you prefer. +#docs/* docs@example.com diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 786447c83..987160799 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 786447c8391a6806cd7b869bfa9dca69e3c95a48 +Subproject commit 987160799b3a1c0f11de9883843f20421eb03fe8 diff --git a/ccpp/framework b/ccpp/framework index 28fdedec6..f3cad9e2b 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 28fdedec637b3a11a90aa3d816aff9dd56a9dc5e +Subproject commit f3cad9e2b6b69ab4c07826a1de50b7f6c6d08cd1 diff --git a/ccpp/physics b/ccpp/physics index d4b1cd020..4b46d2653 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit d4b1cd020f8347147b86d3a18b56c03cb5c57d67 +Subproject commit 4b46d2653b6277c39176b131acb3d1544e7e2216 From e6e2c81467d1107b7dd98a25ff33fe36cfc52618 Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Thu, 7 Nov 2019 21:32:21 -0700 Subject: [PATCH 004/206] add FA scheme changes on host model side --- ccpp/config/ccpp_prebuild_config.py | 12 ++ .../suite_FV3_HAFS_ferhires_update_moist.xml | 91 ++++++++++ gfsphysics/GFS_layer/GFS_typedefs.F90 | 170 ++++++++++++++++-- gfsphysics/GFS_layer/GFS_typedefs.meta | 125 ++++++++++++- 4 files changed, 379 insertions(+), 19 deletions(-) create mode 100644 ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index b1738d633..2cf981e81 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -93,6 +93,7 @@ 'FV3/ccpp/physics/physics/module_mp_radar.F90', 'FV3/ccpp/physics/physics/module_mp_thompson.F90', 'FV3/ccpp/physics/physics/module_mp_thompson_make_number_concentrations.F90', + 'FV3/ccpp/physics/physics/module_MP_FER_HIRES.F90', 'FV3/ccpp/physics/physics/module_bl_mynn.F90', 'FV3/ccpp/physics/physics/module_sf_mynn.F90', 'FV3/ccpp/physics/physics/module_SF_JSFC.F90', @@ -230,6 +231,9 @@ 'FV3/ccpp/physics/physics/sfc_nst.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/sfc_ocean.F' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/sfc_sice.f' : [ 'slow_physics' ], + # HAFS FER_HIRES + 'FV3/ccpp/physics/physics/mp_fer_hires.F90' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/HAFS_update_moist.F90' : [ 'slow_physics' ], # for testing the and sections 'FV3/ccpp/physics/physics/GFS_suite_init_finalize_test.F90' : [ 'slow_physics' ], } @@ -317,6 +321,14 @@ 'tendency_of_ice_friendly_aerosols_at_surface', ], }, + 'mp_fer_hires' : { + 'mp_fer_hires_init' : [ + 'fraction_of_ice_water_cloud', + 'fraction_of_rain_water_cloud', + 'rime_factor', + ], + }, + #'subroutine_name_1' : 'all', #'subroutine_name_2' : 'none', #'subroutine_name_2' : [ 'var1', 'var3'], diff --git a/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml b/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml new file mode 100644 index 000000000..18cc0cf3b --- /dev/null +++ b/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml @@ -0,0 +1,91 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_noah + sfc_sice + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + dcyc2t3_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + + GFS_PBL_generic_pre + hedmf + GFS_PBL_generic_post + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + rayleigh_damp + GFS_suite_stateout_update + ozphys + + GFS_DCNV_generic_pre + get_phi_fv3 + GFS_suite_interstitial_3 + samfdeepcnv + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_fer_hires + GFS_MP_generic_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 7f8239a5a..40002e0a8 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -6,7 +6,7 @@ module GFS_typedefs #ifdef CCPP use physcons, only: con_cp, con_fvirt, con_g, & con_hvap, con_hfus, con_pi, con_rd, con_rv, & - con_t0c, con_cvap, con_cliq, con_eps, & + con_t0c, con_cvap, con_cliq, con_eps, con_epsq, & con_epsm1, con_ttp, rlapse, con_jcal, con_rhw0, & con_sbc, con_tice, cimin, con_p0, rhowater use module_radsw_parameters, only: topfsw_type, sfcfsw_type, cmpfsw_type, NBDSW @@ -645,6 +645,7 @@ module GFS_typedefs integer :: imp_physics_zhao_carr = 99 !< choice of Zhao-Carr microphysics scheme integer :: imp_physics_zhao_carr_pdf = 98 !< choice of Zhao-Carr microphysics scheme with PDF clouds integer :: imp_physics_mg = 10 !< choice of Morrison-Gettelman microphysics scheme + integer :: imp_physics_fer_hires = 15 !< choice of Ferrier-Aligo microphysics scheme !--- Z-C microphysical parameters real(kind=kind_phys) :: psautco(2) !< [in] auto conversion coeff from ice to snow real(kind=kind_phys) :: prautco(2) !< [in] auto conversion coeff from cloud to rain @@ -751,6 +752,10 @@ module GFS_typedefs logical :: moist_adj !< flag for moist convective adjustment logical :: cscnv !< flag for Chikira-Sugiyama convection logical :: cal_pre !< flag controls precip type algorithm +#ifdef CCPP + real(kind=kind_phys) :: rhgrd !< fer_hires microphysics only + logical :: spec_adv !< flag for individual cloud species advected +#endif logical :: do_aw !< AW scale-aware option in cs convection logical :: do_awdd !< AW scale-aware option in cs convection logical :: flx_form !< AW scale-aware option in cs convection @@ -941,6 +946,7 @@ module GFS_typedefs #ifdef CCPP integer :: ntracp1 !< number of tracers plus one integer :: ntqv !< tracer index for water vapor (specific humidity) + integer :: nqrimef !< tracer index for mass weighted rime factor #endif integer :: ntoz !< tracer index for ozone mixing ratio integer :: ntcw !< tracer index for cloud condensate (or liquid water) @@ -1439,6 +1445,10 @@ module GFS_typedefs real (kind=kind_phys), pointer :: dwn_mf (:,:) => null() !< instantaneous convective downdraft mass flux real (kind=kind_phys), pointer :: det_mf (:,:) => null() !< instantaneous convective detrainment mass flux real (kind=kind_phys), pointer :: cldcov (:,:) => null() !< instantaneous 3D cloud fraction +!--- F-A MP scheme +#ifdef CCPP + real (kind=kind_phys), pointer :: TRAIN (:,:) => null() !< accumulated stratiform T tendency (K s-1) +#endif !--- MP quantities for 3D diagnositics real (kind=kind_phys), pointer :: refl_10cm(:,:) => null() !< instantaneous refl_10cm @@ -1858,6 +1868,22 @@ module GFS_typedefs real (kind=kind_phys), pointer :: dudt_ogw(:,:) => null() !< daily aver u-wind tend due to orographic gravity wave drag real (kind=kind_phys), pointer :: dudt_tms(:,:) => null() !< daily aver u-wind tend due to TMS + !-- HWRF physics: dry mixing ratios + real (kind=kind_phys), pointer :: qv_r(:,:) => null() !< + real (kind=kind_phys), pointer :: qc_r(:,:) => null() !< + real (kind=kind_phys), pointer :: qi_r(:,:) => null() !< + real (kind=kind_phys), pointer :: qr_r(:,:) => null() !< + real (kind=kind_phys), pointer :: qs_r(:,:) => null() !< + real (kind=kind_phys), pointer :: qg_r(:,:) => null() !< + + + !-- Ferrier-Aligo MP scheme + real (kind=kind_phys), pointer :: f_rain (:,:) => null() !< + real (kind=kind_phys), pointer :: f_ice (:,:) => null() !< + real (kind=kind_phys), pointer :: f_rimef (:,:) => null() !< + real (kind=kind_phys), pointer :: cwm (:,:) => null() !< + + contains procedure :: create => interstitial_create !< allocate array data procedure :: rad_reset => interstitial_rad_reset !< reset array data for radiation @@ -2694,7 +2720,11 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & real(kind=kind_phys) :: wminco(2) = (/1.0d-5,1.0d-5/) !< [in] water and ice minimum threshold for Zhao !---Max hourly real(kind=kind_phys) :: avg_max_length = 3600. !< reset value in seconds for max hourly. - +!--- Ferrier-Aligo microphysical parameters +#ifdef CCPP + real(kind=kind_phys) :: rhgrd = 0.98 !< fer_hires microphysics only + logical :: spec_adv = .true. !< Individual cloud species advected +#endif !--- M-G microphysical parameters integer :: fprcp = 0 !< no prognostic rain and snow (MG) integer :: pdfflag = 4 !< pdf flag for MG macro physics @@ -3057,6 +3087,10 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & do_sppt, do_shum, do_skeb, do_sfcperts, & !--- Rayleigh friction prslrd0, ral_ts, ldiag_ugwp, do_ugwp, do_tofd, & + ! --- Ferrier-Aligo +#ifdef CCPP + spec_adv, rhgrd, & +#endif !--- mass flux deep convection clam_deep, c0s_deep, c1_deep, betal_deep, & betas_deep, evfact_deep, evfactl_deep, pgcon_deep, & @@ -3310,6 +3344,12 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%ltaerosol = ltaerosol Model%lradar = lradar Model%ttendlim = ttendlim +!--- F-A MP parameters +#ifdef CCPP + Model%rhgrd = rhgrd + Model%spec_adv = spec_adv +#endif + !--- gfdl MP parameters Model%lgfdlmprad = lgfdlmprad @@ -3574,6 +3614,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%ntsnc = get_tracer_index(Model%tracer_names, 'snow_nc', Model%me, Model%master, Model%debug) Model%ntgnc = get_tracer_index(Model%tracer_names, 'graupel_nc', Model%me, Model%master, Model%debug) Model%ntke = get_tracer_index(Model%tracer_names, 'sgs_tke', Model%me, Model%master, Model%debug) +#ifdef CCPP + Model%nqrimef = get_tracer_index(Model%tracer_names, 'q_rimef', Model%me, Model%master, Model%debug) +#endif Model%ntwa = get_tracer_index(Model%tracer_names, 'liq_aero', Model%me, Model%master, Model%debug) Model%ntia = get_tracer_index(Model%tracer_names, 'ice_aero', Model%me, Model%master, Model%debug) Model%ntchm = 0 @@ -3771,7 +3814,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & ' Boundary layer and Shallow Convection', & ' nshoc_3d=',Model%nshoc_3d, & ' nshoc_2d=',Model%nshoc_2d, & - ' ntke=',Model%ntke,' shoc_parm=',shoc_parm + ' ntke=',Model%ntke,'shoc_parm=',shoc_parm endif #ifdef CCPP @@ -4012,10 +4055,20 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%ncnd = 1 if (Model%me == Model%master) print *,'Using Zhao/Carr/Sundqvist Microphysics with PDF Cloud' - else if (Model%imp_physics == 5) then ! F-A goes here - print *,' Ferrier Microphysics scheme has been deprecated - job aborted' - stop - + !else if (Model%imp_physics == 5) then ! F-A goes here + ! print *,' Ferrier Microphysics scheme has been deprecated - job aborted' + ! stop + else if (Model%imp_physics == Model%imp_physics_fer_hires) then ! Ferrier-Aligo scheme + Model%npdf3d = 0 + Model%num_p3d = 3 + Model%num_p2d = 1 + Model%pdfcld = .false. + Model%shcnvcw = .false. + Model%ncnd = 5 + Model%nleffr = 1 + Model%nieffr = 2 + Model%nseffr = 3 + if (Model%me == Model%master) print *,' Using Ferrier-Aligo MP scheme' elseif (Model%imp_physics == Model%imp_physics_wsm6) then !WSM6 microphysics Model%npdf3d = 0 Model%num_p3d = 3 @@ -4329,7 +4382,14 @@ subroutine control_print(Model) print *, ' GFDL MP radiation inter: ', Model%lgfdlmprad print *, ' ' endif - +#ifdef CCPP + if (Model%imp_physics == Model%imp_physics_fer_hires) then + print *, ' Ferrier-Aligo microphysical parameters' + print *, ' spec_adv : ', Model%spec_adv + print *, ' rhgrd : ', Model%rhgrd + print *, ' ' + endif +#endif print *, 'land/surface model parameters' print *, ' lsm : ', Model%lsm print *, ' lsoil : ', Model%lsoil @@ -4490,6 +4550,7 @@ subroutine control_print(Model) print *, ' ntrac : ', Model%ntrac #ifdef CCPP print *, ' ntqv : ', Model%ntqv + print *, ' nqrimef : ', Model%nqrimef #endif print *, ' ntoz : ', Model%ntoz print *, ' ntcw : ', Model%ntcw @@ -4762,7 +4823,7 @@ subroutine tbd_create (Tbd, IM, Model) Tbd%snowprv = clear_val Tbd%graupelprv = clear_val end if - + if (Model%lsm == Model%lsm_noahmp) then allocate(Tbd%draincprv (IM)) allocate(Tbd%drainncprv (IM)) @@ -4797,7 +4858,7 @@ subroutine tbd_create (Tbd, IM, Model) Tbd%qsq = clear_val Tbd%cov = clear_val end if - + ! MYJ variables if (Model%do_myjsfc.or.Model%do_myjpbl) then !print*,"Allocating all MYJ surface variables:" @@ -5017,6 +5078,13 @@ subroutine diag_create (Diag, IM, Model) allocate (Diag%shum_wts(IM,Model%levs)) allocate (Diag%zmtnblck(IM)) + ! F-A MP scheme +#ifdef CCPP + if (Model%imp_physics == Model%imp_physics_fer_hires) then + allocate (Diag%TRAIN (IM,Model%levs)) + end if +#endif + allocate (Diag%ca_out (IM)) allocate (Diag%ca_deep (IM)) allocate (Diag%ca_turb (IM)) @@ -5309,6 +5377,12 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%sppt_wts = zero Diag%shum_wts = zero Diag%zmtnblck = zero + +#ifdef CCPP + if (Model%imp_physics == Model%imp_physics_fer_hires) then + Diag%TRAIN = zero + end if +#endif Diag%totprcpb = zero Diag%cnvprcpb = zero Diag%toticeb = zero @@ -5806,6 +5880,21 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%cnv_ndrop (IM,Model%levs)) allocate (Interstitial%cnv_nice (IM,Model%levs)) end if + if (Model%imp_physics == Model%imp_physics_fer_hires) then + !--- if HWRF physics? + allocate (Interstitial%qv_r (IM,Model%levs)) + allocate (Interstitial%qc_r (IM,Model%levs)) + allocate (Interstitial%qi_r (IM,Model%levs)) + allocate (Interstitial%qr_r (IM,Model%levs)) + allocate (Interstitial%qs_r (IM,Model%levs)) + allocate (Interstitial%qg_r (IM,Model%levs)) + + !--- Ferrier-Aligo MP scheme + allocate (Interstitial%f_ice (IM,Model%levs)) + allocate (Interstitial%f_rain (IM,Model%levs)) + allocate (Interstitial%f_rimef (IM,Model%levs)) + allocate (Interstitial%cwm (IM,Model%levs)) + end if if (Model%do_shoc) then if (.not. associated(Interstitial%qrn)) allocate (Interstitial%qrn (IM,Model%levs)) if (.not. associated(Interstitial%qsnw)) allocate (Interstitial%qsnw (IM,Model%levs)) @@ -5850,7 +5939,7 @@ subroutine interstitial_create (Interstitial, IM, Model) Interstitial%phys_hydrostatic = .true. ! ! Reset all other variables - call Interstitial%rad_reset () + call Interstitial%rad_reset (Model) call Interstitial%phys_reset (Model) ! end subroutine interstitial_create @@ -5888,6 +5977,15 @@ subroutine interstitial_setup_tracers(Interstitial, Model) endif if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1 Interstitial%nncl = 5 +!--- F-A scheme + elseif (Model%imp_physics == Model%imp_physics_fer_hires) then + if (Model%spec_adv) then + Interstitial%nvdiff = 5 !qv, qc, qr, qi, qrime + else + Interstitial%nvdiff = 5 !qv, qc(total condensate), f_ice, f_rain,f_rimef + endif + if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1 + Interstitial%nncl = 5 elseif (Model%imp_physics == Model%imp_physics_wsm6) then Interstitial%nvdiff = Model%ntrac -3 if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1 @@ -5900,6 +5998,7 @@ subroutine interstitial_setup_tracers(Interstitial, Model) Interstitial%nncl = 5 endif + if (Model%imp_physics == Model%imp_physics_mg) then if (abs(Model%fprcp) == 1) then Interstitial%nncl = 4 ! MG2 with rain and snow @@ -5929,6 +6028,9 @@ subroutine interstitial_setup_tracers(Interstitial, Model) endif elseif (Model%imp_physics == Model%imp_physics_gfdl) then Interstitial%ntiwx = 3 + ! F-A MP scheme + elseif (Model%imp_physics == Model%imp_physics_fer_hires) then + Interstitial%ntiwx = 3 ! total ice or total condensate elseif (Model%imp_physics == Model%imp_physics_mg) then Interstitial%ntiwx = 3 else @@ -6004,11 +6106,12 @@ subroutine interstitial_setup_tracers(Interstitial, Model) end subroutine interstitial_setup_tracers - subroutine interstitial_rad_reset (Interstitial) + subroutine interstitial_rad_reset (Interstitial, Model) ! implicit none ! class(GFS_interstitial_type) :: Interstitial + type(GFS_control_type), intent(in) :: Model ! Interstitial%aerodp = clear_val Interstitial%alb1d = clear_val @@ -6045,6 +6148,24 @@ subroutine interstitial_rad_reset (Interstitial) Interstitial%tlyr = clear_val Interstitial%tsfa = clear_val Interstitial%tsfg = clear_val + +! F-A scheme + !if (Model%imp_physics == Model%imp_physics_fer_hires) then + if (Model%imp_physics == Model%imp_physics_fer_hires ) then + Interstitial%qv_r = clear_val + Interstitial%qc_r = clear_val + Interstitial%qi_r = clear_val + Interstitial%qr_r = clear_val + Interstitial%qs_r = clear_val + Interstitial%qg_r = clear_val + if(Model%spec_adv) then + Interstitial%f_ice = clear_val + Interstitial%f_rain = clear_val + Interstitial%f_rimef = clear_val + Interstitial%cwm = clear_val + end if + end if + ! end subroutine interstitial_rad_reset @@ -6295,6 +6416,12 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%cnv_ndrop = clear_val Interstitial%cnv_nice = clear_val end if + if (Model%imp_physics == Model%imp_physics_fer_hires .and. Model%spec_adv) then + Interstitial%f_ice = clear_val + Interstitial%f_rain = clear_val + Interstitial%f_rimef = clear_val + Interstitial%cwm = clear_val + end if if (Model%do_shoc) then Interstitial%qrn = clear_val Interstitial%qsnw = clear_val @@ -6606,10 +6733,17 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) ! Print arrays that are conditional on physics choices if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson) then write (0,*) 'Interstitial_print: values specific to GFDL/Thompson microphysics' - write (0,*) 'sum(Interstitial%graupelmp ) = ', sum(Interstitial%graupelmp ) - write (0,*) 'sum(Interstitial%icemp ) = ', sum(Interstitial%icemp ) - write (0,*) 'sum(Interstitial%rainmp ) = ', sum(Interstitial%rainmp ) - write (0,*) 'sum(Interstitial%snowmp ) = ', sum(Interstitial%snowmp ) + write (0,*) 'sum(Interstitial%graupelmp) = ', sum(Interstitial%graupelmp ) + write (0,*) 'sum(Interstitial%icemp ) = ', sum(Interstitial%icemp ) + write (0,*) 'sum(Interstitial%rainmp ) = ', sum(Interstitial%rainmp ) + write (0,*) 'sum(Interstitial%snowmp ) = ', sum(Interstitial%snowmp ) + !F-A scheme + else if (Model%imp_physics == Model%imp_physics_fer_hires) then + write (0,*) 'Interstitial_print: values specific to F-A microphysics' + write (0,*) 'sum(Interstitial%f_ice ) = ', sum(Interstitial%f_ice ) + write (0,*) 'sum(Interstitial%f_rain ) = ', sum(Interstitial%f_rain ) + write (0,*) 'sum(Interstitial%f_rimef ) = ', sum(Interstitial%f_rimef ) + write (0,*) 'sum(Interstitial%cwm ) = ', sum(Interstitial%cwm ) else if (Model%imp_physics == Model%imp_physics_mg) then write (0,*) 'Interstitial_print: values specific to MG microphysics' write (0,*) 'sum(Interstitial%ncgl ) = ', sum(Interstitial%ncgl ) @@ -6639,8 +6773,8 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%ncpl ) = ', sum(Interstitial%ncpl ) end if if (Model%lsm == Model%lsm_noahmp) then - write (0,*) 'sum(Interstitial%t2mmp ) = ', sum(Interstitial%t2mmp ) - write (0,*) 'sum(Interstitial%q2mp ) = ', sum(Interstitial%q2mp ) + write (0,*) 'sum(Interstitial%t2mmp ) = ', sum(Interstitial%t2mmp ) + write (0,*) 'sum(Interstitial%q2mp ) = ', sum(Interstitial%q2mp ) end if write (0,*) 'Interstitial_print: end' ! diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 79ab00129..8936afe31 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -368,6 +368,13 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[gq0(:,:,index_for_mass_weighted_rime_factor)] + standard_name = mass_weighted_rime_factor_updated_by_physics + long_name = mass weighted rime factor updated by physics + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [gq0(:,:,index_for_water_friendly_aerosols)] standard_name = water_friendly_aerosol_number_concentration_updated_by_physics long_name = number concentration of water-friendly aerosols updated by physics @@ -2162,6 +2169,12 @@ units = flag dimensions = () type = integer +[imp_physics_fer_hires] + standard_name = flag_for_fer_hires_microphysics_scheme + long_name = choice of Ferrier-Aligo microphysics scheme + units = flag + dimensions = () + type = integer [imp_physics_gfdl] standard_name = flag_for_gfdl_microphysics_scheme long_name = choice of GFDL microphysics scheme @@ -2555,6 +2568,19 @@ units = index dimensions = () type = integer +[spec_adv] + standard_name = flag_for_individual_cloud_species_advected + long_name = flag for individual cloud species advected + units = flag + dimensions = () + type = logical +[flgmin] + standard_name = minimum_large_ice_fraction + long_name = minimum large ice fraction in F-A mp scheme + units = frac + dimensions = (2) + type = real + kind = kind_phys [iopt_dveg] standard_name = flag_for_dynamic_vegetation_option long_name = choice for dynamic vegetation option (see noahmp module for definition) @@ -2639,6 +2665,13 @@ units = flag dimensions = () type = logical +[rhgrd] + standard_name = fa_threshold_relative_humidity_for_onset_of_condensation + long_name = relative humidity threshold parameter for condensation for FA scheme + units = none + dimensions = () + type = real + kind = kind_phys [flipv] standard_name = flag_flip long_name = vertical flip logical @@ -3346,6 +3379,12 @@ units = index dimensions = () type = integer +[nqrimef] + standard_name = index_for_mass_weighted_rime_factor + long_name = tracer index for mass weighted rime factor + units = index + dimensions = () + type = integer [ntwa] standard_name = index_for_water_friendly_aerosols long_name = tracer index for water friendly aerosol @@ -4781,6 +4820,13 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys +[train] + standard_name = accumulated_tendency_of_air_temperature_due_to_FA_scheme + long_name = accumulated tendency of air temperature due to FA MP scheme + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [gflux] standard_name = cumulative_surface_ground_heat_flux_multiplied_by_timestep long_name = cumulative groud conductive heat flux multiplied by timestep @@ -5692,6 +5738,76 @@ [ccpp-arg-table] name = GFS_interstitial_type type = ddt +[qv_r] + standard_name = humidity_mixing_ratio + long_name = the ratio of the mass of water vapor to the mass of dry air + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[qc_r] + standard_name = cloud_liquid_water_mixing_ratio + long_name = the ratio of the mass of liquid water to the mass of dry air + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[qr_r] + standard_name = cloud_rain_water_mixing_ratio + long_name = the ratio of the mass rain water to the mass of dry air + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[qi_r] + standard_name = cloud_ice_mixing_ratio + long_name = the ratio of the mass of ice to the mass of dry air + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[qs_r] + standard_name = cloud_snow_mixing_ratio + long_name = the ratio of the mass of snow to mass of dry air + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[qg_r] + standard_name = mass_weighted_rime_factor_mixing_ratio + long_name = the ratio of the mass of rime factor to mass of dry air + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[f_ice] + standard_name = fraction_of_ice_water_cloud + long_name = fraction of ice water cloud + units = frac + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[f_rain] + standard_name = fraction_of_rain_water_cloud + long_name = fraction of rain water cloud + units = frac + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[f_rimef] + standard_name = rime_factor + long_name = rime factor + units = frac + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[cwm] + standard_name = total_cloud_condensate_mixing_ratio_updated_by_physics + long_name = total cloud condensate mixing ratio (except water vapor) updated by physics + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [adjsfculw_ocean] standard_name = surface_upwelling_longwave_flux_over_ocean_interstitial long_name = surface upwelling longwave flux at current time over ocean (temporary use as interstitial) @@ -7157,7 +7273,7 @@ type = integer [ntiwx] standard_name = index_for_ice_cloud_condensate_vertical_diffusion_tracer - long_name = index for ice cloud condensate n the vertically diffused tracer array + long_name = index for ice cloud condensate in the vertically diffused tracer array units = index dimensions = () type = integer @@ -8245,6 +8361,13 @@ dimensions = () type = real kind = kind_phys +[con_epsq] + standard_name = minimum_value_of_specific_humidity + long_name = floor value for specific humidity + units = kg kg-1 + dimensions = () + type = real + kind = kind_phys [con_epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 From 685722db45befc5fbec7d6fa98824bfc25afdd96 Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Thu, 14 Nov 2019 13:37:34 -0700 Subject: [PATCH 005/206] 1. using explicit simulation configuration in SDF file 2. in GFS_typedefs.F90, correct nvdiff definition for FA. --- .../suite_FV3_HAFS_ferhires_update_moist.xml | 7 +----- gfsphysics/GFS_layer/GFS_typedefs.F90 | 23 +++++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml b/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml index 18cc0cf3b..1c370a59c 100644 --- a/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml +++ b/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml @@ -13,7 +13,6 @@ GFS_suite_interstitial_rad_reset - GFS_rrtmg_pre rrtmg_sw_pre rrtmg_sw @@ -54,7 +53,6 @@ sfc_diag sfc_diag_post GFS_surface_generic_post - GFS_PBL_generic_pre hedmf GFS_PBL_generic_post @@ -64,15 +62,12 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 - samfdeepcnv + GFS_DCNV_generic_post GFS_SCNV_generic_pre - GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 40002e0a8..6c9aaee7c 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -4068,7 +4068,11 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%nleffr = 1 Model%nieffr = 2 Model%nseffr = 3 - if (Model%me == Model%master) print *,' Using Ferrier-Aligo MP scheme' + if (Model%me == Model%master) print *,' Using Ferrier-Aligo MP scheme', & + ' microphysics', & + ' lradar =',Model%lradar + + elseif (Model%imp_physics == Model%imp_physics_wsm6) then !WSM6 microphysics Model%npdf3d = 0 Model%num_p3d = 3 @@ -5977,15 +5981,16 @@ subroutine interstitial_setup_tracers(Interstitial, Model) endif if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1 Interstitial%nncl = 5 +!MZ* nvdiff = 7: qv, qc,qi,qr,qs,q_rimef,o3 !--- F-A scheme - elseif (Model%imp_physics == Model%imp_physics_fer_hires) then - if (Model%spec_adv) then - Interstitial%nvdiff = 5 !qv, qc, qr, qi, qrime - else - Interstitial%nvdiff = 5 !qv, qc(total condensate), f_ice, f_rain,f_rimef - endif - if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1 - Interstitial%nncl = 5 +! elseif (Model%imp_physics == Model%imp_physics_fer_hires) then +! if (Model%spec_adv) then +! Interstitial%nvdiff = 5 !qv, qc, qr, qi, qrime +! else +! Interstitial%nvdiff = 5 !qv, qc(total condensate), f_ice, f_rain,f_rimef +! endif +! if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1 +! Interstitial%nncl = 5 elseif (Model%imp_physics == Model%imp_physics_wsm6) then Interstitial%nvdiff = Model%ntrac -3 if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1 From c985af4470f41f9528309ec65850cce390fde7b4 Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Mon, 18 Nov 2019 14:23:30 -0700 Subject: [PATCH 006/206] add gwd_post in FA SDF file following other SDFs --- ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml b/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml index 1c370a59c..375e9972d 100644 --- a/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml +++ b/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml @@ -59,6 +59,7 @@ GFS_GWD_generic_pre cires_ugwp cires_ugwp_post + GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update ozphys From b3f213d1ed7d7b8a8630e0b84c123670ab7670f1 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 18 Nov 2019 14:53:15 -0700 Subject: [PATCH 007/206] Update submodule pointers for ccpp-framework and ccpp-physics --- ccpp/framework | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/framework b/ccpp/framework index f3cad9e2b..60db8066c 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit f3cad9e2b6b69ab4c07826a1de50b7f6c6d08cd1 +Subproject commit 60db8066c435601250987fc51a3a57b658f47e5e diff --git a/ccpp/physics b/ccpp/physics index 4b46d2653..2d5a8e852 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 4b46d2653b6277c39176b131acb3d1544e7e2216 +Subproject commit 2d5a8e852743c6823e2613291555f63bcffd14dc From 9ee222bd946179e2e1663389a2974b05843d279e Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 18 Nov 2019 14:54:21 -0700 Subject: [PATCH 008/206] Add new SDFs for sas and satmedmfvdifq, remove samfshalcnv_post scheme from existing suites --- ccpp/suites/suite_FV3_CPT_v0.xml | 1 - ccpp/suites/suite_FV3_GFS_2017.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_csawmg.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml | 1 - .../suite_FV3_GFS_2017_gfdlmp_noahmp.xml | 1 - .../suite_FV3_GFS_2017_gfdlmp_regional.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_myj.xml | 1 - .../suites/suite_FV3_GFS_2017_ozphys_2015.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_sas.xml | 93 +++++++++++++++++++ ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml | 89 ++++++++++++++++++ ccpp/suites/suite_FV3_GFS_2017_shinhong.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_stretched.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_ysu.xml | 1 - ccpp/suites/suite_FV3_GFS_v15.xml | 1 - ccpp/suites/suite_FV3_GFS_v15_mynn.xml | 1 - ccpp/suites/suite_FV3_GFS_v15_thompson.xml | 1 - .../suite_FV3_GFS_v15_thompson_mynn.xml | 1 - ccpp/suites/suite_FV3_GFS_v15plus.xml | 1 - 20 files changed, 182 insertions(+), 18 deletions(-) create mode 100644 ccpp/suites/suite_FV3_GFS_2017_sas.xml create mode 100644 ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml diff --git a/ccpp/suites/suite_FV3_CPT_v0.xml b/ccpp/suites/suite_FV3_CPT_v0.xml index 2e0718970..8eed8e78c 100644 --- a/ccpp/suites/suite_FV3_CPT_v0.xml +++ b/ccpp/suites/suite_FV3_CPT_v0.xml @@ -78,7 +78,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017.xml b/ccpp/suites/suite_FV3_GFS_2017.xml index 5f0808dd4..fc1739bd5 100644 --- a/ccpp/suites/suite_FV3_GFS_2017.xml +++ b/ccpp/suites/suite_FV3_GFS_2017.xml @@ -70,7 +70,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml b/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml index abca6d237..fec7f373e 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml @@ -73,7 +73,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml index 8277cdcfe..35fdd9143 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml @@ -75,7 +75,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml index 1402e663b..2868c8250 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml @@ -76,7 +76,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml index ba247b796..20f91469f 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml @@ -70,7 +70,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml b/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml index f95070670..3e6acbc98 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml @@ -71,7 +71,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_myj.xml b/ccpp/suites/suite_FV3_GFS_2017_myj.xml index f8390e62f..7a193a10b 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_myj.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_myj.xml @@ -76,7 +76,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml b/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml index 310df3733..4e382886c 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml @@ -70,7 +70,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_sas.xml b/ccpp/suites/suite_FV3_GFS_2017_sas.xml new file mode 100644 index 000000000..1c52ac2cd --- /dev/null +++ b/ccpp/suites/suite_FV3_GFS_2017_sas.xml @@ -0,0 +1,93 @@ + + + + + + + fv_sat_adj + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_noah + sfc_sice + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + dcyc2t3_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + GFS_PBL_generic_pre + hedmf + GFS_PBL_generic_post + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys + GFS_DCNV_generic_pre + get_phi_fv3 + GFS_suite_interstitial_3 + sascnvn + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + shalcnv + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + gfdl_cloud_microphys + GFS_MP_generic_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + diff --git a/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml b/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml index b7f58db39..af93678ac 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml @@ -70,7 +70,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml b/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml new file mode 100644 index 000000000..a975c9235 --- /dev/null +++ b/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml @@ -0,0 +1,89 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_noah + sfc_sice + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + dcyc2t3_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + GFS_PBL_generic_pre + satmedmfvdifq + GFS_PBL_generic_post + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys + GFS_DCNV_generic_pre + get_phi_fv3 + GFS_suite_interstitial_3 + samfdeepcnv + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + samfshalcnv + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + zhaocarr_gscond + zhaocarr_precpd + GFS_MP_generic_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + diff --git a/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml b/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml index e12c294e0..756695e65 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml @@ -74,7 +74,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_stretched.xml b/ccpp/suites/suite_FV3_GFS_2017_stretched.xml index 59631dd45..6bef91b06 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_stretched.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_stretched.xml @@ -74,7 +74,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_ysu.xml b/ccpp/suites/suite_FV3_GFS_2017_ysu.xml index 8ec485c2b..baeb11c22 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ysu.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ysu.xml @@ -74,7 +74,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_v15.xml b/ccpp/suites/suite_FV3_GFS_v15.xml index 124c86707..efd5fc97b 100644 --- a/ccpp/suites/suite_FV3_GFS_v15.xml +++ b/ccpp/suites/suite_FV3_GFS_v15.xml @@ -76,7 +76,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml index 0b14e37f5..8fffa33e8 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml @@ -76,7 +76,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson.xml index 9400bbf98..a436c11c8 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson.xml @@ -71,7 +71,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml index 6f46141b8..3de52fa45 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml @@ -71,7 +71,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_v15plus.xml b/ccpp/suites/suite_FV3_GFS_v15plus.xml index 40397d4f1..837cba69f 100644 --- a/ccpp/suites/suite_FV3_GFS_v15plus.xml +++ b/ccpp/suites/suite_FV3_GFS_v15plus.xml @@ -76,7 +76,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 From c69850f49d1c5ad8335fafaae37555405ffd3bd0 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 18 Nov 2019 14:55:39 -0700 Subject: [PATCH 009/206] ccpp/CMakeLists.txt: cleanup bitforbit compiler options, adjust for b4b identical results on macOS with 32-bit dynamics --- ccpp/CMakeLists.txt | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/ccpp/CMakeLists.txt b/ccpp/CMakeLists.txt index 5b903352c..1ee3fce3d 100644 --- a/ccpp/CMakeLists.txt +++ b/ccpp/CMakeLists.txt @@ -62,17 +62,22 @@ elseif (${CMAKE_BUILD_TYPE} MATCHES "Release") set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_RELEASE}") elseif (${CMAKE_BUILD_TYPE} MATCHES "Bitforbit") if (${CMAKE_Fortran_COMPILER_ID} MATCHES "PGI") - set (CMAKE_C_FLAGS_RELEASE "-O1 -fPIC" CACHE STRING "" FORCE) - set (CMAKE_CXX_FLAGS_RELEASE "-O1 -fPIC" CACHE STRING "" FORCE) - set (CMAKE_Fortran_FLAGS_RELEASE "-O1 -fPIC" CACHE STRING "" FORCE) + set (CMAKE_C_FLAGS_BITFORBIT "-O1 -g -fPIC" CACHE STRING "" FORCE) + set (CMAKE_CXX_FLAGS_BITFORBIT "-O1 -g -fPIC" CACHE STRING "" FORCE) + set (CMAKE_Fortran_FLAGS_BITFORBIT "-O1 -g -fPIC" CACHE STRING "" FORCE) + elseif (APPLE AND ${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") + set (CMAKE_C_FLAGS_BITFORBIT "-O0 -g -fPIC" CACHE STRING "" FORCE) + set (CMAKE_CXX_FLAGS_BITFORBIT "-O0 -g -fPIC" CACHE STRING "" FORCE) + set (CMAKE_Fortran_FLAGS_BITFORBIT "-O0 -g -fPIC" CACHE STRING "" FORCE) + # For Intel on all platforms and for GNU on all platforms except macOS else (${CMAKE_Fortran_COMPILER_ID} MATCHES "PGI") - set (CMAKE_C_FLAGS_RELEASE "-O2 -fPIC" CACHE STRING "" FORCE) - set (CMAKE_CXX_FLAGS_RELEASE "-O2 -fPIC" CACHE STRING "" FORCE) - set (CMAKE_Fortran_FLAGS_RELEASE "-O2 -fPIC" CACHE STRING "" FORCE) + set (CMAKE_C_FLAGS_BITFORBIT "-O2 -g -fPIC" CACHE STRING "" FORCE) + set (CMAKE_CXX_FLAGS_BITFORBIT "-O2 -g -fPIC" CACHE STRING "" FORCE) + set (CMAKE_Fortran_FLAGS_BITFORBIT "-O2 -g -fPIC" CACHE STRING "" FORCE) endif (${CMAKE_Fortran_COMPILER_ID} MATCHES "PGI") - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS_RELEASE}") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_RELEASE}") - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_RELEASE}") + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS_BITFORBIT}") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_BITFORBIT}") + set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_BITFORBIT}") endif (${CMAKE_BUILD_TYPE} MATCHES "Debug") # Set compiler-specific options, depending on build type; some optimization flags may only be used @@ -87,9 +92,7 @@ if (${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fno-unsafe-math-optimizations -frounding-math -fsignaling-nans") set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffpe-trap=invalid,zero,overflow -fcheck=bounds -fbacktrace -fno-range-check") elseif (${CMAKE_BUILD_TYPE} MATCHES "Bitforbit") - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -g") + set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}") endif (${CMAKE_BUILD_TYPE} MATCHES "Debug") set (CMAKE_Fortran_FLAGS_DEFAULT_PREC "-fdefault-real-8 -fdefault-double-8") elseif (${CMAKE_Fortran_COMPILER_ID} MATCHES "PGI") @@ -114,9 +117,9 @@ elseif (${CMAKE_Fortran_COMPILER_ID} MATCHES "Intel") set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fstack-protector-all -fpe0 -traceback -debug -ftrapuv") elseif (${CMAKE_BUILD_TYPE} MATCHES "Bitforbit") if(LEGACY_INTEL) - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -debug minimal -fp-model strict -qoverride-limits -g -traceback") + set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -debug minimal -fp-model strict -qoverride-limits -traceback") else(LEGACY_INTEL) - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -debug minimal -fp-model consistent -qoverride-limits -g -traceback") + set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -debug minimal -fp-model consistent -qoverride-limits -traceback") endif (LEGACY_INTEL) elseif (${CMAKE_BUILD_TYPE} MATCHES "Release") # Specify aggressive optimization flags (to be overwritten for individual files in ccpp-physics' CMakeLists.txt) From 8cba04dcf406df14441be749aeb71bb6c7695f45 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 18 Nov 2019 14:56:26 -0700 Subject: [PATCH 010/206] ccpp/config/ccpp_prebuild_config.py: add sas shallow/deep convection schemes and satmedmfvdifq scheme --- ccpp/config/ccpp_prebuild_config.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index b1738d633..719958f5a 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -111,7 +111,9 @@ 'FV3/ccpp/physics/physics/cires_vert_wmsdis.F90', 'FV3/ccpp/physics/physics/namelist_soilveg.f', 'FV3/ccpp/physics/physics/mfpblt.f', + 'FV3/ccpp/physics/physics/mfpbltq.f', 'FV3/ccpp/physics/physics/mfscu.f', + 'FV3/ccpp/physics/physics/mfscuq.f', 'FV3/ccpp/physics/physics/noahmp_tables.f90', 'FV3/ccpp/physics/physics/num_parthds.F', 'FV3/ccpp/physics/physics/ozne_def.f', @@ -188,6 +190,8 @@ 'FV3/ccpp/physics/physics/h2ophys.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/samfdeepcnv.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/samfshalcnv.f' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/sascnvn.F' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/shalcnv.F' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/maximum_hourly_diagnostics.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/m_micro.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/m_micro_interstitial.F90' : [ 'slow_physics' ], @@ -197,6 +201,7 @@ 'FV3/ccpp/physics/physics/moninedmf.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/moninshoc.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/satmedmfvdif.F' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/satmedmfvdifq.F' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/shinhongvdif.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/ysuvdif.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYNNPBL_wrapper.F90' : [ 'slow_physics' ], From 2e27a29b89ed70c3961da4f2f6f8cdc9ac8244a7 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 18 Nov 2019 15:01:07 -0700 Subject: [PATCH 011/206] Update CCPP annotations in gfsphysics/GFS_layer/GFS_physics_driver.F90 --- gfsphysics/GFS_layer/GFS_physics_driver.F90 | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_physics_driver.F90 b/gfsphysics/GFS_layer/GFS_physics_driver.F90 index 8c9283198..731bdbb90 100644 --- a/gfsphysics/GFS_layer/GFS_physics_driver.F90 +++ b/gfsphysics/GFS_layer/GFS_physics_driver.F90 @@ -2379,6 +2379,7 @@ subroutine GFS_physics_driver & else if (Model%satmedmf) then if (Model%isatmedmf == 0) then ! initial version of satmedmfvdif (Nov 2018) +!## CCPP ##* satmedmfvdif.F/satmedmfvdif_run Note: The conditional above is checked in satmedmfvdif_init call satmedmfvdif(ix, im, levs, nvdiff, ntcw, ntiw, ntke, & dvdt, dudt, dtdt, dqdt, & Statein%ugrs, Statein%vgrs, Statein%tgrs, Statein%qgrs, & @@ -2389,7 +2390,9 @@ subroutine GFS_physics_driver & Statein%prslk, Statein%phii, Statein%phil, dtp, & Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s) +!*## CCPP ## elseif (Model%isatmedmf == 1) then ! updated version of satmedmfvdif (May 2019) +!## CCPP ##* satmedmfvdifq.F/satmedmfvdifq_run Note: The conditional above is checked in satmedmfvdifq_init call satmedmfvdifq(ix, im, levs, nvdiff, ntcw, ntiw, ntke, & dvdt, dudt, dtdt, dqdt, & Statein%ugrs, Statein%vgrs, Statein%tgrs, Statein%qgrs, & @@ -2401,6 +2404,7 @@ subroutine GFS_physics_driver & Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, & Model%dspfac, Model%bl_upfr, Model%bl_dnfr) +!*## CCPP ## endif elseif (Model%hybedmf) then if (Model%moninq_fac > 0) then @@ -2628,8 +2632,7 @@ subroutine GFS_physics_driver & else if (Model%satmedmf) then if (Model%isatmedmf == 0) then ! initial version of satmedmfvdif (Nov 2018) -!## CCPP ## satmedmfvdif.F/satmedmfvdif_run Note: The conditional above is not checked in the CCPP scheme; -! therefore the use of this scheme is controlled via the CCPP SDF +!## CCPP ##* satmedmfvdif.F/satmedmfvdif_run Note: The conditional above is checked in satmedmfvdif_init call satmedmfvdif(ix, im, levs, nvdiff, ntcw, ntiwx, ntkev, & dvdt, dudt, dtdt, dvdftra, & Statein%ugrs, Statein%vgrs, Statein%tgrs, vdftra, & @@ -2642,7 +2645,7 @@ subroutine GFS_physics_driver & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s) !*## CCPP ## elseif (Model%isatmedmf == 1) then ! updated version of satmedmfvdif (May 2019) -!## CCPP ##* This scheme is not in the CCPP yet. +!## CCPP ##* satmedmfvdifq.F/satmedmfvdifq_run Note: The conditional above is checked in satmedmfvdifq_init call satmedmfvdifq(ix, im, levs, nvdiff, ntcw, ntiwx, ntkev, & dvdt, dudt, dtdt, dvdftra, & Statein%ugrs, Statein%vgrs, Statein%tgrs, vdftra, & @@ -3720,10 +3723,10 @@ subroutine GFS_physics_driver & enddo endif !*## CCPP ## -!## CCPP ##* This scheme is not in the CCPP. if (.not. Model%ras .and. .not. Model%cscnv) then if (Model%imfdeepcnv == 1) then ! no random cloud top +!## CCPP ##* sascnvn.F/sascnvn_run call sascnvn (im, ix, levs, Model%jcap, dtp, del, & Statein%prsl, Statein%pgr, Statein%phil, clw(:,:,1:2), & Stateout%gq0(:,:,1), Stateout%gt0, Stateout%gu0, & @@ -4288,7 +4291,7 @@ subroutine GFS_physics_driver & ! -------------------------------------- if (Model%imfshalcnv == 1) then ! opr option now at 2014 !----------------------- -!## CCPP ##* Not in the CCPP yet. +!## CCPP ##* shalcnv.F/shalcnv_run call shalcnv (im, ix, levs, Model%jcap, dtp, del, Statein%prsl, & Statein%pgr, Statein%phil, clw, Stateout%gq0, & Stateout%gt0, Stateout%gu0, Stateout%gv0, rain1, & @@ -4296,7 +4299,9 @@ subroutine GFS_physics_driver & Diag%hpbl, hflx, evap, ud_mf, dt_mf, cnvw, cnvc, & Model%clam_shal, Model%c0s_shal, Model%c1_shal, & Model%pgcon_shal) +!*## CCPP ## +!## CCPP ##* GFS_SCNV_generic.F90/GFS_SCNV_generic_post_run do i=1,im Diag%rainc(i) = Diag%rainc(i) + frain * rain1(i) enddo @@ -4336,7 +4341,7 @@ subroutine GFS_physics_driver & Model%clam_shal, Model%c0s_shal, Model%c1_shal, & Model%pgcon_shal, Model%asolfac_shal) !*## CCPP ## -!## CCPP ##* samfshalcnv.f/samfshalcnv_post_run +!## CCPP ##* GFS_SCNV_generic.F90/GFS_SCNV_generic_post_run do i=1,im Diag%rainc(i) = Diag%rainc(i) + frain * rain1(i) enddo From daba616cb3bbda2b3844b30d22cecea329462033 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 18 Nov 2019 15:02:27 -0700 Subject: [PATCH 012/206] gfsphysics/GFS_layer/GFS_typedefs.*: add new control variables/flags for CCPP for sas and satmedmfvdifq --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 80 +++++++++++++----- gfsphysics/GFS_layer/GFS_typedefs.meta | 108 ++++++++++++++++++++----- 2 files changed, 150 insertions(+), 38 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 7f8239a5a..4e73d62f6 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -781,16 +781,36 @@ module GFS_typedefs !< 1: July 2010 version of mass-flux shallow conv scheme !< current operational version as of 2016 !< 2: scale- & aerosol-aware mass-flux shallow conv scheme (2017) + !< 3: scale- & aerosol-aware Grell-Freitas scheme (GSD) + !< 4: New Tiedtke scheme (CAPS) !< 0: modified Tiedtke's eddy-diffusion shallow conv scheme !< -1: no shallow convection used +#ifdef CCPP + integer :: imfshalcnv_sas = 1 !< flag for SAS mass-flux shallow convection scheme + integer :: imfshalcnv_samf = 2 !< flag for SAMF scale- & aerosol-aware mass-flux shallow convection scheme + integer :: imfshalcnv_gf = 3 !< flag for scale- & aerosol-aware Grell-Freitas scheme (GSD) + integer :: imfshalcnv_ntiedtke = 4 !< flag for new Tiedtke scheme (CAPS) +#endif integer :: imfdeepcnv !< flag for mass-flux deep convection scheme !< 1: July 2010 version of SAS conv scheme !< current operational version as of 2016 !< 2: scale- & aerosol-aware mass-flux deep conv scheme (2017) + !< 3: scale- & aerosol-aware Grell-Freitas scheme (GSD) + !< 4: New Tiedtke scheme (CAPS) !< 0: old SAS Convection scheme before July 2010 - integer :: isatmedmf !< flag for scale-aware TKE-based moist edmf scheme +#ifdef CCPP + integer :: imfdeepcnv_sas = 1 !< flag for SAS mass-flux deep convection scheme + integer :: imfdeepcnv_samf = 2 !< flag for SAMF scale- & aerosol-aware mass-flux deep convection scheme + integer :: imfdeepcnv_gf = 3 !< flag for scale- & aerosol-aware Grell-Freitas scheme (GSD) + integer :: imfdeepcnv_ntiedtke = 4 !< flag for new Tiedtke scheme (CAPS) +#endif + integer :: isatmedmf !< flag for scale-aware TKE-based moist edmf scheme !< 0: initial version of satmedmf (Nov. 2018) !< 1: updated version of satmedmf (as of May 2019) +#ifdef CCPP + integer :: isatmedmf_vdif = 0 !< flag for initial version of satmedmf (Nov. 2018) + integer :: isatmedmf_vdifq = 1 !< flag for updated version of satmedmf (as of May 2019) +#endif integer :: nmtvr !< number of topographic variables such as variance etc !< used in the GWD parameterization integer :: jcap !< number of spectral wave trancation used only by sascnv shalcnv @@ -2300,7 +2320,7 @@ subroutine sfcprop_create (Sfcprop, IM, Model) Sfcprop%cqs2 = clear_val Sfcprop%lh = clear_val end if - if (Model%imfdeepcnv == 3) then + if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then allocate (Sfcprop%conv_act(IM)) Sfcprop%conv_act = zero end if @@ -3869,8 +3889,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & #ifdef CCPP ! Consistency check for NTDK convection: deep and shallow convection are bundled ! and cannot be combined with any other deep or shallow convection scheme - if ( (Model%imfdeepcnv == 4 .or. Model%imfshalcnv == 4) .and. & - .not. (Model%imfdeepcnv == 4 .and. Model%imfshalcnv == 4) ) then + if ( (Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke .or. Model%imfshalcnv == Model%imfshalcnv_ntiedtke) .and. & + .not. (Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke .and. Model%imfshalcnv == Model%imfshalcnv_ntiedtke) ) then write(0,*) "Logic error: if NTDK deep convection is used, must also use NTDK shallow convection (and vice versa)" stop end if @@ -3890,14 +3910,21 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & else if (Model%imfdeepcnv == 0) then print *,' old SAS Convection scheme before July 2010 used' - elseif(Model%imfdeepcnv == 1) then +#ifdef CCPP + elseif(Model%imfdeepcnv == Model%imfdeepcnv_sas) then print *,' July 2010 version of SAS conv scheme used' - elseif(Model%imfdeepcnv == 2) then + elseif(Model%imfdeepcnv == Model%imfdeepcnv_samf) then print *,' scale & aerosol-aware mass-flux deep conv scheme' - elseif(Model%imfdeepcnv == 3) then + elseif(Model%imfdeepcnv == Model%imfdeepcnv_gf) then print *,' Grell-Freitas scale & aerosol-aware mass-flux deep conv scheme' - elseif(Model%imfdeepcnv == 4) then + elseif(Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke) then print *,' New Tiedtke cumulus scheme' +#else + elseif(Model%imfdeepcnv == 1) then + print *,' July 2010 version of SAS conv scheme used' + elseif(Model%imfdeepcnv == 2) then + print *,' scale & aerosol-aware mass-flux deep conv scheme' +#endif endif endif else @@ -3913,16 +3940,19 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & print*, ' Deep convection scheme disabled' endif if (Model%satmedmf) then +#ifdef CCPP + if (Model%isatmedmf == Model%isatmedmf_vdif) then + print *,' initial version (Nov 2018) of sale-aware TKE-based moist EDMF scheme used' + elseif(Model%isatmedmf == Model%isatmedmf_vdifq) then + print *,' update version (May 2019) of sale-aware TKE-based moist EDMF scheme used' + endif +#else if (Model%isatmedmf == 0) then print *,' initial version (Nov 2018) of sale-aware TKE-based moist EDMF scheme used' elseif(Model%isatmedmf == 1) then -#ifdef CCPP - print *,' Error: updated version (May 2019) of sale-aware TKE-based moist EDMF scheme not yet available in CCPP' - stop -#else print *,' update version (May 2019) of sale-aware TKE-based moist EDMF scheme used' -#endif endif +#endif elseif (Model%hybedmf) then print *,' scale-aware hybrid edmf PBL scheme used' elseif (Model%old_monin) then @@ -3940,14 +3970,21 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & else if (Model%imfshalcnv == 0) then print *,' modified Tiedtke eddy-diffusion shallow conv scheme used' - elseif (Model%imfshalcnv == 1) then +#ifdef CCPP + elseif (Model%imfshalcnv == Model%imfshalcnv_sas) then print *,' July 2010 version of mass-flux shallow conv scheme used' - elseif (Model%imfshalcnv == 2) then + elseif (Model%imfshalcnv == Model%imfshalcnv_samf) then print *,' scale- & aerosol-aware mass-flux shallow conv scheme (2017)' - elseif (Model%imfshalcnv == 3) then + elseif (Model%imfshalcnv == Model%imfshalcnv_gf) then print *,' Grell-Freitas scale- & aerosol-aware mass-flux shallow conv scheme (2013)' - elseif (Model%imfshalcnv == 4) then + elseif (Model%imfshalcnv == Model%imfshalcnv_ntiedtke) then print *,' New Tiedtke cumulus scheme' +#else + elseif (Model%imfshalcnv == 1) then + print *,' July 2010 version of mass-flux shallow conv scheme used' + elseif (Model%imfshalcnv == 2) then + print *,' scale- & aerosol-aware mass-flux shallow conv scheme (2017)' +#endif else print *,' unknown mass-flux scheme in use - defaulting to no shallow convection' Model%imfshalcnv = -1 @@ -4179,7 +4216,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%lmfshal = (Model%shal_cnv .and. Model%imfshalcnv > 0) #ifdef CCPP - Model%lmfdeep2 = (Model%imfdeepcnv == 2 .or. Model%imfdeepcnv == 3 .or. Model%imfdeepcnv == 4) + Model%lmfdeep2 = (Model%imfdeepcnv == Model%imfdeepcnv_sas & + .or. Model%imfdeepcnv == Model%imfdeepcnv_gf & + .or. Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke) #else Model%lmfdeep2 = (Model%imfdeepcnv == 2) #endif @@ -4389,6 +4428,7 @@ subroutine control_print(Model) print *, ' redrag : ', Model%redrag print *, ' hybedmf : ', Model%hybedmf print *, ' satmedmf : ', Model%satmedmf + print *, ' isatmedmf : ', Model%isatmedmf print *, ' shinhong : ', Model%shinhong print *, ' do_ysu : ', Model%do_ysu print *, ' dspheat : ', Model%dspheat @@ -4734,7 +4774,7 @@ subroutine tbd_create (Tbd, IM, Model) Tbd%htswc = clear_val Tbd%htsw0 = clear_val - if (Model%imfdeepcnv == 3 .or. Model%imfdeepcnv == 4) then + if (Model%imfdeepcnv == Model%imfdeepcnv_gf .or. Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke) then allocate(Tbd%forcet(IM, Model%levs)) allocate(Tbd%forceq(IM, Model%levs)) allocate(Tbd%prevst(IM, Model%levs)) @@ -4745,7 +4785,7 @@ subroutine tbd_create (Tbd, IM, Model) Tbd%prevsq = clear_val end if - if (Model%imfdeepcnv == 3) then + if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then allocate(Tbd%cactiv(IM)) Tbd%cactiv = zero end if diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 79ab00129..aaed9e9ef 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -2777,18 +2777,90 @@ units = flag dimensions = () type = integer +[imfshalcnv_sas] + standard_name = flag_for_sas_shallow_convection_scheme + long_name = flag for SAS shallow convection scheme + units = flag + dimensions = () + type = integer +[imfshalcnv_samf] + standard_name = flag_for_samf_shallow_convection_scheme + long_name = flag for SAMF shallow convection scheme + units = flag + dimensions = () + type = integer +[imfshalcnv_gf] + standard_name = flag_for_gf_shallow_convection_scheme + long_name = flag for Grell-Freitas shallow convection scheme + units = flag + dimensions = () + type = integer +[imfshalcnv_gf] + standard_name = flag_for_ntiedtke_shallow_convection_scheme + long_name = flag for new Tiedtke shallow convection scheme + units = flag + dimensions = () + type = integer [imfdeepcnv] standard_name = flag_for_mass_flux_deep_convection_scheme long_name = flag for mass-flux deep convection scheme units = flag dimensions = () type = integer +[imfdeepcnv_sas] + standard_name = flag_for_sas_deep_convection_scheme + long_name = flag for SAS deep convection scheme + units = flag + dimensions = () + type = integer +[imfdeepcnv_samf] + standard_name = flag_for_samf_deep_convection_scheme + long_name = flag for SAMF deep convection scheme + units = flag + dimensions = () + type = integer +[imfdeepcnv_gf] + standard_name = flag_for_gf_deep_convection_scheme + long_name = flag for Grell-Freitas deep convection scheme + units = flag + dimensions = () + type = integer +[imfdeepcnv_ntiedtke] + standard_name = flag_for_ntiedtke_deep_convection_scheme + long_name = flag for new Tiedtke deep convection scheme + units = flag + dimensions = () + type = integer +[isatmedmf] + standard_name = choice_of_scale_aware_TKE_moist_EDMF_PBL + long_name = choice of scale-aware TKE moist EDMF PBL scheme + units = none + dimensions = () + type = integer +[isatmedmf_vdif] + standard_name = choice_of_original_scale_aware_TKE_moist_EDMF_PBL + long_name = choice of original scale-aware TKE moist EDMF PBL scheme + units = none + dimensions = () + type = integer +[isatmedmf_vdifq] + standard_name = choice_of_updated_scale_aware_TKE_moist_EDMF_PBL + long_name = choice of updated scale-aware TKE moist EDMF PBL scheme + units = none + dimensions = () + type = integer [nmtvr] standard_name = number_of_statistical_measures_of_subgrid_orography long_name = number of topographic variables in GWD units = count dimensions = () type = integer +[jcap] + standard_name = number_of_spectral_wave_trancation_for_sas + long_name = number of spectral wave trancation used only by sascnv and shalcnv + units = count + dimensions = () + type = integer [cs_parm(1)] standard_name = updraft_velocity_tunable_parameter_1_CS long_name = tunable parameter 1 for Chikira-Sugiyama convection @@ -2896,91 +2968,91 @@ kind = kind_phys [c0s_deep] standard_name = rain_conversion_parameter_deep_convection - long_name = convective rain conversion parameter for deep conv. + long_name = convective rain conversion parameter for deep convection units = m-1 dimensions = () type = real kind = kind_phys [c1_deep] standard_name = detrainment_conversion_parameter_deep_convection - long_name = convective detrainment conversion parameter for deep conv. + long_name = convective detrainment conversion parameter for deep convection units = m-1 dimensions = () type = real kind = kind_phys [betal_deep] standard_name = downdraft_fraction_reaching_surface_over_land_deep_convection - long_name = downdraft fraction reaching surface over land for deep conv. + long_name = downdraft fraction reaching surface over land for deep convection units = frac dimensions = () type = real kind = kind_phys [betas_deep] standard_name = downdraft_fraction_reaching_surface_over_ocean_deep_convection - long_name = downdraft fraction reaching surface over ocean for deep conv. + long_name = downdraft fraction reaching surface over ocean for deep convection units = frac dimensions = () type = real kind = kind_phys [evfact_deep] standard_name = rain_evaporation_coefficient_deep_convection - long_name = convective rain evaporation coefficient for deep conv. + long_name = convective rain evaporation coefficient for deep convection units = frac dimensions = () type = real kind = kind_phys [evfactl_deep] standard_name = rain_evaporation_coefficient_over_land_deep_convection - long_name = convective rain evaporation coefficient over land for deep conv. + long_name = convective rain evaporation coefficient over land for deep convection units = frac dimensions = () type = real kind = kind_phys [pgcon_deep] standard_name = momentum_transport_reduction_factor_pgf_deep_convection - long_name = reduction factor in momentum transport due to deep conv. induced pressure gradient force + long_name = reduction factor in momentum transport due to deep convection induced pressure gradient force units = frac dimensions = () type = real kind = kind_phys [asolfac_deep] standard_name = aerosol_aware_parameter_deep_convection - long_name = aerosol-aware parameter inversely proportional to CCN number concentraion from Lim (2011) for deep conv. + long_name = aerosol-aware parameter inversely proportional to CCN number concentraion from Lim (2011) for deep convection units = none dimensions = () type = real kind = kind_phys [clam_shal] standard_name = entrainment_rate_coefficient_shallow_convection - long_name = entrainment rate coefficient for shal conv. + long_name = entrainment rate coefficient for shallow convection units = none dimensions = () type = real kind = kind_phys [c0s_shal] standard_name = rain_conversion_parameter_shallow_convection - long_name = convective rain conversion parameter for shal conv. + long_name = convective rain conversion parameter for shallow convection units = m-1 dimensions = () type = real kind = kind_phys [c1_shal] standard_name = detrainment_conversion_parameter_shallow_convection - long_name = convective detrainment conversion parameter for shal conv. + long_name = convective detrainment conversion parameter for shallow convection units = m-1 dimensions = () type = real kind = kind_phys [pgcon_shal] standard_name = momentum_transport_reduction_factor_pgf_shallow_convection - long_name = reduction factor in momentum transport due to shal conv. induced pressure gradient force + long_name = reduction factor in momentum transport due to shallow convection induced pressure gradient force units = frac dimensions = () type = real kind = kind_phys [asolfac_shal] standard_name = aerosol_aware_parameter_shallow_convection - long_name = aerosol-aware parameter inversely proportional to CCN number concentraion from Lim (2011) for shal conv. + long_name = aerosol-aware parameter inversely proportional to CCN number concentraion from Lim (2011) for shallow convection units = none dimensions = () type = real @@ -5294,14 +5366,14 @@ kind = kind_phys [dt3dt(:,:,4)] standard_name = cumulative_change_in_temperature_due_to_deep_convection - long_name = cumulative change in temperature due to deep conv. + long_name = cumulative change in temperature due to deep convection units = K dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys [dt3dt(:,:,5)] standard_name = cumulative_change_in_temperature_due_to_shal_convection - long_name = cumulative change in temperature due to shal conv. + long_name = cumulative change in temperature due to shallow convection units = K dimensions = (horizontal_dimension,vertical_dimension) type = real @@ -5329,14 +5401,14 @@ kind = kind_phys [dq3dt(:,:,2)] standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_deep_convection - long_name = cumulative change in water vapor specific humidity due to deep conv. + long_name = cumulative change in water vapor specific humidity due to deep convection units = kg kg-1 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys [dq3dt(:,:,3)] standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_shal_convection - long_name = cumulative change in water vapor specific humidity due to shal conv. + long_name = cumulative change in water vapor specific humidity due to shallow convection units = kg kg-1 dimensions = (horizontal_dimension,vertical_dimension) type = real @@ -7103,7 +7175,7 @@ kind = kind_phys [ncstrac] standard_name = number_of_tracers_for_CS - long_name = number of convectively transported tracers in Chikira-Sugiyama deep conv. scheme + long_name = number of convectively transported tracers in Chikira-Sugiyama deep convection scheme units = count dimensions = () type = integer From b9a3887e04990500fcb9090b43c8affe20b0a25e Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 19 Nov 2019 14:44:11 -0700 Subject: [PATCH 013/206] ccpp/build_ccpp.sh: correct ESMF_DEP_INCPATH settings to avoid warnings about non-existent include directories with GNU --- ccpp/build_ccpp.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/build_ccpp.sh b/ccpp/build_ccpp.sh index a0e40203b..f6bec6ff9 100755 --- a/ccpp/build_ccpp.sh +++ b/ccpp/build_ccpp.sh @@ -219,7 +219,7 @@ else CCPP_LINK_OBJS="-L${PATH_CCPP_LIB} -lccpp ${CCPP_XML2_LIB}" fi fi -echo "ESMF_DEP_INCPATH=-I${PATH_CCPP_INC}" > ${CCPP_MK} +echo "ESMF_DEP_INCPATH=${PATH_CCPP_INC}" > ${CCPP_MK} echo "ESMF_DEP_LINK_OBJS=${CCPP_LINK_OBJS}" >> ${CCPP_MK} if [ $clean_after = YES ]; then From a4a04183d335769ed1e9fa613c65ea1bf8440bb1 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 19 Nov 2019 14:45:06 -0700 Subject: [PATCH 014/206] gfsphysics/GFS_layer/GFS_typedefs.F90: bugfix, use correct Model%imfdeepcnv_samf instead of Model%imfdeepcnv_sas --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 4e73d62f6..1eae89dab 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -4216,7 +4216,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%lmfshal = (Model%shal_cnv .and. Model%imfshalcnv > 0) #ifdef CCPP - Model%lmfdeep2 = (Model%imfdeepcnv == Model%imfdeepcnv_sas & + Model%lmfdeep2 = (Model%imfdeepcnv == Model%imfdeepcnv_samf & .or. Model%imfdeepcnv == Model%imfdeepcnv_gf & .or. Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke) #else From ae916b3e5fb8ac50940d7b9e11caacfd8f6e31ca Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 19 Nov 2019 14:46:05 -0700 Subject: [PATCH 015/206] makefile: remove include directory and library entries for old FV3/fms directory to avoid warnings about non-existent include directories with GNU --- makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/makefile b/makefile index ff09a48f8..f0f84c4b4 100644 --- a/makefile +++ b/makefile @@ -47,7 +47,7 @@ libs: $(MAKE) -C atmos_cubed_sphere $(MAKE_OPTS) FMS_DIR=$(FMS_DIR) $(MAKE) -C ../stochastic_physics $(MAKE_OPTS) FMS_DIR=$(FMS_DIR) 32BIT=N # force gfs physics to 64bit -$(FV3_EXE): atmos_model.o coupler_main.o ccpp/driver/libccppdriver.a atmos_cubed_sphere/libfv3core.a io/libfv3io.a ipd/libipd.a $(PHYSP)physics/lib$(PHYSP)phys.a ../stochastic_physics/libstochastic_physics.a cpl/libfv3cpl.a fms/libfms.a +$(FV3_EXE): atmos_model.o coupler_main.o ccpp/driver/libccppdriver.a atmos_cubed_sphere/libfv3core.a io/libfv3io.a ipd/libipd.a $(PHYSP)physics/lib$(PHYSP)phys.a ../stochastic_physics/libstochastic_physics.a cpl/libfv3cpl.a $(LD) -o $@ $^ $(NCEPLIBS) $(LDFLAGS) else @@ -59,7 +59,7 @@ libs: $(MAKE) -C atmos_cubed_sphere $(MAKE_OPTS) FMS_DIR=$(FMS_DIR) $(MAKE) -C ../stochastic_physics $(MAKE_OPTS) FMS_DIR=$(FMS_DIR) 32BIT=N # force gfs physics to 64bit -$(FV3_EXE): atmos_model.o coupler_main.o atmos_cubed_sphere/libfv3core.a io/libfv3io.a ipd/libipd.a $(PHYSP)physics/lib$(PHYSP)phys.a ../stochastic_physics/libstochastic_physics.a cpl/libfv3cpl.a fms/libfms.a +$(FV3_EXE): atmos_model.o coupler_main.o atmos_cubed_sphere/libfv3core.a io/libfv3io.a ipd/libipd.a $(PHYSP)physics/lib$(PHYSP)phys.a ../stochastic_physics/libstochastic_physics.a cpl/libfv3cpl.a $(LD) -o $@ $^ $(NCEPLIBS) $(LDFLAGS) endif @@ -100,7 +100,7 @@ esmf_make_fragment: @echo "ESMF_DEP_FRONT = fv3gfs_cap_mod" >> fv3.mk # additional include files needed for PGI #@echo "ESMF_DEP_INCPATH = $(PWD)/nems_dir" >> fv3.mk - @echo "ESMF_DEP_INCPATH = $(PWD) $(addprefix $(PWD)/, nems_dir ccpp/driver atmos_cubed_sphere io fms gfsphysics cpl ipd ../stochastic_physics)" >> fv3.mk + @echo "ESMF_DEP_INCPATH = $(PWD) $(addprefix $(PWD)/, nems_dir ccpp/driver atmos_cubed_sphere io gfsphysics cpl ipd ../stochastic_physics)" >> fv3.mk @echo "ESMF_DEP_CMPL_OBJS =" >> fv3.mk @echo "ESMF_DEP_LINK_OBJS = $(addprefix $(PWD)/nems_dir/, libfv3cap.a libccppdriver.a libfv3core.a libfv3io.a libipd.a lib$(PHYSP)phys.a libfv3cpl.a libstochastic_physics.a) $(SIONLIB_LINK_FLAGS)" >> fv3.mk @echo "ESMF_DEP_SHRD_PATH =" >> fv3.mk @@ -119,7 +119,7 @@ esmf_make_fragment: @echo "ESMF_DEP_FRONT = fv3gfs_cap_mod" >> fv3.mk # additional include files needed for PGI #@echo "ESMF_DEP_INCPATH = $(PWD)/nems_dir" >> fv3.mk - @echo "ESMF_DEP_INCPATH = $(PWD) $(addprefix $(PWD)/, nems_dir atmos_cubed_sphere io fms gfsphysics cpl ipd ../stochastic_physics)" >> fv3.mk + @echo "ESMF_DEP_INCPATH = $(PWD) $(addprefix $(PWD)/, nems_dir atmos_cubed_sphere io gfsphysics cpl ipd ../stochastic_physics)" >> fv3.mk @echo "ESMF_DEP_CMPL_OBJS =" >> fv3.mk @echo "ESMF_DEP_LINK_OBJS = $(addprefix $(PWD)/nems_dir/, libfv3cap.a libfv3core.a libfv3io.a libipd.a lib$(PHYSP)phys.a libfv3cpl.a libstochastic_physics.a)" >> fv3.mk @echo "ESMF_DEP_SHRD_PATH =" >> fv3.mk From a333ffcd48533cfe97ae2b64b23d7e69d633700e Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 19 Nov 2019 14:47:48 -0700 Subject: [PATCH 016/206] Update submodule pointers for ccpp-framework and ccpp-physics --- ccpp/framework | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/framework b/ccpp/framework index 60db8066c..5073d989b 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 60db8066c435601250987fc51a3a57b658f47e5e +Subproject commit 5073d989b28c8071258a26c3dcfbfb31e3d21d40 diff --git a/ccpp/physics b/ccpp/physics index 2d5a8e852..bd473788f 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 2d5a8e852743c6823e2613291555f63bcffd14dc +Subproject commit bd473788ffe2ac5e3cc9d552d2701d51d480117d From 8c7f2313aafeee8ca9e48a32d05d604d3579d9f4 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 20 Nov 2019 09:41:50 -0700 Subject: [PATCH 017/206] Update submodule pointer for ccpp/physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index bd473788f..cbbac6772 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit bd473788ffe2ac5e3cc9d552d2701d51d480117d +Subproject commit cbbac67726041aca4bca942fa52036d82f06be00 From 1d1b1f86d877b2ae7408e98972d00310ed2c670c Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 20 Nov 2019 11:49:24 -0700 Subject: [PATCH 018/206] Update submodule pointers for ccpp/framework and ccpp/physics --- ccpp/framework | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/framework b/ccpp/framework index 5073d989b..6da780825 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 5073d989b28c8071258a26c3dcfbfb31e3d21d40 +Subproject commit 6da78082547b573d714a359368353dd065f59393 diff --git a/ccpp/physics b/ccpp/physics index cbbac6772..a7c38a694 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit cbbac67726041aca4bca942fa52036d82f06be00 +Subproject commit a7c38a694c788892c11cf638af7fab42599964dd From c8c7d06871599401d7414b4a432524ffbad2de66 Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Thu, 21 Nov 2019 18:52:06 -0700 Subject: [PATCH 019/206] remove update_moist module --- ccpp/config/ccpp_prebuild_config.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 2cf981e81..6e52fa0bd 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -233,7 +233,6 @@ 'FV3/ccpp/physics/physics/sfc_sice.f' : [ 'slow_physics' ], # HAFS FER_HIRES 'FV3/ccpp/physics/physics/mp_fer_hires.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/HAFS_update_moist.F90' : [ 'slow_physics' ], # for testing the and sections 'FV3/ccpp/physics/physics/GFS_suite_init_finalize_test.F90' : [ 'slow_physics' ], } From 2e3b41d30593f770a8d429830a4dddb5e5e82938 Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Thu, 21 Nov 2019 19:00:56 -0700 Subject: [PATCH 020/206] change TRAIN name to accumulated change... --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 10 ---------- gfsphysics/GFS_layer/GFS_typedefs.meta | 4 ++-- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 6c9aaee7c..b76cf1f4b 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -5981,16 +5981,6 @@ subroutine interstitial_setup_tracers(Interstitial, Model) endif if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1 Interstitial%nncl = 5 -!MZ* nvdiff = 7: qv, qc,qi,qr,qs,q_rimef,o3 -!--- F-A scheme -! elseif (Model%imp_physics == Model%imp_physics_fer_hires) then -! if (Model%spec_adv) then -! Interstitial%nvdiff = 5 !qv, qc, qr, qi, qrime -! else -! Interstitial%nvdiff = 5 !qv, qc(total condensate), f_ice, f_rain,f_rimef -! endif -! if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1 -! Interstitial%nncl = 5 elseif (Model%imp_physics == Model%imp_physics_wsm6) then Interstitial%nvdiff = Model%ntrac -3 if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1 diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 8936afe31..23c45bb60 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -4821,8 +4821,8 @@ type = real kind = kind_phys [train] - standard_name = accumulated_tendency_of_air_temperature_due_to_FA_scheme - long_name = accumulated tendency of air temperature due to FA MP scheme + standard_name = accumulated_change_of_air_temperature_due_to_FA_scheme + long_name = accumulated change of air temperature due to FA MP scheme units = K dimensions = (horizontal_dimension,vertical_dimension) type = real From 3dba65ffff63ff648cd7664f61c7a8dfd302c8ec Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Fri, 22 Nov 2019 13:16:57 -0700 Subject: [PATCH 021/206] fix compilation warnings related to wrong arguments passed into 2 subroutines in ugwp_driver_v0.f (note that the code that generated the warnings is in a non-active section) --- gfsphysics/physics/ugwp_driver_v0.f | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gfsphysics/physics/ugwp_driver_v0.f b/gfsphysics/physics/ugwp_driver_v0.f index 804bbac19..10f0d7399 100644 --- a/gfsphysics/physics/ugwp_driver_v0.f +++ b/gfsphysics/physics/ugwp_driver_v0.f @@ -1991,8 +1991,8 @@ subroutine edmix_ugwp_v0(im, levs, dtp, Km(1:levs) = ksum(1:levs) * rho(1:levs)* rho(1:levs) do j=1, nstab - call diff_1d_wtend(levs, dtstab, Fw, Fw1, levs, - & del(i,:), Sw, Sw1) + call diff_1d_wtend(levs, dtstab, Fw, Fw1, Km, + & rdp, rdpm, Sw, Sw1) Fw = Sw Fw1 = Sw1 enddo @@ -2004,7 +2004,7 @@ subroutine edmix_ugwp_v0(im, levs, dtp, Kpt = Km*iPr_pt Fw(1:levs) = pdTdt(i, 1:levs)*Ptmap(1:levs) do j=1, nstab - call diff_1d_ptend(levs, dtstab, Fw, Kpt, del(i,:), Sw) + call diff_1d_ptend(levs, dtstab, Fw, Kpt, rdp, rdpm, Sw) Fw = Sw enddo ed_dtdt(i,1:levs) = Sw(1:levs)/Ptmap(1:levs) From 5975b8e56a28ec5ab962ed92bb1c2718fc33b085 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 22 Nov 2019 16:26:11 -0700 Subject: [PATCH 022/206] Update submodule pointers for atmos_cubed_sphere ccpp/physics --- atmos_cubed_sphere | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 987160799..0c9ab9e3d 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 987160799b3a1c0f11de9883843f20421eb03fe8 +Subproject commit 0c9ab9e3dfe6cda6fc78315b86a107a369756024 diff --git a/ccpp/physics b/ccpp/physics index a7c38a694..ed8d6b97c 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit a7c38a694c788892c11cf638af7fab42599964dd +Subproject commit ed8d6b97c9ec66440d9e71420ee124b7561d8676 From d94feddb788ab6a04c1667cdda7bfff7bc656c48 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 22 Nov 2019 16:30:34 -0700 Subject: [PATCH 023/206] Update submodule pointers for atmos_cubed_sphere ccpp/physics --- atmos_cubed_sphere | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 987160799..0c9ab9e3d 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 987160799b3a1c0f11de9883843f20421eb03fe8 +Subproject commit 0c9ab9e3dfe6cda6fc78315b86a107a369756024 diff --git a/ccpp/physics b/ccpp/physics index a7c38a694..ed8d6b97c 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit a7c38a694c788892c11cf638af7fab42599964dd +Subproject commit ed8d6b97c9ec66440d9e71420ee124b7561d8676 From ed2116d5ff53c77ba2678cb31f9f271df1916094 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 22 Nov 2019 16:31:41 -0700 Subject: [PATCH 024/206] Revert "dtc/develop: update submodule pointers 2019/11/22" --- atmos_cubed_sphere | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 0c9ab9e3d..987160799 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 0c9ab9e3dfe6cda6fc78315b86a107a369756024 +Subproject commit 987160799b3a1c0f11de9883843f20421eb03fe8 diff --git a/ccpp/physics b/ccpp/physics index ed8d6b97c..a7c38a694 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit ed8d6b97c9ec66440d9e71420ee124b7561d8676 +Subproject commit a7c38a694c788892c11cf638af7fab42599964dd From e726454e453ed15b6df655e8d490cadf8e0c1a6a Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 25 Nov 2019 08:17:23 -0700 Subject: [PATCH 025/206] Update submodule pointer for ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index ed8d6b97c..73b8c0ded 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit ed8d6b97c9ec66440d9e71420ee124b7561d8676 +Subproject commit 73b8c0dedd2aab842c55045864dee233e07edfe2 From a550ddf96f6052fad2d1d002a58dec2c2fff7277 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 26 Nov 2019 08:42:25 -0700 Subject: [PATCH 026/206] Merge FV3 gsd/develop into fv3atm dtc/develop, squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 7eed7477b120e9298312f6ea64739052351f288e Merge: a3043d1 1876fb5 Author: Dom Heinzeller Date: Thu Nov 21 15:40:23 2019 -0700 Merge pull request #220 from tanyasmirnova/ruc_land_ice_v1 Added the capability to initialize Leaf Area Index (LAI) from the cli… commit 1876fb523f54092c729f61d72ab296f85482a3c4 Author: tanyasmirnova Date: Wed Nov 20 23:47:09 2019 +0000 Remove a factor of 100 from LAI output. commit cbea4199943dc124bdd4f7ac7b04fe2e136c55b7 Author: tanyasmirnova Date: Wed Nov 20 23:38:14 2019 +0000 This commits adds LAI to the history output. commit f7a4ee4d3bc7a011c22118d32fabaa7035b4df1d Author: tanyasmirnova Date: Wed Nov 20 20:23:40 2019 +0000 Added the capability to initialize Leaf Area Index (LAI) from the climatological information. This capability is controlled by the new namelist parameter - rdlai, which is added to the GFS_typedefs.meta. When rdlai=.false., no changes to the input, but if rdlai=.true., then a new variable should be available in sfc_data.nc input, and it will be read in into the xlaixy variable. commit a3043d1bc1391cedd816f851785de57bf4dcc1b2 Merge: 179cbe7 57d937b Author: Dom Heinzeller Date: Tue Sep 24 12:56:30 2019 -0600 Merge pull request #210 from climbfuji/update_gsd_develop_from_gmtb_develop_20190924 Update gsd/develop from gmtb/develop 2019/09/24 commit 57d937b8669b5404313f3b2b1c270fdcf532cd1a Author: Dom Heinzeller Date: Tue Sep 24 12:36:46 2019 -0600 Update CODEOWNERS and submodule atmos_cubed_sphere for gsd/develop commit d7699bab4b20211db4a8ca3988e3ee8a744ab46f Merge: 86ad37a fadbbda Author: Dom Heinzeller Date: Mon Sep 23 10:13:22 2019 -0600 Merge pull request #209 from climbfuji/update_submodule_pointer_atmos_cubed_sphere_20190923 Update submodule pointer for atmos_cubed_sphere 2019/09/23 commit fadbbda009dfccf66cecf814bf1c5475329e1a71 Author: Dom Heinzeller Date: Mon Sep 23 10:11:18 2019 -0600 Update submodule pointer for atmos_cubed_sphere commit 86ad37a15dbd7e99f732c80cb758fad541535326 Merge: d02e260 ef0469f Author: Dom Heinzeller Date: Mon Sep 23 09:33:13 2019 -0600 Merge pull request #207 from climbfuji/gmtb_develop_update_from_master_20190920 gmtb/develop update from master 2019/09/20, remove TRANSITION mode commit ef0469fcb5345d472324720e3c0043b65507c0bd Author: Dom Heinzeller Date: Fri Sep 20 08:53:31 2019 -0600 Remove TRANSITION mode commit 65bfa600345eed605ac580fd35c984c1d915d405 Merge: 545a5ab b67d9a3 Author: Dom Heinzeller Date: Fri Sep 20 07:23:01 2019 -0600 Merge branch 'master' of gerrit:FV3 into gmtb_develop_update_from_master_20190920 commit 545a5ab4fb70f5c7e9164107fb6f77d5ea94128e Merge: d02e260 42915ea Author: Dom Heinzeller Date: Fri Sep 20 06:59:23 2019 -0600 Merge branch 'master' of https://github.com/NCAR/FV3 into HEAD commit d02e260c161addf0bc6589b8f91a6098c4cd57ab Merge: 9ad9373 fd8f98a Author: Dom Heinzeller Date: Thu Sep 19 14:40:14 2019 -0600 Merge pull request #206 from climbfuji/myj_with_dom_mods gmtb/develop: MYJ PBL/SFC, Noah MP commit fd8f98a43258d9f593fff11f14c4216fca484cfd Author: Dom Heinzeller Date: Mon Sep 16 15:30:40 2019 -0600 gfsphysics/GFS_layer/GFS_driver.F90, gfsphysics/makefile, io/FV3GFS_io.F90: re-enable calculation of snocvr in FV3-IPD to avoid b4b issues when 32BIT=Y commit daab7457cf08c205c5016c8ec7865fbb08b8495f Author: Dom Heinzeller Date: Fri Sep 13 16:29:43 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.{F90,meta}: introduce lower bound variable for snow-related arrays in NoahMP, use in metadata table commit 243977dd91ea022a76dd799f5810357117af13ad Author: Dom Heinzeller Date: Fri Sep 13 16:28:01 2019 -0600 gfsphysics/GFS_layer/GFS_driver.F90: update comment on CCPP code commit 03b00f445c72e1617bef13971cf2b5dd2c4e412f Merge: 1bb9ab5 c83f1f7 Author: Dom Heinzeller Date: Fri Sep 13 15:28:19 2019 -0600 Merge branch 'noahmp' of https://github.com/grantfirl/FV3 into myj_with_dom_mods commit 1bb9ab5097d9906db571d4b4f40211646e23b3a2 Author: Dom Heinzeller Date: Fri Sep 13 15:28:16 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: remove empty line commit 1627b2359bc490d4cce58a47ffccbc1c27a61ad9 Merge: 7da9ed8 9ad9373 Author: Dom Heinzeller Date: Fri Sep 13 15:00:37 2019 -0600 Merge branch 'gmtb/develop' of https://github.com/NCAR/FV3 into myj_with_dom_mods commit 9ad93730b81314d1ffaf0b98cd81e7d442ccf874 Merge: 1fa34bc 4354488 Author: Dom Heinzeller Date: Fri Sep 13 15:00:08 2019 -0600 Merge pull request #204 from climbfuji/correct_longnames_20190909 gmtb/develop: correct long names, align with SCM commit 7da9ed859921d2ffe1ffdcf6f17ae2ae58449050 Merge: 4354488 bcfed5b Author: Dom Heinzeller Date: Fri Sep 13 10:49:16 2019 -0600 Merge branch 'myj_from_qingfu' into correct_longnames_20190909 commit 43544887d2b6624606dc82f30e4854dc49f23d20 Author: Dom Heinzeller Date: Thu Sep 12 21:11:20 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.meta: correct longnames and align with SCM commit c83f1f738b60772b2ae4dff6f6e2434ccc42bc04 Author: Grant Firl Date: Tue Sep 10 17:37:42 2019 -0600 update comments in GFS_physics_driver.F90 for locations of NoahMP-related code commit b4a674d9ae4144f25261943bf8a4481d09debe96 Merge: 36ab5be 1fa34bc Author: Grant Firl Date: Tue Sep 10 17:26:13 2019 -0600 Merge branch 'gmtb/develop' into noahmp commit 1fa34bc41fe59e9efbb12aeab474c83bf7670420 Merge: 028a54e 67db064 Author: Dom Heinzeller Date: Sun Sep 8 20:32:08 2019 -0600 Merge pull request #203 from climbfuji/gmtb_develop_monster_merge_20190904 Merge gsd/develop, update from Vlab, separate stochastic physics from IPD and CCPP commit 36ab5be04ffa4e0aabbe7cdae36c378881513739 Author: Grant Firl Date: Fri Sep 6 15:15:24 2019 -0600 change location of interstitial calculation for NoahMP in comments commit c1d7a918a84ea7cf64f0b63948be73253584663a Author: Grant Firl Date: Fri Sep 6 12:06:09 2019 -0600 fix bugs in FV3GFS_io.F90 related to #ifdef CCPP directives and noahmp commit 6e8b0cedd9d98ed469366603bae0bb95bc68a9b2 Author: Grant Firl Date: Wed Sep 4 22:09:28 2019 -0600 add t2mmp and q2mp to interstitial variables for noahmp commit 42915ea8e753f8be859f6ebf4f5983b4c78b695f Merge: b30a69a 1d823f8 Author: Dom Heinzeller Date: Wed Sep 4 16:41:50 2019 -0600 Merge pull request #202 from climbfuji/github_master_update_from_vlab_master_20190904 Update GitHub master from Vlab master 2019/09/04 commit 67db064b8d7b2e4b8692c8d5927a6897d49607d3 Author: Dom Heinzeller Date: Wed Sep 4 15:39:01 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90, gfsphysics/GFS_layer/GFS_typedefs.meta: add interstitial variables and their initialization, add metadata commit 635bd9f4f39f219fd6599ab724819db0279bc537 Author: Grant Firl Date: Wed Sep 4 13:05:15 2019 -0600 swap metadata for a couple of NoahMP precip variables commit 0b385edcb8344f0e2f515c63d91c27f43155d351 Author: Jun.Wang Date: Tue Sep 3 01:37:04 2019 +0000 FV3: this commits #refs 67151, Add aerosol transport to SAMF deep convection scheme, #refs 67152, Export instantaneous convective specific humidity tendency commit 599dd26768fb988763d6ad2c887432dbfe540d0b Author: Grant Firl Date: Wed Sep 4 10:52:25 2019 -0600 remove accidentally reverted change in GFS_physics_driver.F90 commit 1d823f846d64a4c6155565042c36f93a281a6887 Author: Jun.Wang Date: Tue Sep 3 01:37:04 2019 +0000 FV3: this commits #refs 67151, Add aerosol transport to SAMF deep convection scheme, #refs 67152, Export instantaneous convective specific humidity tendency commit f3b64a02ce0f6703b2b0ff60265a91f896e2a0c7 Author: Grant Firl Date: Wed Sep 4 10:40:11 2019 -0600 remove conversion factor-based directives in GFS_diagnostics.F90 commit 39667a94d78187149a373029ac5bf008ab434fcc Merge: 5babb96 028a54e Author: Grant Firl Date: Wed Sep 4 10:31:50 2019 -0600 Merge branch 'gmtb/develop' into noahmp commit fedc6695589c70f0415f9c8914d4e91b649fe937 Merge: 3332314 179cbe7 Author: Dom Heinzeller Date: Wed Sep 4 09:08:10 2019 -0600 Merge branch 'gsd/develop' of https://github.com/NCAR/FV3 into gmtb_develop_update_from_master_20190830 commit 3332314b09fa3a373e0ab132165a1453f6b23fa3 Author: Dom Heinzeller Date: Wed Sep 4 08:27:44 2019 -0600 Bugfixes in gfsphysics/GFS_layer/GFS_driver.F90, gfsphysics/GFS_layer/GFS_typedefs.F90 and gfsphysics/GFS_layer/GFS_typedefs.meta following the merge of the stochastic_physics separation PR commit 5babb964462e6913e3093462522b2430483905ea Author: Grant Firl Date: Tue Sep 3 15:50:59 2019 -0600 remove directives in FV3GFS_io.F90 limiting NoahMP to non-CCPP build; add noahmp_tables.f90 (data only) to makefile for CCPP build (needed in FV3GFS_io.F90 for noahmp cold starts) commit ede4f37077c866bffb87261edf38e7a8ee388b67 Merge: a721e0d 45ceeac Author: Grant Firl Date: Tue Sep 3 14:26:19 2019 -0600 Merge branch 'fix_sncovr' into noahmp commit dbef968c7985c72dc9eabf75f5e65141506dbd38 Author: Dom Heinzeller Date: Wed Jul 10 08:04:32 2019 -0600 namphysics/NAM_layer/NAM_typedefs.F90, namphysics/NAM_layer/NAM_driver.F90: add new component blksz(:) to NAM_control (GFS_control) DDT, pass to init routine commit c79b844b35a101db7ed3971d0be7c6077c085cb7 Author: Dom Heinzeller Date: Tue Jul 9 14:57:36 2019 -0600 makefile: build_stochastic physics independently of IPD or CCPP in directory ../stochastic_physics commit 278a1f1aa0915b1bcccc86779cc7bd65ee42bc3b Author: Dom Heinzeller Date: Tue Jul 9 14:56:42 2019 -0600 atmos_model.F90: call stochastic physics independently of IPD or CCPP commit 24543a1c4365485d782fa29de647512ef384ec81 Author: Dom Heinzeller Date: Tue Jul 9 14:41:17 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: remove variables for CCPP that are no longer required, add blksz as component to GFS_control also for IPD (is already for CCPP) commit 76dccf55128cd961461688f2df3a3bd88d5189e0 Author: Dom Heinzeller Date: Tue Jul 9 14:38:40 2019 -0600 (1) remove directory stochastic_physics (2) gfsphysics/GFS_layer/GFS_driver.F90: remove calls to stochastic_physics, make Init_parm%blksz an input argument to Model%init for both IPD and CCPP commit 028a54ec8e0596892f9bc01d63df7a1c4867ec41 Merge: d04664e 62fb7fb Author: Dom Heinzeller Date: Tue Sep 3 09:20:05 2019 -0600 Merge pull request #199 from climbfuji/gmtb_develop_update_from_master_20190830 gmtb/develop: update from master 2019/08/30 commit b30a69a16b0b9cd91b49fe20ea4cf5773e65f26e Merge: 127baf5 a47b7fc Author: Dom Heinzeller Date: Tue Sep 3 08:21:34 2019 -0600 Merge pull request #200 from climbfuji/update_submodule_pointer_in_FV3_20190903 master: update submodule pointer for atmos_cubed_sphere commit a47b7fc2dfe3612b8d0ee8af6d523e3995cc93d8 Author: Dom Heinzeller Date: Tue Sep 3 08:19:46 2019 -0600 Update submodule pointer for atmos_cubed_sphere commit 127baf51f612a7c7f04ebe160b28657773840bac Merge: ef8bb54 088e5fa Author: Laurie Carson Date: Mon Sep 2 14:12:30 2019 -0600 Merge pull request #198 from climbfuji/update_from_noaaemc_dev_20190830 Update GitHub NCAR master from Vlab master commit 45ceeac46d3f3f6dbdcef9bfd9cd43bdc2b1c92c Author: Grant Firl Date: Fri Aug 30 16:04:41 2019 -0600 remove calculation of sncovr from FV3GFS_io.F90 and from the makefile (for CCPP build) commit 62fb7fb3cf5900e6f71c4a7a52f6d6fbc3b629a1 Author: Jun.Wang Date: Tue Aug 27 20:17:31 2019 +0000 FV3: This commits #refs 66699, Calling radiative transfer parameterizations on each physics time step and #refs 66931,fix time window for accumulated fields in fv3 with IAU commit 9265ae03ec7af41420210a427149268118d81846 Author: Dom Heinzeller Date: Fri Aug 30 12:04:36 2019 -0600 Update .gitmodules and set default branch for atmos_cubed_sphere to gmtb/develop, update submodule pointer commit 1028b3f905d7f74f173a854d55fdc0a2ca6b7c82 Author: Jun.Wang Date: Sun Aug 25 02:54:03 2019 +0000 FV3: this commits #59519, separate FV3 dynamical core repository from FV3 commit 088e5fa16afc1b3ffd3932294de83aa72c7971ac Author: Jun.Wang Date: Tue Aug 27 20:17:31 2019 +0000 FV3: This commits #refs 66699, Calling radiative transfer parameterizations on each physics time step and #refs 66931,fix time window for accumulated fields in fv3 with IAU commit cf98bfae384ee3cb2969c69fafa19f79156ed15d Author: Dom Heinzeller Date: Fri Aug 30 08:36:09 2019 -0600 Update .gitmodules to point to NCAR fork of GFDL_atmos_cubed_sphere commit 31e13942a8e543e365216b134895e6ceffef8a83 Author: Jun.Wang Date: Sun Aug 25 02:54:03 2019 +0000 FV3: this commits #59519, separate FV3 dynamical core repository from FV3 commit d04664e793f8cff5502a5127ce03f1e19352f676 Merge: 47fa9fb a5d2226 Author: Dom Heinzeller Date: Fri Aug 30 07:39:08 2019 -0600 Merge pull request #195 from climbfuji/github_gmtb_develop_address_physics_issue_300_and_coupled_code GitHub gmtb develop address physics issue 300 and coupled code commit ef8bb5470f7d53b4afc6087f7f601f4b8cd8ee80 Merge: 8a86358 bd46b82 Author: Dom Heinzeller Date: Thu Aug 29 15:33:03 2019 -0600 Merge pull request #197 from grantfirl/master add Julie as codeowner commit 47fa9fbb67fdfe1d7ace52282fc8974eea9b1a03 Merge: 21fdde6 561eb79 Author: Dom Heinzeller Date: Thu Aug 29 15:32:36 2019 -0600 Merge pull request #196 from grantfirl/gmtb/develop add Julie as codeowner commit bd46b82d013091fcf36f75ab04624c55efd96dd3 Author: Grant Firl Date: Thu Aug 29 15:07:57 2019 -0600 add Julie as codeowner commit 561eb79d9133f1b285eb1503bbad5c24d6f460dc Author: Grant Firl Date: Thu Aug 29 15:05:15 2019 -0600 add Julie as codeowner commit a5d2226d5d37464e9feea05b32db08572468fb16 Author: Dom Heinzeller Date: Wed Aug 28 17:29:25 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.meta: rename instantaneous_upward_sensible_heat_flux to instantaneous_surface_upward_sensible_heat_flux_for_chemistry_coupling commit 5fac92183886479afc473bd01b9cd70840bd54fc Merge: b803db9 7ffc16a Author: Dom Heinzeller Date: Wed Aug 28 10:03:12 2019 -0600 Merge branch 'gmtb/develop' of https://github.com/panll/FV3 into HEAD commit b803db9182aad295b64e9d62052a4e601dd029fe Merge: 21fdde6 fd929f1 Author: Dom Heinzeller Date: Wed Aug 28 10:02:36 2019 -0600 Merge branch 'fix_LSM_units' of https://github.com/grantfirl/FV3 into HEAD commit 179cbe760b1d06960fecafb811241f0a6f2293d4 Merge: 0591b5c 7994ef9 Author: Dom Heinzeller Date: Tue Aug 27 16:38:23 2019 -0600 Merge pull request #190 from grantfirl/fix_RUC_LSM_precip_partitioning Address ccpp-physics issue #301 commit 21fdde6b7db39fa24ff667a42b3f79edeab50e1e Merge: a26436b 2f5bd1e Author: Dom Heinzeller Date: Tue Aug 27 16:29:54 2019 -0600 Merge pull request #194 from climbfuji/gmtb_develop_fix_RUC_LSM_precip_partitioning gmtb/develop: address issue #301 (fix RUC LSM precip partitioning) commit fd929f175da3b3e3ba16c0984f46f97e6246c1be Author: Grant Firl Date: Tue Aug 27 16:27:48 2019 -0600 fix soil moisture units in non-CCPP sfc_drv.f and sfc_noahmp_drv.f commit a721e0d3c2913dd1fa174b0fb3741b802e5b4c4f Author: Grant Firl Date: Tue Aug 27 15:02:51 2019 -0600 remove stop for NoahMP LSM through CCPP in GFS_typedefs.F90 commit dcd9771211b2476000e968b02ebedc7e35f0f4a7 Author: Grant Firl Date: Tue Aug 27 13:43:37 2019 -0600 wrap removal of conversion factors for 3 variables in GFS_diagnostics.F90 in #ifndef CCPP directives commit 2f5bd1ef13db0b857b03b2e43f7b5bfb930d8470 Author: Grant Firl Date: Tue Aug 20 14:13:34 2019 -0600 fix CCPP metadata for convective/non-convective precip variables used in RUC LSM commit a26436be1da9816330d375fb111e79204398aaee Merge: 44d9541 6363392 Author: Dom Heinzeller Date: Tue Aug 27 07:13:16 2019 -0600 Merge pull request #186 from bluefinweiwei/cires_ugwp UGWP Version 0 commit bcfed5b20a6b18f5e9ad96b16763889a0fb0c4b6 Author: Qingfu Liu Date: Tue Aug 27 11:17:39 2019 +0000 add MYJ surface layer scheme and MYJ PBL scheme to CCPP commit 2f5183ea7052fa39592f8b0fbec36326174526c9 Author: Grant Firl Date: Mon Aug 26 13:32:59 2019 -0600 move julian and yearlen to GFS_control_type (from interstitial) and add metadata for vars needed in GFS_time_vary_pre_run commit 636339227e9948feb58e4848a8983c822bbe831a Merge: 07b2f1f 0b22293 Author: Weiwei <42526954+bluefinweiwei@users.noreply.github.com> Date: Fri Aug 23 13:23:21 2019 -0600 Merge pull request #1 from climbfuji/ugwd_dom UGWD update for open PR to gmtb/develop commit 0b2229387070e966b5bc6892bd9704d7e57a239c Author: Dom Heinzeller Date: Fri Aug 23 11:59:01 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.meta: correct variable dimensions commit 95071efdde50b128749f5719dce45fc1b2e52729 Author: Grant Firl Date: Fri Aug 23 11:11:07 2019 -0600 add density of liquid water to constants available to CCPP schemes commit f7b7df469022a7d74fd43591aabc57ba7e4ddbcf Author: Dom Heinzeller Date: Fri Aug 23 08:52:51 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: update CCPP comments for UGWP code changes commit 539d331b5f578dd0c22b2131b54662cfff8839dd Author: Dom Heinzeller Date: Fri Aug 23 08:52:22 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.{meta,F90}: import con_p0, use instead of locally defined p_ref, add metadata commit 5717d0f19ea5b61010910fc0bf50b2529650dd21 Author: Grant Firl Date: Thu Aug 22 13:32:30 2019 -0600 change comments to reflect locations of NoahMP interstitial code commit a43041878ed867ec04f3d863559089d2c5d20fef Merge: 9ffcba3 44d9541 Author: Dom Heinzeller Date: Thu Aug 22 11:19:43 2019 -0600 Merge branch 'gmtb/develop' of https://github.com/NCAR/FV3 into ugwd_dom commit 9ffcba3b817c779dfbd7d7b7fe84d2228b9c652e Author: Dom Heinzeller Date: Thu Aug 22 11:19:16 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: remove unnecessary comment commit 44d95416b0921f5947e93f3aa29ef31ab1b73d4a Merge: e4e7ee6 cef4ace Author: Dom Heinzeller Date: Thu Aug 22 11:17:41 2019 -0600 Merge pull request #191 from climbfuji/bugfix_gfdlmp_ccpp gmtb/develop: bugfix for CCPP GFDL-MP when effective radii are not used commit 697003f6b26443df0f385b17a2202f70d0f4b476 Merge: e4e7ee6 07b2f1f Author: Dom Heinzeller Date: Wed Aug 21 14:24:23 2019 -0600 Merge branch 'cires_ugwp' of https://github.com/bluefinweiwei/FV3 into HEAD commit 04e913f0b90264dc97b122bb1ab789beedde9547 Author: Grant Firl Date: Wed Aug 21 13:30:00 2019 -0600 initial addition of NoahMP variables to GFS_typedefs.F90 commit 7994ef98ad93bc5999d9a105cba3773ae84da6b5 Author: Grant Firl Date: Tue Aug 20 14:13:34 2019 -0600 fix CCPP metadata for convective/non-convective precip variables used in RUC LSM commit ab4264fdd0128ca39897b324ed71aa8b113ed6ad Author: Grant Firl Date: Tue Aug 20 13:50:54 2019 -0600 removed conversion factor for soil moisture and runoff diagnostics since they now have the desired units directly in physics code; corrected CCPP units in GFS_typedefs.meta commit 7ffc16a7ed7f759e414529cd8873417e0dae408d Author: Linlin.Pan Date: Mon Aug 19 21:52:12 2019 +0000 adding couple option in CCPP with modified variable names. passed regression tests. commit 7f7e0a226264cd8928282cabad4822b41f019ddb Merge: 915dafd e4e7ee6 Author: panll Date: Mon Aug 19 09:55:48 2019 -0600 Merge pull request #1 from NCAR/gmtb/develop Gmtb/develop commit cef4ace8dbb72e551b452743590f1e39739a5c6d Author: Dom Heinzeller Date: Thu Jul 18 10:58:56 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: bugfix for GFDL-MP in CCPP when effective radii are not used commit 0591b5c5100d75a79c604d9e91985a8a75aaf60b Merge: a6ce9d4 c9606fb Author: Dom Heinzeller Date: Mon Aug 19 08:48:29 2019 -0600 Merge pull request #188 from climbfuji/update_gsd_develop_with_vlab_master_20190816 Update GitHub gsd/develop with Vlab master 2019/08/16 commit e4e7ee6c640ca64b0ad8915c8ee06631c3c5590c Merge: 0af7e33 b7b423c Author: Dom Heinzeller Date: Sat Aug 17 16:25:45 2019 -0600 Merge pull request #184 from climbfuji/bugfix_allocating_dtdt_m_non_ccpp_version Bugfix for allocating dtdt_m in fv_dynamics.F90 commit c9606fba7e19ab86aa60b002f9ccd972b754d219 Author: Dusan Jovic Date: Fri Jul 26 13:45:14 2019 +0000 Fix an issue introduced in the previous commit where merge conflict markers were inadvertently committed. commit 02efdda480a2d1b610e3057d95fa4ac6f21d6ca6 Author: Jun.Wang Date: Thu Jul 18 15:21:28 2019 +0000 FV3: This commits #refs 65267 adding obs-based roughness length formulations and adjustment of K for hurricane simulations Change-Id: Ifea0ed42e7611648f4daa2dc24921561b4080691 commit 8a86358617ff8bc39731b6f8a84128cfb3e74075 Merge: 396b10d 319bb44 Author: Dom Heinzeller Date: Fri Aug 16 11:36:41 2019 -0600 Merge pull request #187 from climbfuji/update_github_master_from_vlab_master_20190816 Update GitHub master from Vlab master 2019/08/16 commit 319bb4411a8884493430166b2c4953bd5166e7a2 Author: Dusan Jovic Date: Fri Jul 26 13:45:14 2019 +0000 Fix an issue introduced in the previous commit where merge conflict markers were inadvertently committed. commit b757a06cbb507adcf73b85256cf8ed1869b8e425 Author: Jun.Wang Date: Thu Jul 18 15:21:28 2019 +0000 FV3: This commits #refs 65267 adding obs-based roughness length formulations and adjustment of K for hurricane simulations Change-Id: Ifea0ed42e7611648f4daa2dc24921561b4080691 commit 07b2f1f9e7db1155463698956755cd9b899ce0b7 Author: Weiwei Date: Tue Jul 16 14:57:32 2019 -0600 modified: GFS_typedefs.F90 modified: GFS_typedefs.meta commit 915dafd466c0b7195d1e494d327feb55d4da8981 Author: Linlin.Pan Date: Thu Aug 15 04:43:15 2019 +0000 adding new variables for coupling option in CCPP: gfsphysics/GFS_layer/GFS_typedefs.F90 -- new variables allocation and initiation included gfsphysics/GFS_layer/GFS_typedefs.meta -- new variables definiation added commit b7b423cbf65f30f2c2a2d928c6814d746cbf202e Author: Dom Heinzeller Date: Fri Aug 9 11:47:51 2019 -0600 atmos_cubed_sphere/model/fv_dynamics.F90: always allocate dtdt_m, because its dimensions are hardcoded in fv_mapz.F90 commit dfb7db58bd44c48853ae6cd55efeaa731e3afa5f Merge: 0af7e33 a3ea903 Author: Dom Heinzeller Date: Thu Aug 8 14:05:59 2019 -0600 Merge branch 'MG_array_allocation' of https://github.com/grantfirl/FV3 into HEAD commit 0af7e331bdc79d81a9f0daf6f7a4d64e9170a440 Merge: b1d8ec4 5b4c6e5 Author: grantfirl Date: Tue Aug 6 13:45:45 2019 -0600 Merge pull request #180 from grantfirl/add_interstitial_comments Document locations of CCPP-implemented code within GFS_physics_driver.F90 commit 5b4c6e5e51738c28fd4616e7cb5ee401817f37b6 Author: Grant Firl Date: Thu Aug 1 16:35:28 2019 -0600 fix comment related to stochastics in GFS_driver.F90 commit f8f792b889ab19a6c99384c7b1453144ab263bc6 Merge: 4dc853b b1d8ec4 Author: Grant Firl Date: Thu Aug 1 14:52:11 2019 -0600 Merge branch 'gmtb/develop' into add_interstitial_comments commit b1d8ec4d6eb4d4f7519c608fe5f76fbacd8e7f6c Merge: c4712c2 5d14eec Author: Dom Heinzeller Date: Thu Aug 1 14:46:23 2019 -0600 Merge pull request #181 from climbfuji/new_metadata_format_step1_20190725 Migrate to new metadata format step 1 commit 4dc853b8ca35494376b8e811f1f2916f61b648a6 Merge: 31e0cc6 c4712c2 Author: Grant Firl Date: Thu Aug 1 14:00:56 2019 -0600 Merge branch 'gmtb/develop' into add_interstitial_comments commit 31e0cc65bf4eea12e2072c5f3edd9011c99a1bd1 Author: Grant Firl Date: Thu Aug 1 13:53:25 2019 -0600 add comments in GFS_driver.F90 and GFS_radiation_driver.F90 to tell users locations of code in the CCPP commit 5d14eec31116d3b2f4902695c9f12a05f6748d70 Merge: f575b62 417f8ce Author: Dom Heinzeller Date: Wed Jul 31 15:47:56 2019 -0600 Merge branch 'master' of gerrit:FV3 into new_metadata_format_step1_20190725 commit f575b6205aafc91e2d37130febe9a6934e2e352b Author: Dom Heinzeller Date: Wed Jul 24 16:44:16 2019 -0400 gfsphysics/GFS_layer/GFS_typedefs.F90: add metadata for new HAFS variable GFS_Control%sfc_z0_type commit 3990afc75001f55529d0be960ad7ea149715f669 Author: Dom Heinzeller Date: Wed Jul 31 14:17:45 2019 -0600 Convert CCPP type and variable definitions to new metadata format, introduce variables for all dimensions needed, add comments about further work commit a3ea903db48889bf163b33f7fbc6644fae8f1731 Author: Grant Firl Date: Wed Jul 31 12:41:08 2019 -0600 conditionally allocate arrays for Morrison-Gettelman microphysics scheme commit 7b4db3ea1751644174dc22c1d8f5e34c3176bf12 Author: Dom Heinzeller Date: Thu Jul 25 16:31:42 2019 -0600 gfsphysics/CCPP_layer/CCPP_typedefs.F90, gfsphysics/GFS_layer/GFS_typedefs.F90: substitute dashes with underscores in variable standard names commit 2cdcc3b4d6af372194c52293b537de759d36bed4 Author: Grant Firl Date: Sun Jul 21 19:13:19 2019 -0600 add comments in GFS_physics_driver.F90 to tell users locations of code in the CCPP commit a6ce9d412e31a865116183c817fd5f0db40c44db Author: Dom Heinzeller Date: Thu Jul 18 10:45:01 2019 -0600 Update CODEOWNERS to enable branch protection commit 9def0cf844a3bc743c842e35a070128b9fc0035d Merge: a5c8b40 780d3a8 Author: Dom Heinzeller Date: Wed Jul 17 20:48:05 2019 -0600 Merge pull request #179 from climbfuji/add_regression_tests_20190717 gsd/develop: add regression tests for Thompson only, GF only, MYNN only & cleanup commit 780d3a87df3dd7749d960af0bfac876c553c21a7 Author: Dom Heinzeller Date: Wed Jul 17 14:13:03 2019 -0600 Remove namelist option make_number_concentrations, this will be used by default for Thompson MP commit a5c8b40e37ebb410e721e00f04350086b27da834 Author: Dom Heinzeller Date: Tue Jul 16 15:00:57 2019 -0600 Update CODEOWNERS to GSD team commit 1cfdbb099f5ff7bcc30e0290ea3c8aaf7f0f714b Merge: 9595fb7 c4712c2 Author: Dom Heinzeller Date: Tue Jul 16 14:52:54 2019 -0600 Merge branch 'gmtb/develop' of https://github.com/NCAR/FV3 into HEAD commit c4712c233cb6cb5d68e1dd050fd3a4889c20f53d Merge: ae1d3d9 d0359b3 Author: Dom Heinzeller Date: Tue Jul 16 14:46:17 2019 -0600 Merge pull request #178 from climbfuji/update_gmtb_develop_from_vlab_master_20190716 Update gmtb/develop from Vlab master 2019/07/16 commit d0359b3f8f8ec129b3be65a6aafde203bbfb4f1f Merge: ae1d3d9 64fc1f1 Author: Dom Heinzeller Date: Tue Jul 16 14:41:30 2019 -0600 Merge branch 'master' of gerrit:FV3 into HEAD commit 396b10dcbd91c577a0dfb3094e2cd0d463f1046a Merge: c4ef4b0 e0fed0f Author: Dom Heinzeller Date: Tue Jul 16 14:37:34 2019 -0600 Merge pull request #177 from climbfuji/update_master_github_from_master_vlab Update master GitHub from master Vlab commit e0fed0fdda5b8d290cae2a5550f1baf9c8977b92 Merge: c4ef4b0 64fc1f1 Author: Dom Heinzeller Date: Tue Jul 16 14:33:18 2019 -0600 Merge branch 'master' of gerrit:FV3 into HEAD commit ae1d3d92ad53af377789e1b353dbdc96e65cb66c Merge: 5c1fb7d 9207155 Author: Dom Heinzeller Date: Tue Jul 16 14:23:13 2019 -0600 Merge pull request #176 from climbfuji/bugfix_gf_conv_AND_thompson_cleanup_20190709 Bugfix GF convection, Thompson cleanup 2019/07/09 commit 5c1fb7dc24337aecc5abcd08fad0c0c776f43cc6 Merge: 981af01 dfe41ca Author: Dom Heinzeller Date: Thu Jul 11 08:37:15 2019 -0600 Merge pull request #175 from climbfuji/update_from_github_master_20190708 Update from GitHub (=VLab) master 2019/07/08 commit 9207155591cf01f0825105dcd8f708e32ceeecae Author: Dom Heinzeller Date: Tue Jul 9 10:31:31 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: adjust number of tracers in PBL tracer array for Thompson MP, add guard to prevent running Thompson MP with cplchm (not configured) commit dfe41ca3b68c4fdc6c5c30e6ed1a38a39b25f618 Merge: d27d347 c4ef4b0 Author: Dom Heinzeller Date: Mon Jul 8 11:24:40 2019 -0600 Merge branch 'master' of https://github.com/NCAR/FV3 into HEAD commit d27d34737295bb5f3a30581c92aa11fc665edba1 Merge: 981af01 3dc7e9b Author: Dom Heinzeller Date: Mon Jul 8 11:24:07 2019 -0600 Merge branch 'master' of gerrit:FV3 into HEAD commit c4ef4b0944a1dbbea4a371a5f98cf18f407f181e Author: Dom Heinzeller Date: Mon Jul 8 08:23:56 2019 -0600 Add CODEOWNERS after mirroring Vlab master commit 981af01d87d8b302cafd19cfb07e66443f7a18d4 Merge: 66b1f26 3e3b1b7 Author: Dom Heinzeller Date: Wed Jul 3 07:58:40 2019 -0600 Merge pull request #173 from climbfuji/cleanup_work_gerrit_codereview_20190701 Cleanup work gerrit codereview 2019/07/01 commit 3e3b1b701466a9884217d36a5e729866acfd7f7d Author: Dom Heinzeller Date: Mon Jul 1 13:44:35 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: comment out unneccessary/redundant code as per code review commit 66b1f26a0d5b576c2c7b39d6a009c8fb7d4822c4 Merge: 132bd90 754129f Author: Dom Heinzeller Date: Sun Jun 30 20:25:43 2019 -0600 Merge pull request #172 from climbfuji/cleanup_work_gerrit_codereview_20190627 Cleanup work gerrit code review part 2 - 2019/06/29 commit 754129f5d24c092edc9e7f91031217a3d6bae485 Author: Dom Heinzeller Date: Sat Jun 29 09:30:17 2019 -0600 Optimization (CCPP-only): allocate Noah MP restart variables only if Noah MP is actually used commit 6b54841392e5cc9c9fab6ef3d64ab3af0be8eefb Author: Dom Heinzeller Date: Sat Jun 29 06:52:25 2019 -0600 CCPP_layer/makefile, gfsphysics/makefile: set CPP directives for promoting dynamics/fast physics to 32-bit commit 4899b5d9d979dc96b9f6a1978adf81156867ee81 Author: Dom Heinzeller Date: Fri Jun 28 14:22:23 2019 -0600 gfsphysics/physics/GFS_debug.F90, gfsphysics/GFS_layer/GFS_physics_driver.F90, gfsphysics/GFS_layer/GFS_diagnostics.F90: bugfixes following the reverse of the Diag%{wet1,sr} -> Sfcprop{wet1,sr} change commit afb55926beb9255813e011e7c82bbe93c5beefab Author: Dom Heinzeller Date: Fri Jun 28 13:48:57 2019 -0600 atmos_cubed_sphere/tools/external_ic.F90: add CPP guard to logic for reading in Thompson aerosols commit 50576da069d45a9d6602cb9301db04163f3331da Author: Dom Heinzeller Date: Fri Jun 28 13:46:49 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90, gfsphysics/physics/physcons.F90, gfsphysics/physics/sfc_sice.f: revert cimin changes (moved from sfc_sice to physcons) for non-CCPP builds commit a3f9fefd27f45b6ef64930648532c65c29bcca4c Author: Dom Heinzeller Date: Fri Jun 28 13:40:31 2019 -0600 gfsphysics/physics/radiation_clouds.f: fix bug for radiation-clouds in Thompson/WSM6 cloud scheme commit d01ebbc1205d39e744b40fd4efb202804974fa78 Author: Dom Heinzeller Date: Fri Jun 28 13:37:46 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90, io/FV3GFS_io.F90: RUC now uses srflag and not sr, revert change of moving sr from Diag to sfcprop, and remove sr from restart information for RUC commit ef9936381fbd26276147ca58010e24a71a25728b Merge: a00ec68 132bd90 Author: Dom Heinzeller Date: Thu Jun 27 22:45:25 2019 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into cleanup_work_gerrit_codereview_20190627 commit a00ec683be47562518240938f72783f652973c8e Author: Dom Heinzeller Date: Thu Jun 27 22:45:10 2019 -0600 io/FV3GFS_io.F90: rename wetness variable for RUC LSM from wet1 to wetness commit f0fa127d278f2a1321560e190f7e80698839238e Author: Dom Heinzeller Date: Thu Jun 27 22:43:26 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: use different wetness variables for RUC LSM and other LSMs, update metadata for CCPP commit 9f21fe1c50dd33e99a8d6d3d94402f0ec01cd192 Author: Dom Heinzeller Date: Thu Jun 27 22:41:42 2019 -0600 gfsphysics/GFS_layer/GFS_diagnostics.F90: use different wetness variables for RUC LSM and other LSMs, cleanup code for subsurface variables, rename RUC LSM soill output to slc to be consistent with Noah MP commit 132bd90db5f033d479eb0892e840cd5b03fa1bb9 Merge: 7ab6d31 00db91c Author: Dom Heinzeller Date: Thu Jun 27 22:32:52 2019 -0600 Merge pull request #171 from climbfuji/cleanup_work_gerrit_codereview_20190626 Cleanup work for CCPP transition 2019/06/27 - 1 commit 00db91cd2f37e84a747bab70dedbdc607e54ce3b Author: Dom Heinzeller Date: Thu Jun 27 11:21:23 2019 -0600 ipd/IPD_typedefs.F90: cleanup code, remove remaining remnants of old HYBRID build, remove unused IPD_finalize commit 009d0bf91514ba1fbc69b28014d0b50ff0da0e70 Author: Dom Heinzeller Date: Thu Jun 27 11:20:05 2019 -0600 ipd/IPD_driver.F90: cleanup code, remove remaining remnants of old HYBRID build, remove unused IPD_finalize commit 953cb7f8542b094b10b84bf1eecd0a66cd9944be Author: Dom Heinzeller Date: Thu Jun 27 11:19:12 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: check and remove old comments as needed, remove standard_name for composite dq3dt to prevent its usage, allocate d?3dt arrays for CCPP only if ldiag3d is true commit 135d62927a63f8487858f94586e81e760f505d5b Author: Dom Heinzeller Date: Thu Jun 27 11:17:14 2019 -0600 gfsphysics/GFS_layer/GFS_driver.F90: cleanup code, remove unused GFS_finalize commit c0abdb637c9c77df9887d5342c5e4394cee3b311 Author: Dom Heinzeller Date: Thu Jun 27 11:16:41 2019 -0600 gfsphysics/GFS_layer/GFS_abstraction_layer.F90: cleanup code, remove remaining remnants of old HYBRID build, remove unused GFS_finalize commit 9fd64b4d366997fa751c07d46e3d8f9b2bb81945 Author: Dom Heinzeller Date: Thu Jun 27 11:16:08 2019 -0600 atmos_model.F90: cleanup code, remove remaining remnants of old HYBRID build commit 97f665fb5c2436f0f436f51cb77fbabc87e09f31 Author: Dom Heinzeller Date: Thu Jun 27 11:15:10 2019 -0600 atmos_cubed_sphere/tools/external_ic.F90: remove unnecessary comments commit 226b417ac8da6af8bffed3b7567f0a409b311d7f Author: Dom Heinzeller Date: Thu Jun 27 11:14:30 2019 -0600 atmos_cubed_sphere/model/fv_regional_bc.F90: remove unnecessary comments commit eb1c50563e3f0d6189c01be15b3e4b4b1f12c680 Author: Dom Heinzeller Date: Thu Jun 27 11:12:05 2019 -0600 CCPP_layer/CCPP_driver.F90: Simplify physics_init, run over entire domain instead of multiple blocks commit 00a02ca2cdff5bc5625739015853102d270726af Author: Dom Heinzeller Date: Wed Jun 26 11:56:45 2019 -0600 makefile: set SIONLIB_LINK_FLAGS only for CCPP build, do not add to non-CCPP ESMF makefile fragment commit 7ab6d3111322e306251e50ffc88bd1efa8d7e310 Merge: 386ab98 0e12270 Author: Dom Heinzeller Date: Wed Jun 26 08:43:58 2019 -0600 Merge pull request #170 from climbfuji/ruclsm_b4b_20190625 RUC LSM b4b through restarts, cleanup for Thompson MP / effective radii / debug output commit 0e122708f6f8ef3a92ce3ff4638cb9d6b94e115a Merge: c9cbbc8 386ab98 Author: Dom Heinzeller Date: Tue Jun 25 21:25:58 2019 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into ruclsm_b4b_20190625 commit c9cbbc8a21b46987e0fa170650d8117882c40509 Author: Dom Heinzeller Date: Tue Jun 25 21:25:22 2019 -0600 gfsphysics/physics/GFS_debug.F90: comment out Diag%fluxr components, not required for b4b (purely diagnostic and not in output) commit 6635068b4dc8b8916fa2903b0e2bf721b0917b9a Author: Dom Heinzeller Date: Tue Jun 25 21:24:20 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: improve debug print of dry/wet/icy components of CCPP interstitial type commit 386ab989b837db3a6bbd9c47c2911673c3c8af6e Merge: 470681c 6ce0582 Author: Dom Heinzeller Date: Tue Jun 25 08:26:01 2019 -0600 Merge pull request #169 from NCAR/bugfix_gfs_phy_tracer_config_suffix Bugfix gfs phy tracer config suffix .f -> .F commit 6ce05823d64a49151d38e48a4dc960fd6a6cc3a6 Author: climbfuji Date: Tue Jun 25 08:24:16 2019 -0600 Bugfix: fix suffix of physics/gfs_phy_tracer_config.f->F commit 470681c382fd0d62a3cf45ca372bb06f31e16df9 Merge: d60d8e6 abb621f Author: Dom Heinzeller Date: Fri Jun 21 08:59:35 2019 +0200 Merge pull request #168 from climbfuji/ccpp_github_update_vlab_master_20190611 CCPP GitHub update from VLab master 2019/06/11 commit abb621fe28a61ff26cfc04849217b8cf3030e92d Author: Dom Heinzeller Date: Fri Jun 14 09:54:17 2019 -0600 This commit combines three commits to Vlab master (NEMSfv3gfs and FV3): commit ee9977192f6782df21d2af23979ec67683ac020e Author: Dusan Jovic Date: Mon Jun 10 14:20:34 2019 +0000 NEMSfv3gfs: this commits #refs 56264: support fractional landmask on FV3 grid, and #refs 64400: bug fix for UGW and in CSAW Change-Id: Id42e31a8b32ba52dd810e98dff059b14135884ec commit a0fca321ffd9fff1e929c00f3e6d467154610065 Author: Dusan Jovic Date: Thu Jun 6 13:54:04 2019 +0000 NEMSfv3gfs: this commits #refs 64015 Add updated scale-aware TKE-based moist EDMF scheme. Updated fv3_cap #refs 62862 Change-Id: Ic6a04044bd2826a3a4be700e77067ff435fadc56 commit a2c9fdabf3aa1e99ab8037c319820c9e440fb894 Author: Jun Wang Date: Tue Jun 4 01:26:37 2019 +0000 NEMSfv3gfs: this commits #refs 61507, coupling Noah MP to fv3gfs Change-Id: Ia3b86d247d98ee143e47b5e41fce3ae92dde0564 commit d60d8e638f12bc6ebfb77a042b0f75774f47eb5c Merge: 7d6c953 d00e8e6 Author: Dom Heinzeller Date: Thu May 30 22:00:51 2019 -0600 Merge pull request #162 from climbfuji/bugfix_fractional_landmask_and_cleanup Bugfix fractional landmask, scientific documentation update, cleanup commit d00e8e6d8c80e9f1f409fa3abb52f5a864efd738 Merge: f42c3ed 7d6c953 Author: Dom Heinzeller Date: Thu May 30 08:41:54 2019 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into bugfix_fractional_landmask_and_cleanup commit 7d6c95383258c9b9813614953876a191bce8b55b Merge: 9adc6bc e90a8de Author: Dom Heinzeller Date: Thu May 30 06:34:35 2019 -0600 Merge pull request #161 from climbfuji/gsd_suite_cleanup_and_fractional_landmask_follow_up GSD suite cleanup and fractional landmask follow up commit f42c3ed52f50286fa65117c879dd8f0b7d0b0fc3 Author: shan.sun Date: Fri May 24 16:10:37 2019 +0000 1.) Revert back to 1f45136245cde52b39e93ab29f0d36020b0f7e63 : This rewinds cleanup in sfc_diag.f and GFS_physics_driver.F90 2.) Then, fix bug for ice point to be from ">15%" to ">=15%" to be consistent with initial condition, which defines slmsk=2 for >=15%. This bugfix is in the following files: GFS_physics_driver.F90 atmos_model.F90 commit e90a8dec3a9e56357b0a934e6dd02f7b587e3161 Author: Dom Heinzeller Date: Tue May 28 15:56:39 2019 -0600 atmos_cubed_sphere/driver/fvGFS/atmosphere.F90: improve error handling/output for CCPP fast physics commit 43854a221fbf255cc84657b5ea567440855cf2a4 Author: Dom Heinzeller Date: Tue May 28 15:09:26 2019 -0600 io/FV3GFS_io.F90: remove temporary filling of top four Noah levels with RUC levels when restarting from RUC LSM data commit aefb214c4da67cfc78036523c4447092157719a3 Author: Dom Heinzeller Date: Tue May 28 15:08:33 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: add consistency check that surface data cycling is turned off when RUC LSM is used commit 18414f2c682db5da35c8f7861d8eec29ef96b8f1 Author: Dom Heinzeller Date: Tue May 28 15:07:54 2019 -0600 gfsphysics/GFS_layer/GFS_diagnostics.F90: write out all subsurface layers for RUC LSM; facilitate and shorten the code for writing out subsurface layers for both RUC and Noah for the CCPP version commit 9adc6bc261764c18292a3f258a0c6d3888e36c52 Merge: 56bffa3 e79d445 Author: Dom Heinzeller Date: Fri May 24 13:59:58 2019 -0600 Merge pull request #158 from climbfuji/remove_hybrid_ccpp Remove CCPP HYBRID mode commit e79d445faf8d3d7594034ca0785a9c982a17baea Author: Dom Heinzeller Date: Fri May 24 05:22:57 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: rearrange to match Vlab master code more closely commit 2a61d4a9a15834eb9e02801513b2a4c472c79b0a Author: Dom Heinzeller Date: Thu May 23 16:18:35 2019 -0600 Remove HYBRID CCPP build commit 56bffa38043839dd3f867aa53d943610cf6e9b13 Merge: 8657c50 83fa5b9 Author: Dom Heinzeller Date: Thu May 23 11:47:19 2019 -0600 Merge pull request #157 from climbfuji/ccpp_cleanup_20190523 CCPP cleanup 2019/05/23 - remove temporary files commit 83fa5b9f7f5fd8b677635f4d76813d122fcb3c98 Author: Dom Heinzeller Date: Thu May 23 11:21:35 2019 -0600 Remove temporary files gfsphysics/GFS_layer/GFS_typedefs.{ipd,ccpp}.F90 and remove comments to them in gfsphysics/makefile commit 8657c5074300810430692760ce475649c3119070 Merge: 789a135 54fecdd Author: Dom Heinzeller Date: Thu May 23 10:53:59 2019 -0600 Merge pull request #156 from climbfuji/cleanup_ccpp_build CCPP cleanup 2019/05/13 commit 54fecdda7f950ef9afbe3d8700174d7ba8cfa03a Author: Dom Heinzeller Date: Mon May 20 16:06:06 2019 -0600 gfsphysics/makefile: remove two-step compilation of GFS_typedefs.F90, this causes compile errors with Intel (compiler bug) commit c885e896eb0b058e82fa50345ec0ce7f07056329 Author: Dom Heinzeller Date: Mon May 20 14:06:11 2019 -0600 TEMPORARY: add original, merged GFS physics driver as gfsphysics/GFS_layer/GFS_physics_driver.F90.original - to be deleted once a final decision is made if/how to support the hybrid mode in the transition Vlab master commit 759af12ec9e90b915ee2bb4b7e7f48caa8cfa427 Author: Dom Heinzeller Date: Mon May 20 10:50:00 2019 -0600 Reverse whitespace changes to FV3 code commit 9b1bbadc5f026d6b13008ce8b37734827bea6329 Author: Dom Heinzeller Date: Sat May 18 21:15:40 2019 -0600 Split gfsphysics/GFS_layer/GFS_typedefs.F90 into an IPD-only and a CCPP-only version, but don;t use yet; adjust makefile; revert whitespace changes in all three versions to merge with previous commit of GFS_typedefs.F90, change wording commit 1249f31ac87f987597472d0127fa1ec5d7d7a03e Author: Dom Heinzeller Date: Sat May 18 19:56:45 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: adjust whitespaces to reduce differences between Vlab master and GitHub CCPP code commit 7f46274ab1ccf5c9305beaf593ba1cb3e4545f0e Author: Dom Heinzeller Date: Mon May 13 11:51:49 2019 -0600 Fix cleanup for CCPP build commit 789a135d5fdff9c1ddd7e7e7f91d4737c1d435b3 Merge: 5cb1a77 b1ce882 Author: Dom Heinzeller Date: Mon May 13 09:36:32 2019 -0600 Merge pull request #155 from climbfuji/ccpp_github_cleanup_20190509 gmtb/ccpp cleanup in preparation for transition to VLab master - part 1 commit b1ce8822465cbb0f79ccf30b572a7be6605677e5 Author: Dom Heinzeller Date: Sun May 12 21:28:07 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: update default settings if do_mynnedmf is true based on Joe Olson's comments commit 67d4c1845589e2d3feac6c13e5565d4b2b58daed Merge: d7e5bda 5cb1a77 Author: Dom Heinzeller Date: Thu May 9 13:20:31 2019 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into ccpp_github_cleanup_20190509 commit d7e5bda53edd30076d29c598c479c4230396cf20 Author: Dom Heinzeller Date: Thu May 9 11:34:16 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: add notes for separating MYNN-specific namelist sections from general gfs_physics namelist section, set MYNN EDMF namelist options automatically, depending on do_mynnedmf commit 5cb1a77e5767dad1367d790df63d4779e48d052d Merge: c90dd1b 765d891 Author: Dom Heinzeller Date: Thu May 9 08:57:11 2019 -0600 Merge pull request #154 from climbfuji/ccpp_github_update_vlab_master_20190507 Fractional landmask changes in GFS physics commit 765d89115070861ce60f1396f95c541ca59d4eee Author: Dom Heinzeller Date: Wed May 8 09:04:50 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: implement HYBRID mode for GFS_surface_composites_{pre,post} schemes, comment out debugging print statements commit 64b3c5ad4ba69e2e0ef70ed8563bddcf00cca744 Author: Dom Heinzeller Date: Tue May 7 13:20:13 2019 -0600 Bit-for-bit work for control suite: introduce interstitial variable tice to replicate functionality in GFS_physics_driver commit 2cfb67e6611359bd2dd4ffe6ccc418b0eebab3ea Author: shan.sun Date: Fri May 3 20:57:21 2019 +0000 FV3: this commits #56264: support fractional landmask on FV3 grid. No changes in results if current default non-frac landmask is used. CCPP modifications by @grantfirl and @climbfuji commit c90dd1bc6956e9578fa3feb784f5078753374800 Merge: 4c5deeb 3a92202 Author: Dom Heinzeller Date: Tue May 7 08:44:27 2019 -0600 Merge pull request #152 from climbfuji/update_gmtb-ccpp_with_gsd-develop_20190506 Merge gsd/develop into gmtb/ccpp 2019/05/06 commit 3a922024723115e3c558221dc1e5c74c37713ea9 Merge: c70670c f2df4e3 Author: Dom Heinzeller Date: Mon May 6 10:45:18 2019 -0600 Merge pull request #151 from climbfuji/gsd_develop_merge_in_gmtb-ccpp_20190503 gsd/develop merge in gmtb/ccpp 2019/05/03 commit 9595fb7c1ce5fe473f26ad451fbacf2095fb3186 Merge: c70670c f2df4e3 Author: Dom Heinzeller Date: Mon May 6 10:45:18 2019 -0600 Merge pull request #151 from climbfuji/gsd_develop_merge_in_gmtb-ccpp_20190503 gsd/develop merge in gmtb/ccpp 2019/05/03 commit f2df4e360fbe429351a5f17a99f5656e855ea9ca Author: Dom Heinzeller Date: Sun May 5 08:12:36 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: define rainmin as double-precision constant in TRANSITION mode to avoid b4b mismatches of Sfcprop%sr in fv3_streched_nest versus fv3_ccpp_stretched_nest regression tests commit 89ae0c7a2e3cf9a02af0d1a4dfd8b59a1304d7a0 Merge: c70670c 4c5deeb Author: Dom Heinzeller Date: Fri May 3 19:38:03 2019 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into HEAD commit c70670cd7e21adad8f872f415644d7ed0b8408d2 Merge: 296c547 dd49b3e Author: Dom Heinzeller Date: Fri May 3 19:27:21 2019 -0600 Merge pull request #150 from climbfuji/update_gsd_regression_tests_20190502 Update/cleanup gsd/develop: rename Thompson MP commit dd49b3e2884def7346c17a1adde3a53a99066576 Author: Dom Heinzeller Date: Fri May 3 16:30:03 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: rename mp_thompson_hrrr* to mp_thompson* commit 4c5deeb35c065d0c3d7477c9095d00a719307b9c Merge: 9704391 e6af408 Author: Dom Heinzeller Date: Fri May 3 11:41:55 2019 -0600 Merge pull request #148 from climbfuji/ccpp_github_update_vlab_master_20190429 GitHub CCPP update to VLab master 2019/04/29 commit 296c547d2580612677a23b5279dcb8fc1361c6f0 Merge: 755adf0 448c46b Author: Dom Heinzeller Date: Thu May 2 13:54:45 2019 -0600 Merge pull request #149 from climbfuji/fix_units_fhzero_fhcyc_fhgoc3d gsd/develop: fix units fhzero fhcyc fhgoc3d commit 448c46b49ba1a34fe565afafe43925a13e86785a Author: Dom Heinzeller Date: Thu May 2 13:49:30 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: fix units of fhzero, fhcyc and fhgoc3d in metadata table and in comments commit e6af4081918d6f2cecd73f9c5704c9ebffa38c7b Author: Dom Heinzeller Date: Wed May 1 20:46:57 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: introduce second volatile variable for calculation of sr (Sfcprop%sr) to achieve b4b-identical results in PROD+TRANSITION mode commit 912cec32db0a2c9a3ca2f78219696e8cc3e5568a Author: Dom Heinzeller Date: Mon Apr 29 20:05:06 2019 -0600 namphysics/NAM_layer/NAM_restart.F90: mirror changes to gfsphysics/GFS_layer/GFS_restart.F90 commit a24a61aeb9de2f2008d5e319621d1bbbcef50cb1 Author: Dom Heinzeller Date: Mon Apr 29 14:52:37 2019 -0600 gfsphysics/physics/iccninterp.f90: update regression test name in comment commit ca9ac1a62bd14c227d622121dd56c32209701819 Author: Jun.Wang Date: Fri Apr 26 19:29:28 2019 +0000 FV3: this commits #61778 enhance restart capability for continuous accumulated diagnostic fields and #61740 Incorrect units in calculation of Sfcprop%srflag for GFDL-MP; adapted for CCPP version of the code commit 97043919c20d94fa7af8eda4ab77738d656c3672 Merge: 4570d0d b8917e8 Author: grantfirl Date: Mon Apr 22 13:02:41 2019 -0600 Merge pull request #145 from climbfuji/ccpp_github_update_vlab_master_20190417_BASED_ON_static_build_xml_validation_20190326 GitHub CCPP update with VLab master changes 20190419 commit b8917e8eb0fb1ddf1a0bc10e0f63c8bae78199fc Author: Dom Heinzeller Date: Mon Apr 22 05:59:11 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: use volatile variable to calculate Sfcprop%sr for GFDL-MP in PROD+TRANSITION mode commit 755adf03b95f77b9182510547572fdd74fc5324e Merge: 67569ad dca8ec4 Author: Dom Heinzeller Date: Fri Apr 19 20:53:51 2019 -0600 Merge pull request #146 from climbfuji/gsd_develop_bugfix_20190419 gsd/develop: bugfix for sncovr (compilation error) commit dca8ec415591ec621b0209c10c0622157925abba Author: Dom Heinzeller Date: Fri Apr 19 20:46:50 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: revert removing snowc, relabel sncovr to match documentation commit e89e6c6b9b8c3ed269646cff75755367b1eb0efb Merge: f19edc7 4570d0d Author: Dom Heinzeller Date: Fri Apr 19 15:10:31 2019 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into ccpp_github_update_vlab_master_20190417 commit f19edc7735ee61a6d9f777e449922c9d03b3f4e3 Author: Dom Heinzeller Date: Fri Apr 19 15:10:12 2019 -0600 Modify FV3 dynamics and fast physics routines to enable multi-gases fast physics through CCPP commit 67569ade2cb40b30acbedaa3b785abb4e4bd365e Merge: 563f359 4570d0d Author: Dom Heinzeller Date: Fri Apr 19 14:36:04 2019 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into gsd_develop_merge_in_master_20190419 commit 4570d0d1e56bd448568dc0c6813204bf63a967ae Merge: 319ac95 0b624c1 Author: Dom Heinzeller Date: Fri Apr 19 13:47:22 2019 -0600 Merge pull request #142 from climbfuji/multi_suite_static_build ccpp_prebuild version of multi-suite static build, cleanup validation of SDF used commit 161b3a48ffd4b1889d06afffecdfbe9155aacfa0 Author: Dom Heinzeller Date: Thu Apr 18 16:49:21 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: bugfix, add missing #endif commit bf78d605bc6aad7a750c25cc071189610d3539eb Author: Adam Kubaryk Date: Wed Apr 10 19:02:34 2019 -0400 FV3: this commit refs #60993 Henry Juang's changes for MULTI_GASES, incorporating variable R and Cp for virtual temperature calculations. Also adds an option for tau (used in Rayleigh damping) to be negative, which allows for the GSM calculation of the time constant. Roughly, FV3 tau=0.022 is GSM tau=-10 (10-day time constant in GSM). Change-Id: I59edc57e8c0ec04390bc18158a96798e6c34f5a8 commit 0b624c13b89c7f617482c2b4d16e5d809e1b32bf Author: Dom Heinzeller Date: Tue Apr 16 21:18:23 2019 -0600 makefile, ipd/makefile: remove old code, add comments commit 5c61db24904090fa5539a64c54fb5be2de3af6ee Author: Dom Heinzeller Date: Tue Apr 16 21:17:54 2019 -0600 gfsphysics/GFS_layer/GFS_diagnostics.F90: remove duplicate entry for sppt_wts commit ae9676d8d2e620b160f2e81e197edc4f99a87eee Author: Dom Heinzeller Date: Mon Apr 15 14:32:13 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: bugfix, add calculation of pwat back in that got deleted mistakenly commit 4c4e96101993e192cbc5f232c6bda1adb08b5ece Merge: cd79ef0 319ac95 Author: Dom Heinzeller Date: Mon Apr 15 07:46:02 2019 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into multi_suite_static_build commit cd79ef030ae903b2cb3a3ef381dc50447368f535 Author: Dom Heinzeller Date: Sat Apr 13 15:03:25 2019 -0600 Multi-suite static build requires passing suite_name=trim(ccpp_suite) to ccpp_physics_{init,run,finalize} commit 563f35971b2d74154c5c1d566dc7a64c695aca4d Merge: 5f1cd4b 795efa5 Author: Dom Heinzeller Date: Sat Apr 13 09:12:56 2019 +0200 Merge pull request #141 from climbfuji/gsd_develop_thompson_improvements_and_bugfixes_20190403 Thompson MP bug fix for saving temperature, and calculation of initial number concentrations commit 795efa5026e30f218e891df2ef01f03deb6553dc Author: Dom Heinzeller Date: Fri Apr 12 20:55:53 2019 +0200 gfsphysics/GFS_layer/GFS_typedefs.F90: add flag to switch on new number concentration calculation for Thompson MP commit 319ac95d4bbb8aa3f930a93631aa13b7083db2cb Merge: b545237 8a2c45c Author: Laurie Carson Date: Tue Apr 9 14:39:35 2019 -0600 Merge pull request #140 from climbfuji/ccpp_github_update_to_vlab_master_20190406 GitHub CCPP update to Vlab master as of 2019/04/01 commit 8a2c45c5d21c1a0c589f8e05604f9e7ea63f4ed5 Author: Raffaele Montuoro Date: Fri Mar 29 14:29:31 2019 +0000 FV3: this commit #refs 61047 Merge FV3 chemistry development branch into master branch. Change-Id: I8014391ea97416ec8d757aa32ed38561b03aa679 commit 5f1cd4ba379ad17044921d93b437c55ec0a1b5d1 Merge: 696ec9b b545237 Author: Dom Heinzeller Date: Thu Apr 4 10:05:02 2019 -0600 Merge pull request #138 from NCAR/gmtb/ccpp Merge updates from gmtb/ccpp into gsd/develop commit b5452373aacf4d267207c419a8a4ef298e5c6e91 Merge: aeae305 e11b0c3 Author: Dom Heinzeller Date: Thu Apr 4 08:59:10 2019 -0600 Merge pull request #137 from climbfuji/cheyenne_jet_updates_20190402 Jet and Cheyenne build system updates, remove warning/debugging message in GFS_typedefs.F90 commit e11b0c3be01991c8e710064c9a4dd091d5f1f588 Author: Dom Heinzeller Date: Wed Apr 3 14:28:51 2019 -0600 gfsphysics/makefile: add support for AVX-512 SIMD instructions commit 5fbde8cf5bb923cfbb2de252eef4f7148ce9196e Author: Dom Heinzeller Date: Wed Apr 3 09:21:09 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: comment out warning message to avoid cluttering output commit 696ec9bb8216f94f9a12b9ce9a143e9914fe9bac Merge: 0dc6e0a 8a9ae3c Author: Dom Heinzeller Date: Tue Apr 2 13:06:27 2019 -0600 Merge pull request #135 from climbfuji/update_github_ccpp_to_vlab_master_20190328 Update GitHub gsd/develop branch with changes from Vlab master 2019/03/28 commit aeae305981d89b01c3d2e8f4fc414da2e67f23a1 Merge: 4278b5d 8a9ae3c Author: Laurie Carson Date: Mon Apr 1 09:24:32 2019 -0600 Merge pull request #134 from climbfuji/update_github_ccpp_to_vlab_master_20190328 Update GitHub CCPP branches with Vlab master 20190329 commit 8a9ae3c4e10a0233b4fc209f467732ac81fdcdd8 Merge: cf150d8 4278b5d Author: Dom Heinzeller Date: Sat Mar 30 21:25:33 2019 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into update_github_ccpp_to_vlab_master_20190328 commit cf150d80bef72e900ab27981506f08e1794332e1 Author: Dom Heinzeller Date: Sat Mar 30 21:24:21 2019 -0600 gfsphysics/physics/physcons.F90: new constants for non-CCPP build only (for CCPP, these are defined in scheme maximum_hourly_diagnostics commit 702d0b8a52d52fd228c1ae0ce4c59c6110cd6c13 Author: Dom Heinzeller Date: Sat Mar 30 21:23:41 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: add metadata for new variables, update metadata for ldiag3d fields, add CCPP interstitial variable nsteps_per_reset, add warning to temporary allocate dq3dt to avoid crashes of CCPP static code commit 9c7a1e92d56ee48fbefd0c689af3c119cacc7c23 Author: Dom Heinzeller Date: Sat Mar 30 21:20:40 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: remove temporary debugging code, add comments about code blocks that are not yet in CCPP, move code preceeding gwdps to gwdps_pre section, combine maximum_hourly_diagnostics code in one place, add CCPP hybrid hooks commit a0e4a145f54bf3d1726a56aa6e9d328cb25e0599 Author: Dom Heinzeller Date: Sat Mar 30 21:18:11 2019 -0600 atmos_model.F90: remove temporary debugging code commit ee2c8dae574017a2867c7c1e0280c46f9502ae76 Author: Dom Heinzeller Date: Sat Mar 30 21:17:47 2019 -0600 atmos_cubed_sphere/model/fv_dynamics.F90: remove temporary debugging code commit f065e5864076282664e7c06a451b43d48aefe423 Author: Dom Heinzeller Date: Sat Mar 30 21:16:44 2019 -0600 atmos_cubed_sphere/driver/fvGFS/fv_nggps_diag.F90: portability changes for GNU compiler commit 40998a491815e7038d63edba40586d5c6b7341da Author: Dom Heinzeller Date: Sat Mar 30 21:16:12 2019 -0600 Remove temporary debugging include files gfsphysics/GFS_layer/debug*.inc commit 0dc6e0a83c0fefcb772c0fcd6ebdf42d933da671 Merge: 6b6f710 ebc72ad Author: Dom Heinzeller Date: Fri Mar 29 20:21:02 2019 -0600 Merge pull request #133 from climbfuji/ccpp_github_update_to_vlab_master_20190308 Update branch gsd/develop with Vlab master as of 03/08/2019 commit ebc72adcdce36a72fc41a354c1a11368c37540a5 Merge: 48202d6 6b6f710 Author: Dom Heinzeller Date: Fri Mar 29 20:07:46 2019 -0600 Merge branch 'gsd/develop' into ccpp_github_update_to_vlab_master_20190308 commit 4278b5d19b1238696cea26a297a7256a825472cf Merge: 8cd10ff 48202d6 Author: Dom Heinzeller Date: Fri Mar 29 10:44:16 2019 -0600 Merge pull request #127 from climbfuji/ccpp_github_update_to_vlab_master_20190308 Update GitHub gmtb/ccpp branch to VLab master 03/08/2019 commit 8380e40e03778dc85494939701abf4f17774f1b7 Author: Jessica.Meixner Date: Tue Mar 26 21:28:00 2019 +0000 FV3:this commit refs #61777 sea-surface-ice-temperature fix for cplflx=t commit 1cd2f585c7ac5ce5c3089a1c4144db75fadb6ab0 Author: Bing Fu Date: Mon Mar 25 05:12:50 2019 +0000 FV3:this commits #refs 60897 update FV3 restart capability Change-Id: I62d6dab9a0fc982befdc4e1580c7a2314edb0867 commit 19c9ad6fa8c9e31317e65b9ce3d4e32d5bb07dc6 Author: Jun.Wang Date: Mon Mar 18 15:51:53 2019 +0000 FV3: this commits #refs 60951 output physics diagnostics tendency fields to history files and #refs 60775 update qmin in cloud_diagnosis for gfdlmp commit 17d97c01171aac2127784afaae18c20d261fa4e8 Author: Eric Aligo Date: Mon Mar 11 17:12:17 2019 +0000 FV3: this commits #refs 61150 Severe storm and max/min hourly diagnostics + gfdl microphysics full reflectivity only at output times Change-Id: I67b0b341e1637b25dc748184d0ea2bb68b16c437 commit 6b6f71095201a58c6de4678f771f750f26cdc56b Author: Dom Heinzeller Date: Thu Mar 28 20:51:05 2019 -0600 Update CODEOWNERS for FV3's gsd/develop branch commit b0ea58046889ea8303f20263787dcb2e2b7870e3 Merge: 8cd10ff 8ef06a4 Author: Dom Heinzeller Date: Thu Mar 28 20:39:01 2019 -0600 Merge pull request #131 from climbfuji/update_ruc_snowfallvars Update RUC LSM snowfall variables commit 48202d6ec2e412b56a5c0c1862e1f87431f8f620 Author: Dom Heinzeller Date: Thu Mar 28 13:51:27 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: bugfix for GFDL-MP, always set indices for effective radii commit 388a50e6cee2d227d9d9801c14e468cebd91c033 Author: Dom Heinzeller Date: Wed Mar 27 17:27:32 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: add logic for non-uniform blocksizes in CCPP, including the additional logic for the CCPP hybrid code; add components to DDTs that were previously in CCPP_shared and that are required to run the GFDL-MP slow physics commit 96798bf2089d427c49298c55b95f90055603c7fb Author: Dom Heinzeller Date: Wed Mar 27 17:25:11 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: add logic for non-uniform blocksizes in CCPP hybrid mode, bugfix for CCPP hybrid code in DEBUG mode commit e59424e9c7f96c3a74196de43c31b8aadecf08c7 Author: Dom Heinzeller Date: Wed Mar 27 17:19:44 2019 -0600 gfsphysics/GFS_layer/GFS_driver.F90: add logic for non-uniform block sizes in CCPP; for the hybrid CCPP build, need to pass additional information to the CCPP_interstitial data type in order to detect that the last block has a smaller blocksize commit 74b6ed412fa05f10f7d07fd865701c46a79eb36b Author: Dom Heinzeller Date: Wed Mar 27 17:11:57 2019 -0600 gfsphysics/CCPP_layer/{CCPP_typedefs.F90,CCPP_data.F90}: remove CCPP_shared type, add missing comonents to CCPP_interstitial type (for fast physics only) commit 260121a032a072d1edd88e9c99dd655bfb71bfc4 Author: Dom Heinzeller Date: Wed Mar 27 17:10:14 2019 -0600 atmos_model.F90: add logic for non-uniform blocksizes with CCPP, add hydrostatic flag from dynamics to Init_parm commit 87d8a943caa9c78da21e819f58f4ea6727d8c421 Author: Dom Heinzeller Date: Wed Mar 27 16:59:38 2019 -0600 atmos_cubed_sphere/driver/fvGFS/atmosphere.F90: remove CCPP_shared data type, components of this DDT that are required for fast physics are now in CCPP_interstitial commit 24bb878ffa35d092fa913cef08b07cf01f009aae Author: Dom Heinzeller Date: Wed Mar 27 16:58:08 2019 -0600 CCPP_layer/CCPP_driver.F90: use GFS_control instead of CCPP_shared to get/set number of threads for physics, add logic to deal with non-uniform blocksizes commit f80e00283d5b3bec778f95cdaf3cb6a0abe430e5 Author: Dom Heinzeller Date: Tue Mar 26 15:20:21 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: bugfix for CCPP hybrid runs, set cld1d to zero for bit-for-bit identical results in output files commit 8ef06a4755f0246c9d94670122666cd4dcfc1be2 Author: Dom Heinzeller Date: Tue Mar 26 13:38:16 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: use sncovr instead of snowc for RUC LSM, remove unused snowc commit 7b58cb486917b32f472678f4e02a2f707b574493 Merge: ef8fe28 8cd10ff Author: Dom Heinzeller Date: Tue Mar 26 08:03:03 2019 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into ccpp_github_update_to_vlab_master_20190308 commit ef8fe28f2e30ccd148e6ab80d35aba74b90b7ffe Author: Dom Heinzeller Date: Mon Mar 25 21:04:00 2019 -0600 temporary: Fortran include files for debugging commit d1dbb8c8e4c57ce17239e551e2da9013d8fac71d Author: Dom Heinzeller Date: Mon Mar 25 21:03:34 2019 -0600 Move IPD_CCPP_driver to its own directory CCPP_layer, rename to CCPP_driver and rename IPD_CCPP_step to CCPP_step commit 450ccb2a81f70200e7bc1197274a6e4951a29055 Author: Dom Heinzeller Date: Mon Mar 25 21:02:26 2019 -0600 gfsphysics/physics/sfc_drv.f: correct size of array pertvegf (must be hardcoded, or code will crash) commit be24de817bc0ed3d3c91b8d2ba4fc4ccde2d55de Author: Dom Heinzeller Date: Mon Mar 25 21:01:53 2019 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: add metadata (standard names) for new variables commit c50dfe6ed7637fc9a6411e20c066a9299c1347f8 Author: Dom Heinzeller Date: Mon Mar 25 21:01:01 2019 -0600 atmos_model.F90: rename IPD_CCPP_step to CCPP_step, temporary debugging code commit 9e16f868c3770a04471433eacce1c494a6acdb29 Author: Dom Heinzeller Date: Mon Mar 25 21:00:41 2019 -0600 atmos_cubed_sphere/model/fv_dynamics.F90: temporary: debugging code commit 4f1c4e8cab63d8071d880141cc44222a9f4c4e33 Author: Dom Heinzeller Date: Mon Mar 25 21:00:27 2019 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: workaround for srflag bug, code for debugging, changes to hybrid CCPP physics calls (documentation only) commit ccaf256078d800a03cf2e550fc3466882aa2328f Author: Dom Heinzeller Date: Mon Mar 25 20:58:59 2019 -0600 gfsphysics/GFS_layer/GFS_driver.F90: add CCPP code if do_ca is on, change argument list for Model%init commit 751e97fca2590a9a4461f6bfaeeba9e68f4a291d Merge: 0d3031c 8cd10ff Author: Dom Heinzeller Date: Mon Mar 25 13:40:21 2019 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into update_ruc_snowfallvars commit 0d3031c8f1127012cab4ba4892142c5179ab2024 Author: Dom Heinzeller Date: Mon Mar 25 13:27:47 2019 -0600 Move RUC snowfall variables from Diag to Sfcprop, add to diagnostic and restart output commit 8cd10ff2be061f7a9446ac7aa5016f379a57a0dc Merge: e98172b 8800f3c Author: Dom Heinzeller Date: Mon Mar 25 09:39:09 2019 -0600 Merge pull request #128 from climbfuji/gaea-cheyenne-build CCPP builds gaea and wcoss, updates for cheyenne, cleanup commit 8800f3c758e70e722924a91d3150b72fe400e771 Author: Dom Heinzeller Date: Fri Mar 22 11:08:05 2019 -0600 gfsphysics/makefile: remove selective reduction of optimization for bit-for-bit reproducibility in REPRO mode (no longer needed when -fp-model consistent is used) commit d65a6915d6b122b23fc0e91a991831511cb43ec0 Author: Dom Heinzeller Date: Fri Mar 15 16:42:19 2019 -0400 Remove all code related to the memcheck utility commit 6b4dfb4bf264553d5cc26f7a96c5a657a16a14dc Merge: ffc6a10 e98172b Author: Dom Heinzeller Date: Fri Mar 15 08:47:11 2019 -0400 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into gaea-cheyenne-build commit ffc6a10afaf1ee7171116d5911b7d824e4c8aec7 Author: Dom Heinzeller Date: Thu Mar 14 21:01:08 2019 -0400 makefile: remove unset CCPP_LINK_FLAGS from FV3 ESMF makefile fragment fv3.mk commit 34fe84c186ca56ef9ec24468b8913408c73f8edb Author: Dom Heinzeller Date: Tue Mar 12 21:24:25 2019 -0400 makefile: remove redundant CCPP include/link flags after fixing NEMS build system commit d57a1a19011bdc6a1c61515f1d22227df9398098 Author: Dom Heinzeller Date: Tue Mar 12 21:22:48 2019 -0400 gfsphysics/makefile: add missing source files for hybrid build, necessary after correcting the NEMS build system commit 5717b5c2e77b21b5d65f53cd613b733705587dfa Author: Dom Heinzeller Date: Fri Mar 8 16:48:25 2019 -0700 gfsphysics/GFS_layer/GFS_driver.F90 gfsphysics/GFS_layer/GFS_typedefs.F90: formatting changes, comment out unused variables commit 8cab6aac80eda3bddeb5f4724c3060af2da0e185 Author: Dom Heinzeller Date: Fri Mar 8 15:46:09 2019 -0700 gfsphysics/GFS_layer/GFS_physics_driver.F90, gfsphysics/physics/samfdeepcnv.f, stochastic_physics/cellular_automata.f90, stochastic_physics/update_ca.f90: change if tests of logicals to comply with the Fortran standard (required for GNU) commit 16e8bd686b6e1e79fb5d065cda6688fa0a77e1a8 Author: Dusan Jovic Date: Tue Mar 5 14:02:54 2019 +0000 FV3: this commits #refs 57070 Add nesting support in write component commit 1d23038f25441d5510ed2d8f163f0e7112f6939b Author: Jun.Wang Date: Mon Feb 25 20:27:33 2019 +0000 FV3: this commits #refs 60593 changes in srflag to reduce excessive snowfall commit 6ea4776897d953e7ba73721a0b0249a2cd1075c2 Author: Ruiyu Sun Date: Thu Feb 14 09:16:35 2019 -0500 FV3:this commits #refs 59609 Interaction between GFDL MP and radiation commit dcffc9b3544ee88aaf3de196ef8d9fccade9fef7 Author: Jun.Wang Date: Wed Jan 30 21:08:19 2019 +0000 FV3: this commits #refs 57811,Implementation of a canopy heat storage parameterization scheme commit d5e527b16d88c0b089c119838747e1ea76b4c114 Author: jswhit Date: Sat Dec 8 19:28:59 2018 +0000 FV3: this commits #refs 57587 Change-Id: I2a7ac6c9f57b7c125d837255b30c6c4026459e8a commit cecf6c6ca583805129cd6a33f742aa1dbc9c6cb2 Author: Dusan Jovic Date: Thu Dec 6 14:33:44 2018 +0000 FV3: this commits #refs 56857 Use FV3GFS input in regional mode. Radar reflectivity into GFDL MP commit 10f72d2baee420ff91f66ee624c8f4bffe5615cf Author: Jessica.Meixner Date: Fri Nov 30 16:21:09 2018 +0000 FV3: This commit references #54414 *Zero out fields in realizeConnectedCplFields *Add logic to separate cplwav and cplflx Change-Id: Ib18e8382d8d9d992a02c39240e76bdb215cb9026 commit 6ef60167714496db565fe82672667d019dabf094 Author: George Gayno Date: Thu Nov 29 13:53:08 2018 +0000 FV3: This commit references #47603. Updates to sfcsub.F so it can read climatological surface data (albedo, soil type) on tiles. Change-Id: I00a70ba929f1bb2993128b303975655ced9137ab Squashed commit of the following: commit d58804b059b019b4b6c29d9a6468ed4438acb8ca Author: George Gayno Date: Wed Nov 28 13:53:11 2018 +0000 sfcsub_tile branch: This commit references #47603. Add tile number to corresponding NAM physics routines. commit e239326268f6ee6479752a2e687a44cd0a428300 Merge: 5622726 5829967 Author: George Gayno Date: Mon Nov 26 18:22:43 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 5622726ececaad1fcef7219e68940a58c315141e Merge: f6d2f7c 528aa7c Author: George Gayno Date: Mon Nov 19 14:24:08 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit f6d2f7cea43d3266778d1d5b2eadf6ed44d94e7f Merge: 9c945ec 8b38096 Author: George Gayno Date: Mon Oct 22 13:31:42 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 9c945ec266791129a5325edf2f9ea57415a11b64 Merge: df9cf10 b2f26f6 Author: George Gayno Date: Fri Oct 12 18:26:57 2018 +0000 sfcsub_tile branch: This commit references #47603 Merge branch 'master' into sfcsub_tile commit df9cf106f0e0a326b06bbeaf25919bbae2db0c39 Merge: b1326f4 0628505 Author: George Gayno Date: Wed Oct 10 15:50:14 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit b1326f4db5cbc304db7d57b1c09bb252735e4ddf Merge: 839f288 d1df609 Author: George Gayno Date: Tue Oct 2 19:27:59 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 839f28818c551c05fea63cc979c02c52f346b735 Merge: 4279aca cbf0aab Author: George Gayno Date: Wed Sep 5 17:55:22 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 4279aca492db2ecf6f31af5cb947ba3011904f20 Merge: eeb1362 c51c51f Author: George Gayno Date: Tue Aug 28 19:34:46 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit eeb1362ead712d7a601c0732a3439b02f5aabef8 Merge: c9ecd32 0d42e63 Author: George Gayno Date: Thu Aug 2 14:01:30 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit c9ecd3221f1e76002dfa5aee1208bcd4c657cbee Author: George Gayno Date: Mon Jul 30 17:35:24 2018 +0000 sfcsub_tile branch: This commit references #47603. Make 'tile_num' an optional argument in routine atmosphere_control_data. This was necessary after the last merge (which included regional domain changes) to prevent compilation errors. commit 9ceae9e098416424e88f8b28507fb65ba8722439 Merge: 2deac58 0787850 Author: George Gayno Date: Mon Jul 30 15:36:37 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 2deac5893b1816c5fae893cbe731f2a5bd76084b Author: George Gayno Date: Thu Jun 21 18:08:48 2018 +0000 sfcsub_tile branch: This commit references #47603. Update sfcsub.F to only include changes necessary to ingest tiled climo files. commit c0a52831ff52a35e16662ca776745587521f1d28 Merge: 30cd0a4 3fd0a10 Author: George Gayno Date: Fri Jun 15 15:06:05 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 30cd0a475c4f9417ea0d5b74a2acf12a49462f1f Merge: 13514c4 06b956a Author: George Date: Thu Jun 7 14:43:18 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 13514c40d03f9165f4c3d2064de5ab548dba3075 Merge: 8ef7ebe 867dc10 Author: George Date: Mon Jun 4 19:56:32 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 8ef7ebebf464450f02a7a79a05e8c990257efbf9 Merge: 45b832d 42ea482 Author: George Date: Tue May 29 17:24:52 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 45b832d469f75951c9a5d9700697ba7c0948f272 Merge: 1ba1f87 81990a3 Author: George Gayno Date: Mon May 14 14:45:16 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 1ba1f870c8ee1390a77ee0bbe19f10ac72d50528 Merge: ff4975a 39988db Author: George Gayno Date: Fri May 4 13:33:13 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit ff4975a4fa94e4fe0d1de670a8cb2dfbd13a7b4a Merge: 23e2ec7 ca239e0 Author: George Gayno Date: Fri Apr 27 16:52:16 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 23e2ec70ccf9b3e3900649d8fe4ab30cff36a9fe Merge: 7d3009f 137694a Author: George Gayno Date: Wed Apr 18 20:45:31 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 7d3009f0b9ee91e668699e19bf121c670a69d7c6 Merge: 2b293aa 3591b5c Author: George Gayno Date: Fri Apr 13 14:45:54 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 2b293aa5b2207baf9f5953726ff23975394f3d50 Merge: 16c6d97 f1b14da Author: George Date: Tue Apr 3 16:55:59 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 16c6d973428b1ea04ea54d053d8bda1501eb5d12 Merge: 191814b 87d8b3f Author: George Date: Wed Mar 28 13:21:54 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'sfcsub_tile' of gerrit:FV3 into sfcsub_tile commit 191814b651ef6f2d17e193a605ad32e3f07a608d Merge: 810bc0d ceb0320 Author: George Date: Wed Mar 28 12:46:22 2018 +0000 sfcsub_tile branch: This commit references #47603. Merge branch 'master' into sfcsub_tile commit 87d8b3f7d7fb29cffbf9944b0984d3075525c64c Merge: 810bc0d ceb0320 Author: George Date: Wed Mar 28 12:46:22 2018 +0000 sfcsub_tile branch: This commit references #47607. Merge branch 'master' into sfcsub_tile commit 810bc0d4f2b58992aedfc25a946a009fc3f36462 Author: George Date: Tue Mar 27 17:33:23 2018 +0000 sfcsub_tile branch: This commit references #47603. sfcsub.F - When using tiled substrate temperature, remove any orographic adjustment. This adjustment will be handled as a pre-processing step. commit 5309f7a1e6aee955adbdc7e2ae5b72e3dc3ae923 Author: George Date: Thu Mar 22 15:18:38 2018 +0000 sfcsub_tile branch: This commit references #47603. Update sfcsub.F to be consistent with "chgres" and "cycle" programs - change variable "tile_num" to "tile_num_ch" to better identify it as a character string. commit bb01aa6a04a8b0b5163b147ac5069ad7c09ed8c9 Author: George Date: Fri Mar 16 20:13:52 2018 +0000 sfcsub_tile branch: This commit references #47603. sfcsub.F - The dimensions within the tiled climo netcdf data were changed from 'lon/lat' to 'nx/ny'. Update accordingly. commit f770f35fb39b60dcb21677d779306446466f9156 Author: George Date: Thu Mar 15 18:21:06 2018 +0000 sfcsub_tile branch: This commit references #47603. sfcsub.F - Baseline the version that reads tiled climo data. gcycle.F90 - Modifications to use the updated sfcsub.F commit 2b1819fde58b147c676cd42af58694e46425b456 Author: George Gayno Date: Wed Mar 14 15:07:10 2018 +0000 FV3 sfcsub_tile branch: This commit references #47603. Updates to pass the cubed-sphere tile number to the gfs physics for use by the tiled version of sfcsub.f. commit 1dc2e6be7f47cedfa7a541cff01bb190a4de0b04 Author: Lisa Bengtsson Date: Tue Nov 20 15:13:16 2018 +0000 FV3: this commits #refs 52308 Change-Id: I876983179f77ea5d7d2d287a56bf86c06705da00 Change-Id: I876983179f77ea5d7d2d287a56bf86c06705da00 commit e98172bfad3b75427e9f45dad876a889abd61795 Merge: d210032 be2fd3a Author: grantfirl Date: Fri Mar 8 10:06:40 2019 -0700 Merge pull request #105 from grantfirl/aer_cloud_bugfix aer_cloud.F gfortran bugfix for non-CCPP physics commit d210032d781b9d5c04913f2b3221e366631cee1d Merge: 58b17e3 e0ae9b6 Author: grantfirl Date: Fri Mar 8 10:05:21 2019 -0700 Merge pull request #106 from grantfirl/ccnd_init_bugfix minor bugfix for using uninitialized values in GFS_radiation_driver.F90 commit 58b17e35437382bf38b57e290a5c23ff26fde633 Merge: a586cff 2f1bb09 Author: Dom Heinzeller Date: Thu Mar 7 14:06:20 2019 -0700 Merge pull request #125 from climbfuji/thompson_allocate_sfc_aerosol_emissions Support for GSD physics in regional configuration commit e0ae9b65dcfc929ecb1e76a16966d6b96b471b23 Merge: 3be64f3 a586cff Author: Grant.Firl Date: Tue Mar 5 15:47:24 2019 -0700 Merge branch 'gmtb/ccpp' into ccnd_init_bugfix commit be2fd3a060b149f13cc61928736ee528de8c637d Merge: d673863 a586cff Author: Grant.Firl Date: Tue Mar 5 15:46:25 2019 -0700 Merge branch 'gmtb/ccpp' into aer_cloud_bugfix commit 2f1bb0973c58b935e29dc3e74ec4a33029b6b9c4 Merge: a8753e0 a586cff Author: Dom Heinzeller Date: Tue Mar 5 09:31:23 2019 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into thompson_allocate_sfc_aerosol_emissions commit a8753e0338c4978204a6c16d4c091bc90d806aa2 Author: Dom Heinzeller Date: Tue Mar 5 08:07:03 2019 -0700 atmos_cubed_sphere/model/fv_regional_bc.F90: change logic how to read tracers following what is in VLAB master as of 03/01/2019, but add the capability to declare certain tracers as optional; tracers that are not present in the file and that are optional are set to zero instead of forcing the model to stop commit af56528d834efaf92f99a2527e5034c28765dec9 Author: Dom Heinzeller Date: Fri Mar 1 08:45:53 2019 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: fix units of lat/lon/area members of GFS_init_type commit 4a83de5ee0757e7ce13ba5af8ffae3a6bfcb07e9 Author: Dom Heinzeller Date: Fri Mar 1 08:48:19 2019 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: when Thompson MP is used, always allocate 2d aerosol surface emission fields commit a586cffc679cb03927c60fd864f28cd6c1516e7f Merge: 745835f d542f13 Author: Dom Heinzeller Date: Thu Feb 28 14:11:39 2019 -0700 Merge pull request #124 from climbfuji/csawmgshoc_and_debug_bit_for_bit CCPP acceptance: csawmgshoc* and *_debug bit-for-bit commit d542f1394e8dc457edde5fd0062cac72ff9c9b25 Author: Dom Heinzeller Date: Wed Feb 27 13:45:45 2019 -0700 ipd/IPD_CCPP_driver.F90: bugfix, remove false format specifiers in print statement commit 6474f442cdbae65a7c321fb140b7595fe1d3d6f1 Author: Dom Heinzeller Date: Wed Feb 27 13:45:07 2019 -0700 gfsphysics/makefile: compile gcm_shoc.f90 with reduced optimization commit 745835f632b3f646e52ba526ba214b9e120520b8 Merge: 95c6c39 6ea757f Author: Dom Heinzeller Date: Tue Feb 26 15:44:51 2019 -0700 Merge pull request #123 from climbfuji/csawmg_bitforbit_prod CCPP-acceptance bit-for-bit csawmg and gfdlmp-32bit commit 6ea757f4ea2f44041d266978e58f299257eb913a Author: Dom Heinzeller Date: Mon Feb 25 16:40:57 2019 -0700 atmos_model.F90: performance improvement, don't try to call radiation physics if neither short-wave nor long-wave physics are scheduled to run commit 5bda8947b9fbc5d5feeeef8850d7485563321eb4 Merge: 330e2bd 95c6c39 Author: Dom Heinzeller Date: Mon Feb 25 13:47:31 2019 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into csawmg_bitforbit_prod commit 330e2bdc95029baf6263cf1334132ccb3d553c96 Author: Dom Heinzeller Date: Mon Feb 25 13:08:42 2019 -0700 gfsphysics/makefile: clean up selective reduction of optimization flags, add necessary flags for bit-for-bit identical results of csawmg and gfdlmp-32bit regression tests in PROD+TRANSITION mode commit 9e43c12dc3feeb87540863aab94d882d63630443 Author: Dom Heinzeller Date: Mon Feb 25 13:05:20 2019 -0700 atmos_cubed_sphere/makefile: replace -no-prec-div -no-prec-sqrt with -prec-div -prec-sqrt for PROD+TRANSITION for several files used in/by fast physics commit 95c6c3932401839856ecdd0ce6d67de64484fadf Merge: 141944d b8c6477 Author: Dom Heinzeller Date: Mon Feb 25 08:57:18 2019 -0700 Merge pull request #122 from climbfuji/gfs_suite2 Physics bakeoff: CCPP version of GFS suite2 commit b8c64775bcbcd7bca21750780339779f21845a63 Merge: bb3fdda 141944d Author: Dom Heinzeller Date: Fri Feb 22 19:48:32 2019 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into gfs_suite2 commit bb3fdda0ef7ffdc5e90cac360d41ff8eecef881a Author: Dom Heinzeller Date: Fri Feb 22 18:08:55 2019 -0700 gfsphysics/GFS_layer/GFS_physics_driver.F90: generalize use of GFS_PBL_generic_pre, add support for running satmedmf for both cases ntrac=nvdiff and ntrac/=nvdiff commit 26922cea659941130d1d0b27d8a32b092d292ea9 Author: Dom Heinzeller Date: Fri Feb 22 18:08:16 2019 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: update standard name of Interstitial(cdata%thrd_no)%ntiwx and initialize correctly for case ntrac=nvdiff commit 141944d71c191d72570eb433d9eea858b1c77e00 Merge: e09d987 9b932d7 Author: Dom Heinzeller Date: Fri Feb 22 17:19:53 2019 -0700 Merge pull request #113 from AustinChunxi/caps_physics Caps physics - saYSU, YSU and Tiedtke schemes commit 9b932d7ac8fff56896b1b571bf3651172a05f4db Merge: d655c50 cea2f49 Author: AustinChunxi <45803778+AustinChunxi@users.noreply.github.com> Date: Fri Feb 22 13:07:40 2019 -0600 Merge pull request #3 from climbfuji/caps_physics_dom_20190221 Bugfix FV3 commit cea2f4978f31a4696824d598684db53bb56dcd2b Author: Dom Heinzeller Date: Thu Feb 21 13:54:21 2019 -0700 gfsphysics/GFS_layer/GFS_diagnostics.F90: bugfix, comment out some optimizations for bit-for-bit testing commit d655c5026407bdc9a0c488ff3f54dbe06c2742a1 Merge: 39dde92 b4aed08 Author: AustinChunxi <45803778+AustinChunxi@users.noreply.github.com> Date: Thu Feb 21 10:59:30 2019 -0600 Merge pull request #2 from climbfuji/caps_physics_dom_20190221 Update CAPS physics to master (second round) for final testing commit b4aed0878efaee766c4a5fc3d7907eee0df8e9ab Merge: 39dde92 e09d987 Author: Dom Heinzeller Date: Wed Feb 20 08:34:13 2019 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into HEAD commit 39dde92b6249bbcd67d9f96a5e26fdfcaae008b2 Merge: 0e3d3d5 202eba4 Author: AustinChunxi <45803778+AustinChunxi@users.noreply.github.com> Date: Tue Feb 19 22:37:08 2019 -0600 Merge pull request #1 from climbfuji/caps_physics_dom_20190205 CAPS physics modifications and update to trunk commit e09d9870ee462e741dc253548fea9058934c1aed Merge: b27f83e 8da785b Author: Dom Heinzeller Date: Mon Feb 18 19:33:57 2019 -0700 Merge pull request #121 from climbfuji/add_ccpp_regression_tests_repro Add missing regression tests for CCPP acceptance (REPRO mode) commit 8da785b1b9b19b703b19b70ec6bc57a62334f0b1 Author: Dom Heinzeller Date: Fri Feb 15 15:10:52 2019 -0700 gfsphysics/GFS_layer/GFS_physics_driver.F90: add call to CCPP-compliant sfc_ocean for CCPP hybrid mode commit 83e02a2ff3d08655968020d76450ca58deb07563 Merge: f785044 b27f83e Author: Dom Heinzeller Date: Fri Feb 15 12:51:45 2019 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into HEAD commit f78504427ed4bcd782f1dd648a3a6632fbf5d502 Author: Dom Heinzeller Date: Fri Feb 15 12:51:21 2019 -0700 gfsphysics/GFS_layer/GFS_physics_driver.F90: for hybrid mode, add if-test for calling rayleigh damping to avoid misleading error messages 'scheme rayleigh_damp' not found commit b27f83e8d84cc8d87d44d531d0f49270af227aa6 Merge: 096dc1f 84a6835 Author: Dom Heinzeller Date: Fri Feb 15 09:24:50 2019 -0700 Merge pull request #120 from climbfuji/ccpp_acceptance_gfdlmp_bitforbit CCPP acceptance: GFDL MP with 64bit dynamics bit-for-bit commit 84a683508d1da831ff39c21d2f0d7f5605ceb5e1 Merge: bcf9084 096dc1f Author: Dom Heinzeller Date: Thu Feb 14 17:31:13 2019 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into ccpp_acceptance_gfdlmp_bitforbit commit 096dc1f987eaf8a1aef9abc7e1249265d2e4f92a Merge: 41ef4d7 364b937 Author: Dom Heinzeller Date: Thu Feb 14 16:47:44 2019 -0700 Merge pull request #119 from climbfuji/stochy_bitforbit_prod CCPP acceptance: fv3_stochy / fv3_ccpp stochy bit-for-bit identical commit bcf908498f524c4e8a3ffcc921fa913b03158543 Author: Dom Heinzeller Date: Thu Feb 14 10:16:15 2019 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: turn off ICCN (set Model%iccn to false) if MG2/3 are not used commit e4ed1b9eeedbd8853d345fce933fbe08a0cb9884 Author: Dom Heinzeller Date: Thu Feb 14 10:15:29 2019 -0700 gfsphysics/physics/iccninterp.f90: add comment about potential bug in ICCN interpolation commit afb48a7f41dbca2810ea342e6f5f305e11002c72 Merge: 0b6f325 41ef4d7 Author: Dom Heinzeller Date: Wed Feb 13 20:54:13 2019 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into ccpp_acceptance_gfdlmp_bitforbit commit 0b6f3254ee0753aad85732327e4aaee720d1e293 Author: Dom Heinzeller Date: Wed Feb 13 16:23:54 2019 -0700 atmos_cubed_sphere/makefile: revert some flags that reduced optimization of several files in dynamical core for bit-for-bit identical results in PROD-TRANSITION mode commit 9280b6698bf86a9d004dd62db9a4e0a2ec4fc1bc Author: Dom Heinzeller Date: Wed Feb 13 13:34:12 2019 -0700 atmos_cubed_sphere/model/fv_cmp.F90: revert previously introduced reduce optimization for routine fv_sat_adj in PROD/TRANSITION mode commit cf71b1e20f74b7f6b5345201cfb74078c68be8dc Author: Dom Heinzeller Date: Wed Feb 13 10:48:22 2019 -0700 atmos_cubed_sphere/model/fv_mapz.F90: introduce volatile var to compute pkz after fast physics in PROD-TRANSITION mode commit 2a7f29e8063768b4b2bb31133c3d184cffd76e0d Author: Dom Heinzeller Date: Wed Feb 13 08:34:48 2019 -0700 atmos_cubed_sphere/model/fv_dynamics.F90: reset CCPP interstitial variables at beginning of fv_dynamics commit 3858f01bd58af664b8d797ec7f6b81296fa05600 Author: Dom Heinzeller Date: Wed Feb 13 08:31:01 2019 -0700 gfsphysics/makefile: reduce optimization of several files in GFS physics for bit-for-bit identical results in PROD-TRANSITION mode commit 94ec720c7bc2700a398551241dcece6dda2bcada Author: Dom Heinzeller Date: Wed Feb 13 08:27:32 2019 -0700 atmos_cubed_sphere/makefile: reduce optimization of several files in dynamical core for bit-for-bit identical results in PROD-TRANSITION mode commit 202eba4f3b7fbebc38f66c8042dba7b07b25ca1c Author: Dom Heinzeller Date: Fri Feb 8 16:25:15 2019 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: define do_ysu and shinhong also for non-CCPP builds commit 97c3a8201a8485a3c0a3b2d318cb9d4820cdb908 Author: Dom Heinzeller Date: Fri Feb 8 15:47:58 2019 -0700 model/fv_cmp.F90: reduce optimization for routine fv_sat_adj in PROD/TRANSITION mode commit 4c9e8460b29e6a38051a5381efdcba2704e1ff14 Author: Dom Heinzeller Date: Fri Feb 8 15:45:39 2019 -0700 makefile: selective reduction of optimization flags for dyn_core.F90 commit 67729a7108df27d7858dce73cbdf23f09db82a78 Author: Dom Heinzeller Date: Fri Feb 8 15:41:56 2019 -0700 Selective reduction of optimization flags for gfdl_cloud_microphys.F90 commit d09ed793e298b6d1d200dd606b7c155e7228171f Author: Dom Heinzeller Date: Fri Feb 8 15:38:04 2019 -0700 CCPP_layer/CCPP_typedefs.F90: bugfix for component qa, which may not be allocated by host model commit 0401116703f8e4c218f1f3ab6e14794d17b0345e Author: Dom Heinzeller Date: Fri Feb 8 09:11:59 2019 -0700 gfsphysics/GFS_layer/GFS_physics_driver.F90: add CAPS physics for hybrid build commit 48d29063bd205aeaae7b32658cc162d311274262 Author: Dom Heinzeller Date: Thu Feb 7 16:32:37 2019 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: add new options imfshalcnv=4 and imfdeepcnv=4 for New Tiedtke scheme commit 792df961cb0767038a8f706808ce1028f856272a Author: Dom Heinzeller Date: Thu Feb 7 16:29:42 2019 -0700 gfsphysics/GFS_layer/GFS_diagnostics.F90: suppress writing fields through quilting servers that are not allocated for Model%lssav=.false. commit 364b937825b35f2b3bdc4653cf0e12222bfa533d Merge: 4f76dcb 41ef4d7 Author: Dom Heinzeller Date: Thu Feb 7 08:31:40 2019 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into stochy_bitforbit_prod commit 4f76dcb85a0c38fad25634861865e1a170b74376 Author: Dom Heinzeller Date: Thu Feb 7 08:30:22 2019 -0700 stochastic_physics/stochy_patterngenerator.F90: reduce optimization for routine patterngenerator_advance in PROD+TRANSITION mode for bit-for-bit identical results commit 5580d45f021f12d972cea914700fa2a22567736b Author: Dom Heinzeller Date: Thu Feb 7 08:29:27 2019 -0700 stochastic_physics/get_stochy_pattern.F90: adjust indents, no changes to code commit a0116d12c5ac5679c5b629eb94066861d30c87c0 Merge: 0e3d3d5 41ef4d7 Author: Dom Heinzeller Date: Tue Feb 5 13:56:05 2019 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into caps_physics_dom_20190205 commit ff9cce21fb51c92ed77853569ec3b57b9763626b Author: Dom Heinzeller Date: Mon Feb 4 11:00:11 2019 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: follow-up to PR https://github.com/NCAR/FV3/pull/116, add missing standard names for new constituents Tbd%imap and Tbd%jmap commit 41ef4d76d168d74d118152807171e4f135db50ab Merge: cc93fb7 81bc600 Author: Dom Heinzeller Date: Mon Feb 4 10:52:42 2019 -0700 Merge pull request #117 from climbfuji/satmedmf_bitforbit_prod CCPP acceptance: satmedmf bit-for-bit commit 81bc600073083db89dbf3be7115d5a2eb501de9c Merge: d712252 cc93fb7 Author: Dom Heinzeller Date: Mon Feb 4 10:44:24 2019 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into satmedmf_bitforbit_prod commit cc93fb75c82acd9ae3613b1d923f98cf9c58f35a Merge: 89cdf90 86bbeb8 Author: Dom Heinzeller Date: Mon Feb 4 10:42:16 2019 -0700 Merge pull request #116 from climbfuji/fix_metadata_tables_and_threading_improvements Fix NST metadata tables, threading improvements time vary steps commit d7122528d7da56adf0d25d3dd45106558f0ad3d3 Author: Dom Heinzeller Date: Sun Feb 3 06:20:49 2019 -0700 gfsphysics/physics/satmedmfvdif.f: add missing name to 'end subroutine' label commit 34501ae08fcf3ebbb20e418180907d930e99ca84 Author: Dom Heinzeller Date: Sun Feb 3 06:18:19 2019 -0700 gfsphysics/makefile: reduce optimization flags for satmedmfvdif.f as required for bit-for-bit identical results in TRANSITION mode, compile all GFS drivers (also GFS_radiation_driver.F90) in two steps commit 86bbeb82655e60b1d78ca5e57b7812a1b7963d4e Author: Dom Heinzeller Date: Thu Jan 31 16:55:03 2019 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: add components imap and jmap to Tbd DDT (for CCPP only) commit 89cdf908d28688af1ba7a7d8e76e37ceeae108c5 Merge: 186aca3 e81b178 Author: Dom Heinzeller Date: Thu Jan 31 16:16:25 2019 -0700 Merge pull request #112 from climbfuji/suite_fv3_gsd_test GSD suite for NEMSfv3gfs commit e81b178e499853b8c7f6e9db22a2fc61e4b3ec58 Author: Dom Heinzeller Date: Wed Jan 30 16:24:39 2019 -0700 gfsphysics/physics/GFS_debug.F90: add GFS_abort module, similar to CCPP version - for debugging purposes only commit f4295a24fc15bfb1cbbbc4d0b14b70b9f10828c6 Author: Dom Heinzeller Date: Wed Jan 30 16:20:35 2019 -0700 gfsphysics/makefile: for CCPP acceptance, reduce optimization for sflx.f (CORE-AVX2 to CORE-AVX-I) commit 0e0f766f8fe28d2298cad15bc6b692946e517c52 Author: Dom Heinzeller Date: Tue Jan 29 16:03:58 2019 -0700 gfsphysics/physics/radiation_clouds.f: can't use preprocessor directives in .f file (at least not with PGI compiler) commit 20f23eee3d037097d7e9941d997587badeb7058e Author: Dom Heinzeller Date: Tue Jan 29 14:28:07 2019 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: correct standard value for MYNN EDMF commit 66cd79cfc1183edd7c6e30d0773bfa3a6c7938f7 Author: Dom Heinzeller Date: Tue Jan 29 14:25:59 2019 -0700 gfsphysics/GFS_layer/GFS_diagnostics.F90: comment out correct units for soil liquid water content for bit-for-bit testing commit fd1834e782ab97e61314cc761baf0c3d8bde2968 Merge: 415e100 186aca3 Author: Dom Heinzeller Date: Mon Jan 28 17:05:32 2019 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into suite_fv3_gsd_test commit 186aca3d1c5f2dc66ac6abb335d184766aa64c90 Merge: 4b5217b 684a6a8 Author: Dom Heinzeller Date: Mon Jan 28 16:35:06 2019 -0700 Merge pull request #110 from climbfuji/no-cdata-for-static-build Static build: no cdata to store and retrieve variables commit 0e3d3d531f512879b42630535e9d96f4e46fed4c Merge: e808621 4b5217b Author: Chunxi Zhang Date: Mon Jan 28 16:33:14 2019 -0600 Merge branch 'gmtb/ccpp' into caps_physics commit e8086218513d1d2f0c31b783292e94632818ad4a Author: Chunxi Zhang Date: Fri Jan 25 18:33:27 2019 -0600 Add flags for Shin-Hong and YSU PBL schemes commit 415e1008c4d16d39d86709c831c6bee232626f93 Merge: a9f3c24 684a6a8 Author: Dom Heinzeller Date: Fri Jan 25 15:17:28 2019 -0700 Merge branch 'no-cdata-for-static-build' of https://github.com/climbfuji/FV3 into suite_fv3_gsd_test commit a9f3c2425713c86f1f529ddbcae8d7386ad7d762 Merge: 856b45c 4b5217b Author: Dom Heinzeller Date: Fri Jan 25 15:17:23 2019 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into suite_fv3_gsd_test commit 856b45c399b972ce0dacb8ab8d56157191fa114b Author: Dom Heinzeller Date: Fri Jan 25 15:10:27 2019 -0700 gfsphysics/physics/radiation_clouds.f: comment out bugfix for Thompson-cloud interaction, because bit-for-bit tests fail otherwise commit 8dfbf4b82ef98151d8cf22d14705131384612a48 Author: Dom Heinzeller Date: Fri Jan 25 15:09:43 2019 -0700 gfsphysics/physics/GFS_debug.F90: output individual components of Diag%fluxr commit 696a54330c03cd7077d3910794d9dcb539d53b8b Author: Dom Heinzeller Date: Fri Jan 25 15:09:19 2019 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: cleanup errors introduced by updating the code to the latest reference version commit 1aeaef54c25a1ae2b5e20b9f92ad9b9c7d9ecdec Author: Dom Heinzeller Date: Fri Jan 25 15:08:15 2019 -0700 gfsphysics/GFS_layer/GFS_diagnostics.F90: comment out improvements to GFS diagnostics I/O logic, because bit-for-bit comparison of output fails commit 684a6a8ad6090cdf9a89b7e53df8c07f1510bc7e Author: Dom Heinzeller Date: Fri Jan 25 14:57:43 2019 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90 gfsphysics/CCPP_layer/CCPP_data.F90: fix typos noted by Grant commit 3865fe7c83e0fc552b80f5e7d78cbf321e2249b8 Merge: 8f8c734 4b5217b Author: Dom Heinzeller Date: Fri Jan 25 14:53:23 2019 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into no-cdata-for-static-build commit 4b5217bb10cb8b0896462344d1008dbae1fa846f Merge: 59cbcce 91dfe4b Author: Dom Heinzeller Date: Fri Jan 25 14:19:44 2019 -0700 Merge pull request #111 from NCAR/gmtb/develop Empty PR from gmtb/develop to gmtb/ccpp in order to abandon gmtb/develop commit 59cbcce6f6ad5e4026b2dfb5bb9771c305285882 Merge: 77638eb c81cf88 Author: Dom Heinzeller Date: Fri Jan 25 14:14:30 2019 -0700 Merge pull request #108 from climbfuji/dynamics-real4-laurie-dom-20181226 Dynamics 32BIT compile, with CCPP (Laurie's changes with updates from Dom) commit 8f8c734339fd75ebd07bd60a7e5342fbef191391 Author: Dom Heinzeller Date: Fri Jan 25 12:52:34 2019 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: introduce index for water vapor Model%ntqv, assign standard names to aerosol indices, add missing initialization of Diag%zmtnblck commit 53652a946be21a27fe32bd6ef69f970daae4919c Merge: adaeeab ff95af6 Author: Dom Heinzeller Date: Wed Jan 23 17:32:07 2019 -0700 Merge branch 'no-cdata-for-static-build' of https://github.com/climbfuji/FV3 into suite_fv3_gsd_test commit adaeeabaafcda714c96ac62b4b0f1203ac86022b Merge: ef88a0f 91dfe4b Author: Dom Heinzeller Date: Wed Jan 23 16:46:28 2019 -0700 Merge branch 'gmtb/develop' of https://github.com/NCAR/FV3 into suite_fv3_gsd_test commit ff95af6314663ed9f49e86a575bdca7e9240fced Author: Dom Heinzeller Date: Wed Jan 23 11:20:13 2019 -0700 ipd/IPD_CCPP_driver.F90: major changes for CCPP static build w/o adding/retrieving variables from cdata; remove unnecessary code for the static build, remove hard-coded import statements of IPD data types (now auto-generated imports from CCPP_data for the dynamic builds, not required at all for the static build) commit 3605f6f99f8e021e6b2226e7ced8ede318885e0a Author: Dom Heinzeller Date: Wed Jan 23 11:10:14 2019 -0700 atmos_model.F90: for CCPP builds, IPD_Control and IPD_Data are defined in the CCPP_data module as GFS_Control and GFS_Data; remove IPD DDTs from argument list for CCPP init step commit 8fb8e9e9f31e037f9428168e0d46ab92f14c1b32 Author: Dom Heinzeller Date: Wed Jan 23 11:07:05 2019 -0700 gfsphysics/makefile: specify build sources separately for non-CCPP and the different CCPP builds commit c0a32bfe9cbd504b87a15c2fa0851ffb73b1315f Author: Dom Heinzeller Date: Wed Jan 23 11:04:07 2019 -0700 gfsphysics/GFS_layer/GFS_physics_driver.F90: remove unnecessary import for hybrid CCPP build commit 33a99d93b7b1d750368493f9c02dbc0e31d1e552 Author: Dom Heinzeller Date: Wed Jan 23 11:02:53 2019 -0700 gfsphysics/GFS_layer/GFS_driver.F90: do not import and run unnecessary code for the non-hybrid CCPP builds, pass block number to Tbd%create only for non-CCPP and hybrid-CCPP builds commit 8a56da0bf661009eb86b1a4e508c12d3f50390e9 Author: Dom Heinzeller Date: Wed Jan 23 10:50:42 2019 -0700 gfsphysics/CCPP_layer/CCPP_data.F90: create metadata tables for instances of derived data types, store GFS data types required for CCPP in CCPP_data.F90 instead of atmos_model.F90 commit 4b63bfd9be4f6fa453dc70b3c2a802898551ff7b Author: Dom Heinzeller Date: Wed Jan 23 10:48:11 2019 -0700 atmos_cubed_sphere/driver/fvGFS/atmosphere.F90: optimization for static build (don't import unnecessary code), pass all variables required for fast physics to CCPP_interstitital%create commit 4d46e74774bc8da9645e967b1cfe5182a31ad39d Author: Dom Heinzeller Date: Wed Jan 23 10:44:38 2019 -0700 atmos_cubed_sphere/model/fv_arrays.F90: remove metadata tables, now defined in CCPP_typedefs commit 1cccf34b335583198c298f10ec77de2b44198e9e Author: Dom Heinzeller Date: Wed Jan 23 10:42:46 2019 -0700 gfsphysics/CCPP_layer/CCPP_typedefs.F90: correct definition of types CCPP_interstitial_type and CCPP_shared_type, add all components required to run fast physics to CCPP_interstitial_type (previously in fv_atmos_type) using pointers to avoid memory overhead - this is required to fix compiler segmentation faults with the GNU compilers commit 909b5db7c5558d37ac69c53f4670b4fa6d9342b9 Author: Dom Heinzeller Date: Wed Jan 23 10:35:14 2019 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: define derived data types in metadata table, not actual instances (these are to be defined where the variables are stored), rename variables from IPD_ to GFS_, block number and thread number now part of cdata (nb --> cdata%blk_no, nt --> cdata%thrd_no), adjust formatting, define Tbd%blkno only for non-CCPP and hybrid CCPP build (required for debugging and for passing block number to GFS_physics_driver), remove unnecessary imports and code for non-hybrid and static CCPP builds commit 5fa64a39cd85ef3a96364ab5fc0749eed7369995 Author: Dom Heinzeller Date: Wed Jan 23 10:16:54 2019 -0700 gfsphysics/physics/GFS_debug.F90: bugfix for gfortran compiler, remove metadata tables, blkno now a separate variable and no longer part of Tbd, remove commented-out GFS_interstitialtoscreen module commit d9333216619f2d71daea79027e144d8e3f831b9e Author: Dom Heinzeller Date: Wed Jan 23 10:15:00 2019 -0700 stochastic_physics/stochastic_physics.F90: remove unused argument Grid from stochastic physics initialization call commit 91dfe4b9cec2fd6cab603bdbdeb9126ca81d70f6 Merge: 77638eb c81cf88 Author: Dom Heinzeller Date: Tue Jan 8 12:00:51 2019 -0700 Merge pull request #109 from climbfuji/dynamics-real4-laurie-dom-20181226 Dynamics 32BIT compile, with CCPP (Laurie's changes with updates from Dom) for gmtb/develop commit c81cf88974a85077fc5f6afbbe626832017c8a84 Author: Dom Heinzeller Date: Thu Dec 27 17:53:55 2018 -0700 gfsphysics/CCPP_layer/CCPP_typedefs.F90: import kind_dyn from machinefile commit ef88a0f15a3dbc1900426bc8575465144956c78f Author: Dom Heinzeller Date: Thu Dec 27 14:40:51 2018 -0700 io/FV3GFS_io.F90: add variables clw_surf, qwv_surf, tsnow, sr to restart files for RUC LSM commit 2e5bba7a021496d35d0be14cb4efb7286e2784fb Author: Dom Heinzeller Date: Thu Dec 27 14:39:12 2018 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: move sr from Diag to Sfcprop commit c9271d430877e46fc7dc2f6bc5a73b08a73833b8 Author: Dom Heinzeller Date: Thu Dec 27 14:37:03 2018 -0700 gfsphysics/GFS_layer/GFS_physics_driver.F90: move sr from Diag to Sfcprop commit fbc5965587ff186ad6c5883192da19a200ed219f Author: Dom Heinzeller Date: Thu Dec 27 14:35:37 2018 -0700 gfsphysics/GFS_layer/GFS_diagnostics.F90: move sr from Diag to Sfcprop commit a44d05f132cddbedb2b823548bb05b8a73459537 Merge: f32e816 77638eb Author: Dom Heinzeller Date: Thu Dec 27 13:51:08 2018 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into dynamics-real4-laurie-dom-20181226 commit 77638ebe63d2f992c4973d86ac04f7a411fe3d7b Merge: 56da070 92e0468 Author: Dom Heinzeller Date: Thu Dec 27 13:36:47 2018 -0700 Merge pull request #104 from climbfuji/add_regression_tests_for_transition_20181219 Add regression tests for CCPP transition to VLAB master commit f32e816d777f5a2317edb01f2710ade223e11600 Author: Dom Heinzeller Date: Wed Dec 26 16:39:41 2018 -0700 gfsphysics/makefile: remove additional include flag, no longer required commit a6a2f515ea0b6fc198886ecee3300076d2fd5bf7 Author: Dom Heinzeller Date: Wed Dec 26 16:38:34 2018 -0700 gfsphysics/physics/machine.F: formatting changes commit 307de8506c8b9ae00240f39c040efc4639fe82b8 Merge: 333b0f3 56da070 Author: Dom Heinzeller Date: Wed Dec 26 08:50:54 2018 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into HEAD commit 1a2f9c4e47dac7db9ab1d10fd1bec3a57b774be3 Author: Dom Heinzeller Date: Fri Dec 21 18:17:35 2018 -0700 ipd/IPD_CCPP_driver.F90: print error message from CCPP physics in the event of an error commit 13cdd813ed710f304f9fced2b6aa17ab79b61e12 Author: Dom Heinzeller Date: Fri Dec 21 18:17:05 2018 -0700 io/FV3GFS_io.F90: remove Thompson arrays nwfa2d and nifa2d and Coupling DDT; now part of GFS_restart_type commit 0ef976ca6c892afd7d7fa879f99bc849be9961dc Author: Dom Heinzeller Date: Fri Dec 21 18:15:38 2018 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: add flags for restart runs and for first time step of time integration loop (regardless whether cold or warm start) commit 633bc1f75272d7a9364a909b6c6f078b351271e9 Author: Dom Heinzeller Date: Fri Dec 21 18:11:23 2018 -0700 gfsphysics/GFS_layer/GFS_restart.F90: add required restart fields for GF, RUC, Thompson, MYNN commit b4bf7d3d29b9f890a1944d22f8071b4305fe1f05 Author: Dom Heinzeller Date: Fri Dec 21 18:10:37 2018 -0700 gfsphysics/GFS_layer/GFS_driver.F90: pass restart flag to IPD_Control%initialize commit 1f0c8f12dc83bc1c12f0e13ad7a6f1d4441b4cb6 Author: Dom Heinzeller Date: Fri Dec 21 18:09:56 2018 -0700 atmos_model.F90: add and update required flags for restart runs and the first time step in a run (independent if coldstart or warmstart) commit a28d6ec9866541baa581f5f12d02a4c5e5db9c11 Author: Dom Heinzeller Date: Thu Dec 20 16:20:06 2018 -0700 atmos_model.F90: add warm_start flags to restart I/O calls for CCPP build commit b51f49f2c2c5274eb6ec90a4ae7910543b4a9121 Author: Dom Heinzeller Date: Thu Dec 20 16:15:29 2018 -0700 io/FV3GFS_io.F90: add logic to read restart data for RUC LSM, Thompson MP and MYNN PBL; for cold starts, RUC is initialized from NOAH surface data commit 75472452762b4c56d76009a3fbf9a88e0d690440 Author: Dom Heinzeller Date: Thu Dec 20 13:48:38 2018 -0700 gfsphysics/GFS_layer/GFS_physics_driver.F90: move wet1 from Diag to Sfcprop commit 9bff6fbdf6baa4aecbc9015773d2d9d1a4845fa0 Author: Dom Heinzeller Date: Thu Dec 20 13:47:49 2018 -0700 gfsphysics/physics/GFS_debug.F90: Calculating the checksum leads to segmentation faults on MacOSX (bug in malloc?), thus print the sum of the array instead of the checksum. commit 0beeebc855b0184634c57df4197c353b7929ffc1 Author: Dom Heinzeller Date: Thu Dec 20 13:46:07 2018 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: move wet1 from Intdiag to Sfcprop, add two new variables for MYNN PBL scheme, remove unused Tbd%qke_adv, remove unused RUC LSM components of Interstitial DDT commit 9463d7c0df9df592a447a9de6ec81a74b520a2f9 Author: Dom Heinzeller Date: Thu Dec 20 13:33:11 2018 -0700 gfsphysics/GFS_layer/GFS_diagnostics.F90: wet1 now member of Sfcprop, not Diag; disable output of stochastic physics diagnostics when stochastic physics are switched off commit bad992d69b286afa2a96605f01f22cde4682ca55 Author: Dom Heinzeller Date: Thu Dec 20 13:31:34 2018 -0700 gfsphysics/physics/radiation_clouds.f: bugfix, use correct effective radius for snow instead of ice for Thompson microphysics commit 3be64f3221a2b3dc91b2a09166ec9122a953a31b Author: Grant.Firl Date: Wed Dec 19 14:11:36 2018 -0700 minor bugfix for using uninitialized values in GFS_radiation_driver.F90 commit d67386392d530193af1cc2472a9d9f1f66a64bdf Author: Grant.Firl Date: Wed Dec 19 13:40:02 2018 -0700 fix a couple of bugs in aer_cloud.F leading to uninitialized memory being accessed and a segmentation fault when compiling with gfortran commit 92e046836f4a068fdf5c2b4eafd4a6d8fd5f39ec Author: Dom Heinzeller Date: Wed Dec 19 11:09:20 2018 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: change horizontal_dimension and horizontal_loop_extent to use blocksize(nb); this is the first step needed to allow CCPP to run over varying block sizes commit d039e5b506999d26d206f875e6d84ee87cb7ee78 Author: Dom Heinzeller Date: Wed Dec 19 11:08:15 2018 -0700 gfsphysics/GFS_layer/GFS_physics_driver.F90: add debug statements for better traceability of which scheme gets called commit 814a2c41399acb8f8c0fea98931d6c37aa796db1 Author: Dom Heinzeller Date: Wed Dec 19 11:07:36 2018 -0700 atmos_cubed_sphere/model/fv_arrays.F90: add metadata for do_sat_adj commit dc065bcd831a618ef0fa9e4f1520cea5d13952c1 Merge: 56da070 e6250e9 Author: Dom Heinzeller Date: Fri Dec 14 10:04:53 2018 -0700 Merge branch 'dynamics-real4' of https://github.com/llpcarson/FV3 into HEAD commit 8892f95c4692c8f6f8cde73c8ecc80edaef1d6ec Author: Dom Heinzeller Date: Mon Dec 3 16:52:26 2018 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: add namelist option for temperature tendency limiter for Thompson microphysics commit 56da07044dd7476cdfba4fd252ef36ddb38a070b Merge: 94d32e8 c5a4528 Author: Dom Heinzeller Date: Fri Nov 30 12:46:35 2018 -0700 Merge pull request #102 from climbfuji/shocb4b SHOC bit-for-bit (REPRO mode) commit c5a45289ed7fdd1ecc6caa8a3887d76c7bbacd3c Author: Dom Heinzeller Date: Thu Nov 29 13:59:10 2018 -0700 gfsphsyics/makefile: compile gcm_shoc.f90 only for non-CCPP build commit 1926dc45d5879db2b1816095e6adf312ab5b9250 Author: Dom Heinzeller Date: Thu Nov 29 13:58:23 2018 -0700 gfsphysics/GFS_layer/GFS_physics_driver.F90: bugfix for handling unallocated arrays cnvw and cnvc, use DDT members for soil properties instead of local variables (helps with bit-for-bit investigation), update Stateout with Statein at beginning to match CCPP code (helps with bit-for-bit investigation) commit 4d33842301e8b8db40f883b7a54b6ea183f4d6e4 Author: Dom Heinzeller Date: Thu Nov 29 13:32:12 2018 -0700 gfsphysics/GFS_layer/GFS_diagnostics.F90: add refl_10cm only if Model%lradar is true (otherwise not allocated) commit c005561baf91ebf02346b3aa016e7bdabd0bfa7b Author: Dom Heinzeller Date: Tue Nov 27 10:18:31 2018 -0700 io/FV3GFS_io.F90: remove unnecessary debugging output by changing 'if( mpp_root_pe() == 0)' (which is always true)' to a more meaningful 'if( mpp_pe() == mpp_root_pe())' test commit 55c308ed37684e5a1d1b1cf989173f7493d48e86 Author: Dom Heinzeller Date: Mon Nov 26 17:24:57 2018 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: update of comments/documentation commit 3bbbc4fda0f8994009f54d84e9f85ece0d6d8fae Author: Dom Heinzeller Date: Sun Nov 25 21:21:16 2018 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: bugfixes for MYNN, remove logic that prevents running GF deep convection with SAS shallow convection commit 8c5439e45b12e9291c862f953860fbb5b61a7f3b Author: Dom Heinzeller Date: Wed Nov 21 16:21:35 2018 -0700 gfsphysics/makefile: pass CPP preprocessor flags to GFS_diagnostics.F90 and other schemes that require special compiler optimizations commit fa73075faf9e8ae738f0414f438f55977fcc8166 Author: Dom Heinzeller Date: Wed Nov 21 14:15:57 2018 -0700 Add diagnostic output of cloud effective radii from Thompson and WSM6 microphysics, add diagnostic/prognostic output from MYNN schemes commit 573f5d486b49b4045c19efb356fba8a087f424ed Author: Dom Heinzeller Date: Wed Nov 21 14:13:38 2018 -0700 Fix feedback of Thompson effective radii to radiation schemes; move prognostic MYNN PBL variables from Intdiag to Tbd to avoid reset to zero when buckets are reset commit 36e80138d12e2adfdbd460e6a1dee8779aea65fa Author: Dom Heinzeller Date: Tue Nov 20 22:53:19 2018 -0700 gfsphysics/makefile: bugfix for lowering optimization on Jet commit 9426b43b8d97467c064762fa4743bc6008f7d243 Author: Dom Heinzeller Date: Tue Nov 20 14:14:15 2018 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: for RUC LSM, provide arrays to hold precipitation quantities from previous time step (zero in first time step) commit a147bbbfcded90ee77d7b799a39001be5cd24020 Author: Dom Heinzeller Date: Mon Nov 19 21:39:56 2018 -0700 gfsphysics/GFS_layer/GFS_physics_driver.F90: update comments of input/output variables for CCPP hybrid mode commit 68c347d3a9f44c0ba32014e24a0f8f8bf7baa673 Merge: dced08b 94d32e8 Author: Dom Heinzeller Date: Mon Nov 19 15:20:59 2018 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into suite_fv3_gsd_test commit 94d32e8257ff8beff1fbde892b6209b6d510e456 Merge: 5b8c6a0 1bf4933 Author: Dom Heinzeller Date: Mon Nov 19 15:19:03 2018 -0700 Merge pull request #101 from climbfuji/FV3_ccpp_github_merge_in_latest_changes_of_master_vlab_20181113 FV3/gmtb/ccpp merge in latest changes from VLAB master (aka "Advanced physics suite update") commit e6250e985966a3341a9c18db95d8b8a13dd5f43c Author: Dom Heinzeller Date: Mon Nov 19 14:35:33 2018 -0700 Dynamics real4 dom (#1) * gfsphysics/CCPP_layer/CCPP_typedefs.F90: define kind_dyn here * gfsphysics/physics/machine.F: revert definiton of kind_dyn (is in CCPP_typedefs) * makefile: remove old debug print * gfsphysics/makefile: revert previous include change, no longer needed * gfsphysics/CCPP_layer/CCPP_typedefs.F90: add missing 'kind_dyn' for bdt in metadata table commit dced08b0dfa1f1454d10cb5fedd5e4771cc9673a Merge: 4713458 dbcab96 Author: Dom Heinzeller Date: Sat Nov 17 08:50:14 2018 -0700 Merge branch 'dynamics-real4-dom' of https://github.com/climbfuji/FV3 into suite_fv3_gsd_test commit 471345806bd7b618b6f90839fc45043c9f5e983b Merge: bcf9215 1bf4933 Author: Dom Heinzeller Date: Sat Nov 17 08:48:55 2018 -0700 Merge branch 'FV3_ccpp_github_merge_in_latest_changes_of_master_vlab_20181113' of https://github.com/climbfuji/FV3 into suite_fv3_gsd_test commit dbcab96a854b93265631a45618cdb2e1cb06ecd9 Author: Dom Heinzeller Date: Fri Nov 16 19:16:18 2018 -0700 gfsphysics/makefile: revert previous include change, no longer needed commit 81b8fe5ea010ed414a91422c4e333c645b30bbc2 Author: Dom Heinzeller Date: Fri Nov 16 19:15:55 2018 -0700 makefile: remove old debug print commit 0888d075438412627f01868234429c2dbb7d7a7f Author: Dom Heinzeller Date: Fri Nov 16 19:15:25 2018 -0700 gfsphysics/physics/machine.F: revert definiton of kind_dyn (is in CCPP_typedefs) commit 4b6018541326bd92707d93e8a7e1e027db6b153c Author: Dom Heinzeller Date: Fri Nov 16 19:14:53 2018 -0700 gfsphysics/CCPP_layer/CCPP_typedefs.F90: define kind_dyn here commit 1bf4933f625018f6d4abd14b83475ab1192bba73 Author: Dom Heinzeller Date: Fri Nov 16 16:11:55 2018 -0700 makefile: bugfix, correct name of MAKEOPTS after merge commit ffceb88984488df83aac5f9a6b9ef6b8133d0d3e Author: Dom Heinzeller Date: Fri Nov 16 16:11:15 2018 -0700 io/FV3GFS_io.F90: portability change of non-standard Fortran code commit f84ee8d6ccd8771f5b8474a67dad02764074788d Author: Dom Heinzeller Date: Fri Nov 16 16:10:36 2018 -0700 gfsphysics/physics/cs_conv.F90: use correct dimensions of (full) otspt array; using full array prevents Fortran from having to make copies of the array when calling cs_convr commit 036e0a35988119d88da318b309eaf17fbc260ece Author: Dom Heinzeller Date: Fri Nov 16 16:09:33 2018 -0700 gfsphysics/physics/GFS_debug.F90: add new variables to debug output commit 0a24f830488180a388ca07cbbc5fab4c4e4584c1 Author: Dom Heinzeller Date: Fri Nov 16 16:08:41 2018 -0700 gfsphysics/makefile: compile new aerosol routines only for non-CCPP build commit 6e31737334c3b092561349330a777ea6724f0cfa Author: Dom Heinzeller Date: Fri Nov 16 16:08:11 2018 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: add/remove variables and metadata as required for the advanced physics suite update; add logic to calculate ntwix, ncnvw and ncnvc commit d6a5a944f315bd96727055d2660d8e0df1680121 Author: Dom Heinzeller Date: Fri Nov 16 16:01:04 2018 -0700 gfsphysics/GFS_layer/GFS_physics_driver.F90: cleanup after merge, move non-CCPP code into #ifdef sections, remove unnecessary num2/num3 logic commit 4422a2b0a8c983bfee05642e9c995ee30c7c28ab Author: Dom Heinzeller Date: Fri Nov 16 15:53:19 2018 -0700 gfsphysics/GFS_layer/GFS_driver.F90: reading aerosol climatology now fully in CCPP commit 333b0f33b314d46a0ed0e76c2b571f4e76960729 Author: llpcarson Date: Fri Nov 16 17:12:52 2018 +0000 update makefile logic for ccpp-32bit-dynamics switch commit fc8584741885005897a1c63a1928214df01e19bb Author: Dom Heinzeller Date: Wed Nov 14 16:12:12 2018 -0700 gfsphysics/physics/sfc_nst.f: trim whitespaces commit cd062b6e2e33533ee5ff428b1e7f6d0b21d5ace3 Author: Dom Heinzeller Date: Wed Nov 14 16:02:08 2018 -0700 gfsphysics/physics/satmedmfvdif.f: trim whitespaces commit 88991dc7280b27aab8a7224365f6f6a39631593d Author: llpcarson Date: Wed Nov 14 22:46:04 2018 +0000 Logic for passing dynamics-32bit to gfsphysics make - fix for non-32-bit commit ec8a5f114b439ccc85d0bc185024da292125255e Author: Dom Heinzeller Date: Wed Nov 14 15:33:13 2018 -0700 gfsphysics/physics/samfdeepcnv.f: avoid importing con_rd twice as rgas and rd, use existing rd; trim whitespaces commit 0e6ae5a9007bc40aca01a961622cdf63e889c51b Author: Dom Heinzeller Date: Wed Nov 14 14:51:39 2018 -0700 gfsphysics/physics/radiation_clouds.f: trim whitespaces commit 91b3d58d598c2e651d80ac1212ccb6d78813242f Author: Dom Heinzeller Date: Wed Nov 14 14:45:55 2018 -0700 gfsphysics/physics/radiation_astronomy.f: trim whitespaces commit a4c9d7c0614abe9f095f3c93f76cc1a119b0c41b Author: Dom Heinzeller Date: Wed Nov 14 14:36:38 2018 -0700 gfsphysics/physics/radiation_aerosols.f: fix typo commit 4f174de2d7ae6cd41e66e40f7ada40927d92dfed Author: Dom Heinzeller Date: Wed Nov 14 12:53:37 2018 -0700 gfsphysics/physics/physparam.f: trim whitespaces, add missing ')' commit 8cb421f354803acd314b528d56f462b28d5a32e4 Author: Dom Heinzeller Date: Wed Nov 14 12:46:22 2018 -0700 gfsphysics/physics/gwdps.f: trim whitespaces at end of lines commit e28514a75d573c15ac36fc8677f5996618c482c4 Merge: 6fd7b27 5b8c6a0 Author: llpcarson Date: Wed Nov 14 19:50:08 2018 +0000 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into dynamics-real4 commit 2ce814dd3fa418ea0e01066690cf40aacb4987c8 Author: jun.wang Date: Tue Nov 6 00:06:26 2018 +0000 FV3: this commits #refs 56863: Updating one of the advanced physics suite for physics testing commit 01203fb04c0df56727237b7921b6aeaae114858a Author: Samuel Trahan Date: Fri Oct 19 13:59:53 2018 +0000 This change refs #56153 The $(MAKEFLAGS) special variable was misused in the top-level makefile to pass down custom options. This breaks the capability of using the FV3/makefile as a submake from a larger build system. The new NEMS build system is entirely makefiles, and calls FV3/makefile via $(MAKE), so this fix is needed before the NEMS commit. commit 6fd7b27bc7bb97885248e6b65ea99cccdb33ff90 Author: llpcarson Date: Mon Nov 12 21:11:18 2018 +0000 Add switch to allow dynamics compile with 32bit real to interface to CCPP physics commit bcf921575d287acc6dccb24035c870669613572f Author: Dom Heinzeller Date: Sun Nov 11 20:09:26 2018 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: when GF deep convection is used, allow either GF shallow convection or no convection scheme commit 97e80a47ffee069c96fc3d54dd3cd97b63fe7610 Author: Dom Heinzeller Date: Fri Nov 9 23:36:06 2018 -0700 GFS_typedefs.F90: reduce debugging output from MYNN, allow MYNN to run with GF shallow convection commit 5b8c6a077938b231b34f06b31ca42365c8197fe2 Merge: 228708e 9d9d365 Author: Dom Heinzeller Date: Fri Nov 9 15:44:52 2018 -0700 Merge pull request #97 from climbfuji/cleanup_standard_names_raphrrr_updates_20181108 Cleanup 11/08/2018: standard name changes for all physics schemes commit 9d9d365f2ba3872058d5160aa64bb490d38be2fc Author: Dom Heinzeller Date: Fri Nov 9 09:31:30 2018 -0700 gfsphysics/GFS_layer/GFS_physics_driver.F90: wrap call to cs_conv_aw_adj in if clause to prevent calling a scheme that is not needed in CCPP hybrid mode commit 20382cc9dfac4e976d0e0bdd9a0e4e8a4d5cb308 Author: Dom Heinzeller Date: Thu Nov 8 15:57:37 2018 -0700 Removal of unused iteration counter iter of Interstitial DDT from GFS_physcics_driver.F90 commit 17b35aa85ac6de87cde71f99ff178afcc80bd654 Author: Dom Heinzeller Date: Thu Nov 8 15:54:27 2018 -0700 1. Change of standard names as in ccpp/physics: index_for_turbulence_kinetic_energy -> index_for_turbulent_kinetic_energy cloud_ice_mixing_ratio -> ice_water_mixing_ratio_convective_transport_tracer cloud_liquid_water_mixing_ratio -> cloud_condensed_water_mixing_ratio_convective_transport_tracer turbulence_kinetic_energy -> turbulent_kinetic_energy_convective_transport_tracer index_of_TKE_convective_transport_tracer -> index_for_turbulent_kinetic_energy_convective_transport_tracer index_of_TKE_vertical_diffusion_tracer -> index_for_turbulent_kinetic_energy_vertical_diffusion_tracer cloud_liquid_water_mixing_ratio_save -> cloud_condensed_water_mixing_ratio_save cloud_ice_water_mixing_ratio_save -> ice_water_mixing_ratio_save 2. Removal of unused iteration counter iter from Interstitial DDT commit 228708eac18f6492780d4461c4267230d21cd205 Merge: 3f19555 cefd9a0 Author: Dom Heinzeller Date: Wed Nov 7 14:16:28 2018 -0700 Merge pull request #96 from joeolson42/mynn_new Mynn new commit cefd9a0776fcdcc6e42bc3e2d75a8f9558c0abb8 Merge: fab4b14 e24425a Author: Joseph Olson Date: Wed Nov 7 09:18:24 2018 -0700 Merge pull request #2 from climbfuji/mynn_dom_mods_20181106 MYNN modifications and update to current trunk commit e24425ad85c1d5475d00c385d9880cf8f65e8f16 Author: Dom Heinzeller Date: Tue Nov 6 16:14:42 2018 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: fix units, use existing qi_save and qc_save interstitial variables instead of defining new ones, wrap namelist variables for MYNN in #ifdef CCPP blocks commit abcffc6529238666f12e157da3161ee2b3e963a7 Merge: fab4b14 3f19555 Author: Dom Heinzeller Date: Tue Nov 6 15:05:51 2018 -0700 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into HEAD commit 3f19555bd1992a128b1de007c6e19f9811ed4c97 Merge: 507f677 09e90a7 Author: Dom Heinzeller Date: Tue Nov 6 14:29:15 2018 -0700 Merge pull request #95 from climbfuji/mg_final_20181105 Morrison-Gettelman microphysics commit 09e90a79ed450395b5b284666a371419eed05e37 Author: Dom Heinzeller Date: Mon Nov 5 14:39:05 2018 -0700 gfsphysics/GFS_layer/GFS_typedefs.F90: add IPD_control variables and interstitial variables required for CCPP-compliant Morrison-Gettelman microphysics (allocate only when MG are used), remove resetting prandtl_number for radiation calls commit 0ba058cb78f825d5cfa6b2fb2317ac171adc8e9d Author: Dom Heinzeller Date: Mon Nov 5 14:37:25 2018 -0700 gfsphysics/GFS_layer/GFS_physics_driver.F90: remove unused local variables for CCPP builds, add calls to CCPP-compliant Morrison-Gettelman microphysics and Arakawa-Wu adjustment of large-scale tendencies commit 7994be237a7e36d19a2d7aef9ca7b3a1a3c08fd5 Author: Dom Heinzeller Date: Mon Nov 5 14:35:56 2018 -0700 gfsphysics/GFS_layer/GFS_driver.F90: remove trailing whitespaces, remove MG initialization for CCPP builds commit f716fe3f5e8cdf0133297aba90064d0f0471ee92 Author: Dom Heinzeller Date: Mon Nov 5 14:34:58 2018 -0700 gfsphysics/physics/GFS_debug.F90: extended debugging capabilities, option to calculate and print checksum based on Adler 32-bit algorithm commit 52652e3aa815ae41680eff23571dd58c18be9765 Author: Dom Heinzeller Date: Mon Nov 5 14:34:06 2018 -0700 gfsphysics/makefile: add compiler option -fimf-arch-consistency=true for ./gfsphysics/physics/micro_mg2_0.F90 and ./gfsphysics/physics/micro_mg3_0.F90 for optimization levels 'DEBUG' and 'REPRO', remove CCPP-compliant Morrison-Gettelman microphysics code and sfc_nst.f from CCPP build commit 9438dee6b5546d3ea28b5f71092d8ed103dea260 Author: Dom Heinzeller Date: Mon Nov 5 14:32:01 2018 -0700 gfsphysics/physics/m_micro_driver.F90: capitalize suffix of file to allow preprocessing, remove trailing whitespaces, moving inout arguments from block of local variables to block of interface variables commit fab4b1442cb2ec2507646fcb81edfd975cd282ea Author: Joseph Olson Date: Mon Nov 5 21:27:04 2018 +0000 changing swithes to flags commit ec5ed001163730134a8c51341ba33ed7f8037b93 Author: Joseph Olson Date: Mon Nov 5 16:51:51 2018 +0000 MYNN-related bug fixes for GFS_typedefs.F90 commit 507f6770d4b42f79610de3e75f689fc3e2134d18 Merge: cf4d8f7 14eb4d9 Author: Dom Heinzeller Date: Fri Nov 2 14:41:56 2018 -0600 Merge pull request #94 from climbfuji/enable_aerosol_output_in_gfs_diagnostics Enable aerosol output in gfs diagnostics commit 14eb4d9e32f557f5f383a764dc4530f7af7043a8 Author: Dom Heinzeller Date: Thu Nov 1 13:52:11 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: adjust comments and text formatting commit df4289ad24158546f0e4725de974c4d4a4402872 Author: Dom Heinzeller Date: Thu Nov 1 11:00:23 2018 -0600 gfsphysics/GFS_layer/GFS_diagnostics.F90: enable output of aerosols (3D distribution, surface emission rates) for CCPP" commit cf4d8f7fb556acde4b73076b869c08e14334c64e Merge: cfb7218 f6f0b71 Author: Dom Heinzeller Date: Mon Oct 29 14:20:18 2018 -0600 Merge pull request #93 from mzhangw/gfthompson minor fix of GF interstitial in physics driver commit f6f0b710b918ef2193b1bf982c6a4b6399a44d1b Author: Man.Zhang Date: Thu Oct 25 11:16:07 2018 -0600 minor fix commit 5bc6c557a7825ed796c7bfa0448ea8723ff399cf Author: Joseph Olson Date: Wed Oct 24 21:25:36 2018 +0000 MYNN updates to GFS_typedefs.F90 commit 7d7ab129151c7c9f82c6c26ea529734cd21b644b Author: Man.Zhang Date: Wed Oct 24 15:19:16 2018 -0600 minor changes of printout commit 05a634383c5ac33d6d540697ad9441c5c24c26dc Author: haiqin.li Date: Wed Oct 24 16:46:34 2018 +0000 "remove the unproperly setting of Interstitial%nvdiff for GF" commit cfb7218737eb4f6662bb003b2953d2be086e1269 Merge: 6dd277c acab806 Author: Dom Heinzeller Date: Wed Oct 24 06:20:31 2018 +0200 Merge pull request #92 from mzhangw/sa-tke-edmf add ccpp physics call to satmedmf in physics driver commit acab806c8735b44bc936ec1a9724fc7c58c8752e Author: Man.Zhang Date: Tue Oct 23 11:17:27 2018 -0600 minor changes commit 0362b073e45df5b51119d7e421413e202ea958c5 Author: Man.Zhang Date: Mon Oct 22 13:35:20 2018 -0600 add ccpp call to satmedmfvdif. commit 6dd277c5ae55929e075a4c657e63dafa947ed0bf Merge: 726a183 5e5bf51 Author: Dom Heinzeller Date: Thu Oct 18 21:15:12 2018 -0600 Merge pull request #91 from climbfuji/merge_vlab_master_into_ccpp_github_20181018 Merge VLAB master into GitHub CCPP branches 2018/10/18 commit 5e5bf51e2812fa76327b02ca664620cb4bf417c8 Merge: 0f797b8 726a183 Author: Dom Heinzeller Date: Thu Oct 18 15:46:26 2018 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into merge_vlab_master_into_ccpp_github_20181018 commit 0f797b8ebf701065e6569ba2dbc171c78247e70b Author: Dom Heinzeller Date: Thu Oct 18 15:41:36 2018 -0600 makefile: update CCPP sections to reflect changes to the FMS component and to the build system in general (FV3 CFLAGS/FFLAGS/LDFLAGS are no longer used for creating the executable fv3.exe, this all happens through the ESMF makefile fragement fv3.mk commit 4146611a142e9d052f74a0946e1b5373cb202d13 Author: Dom Heinzeller Date: Thu Oct 18 15:40:19 2018 -0600 gfsphysics/physics/radsw_main.f: use standard line continuation character & instead of $ commit a39aa49faad43b5ac9420a282192346b2341ea33 Author: Dom Heinzeller Date: Thu Oct 18 15:39:44 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: remove components and metadata from Interstitial data type that are no longer used, add new components required by recent VLAB changes to radiation and PBL physics, adjust radiation cloud parameters commit 7ec7961388e76348ba1adf26b2fa11f90c354ce7 Author: Dom Heinzeller Date: Thu Oct 18 15:38:05 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: cleanup work from mzhangw, move new interstitial code into #ifndef CCPP sections (for CCPP, this is now in interstitial schemes) commit a3d0ccbe1bcfb5ce4ce937eabb64bddf29fd0469 Author: Dom Heinzeller Date: Thu Oct 18 11:43:13 2018 -0600 atmos_cubed_sphere/model/fv_control.F90: cleanup comments commit 726a1838a70ca95a9bec1fc39defe58c4afe0755 Merge: 14dada5 de64b5a Author: Dom Heinzeller Date: Thu Oct 18 09:57:39 2018 -0600 Merge pull request #88 from climbfuji/csonv_dom_20181016 Chikira Sugiyama convection commit 34f5b722a571c1f7e1cdcd58f6e1032b1d69868b Author: Hsin-Mu.Lin Date: Mon Oct 15 18:02:10 2018 +0000 FV3: this commits #refs 74d870d commit e2d19551be358a51af3257cc9c92058e79e82ec9 Author: jun.wang Date: Fri Oct 12 04:04:53 2018 +0000 FV3: this commits #refs 56011,Fix calling problem in NEMSfv3gfs physics driver and additional tuning for the SA-TKE-EDMF scheme and #refs 56090, lsmask change due to ice fraction from ice model in coupled system commit 3fe6a060db146fae8378fe2173c1d89d9ea27040 Author: jun.wang Date: Fri Oct 5 12:48:27 2018 +0000 FV3: this commits #refs 55799, several bug fixes when running nemsfv3gfs in debug mode commit ab40cc70cdb31d9f7275904da02c62876dd5be78 Author: jun.wang Date: Thu Sep 27 01:25:28 2018 +0000 FV3: this commits #55386, Update GFS RRTMG radiations(roll back the scaling factor used for computing time mean of sw radiative fluxes commit b702502c9a1c64b2dca7390f676c599ecff3ed93 Author: jun.wang Date: Tue Sep 18 20:38:57 2018 +0000 FV3: this commits #refs 49885, Add FMS as a component in NEMS Apps commit e0413701701c79f922860010a6f657aefec69929 Author: jun.wang Date: Thu Sep 13 20:24:51 2018 +0000 FV3: this commits #refs 54973 bug fix in calling gfs radiation driver and computing Gaussian latitude using double precision and #refs 54894 A bug fix in tref update with sfccycle commit de64b5abc96bc70b163901a1121afd86a5efaf2c Author: Dom Heinzeller Date: Wed Oct 17 10:53:56 2018 +0200 gfsphysics/GFS_layer/GFS_physics_driver.F90: bugfix, from Man, reset fscav also for non-CCPP builds - used by ras commit 23a26fab07f73656e3b87492a185b9569db912ce Merge: 7d55007 14dada5 Author: Dom Heinzeller Date: Wed Oct 17 07:58:12 2018 +0200 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into csonv_dom_20181016 commit 7d55007269a7e0ca699d82273bbbe2dcdee5519e Author: Dom Heinzeller Date: Tue Oct 16 22:11:38 2018 +0200 gfsphysics/physics/GFS_debug.F90: for printing debug output, similiar to CCPP version commit bde8f606acf3ef9185e3d224487fe14236b3d208 Author: Dom Heinzeller Date: Tue Oct 16 22:08:43 2018 +0200 gfsphysics/physics/cs_conv.F90: pass in arrays with correct dimensions, replace intrinisic functions with explicit pure functions commit fd8462d3b5259a09908cadd9e526947a967f4f72 Author: Dom Heinzeller Date: Tue Oct 16 22:05:48 2018 +0200 gfsphysics/GFS_layer/GFS_typedefs.F90: remove unused metadata, add new dimensions required for CS, make Tbd%blkno for both CCPP and non-CCPP builds commit 4482f667e15674754c1a29ba670e4e2354fb19bb Author: Dom Heinzeller Date: Tue Oct 16 22:04:18 2018 +0200 gfsphysics/GFS_layer/GFS_physics_driver.F90: remove non-CCPP compliant cs_conv from CCPP build, adjust formatting, pass in correct dimensions of arrays to cs_conv_run commit 35a3411af524e6e37074da568e9cff44359f9ec1 Author: Dom Heinzeller Date: Tue Oct 16 22:00:49 2018 +0200 gfsphysics/GFS_layer/GFS_driver.F90: make blocknumber nb argument to Tbd%create() for both non-CCPP and CCPP builds commit 1f356e8aee434519c5a60c1f1be93a9f48c4acb0 Author: Dom Heinzeller Date: Tue Oct 16 21:59:41 2018 +0200 gfsphysics/makefile: rename gfsphysics/physics/cs_conv.f90 to gfsphysics/physics/cs_conv.F90 to allow preprocessing, compile only in non-CCPP build commit 14dada56a3f38f8b3b11144229560205467d4db7 Merge: c288cbb 7afd024 Author: Dom Heinzeller Date: Sat Oct 13 19:44:27 2018 -0600 Merge pull request #83 from tanyasmirnova/ruclsm RUC LSM implementation. Work in progress, do not use it yet. commit 7afd0243b7e4517da5e5d34cb449051ad41d5a5a Merge: 0f5eab0 9cd1508 Author: Dom Heinzeller Date: Sat Oct 13 14:15:46 2018 -0600 Merge pull request #5 from climbfuji/ruclsm_bugfix_namphysics RUC LSM bugfix for NAM physics commit 9cd150868c57be1a74cc90e1408ce659f314e671 Author: Dom Heinzeller Date: Sat Oct 13 22:10:50 2018 +0200 io/FV3GFS_io.F90: bugfix, wrapping the 'if' statements in #ifdef CCPP only prevents compiler errors for NAM physics commit 0f5eab09cb9b024bb27b09022a1fd69d97657170 Merge: 4178777 17c8cf7 Author: tanyasmirnova <38667904+tanyasmirnova@users.noreply.github.com> Date: Fri Oct 12 10:15:30 2018 -0600 Merge pull request #4 from climbfuji/ruclsm_dom_mods RUC LSM - Dom's mods commit 17c8cf7918bccfe4651d9fb912fb321e64cbf66d Merge: 1c5a452 4178777 Author: Dom Heinzeller Date: Fri Oct 12 14:00:27 2018 +0200 Merge branch 'ruclsm' of https://github.com/tanyasmirnova/FV3 into ruclsm_dom_mods commit 1c5a452a2a2e17510c9a1de5cc40339b280d89e1 Author: Dom Heinzeller Date: Thu Oct 11 15:24:01 2018 -0600 io/FV3GFS_io.F90: removed commented out code (not working) to output RUC LSM variables as diagnostics commit c51f4c6cb9edda2b95c94b6252f22dc84c79e844 Author: Dom Heinzeller Date: Thu Oct 11 15:23:27 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: remove unused variables from Statein, Control and Interstitial type commit a43beb4edb8ed0acf2d2d9585ad605351281082d Author: Dom Heinzeller Date: Thu Oct 11 15:19:57 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: remove unused local variables, remove RUC-specific logic of calculating nlcat/nscat into RUC driver commit 4178777e3a7a4ed9e02290d142b27a4993bf0878 Author: tanya.smirnova Date: Thu Oct 11 16:41:36 2018 +0000 Removed variable albedo as unnecessary. Added standard names to variables alvwf and alnwf, as they will be used in RUC LSM to compute surface albedo without effect of snow. commit e469b3f2a57a15e67deec22a698648c91ce63fb9 Merge: bde7146 c288cbb Author: Dom Heinzeller Date: Wed Oct 10 14:01:07 2018 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into ruclsm_dom_mods commit ca3465e51896e0dd6fd3a9b13e55f6ea37457fb8 Author: Man.Zhang Date: Wed Oct 10 13:33:45 2018 -0600 minor changes commit c288cbb1c33d80ca5a1681759e16f10550fc7e8b Merge: 4c091c5 d8a4bfd Author: Dom Heinzeller Date: Wed Oct 10 08:55:50 2018 -0600 Merge pull request #87 from climbfuji/gf_haiqinli_with_mods_from_dom CCPP-compliant Grell-Freitas convection scheme commit bde7146f7746e417ccc151037b76cc85204de6ca Author: tanya.smirnova Date: Tue Oct 9 18:51:32 2018 +0000 Added 'stop' when Model%lsm=Model%lsm_ruc outside of CCPP. commit 47f28a217251d3213b217823b5dde6fe8683e72b Author: tanya.smirnova Date: Tue Oct 9 17:28:47 2018 +0000 Allocate and initialize additional arrays needed for RUC LSM only if Model%lsm == Model%lsm_ruc commit b5d82cf3325fd33c4806742f620ff4bf888687a4 Author: tanya.smirnova Date: Tue Oct 9 17:21:07 2018 +0000 Allocate and initialize additional arrays needed for RUC LSM only if Model%lsm == Model%lsm_ruc commit 26d76a3d5a841e1d03619d83508cd4b5f289a323 Author: tanya.smirnova Date: Tue Oct 9 17:16:29 2018 +0000 Removed option A in calling RUC LSM. commit 8d017f9e80e728a787207c3659737613a105c206 Author: tanya.smirnova Date: Tue Oct 9 17:09:57 2018 +0000 Use RUC LSM soil variables in diagnostics. commit d8a4bfdf18c8beb9cb07ce5675349eef70bbe1c9 Merge: 585f102 4c091c5 Author: Dom Heinzeller Date: Fri Oct 5 17:22:40 2018 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into gf_haiqinli_with_mods_from_dom commit 585f102870a70eb4bc8fee2827942881d76107c7 Author: Dom Heinzeller Date: Fri Oct 5 17:13:38 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90 cleanup: move interstitial code into gf_driver_pre/post routines, update documentation and name of DDT containing errmsg/errflg, prevent calling GF in non-CCPP build, move gf_driver_post to end of GFS_physics_driver commit 1788a1e1afb4ed0681be667fd46774c70e060815 Author: Dom Heinzeller Date: Fri Oct 5 17:11:00 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90 cleanup: correct standard_name typo, rearrange variable declarations, fix indents, allocate GF-specific arrays only if needed, consistency check that GF deep and shallow convection are always called together commit 4c091c5ea867e176de60f78b4b5bb82f84080ef1 Merge: 681a22a c3d7c4b Author: Dom Heinzeller Date: Fri Oct 5 16:57:25 2018 -0600 Merge pull request #85 from climbfuji/NEMSfv3gfs_mp_thompson_dev Aerosol-aware Thompson microphysics commit b1ca63eddc2b07900b701c6929c3780095bbd858 Merge: 0ecc005 681a22a Author: Dom Heinzeller Date: Fri Oct 5 10:38:44 2018 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into HEAD commit c3d7c4bbf96d713f955edb6321b67fa383905702 Author: Dom Heinzeller Date: Fri Oct 5 06:24:55 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: remove debugging print statements, remove erroneous extra treatment of tracers (mistakenly added code to not diffuse certain tracers in one place in GFS_physics_driver, but not in others; it turns out that this breaks the MG scheme and is also not required for Thompson) commit c99cc7043cafcb128412f672dc4bba6bc27d3300 Author: Dom Heinzeller Date: Fri Oct 5 06:21:56 2018 -0600 atmos_cubed_sphere/model/fv_dynamics.F90: remove debugging print statements commit bd7500d4815a7303060e27e9858f6d78751f1670 Author: Dom Heinzeller Date: Fri Oct 5 06:21:07 2018 -0600 atmos_cubed_sphere/driver/fvGFS/atmosphere.F90: remove debugging print statements commit eeedc5715bbb151faf68ab4074e4dceee2a72ec2 Merge: 0e445bc 681a22a Author: Dom Heinzeller Date: Fri Oct 5 06:19:26 2018 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into NEMSfv3gfs_mp_thompson_dev commit 681a22a537d4e0fe017063f4aa0e93a0bd426b90 Merge: a262f30 db78c2b Author: grantfirl Date: Thu Oct 4 10:38:13 2018 -0600 Merge pull request #81 from grantfirl/SHOC SHOC CCPP-compliancy commit 0ecc0058ed93e24549422ec8761f784f7ced61d8 Author: haiqin.li Date: Thu Oct 4 15:52:31 2018 +0000 "update GF to be independent of microphysics" commit 0e445bcfbbb7ff78258766676f50fdfc92cf3c1c Merge: 664eda9 a262f30 Author: Dom Heinzeller Date: Tue Oct 2 13:56:15 2018 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into NEMSfv3gfs_mp_thompson_dev commit 1e611a5ea81da9b570e5cc8fc8d07b74ba7f351d Author: Man.Zhang Date: Mon Oct 1 21:32:44 2018 -0600 it is a work in progress. commit 66e187201026dab2f75e2e472c85bf81d10ec83e Author: tanya.smirnova Date: Mon Oct 1 22:55:30 2018 +0000 Option to use RUC soil variables is added, but for now commented out. commit 9c425d2d9e9c81c1677bcbe46003fd4de6d5d17b Author: tanya.smirnova Date: Mon Oct 1 22:53:05 2018 +0000 Fixed typo. Please enter the commit message for #your changes. Lines starting commit 400e6a3348b24959d09099d1e019641c5ebe10ce Author: tanya.smirnova Date: Mon Oct 1 22:49:07 2018 +0000 Removed arrays smsoil_lsm, slsoil_lsm and stsoil_lsm and also smsoil, slsoil and stsoil when CCPP used. commit db78c2b82bb0639b00c8e8bf4a15da5e85c4caf7 Merge: 1bd02b0 a262f30 Author: Grant.Firl Date: Mon Oct 1 16:44:13 2018 -0600 Merge branch 'gmtb/ccpp' into SHOC commit 2d0d1e9fe651fb10dbec690b17515ff35efc7be8 Author: tanya.smirnova Date: Mon Oct 1 21:43:14 2018 +0000 RUC LSM implementation. Work in progress, do not use this code yet. commit 5308bb2f2e10c51e9c2116f966262c4c776f07ad Author: Man.Zhang Date: Mon Oct 1 15:04:19 2018 -0600 cs_conv_pre is B4B commit a2fb770ac496e34bc53b04ab8fe5ec75d35b3af5 Author: haiqin.li Date: Mon Oct 1 20:41:27 2018 +0000 "add comment that if imfshalcnv==3, GF shallow convection is called in gf_driver" commit a0a295397912d0774b3d60fa85550d1a572c3319 Author: Man.Zhang Date: Mon Oct 1 14:29:45 2018 -0600 cs_conv_pre is B4B. commit a262f306842572f5f730b6476eefcc70b24b83ad Merge: b565bb1 55988fa Author: Dom Heinzeller Date: Mon Oct 1 08:22:12 2018 -0600 Merge pull request #78 from mzhangw/ozphys2015 Ozphys2015 with new ozone fix file commit 634e9c1676a1d7d84c1f66837b80f5cb03ee4486 Author: Man.Zhang Date: Fri Sep 28 16:04:35 2018 -0600 combine ccpp csawmg and ozphys_2015 commit f753608818c377ed109a10b06a4bc9ffd12c5805 Merge: b565bb1 e22e835 Author: Man.Zhang Date: Thu Sep 27 15:38:12 2018 -0600 Merge commit 'refs/pull/82/head' of https://github.com/NCAR/FV3 into csconv commit e22e83500cc92d277b6e6acada39ddac9a820185 Author: Julie Schramm Date: Tue Sep 25 22:23:09 2018 +0000 Add all variables passed into cs_conv pre, run and post for clarity Comment out intent(out) variables before call to ccpp_physics_run Use ncstrac from GFStypedefs Remove IPD_Interstitial(nt)%ntr from GFS_typedefs.F90 commit 55988fad4ff0a671ba484535c2c4d3454f4b8fc3 Merge: 143e712 b565bb1 Author: Man.Zhang Date: Thu Sep 20 08:38:05 2018 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into ozphys2015 commit 1bd02b08908618badd08e43f61fec7a55754aabf Merge: db8720e b565bb1 Author: Grant.Firl Date: Wed Sep 19 20:14:11 2018 -0600 Merge branch 'gmtb/ccpp' into SHOC commit db8720e74a74c3e5935ef9b507b88251c0a3eeb1 Author: Grant.Firl Date: Wed Sep 19 16:24:06 2018 -0600 reduced dimensionality of skip_macro in GFS_physics_driver commit de348786e2cc88b05b038a2c1b3f3e8c8a2b45ba Author: Julie Schramm Date: Wed Sep 19 22:15:08 2018 +0000 Remove 'run' from name passed into call to ccpp_physics_run. commit d452707a568e75be38c46272799a342700bf45dd Author: Grant.Firl Date: Wed Sep 19 15:37:37 2018 -0600 add hybrid calls for moninshoc and shoc commit 143e71233f44e1a10ac63ba5fd17b4e0d531e01b Author: Man.Zhang Date: Wed Sep 19 14:34:49 2018 -0600 fix a bug commit 387bd65dcbd12b359782896f1a12d2a59b4f7a96 Author: Man.Zhang Date: Wed Sep 19 13:53:13 2018 -0600 seperate dq3dt(:,:,6:9) commit 2f785e12936a245521143e1315d56441a41672e4 Author: Grant.Firl Date: Tue Sep 18 12:52:27 2018 -0600 update GFS_typedefs.F90 for SHOC-related schemes; edited calls to GFS_suite_interstitial_1 and 2 in GFS_physics_driver.F90 commit b565bb1d901ee1c2bf1055b7a5a16d0e1ec97384 Merge: 4af8390 b256f00 Author: Dom Heinzeller Date: Tue Sep 18 13:05:53 2018 -0600 Merge pull request #80 from climbfuji/ccpp_static_build CCPP static build commit 664eda959909b6853607eca93a00b4d4101f2714 Author: Dom Heinzeller Date: Tue Sep 18 11:20:34 2018 -0600 io/FV3GFS_io.F90: revert previous change of commenting out debug prints when writing 3d fields to disk commit ff9301110f97beecbe25c71217154dfd606799ba Author: Dom Heinzeller Date: Tue Sep 18 11:19:28 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: add new array nifa2d, remove duplicates for imp_physics_mg, replace old rainfall variables for Thompson MP with standardized arrays rainmp, icemp, graupelmp, snowmp commit ee8bf5d51e13d3b014cf0e560948774cc42f6d0d Author: Dom Heinzeller Date: Tue Sep 18 11:17:44 2018 -0600 atmos_cubed_sphere/model/fv_dynamics.F90: commented out debugging code for aerosols commit 08425ab208dc7b02e6c5b5ff8bfaf911d68f352b Author: Dom Heinzeller Date: Tue Sep 18 11:16:45 2018 -0600 atmos_cubed_sphere/driver/fvGFS/atmosphere.F90: commented out debugging code for aerosols commit 65aacbd209419a8816c3122041e3a9763dda00f5 Author: Dom Heinzeller Date: Tue Sep 18 11:16:32 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: merge in latest master, with commented-out debugging print statements for aerosols commit f4c403a2a31fcf18a65ad3b8c8a2a5c3f0226c98 Merge: 1e0708f 4af8390 Author: Julie Schramm Date: Mon Sep 17 18:04:39 2018 +0000 Merge branch 'gmtb/ccpp' into features/cs_conv_for_ccpp commit cb8207dba49f1a39936a324214a8e97f2d91ebee Merge: 8eb7987 4af8390 Author: Dom Heinzeller Date: Mon Sep 17 10:29:04 2018 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into NEMSfv3gfs_mp_thompson_dev commit b256f00a7159904b001cb3207b6b28341248b77f Merge: ae04891 4af8390 Author: Dom Heinzeller Date: Mon Sep 17 09:50:59 2018 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into ccpp_static_build commit ae04891eb9e098b94b71f81d41561f949a0befe3 Author: Dom Heinzeller Date: Mon Sep 17 09:14:32 2018 -0600 ipd/IPD_CCPP_driver.F90: remove extra include statement for static build, not needed commit 0f0729a14a551757977386b01140ffacb0db0205 Author: Dom Heinzeller Date: Mon Sep 17 09:13:32 2018 -0600 atmos_cubed_sphere/model/fv_mapz.F90: add support for static CCPP option, incl. call group fast_physics instead of individual scheme fv_sat_adj commit 72c70d585055e735b08f4c7bf6dca0f40944ebbe Author: Dom Heinzeller Date: Mon Sep 17 09:11:59 2018 -0600 atmos_cubed_sphere/driver/fvGFS/atmosphere.F90: add support for static CCPP option commit 4af839045dffd55b7b94bcc933fa126d7bed093c Merge: d226ec2 ebfdc08 Author: Dom Heinzeller Date: Fri Sep 14 13:41:44 2018 -0600 Merge pull request #79 from climbfuji/simplify_gfdlmp-20180914 Simplify GFDL MP fast physics commit 89bdefecf6ad7a7ab5489bedb6c84ddeb30cd53a Merge: 9d444fa 76daf01 Author: Dom Heinzeller Date: Fri Sep 14 09:39:11 2018 -0600 Merge branch 'pgi_fix_20180913' of https://github.com/climbfuji/FV3 into ccpp_static_build commit 9d444fa658d633350b02a2819e3737d502b68a4b Merge: b3e06da ebfdc08 Author: Dom Heinzeller Date: Fri Sep 14 09:38:50 2018 -0600 Merge branch 'simplify_gfdlmp-20180914' of https://github.com/climbfuji/FV3 into ccpp_static_build commit d226ec2ad16d41234e659dbdf4e57fce4d4483d5 Merge: 66021df 76daf01 Author: Dom Heinzeller Date: Fri Sep 14 09:30:15 2018 -0600 Merge pull request #77 from climbfuji/pgi_fix_20180913 Re-enable PGI support commit ebfdc08277342d48abc53921e414ef802490a6af Author: Dom Heinzeller Date: Fri Sep 14 09:18:44 2018 -0600 atmos_cubed_sphere/model/fv_dynamics.F90: simplifcation of CCPP version of fv_sat_adj; instead of calling fv_sat_adj_pre, do initialization of arrays as in the original code commit 4510d7247c3e64cb7fbf4b3788348edc89703b86 Author: Man.Zhang Date: Thu Sep 13 16:19:33 2018 -0600 add ozphys_2015 option B commit 76daf0113e8b7ea9da23f28f41026787eff53954 Author: Dom Heinzeller Date: Thu Sep 13 15:07:01 2018 -0600 module_fcst_grid_comp.F90: macro ESMF_ERR_ABORT too long for PGI compiler, shorten by removing the log entry in the ESMF error logs commit 1e0708f5face90e03e0271cdf7cf27a72f9d7f6e Author: Julie Schramm Date: Wed Sep 12 19:00:58 2018 +0000 Align some table rows in GFS_typedefs.F90 commit b3e06da96e8dfcf9c99382084ed4b21aad8aa447 Author: Dom Heinzeller Date: Fri Sep 7 22:39:20 2018 -0600 ipd/IPD_CCPP_driver.F90: minimal changes to import ccpp_physics_{init,run,finalize} from different module for static build commit bcd5bb7a63d72cb44386770b71c7e2c52438795d Author: Dom Heinzeller Date: Fri Sep 7 15:56:26 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: add namelist options oz_phys and oz_phys_2015, implement logic to choose correct values for levozp and oz_coeff depending on ozone physics option commit 66021dfa22578a4984a12f393a53082d5a347e15 Merge: eab1ffb ff0d17c Author: Dom Heinzeller Date: Fri Sep 7 15:17:29 2018 -0600 Merge pull request #75 from climbfuji/portability_gnu81_20180904 Portability features for gfortran 8.1 commit 2fbe9bb9f5bde96761072adc45e6c7a36d85e619 Author: haiqin.li Date: Fri Sep 7 20:54:32 2018 +0000 "update following Dom's suggestion" modified: GFS_physics_driver.F90 commit cb1e909fc1ec5c652678b20573e8184112acc2ef Author: haiqin.li Date: Fri Sep 7 20:01:26 2018 +0000 "update to include GF through Option B" modified: GFS_physics_driver.F90 commit 85fef9d976d6d4c5ec5a9700a860e6a867b1824f Author: climbfuji Date: Tue Sep 4 16:04:47 2018 -0600 gfsphysics/physics/sfcsub.F: workaround for gfortran 8.1, crashes when declaration 'logical*1 lbms(mdata)' is used commit bbcea9dfa33acdf40ae5bd06b84941711c5b7eea Author: climbfuji Date: Tue Sep 4 16:02:45 2018 -0600 gfsphysics/physics/h2oc.f and gfsphysics/physics/co2hc.f: update for gfortran 8.1, no longer accepts scalars as input arguments for arrays commit 58251b04d99d9abed449901478394d700042a591 Author: Julie Schramm Date: Wed Sep 5 12:01:15 2018 -0600 - Remove extra #endif for sfc_nst and cs_conv - Remove Option A for cs_conv - Pass rain1 out of cs_oncv_run with correct units - Remove rain1 conversion from cs_conv_post commit ff0d17cfda58d25a560d46082514f48f4f579aaa Merge: d9b57cc eab1ffb Author: climbfuji Date: Tue Sep 4 16:11:46 2018 -0600 Merge branch 'gmtb/ccpp' of https://github.com/NCAR/FV3 into portability_gnu81_20180904 commit d9b57cc4e56111dea2e3f21f661d6f194de55d47 Author: climbfuji Date: Tue Sep 4 16:04:47 2018 -0600 gfsphysics/physics/sfcsub.F: workaround for gfortran 8.1, crashes when declaration 'logical*1 lbms(mdata)' is used commit 04f3b18a832669c29ae53649a18d5275fb8bab6b Author: climbfuji Date: Tue Sep 4 16:02:45 2018 -0600 gfsphysics/physics/h2oc.f and gfsphysics/physics/co2hc.f: update for gfortran 8.1, no longer accepts scalars as input arguments for arrays commit 48e71dc65f658e426dffe32aa0f4be650410242a Merge: 6174aab eab1ffb Author: Julie Schramm Date: Tue Sep 4 12:13:27 2018 -0600 Merge branch 'gmtb/ccpp' into features/cs_conv_for_ccpp commit eab1ffb9ffdb5963c7a72f18d15fd44530e05520 Merge: 4a73f4d 8a6b2d9 Author: Laurie Carson Date: Tue Sep 4 09:16:15 2018 -0600 Merge pull request #74 from NCAR/climbfuji-patch-1 Update README.md for gmtb/ccpp branch commit 8a6b2d96788a2df5066b557b8dedab09d27e2f92 Author: Dom Heinzeller Date: Mon Sep 3 07:09:59 2018 -0600 Update README.md Remove unmaintained history in README.md commit 4a73f4d83ad1ba1ac6963ee7fb330c80baea19f5 Merge: 145acbb d7a21c9 Author: Dom Heinzeller Date: Mon Sep 3 06:42:01 2018 -0600 Merge pull request #72 from climbfuji/update_github_ccpp_from_vlab_master_20180831 Update FV3 CCPP branch with changes from VLAB master 20180831 commit d7a21c969d784770045f395432fb3f8ae6e9ebb2 Author: jun.wang Date: Thu Aug 30 20:54:54 2018 +0000 FV3: this commits #refs 54358, unit conversion and remove land sea mask in several physics output fields and #refs 54539, Regional boundary file update interval commit 145acbb16083d4b690b3f65b5b14b2a24295092f Merge: f30401a 4048b71 Author: Dom Heinzeller Date: Fri Aug 31 08:47:21 2018 -0600 Merge pull request #70 from climbfuji/merge_master_vlab_to_ccpp_github_20180830 Merge VLAB master into Github CCPP 20180830 commit 4048b71318dcb1dbfe9780eae2e34444fab4c09b Author: Dom Heinzeller Date: Thu Aug 30 20:38:19 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: bugfix for CCPP, arrays for which slices are added to and retrieved from the cdata structure must be allocated (or the compiler will throw a runtime error in debug mode) commit 6174aaba63b7b938a772027acdf2de1f8b78bf27 Author: Julie Schramm Date: Thu Aug 30 16:28:49 2018 -0600 Fix do_aw in argument table to match GFS_generic.F90 and GFS_typedefs.F90 Fix sppt_wts in argument table to match GFS_stochastic.F90 Passes ccpp_prebuild.py. commit adb84126e4c8b4422a5d4c1b48d7f1339aa1e32f Merge: af13df4 f30401a Author: Julie Schramm Date: Thu Aug 30 15:35:50 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' into features/cs_conv_for_ccpp commit f8244fadb3d583f05310536a6400e016454dfa19 Author: climbfuji Date: Mon Aug 27 10:23:38 2018 -0600 FV3: this commit #refs 54154 commit f30401a050f5eda45534022566ebd46d69c64d7e Merge: 9c101b9 398ce28 Author: Dom Heinzeller Date: Mon Aug 27 11:53:10 2018 -0600 Merge pull request #68 from climbfuji/NEMSfv3gfs_ccpp_final_cleanup_and_ccpp_only_code_20180824 NEMSfv3gfs standalone CCPP runs commit 398ce287ab8e254918e6f12f201752c05861bbe4 Merge: dc425ce 9c101b9 Author: Dom Heinzeller Date: Mon Aug 27 08:20:11 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into NEMSfv3gfs_ccpp_final_cleanup_and_ccpp_only_code_20180824 commit dc425ce3c17f3d3d4548146650c6d68a1a2394ff Author: Dom Heinzeller Date: Fri Aug 24 20:00:55 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: remove 'Option A', initialize local variables to zero to be able to compare no-CCPP, hybrid-CCPP and standalone-CCPP output, add missing call to GFS_suite_interstitial_2 (updated), add call to new sfc_diag_post for CCPP build (contains some code previously in GFS_surface_generic_post), move runoff-lssav code into GFS_surface_generic_post commit 9c101b9526126a80a348dfee6db4af0142f9918d Merge: a6d8214 cd8f0c3 Author: Dom Heinzeller Date: Fri Aug 24 09:45:12 2018 -0600 Merge pull request #67 from climbfuji/NEMSfv3gfs_ccpp_final_cleanup_and_ccpp_only_code_20180823 NEMSfv3gfs - final cleanup of interstitial code commit 805eaac8d45f194fc7b5ae92bdfa4a8a4dbeb906 Author: Dom Heinzeller Date: Fri Aug 24 09:31:04 2018 -0600 GFS_physics_driver.F90: unify logging output, remove '_run' everywhere commit cd8f0c35d48ddc042ae108f1b371b6eef2e32802 Author: Dom Heinzeller Date: Fri Aug 24 00:04:05 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: add call to GFS_stateout_update for CCPP build commit 5fe007f5ba391b77911f90600708eff4e43dd241 Author: Dom Heinzeller Date: Thu Aug 23 22:12:19 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: remove interstitial code that updates stochastic physics / surface perturbation variables from CCPP build (now in GFS_MP_generic_post) commit 72a119496f0d5b2b084077146b309495b4488f77 Author: Dom Heinzeller Date: Thu Aug 23 20:34:03 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: remove import of cdfnor and declaration of cdfz for CCPP build, update comments, remove initialization of stochastic physics / surface perturbation variables from CCPP build (now in GFS_surface_generic_pre), remove redundant code that is now included in schemes, move finalization of stochastic physics / surface perturbation code further up for merging with GFS_MP_generic_post commit 51a90736a4a5df0b1e97747d4f046a760dc53bbe Author: Dom Heinzeller Date: Thu Aug 23 20:27:57 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: rename gfsphysics/GFS_layer/GFS_typedefs.F90(_flipped) to weights_for_stochastic_sppt_perturbation(_flipped), add missing metadata for stochastic physics/surface perturbations in GFS_generic_pre_run, move standard_name number_of_surface_perturbations from Coupling%nsfcperts to Model%nsfcperts (latter gets used) commit 9c93498c49aaaac09c17b58a24696959ec428497 Author: Dom Heinzeller Date: Thu Aug 23 19:30:21 2018 -0600 atmos_model.F90: replace IPD_step 'physics_step1' with IPD_CCPP_step 'physics' for standalone CCPP build commit f9091b4632f000ea0ea0ecd261ff386e5d9bd487 Author: Dom Heinzeller Date: Thu Aug 23 19:28:46 2018 -0600 ipd/IPD_CCPP_driver.F90: add IPD_CCPP_step 'physics' commit 1c61888dca75c3cb61fbdc4f34e8347b5c3cdd42 Author: Dom Heinzeller Date: Thu Aug 23 19:27:27 2018 -0600 gfsphysics/makefile: remove ./GFS_layer/GFS_driver.F90 from standalone CCPP build commit 1a416262fe326bbb83df0c255bd9ea358cfc162b Author: Dom Heinzeller Date: Thu Aug 23 19:26:00 2018 -0600 gfsphysics/GFS_layer/GFS_driver.F90: remove reference to and propagation of GFS_physics_driver for standalone CCPP build commit 9e567a8fe8e1da29a0a374229e8e28bdc80ca6e2 Author: Dom Heinzeller Date: Thu Aug 23 19:24:14 2018 -0600 gfsphysics/GFS_layer/GFS_abstraction_layer.F90: remove physics_step_1 from standalone CCPP build commit af13df43f388535ee08901b4ebdf81846fa654c3 Merge: 901d72d a6d8214 Author: Julie Schramm Date: Thu Aug 23 12:30:49 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' into features/cs_conv_for_ccpp commit 901d72d20db42d611c6ffbe0de77cdb5ff8c5775 Author: Julie Schramm Date: Thu Aug 23 11:55:45 2018 -0600 Add comments regarding unit conflicts between cs_conv, GFS_physics_driver and GFS_typedefs: rain1, dt_mf, dd_mf, and ud_mf. Hopefully these will be resolved after the v2 release. commit a6d82146d37b78049560620408e5d6e8a137c7c3 Merge: a98e7e6 9069dac Author: Dom Heinzeller Date: Thu Aug 23 10:17:34 2018 -0600 Merge pull request #66 from climbfuji/cleanup_rainfall_and_more_20180822 Cleanup rainfall variables (and more) 08/22/2018 commit 9069dac052d178567cd50311ae1ee715cbf560f2 Merge: fe059a4 a98e7e6 Author: Dom Heinzeller Date: Wed Aug 22 22:25:00 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into cleanup_rainfall_and_more_20180822 commit a98e7e6374b58279a28d34a65577dd0d47d1326b Merge: f50d267 f6d8256 Author: Dom Heinzeller Date: Wed Aug 22 22:23:19 2018 -0600 Merge pull request #65 from grantfirl/GFS_MP_generic_pre_update GFS_MP_generic_pre_update commit fe059a4d65dcee16ba702f1aeb774cc403c4a40c Merge: 44edf7f f6d8256 Author: Dom Heinzeller Date: Wed Aug 22 22:19:11 2018 -0600 Merge branch 'GFS_MP_generic_pre_update' of https://github.com/grantfirl/FV3 into cleanup_rainfall_and_more_20180822 commit 44edf7f72e13a2a170d2a84beec2eaa4dd1fa210 Author: Dom Heinzeller Date: Wed Aug 22 22:07:39 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: replace Interstitial%rainst with Interstitial%prcpmp, remove gfdl_cloud_microphys_{pre,post} and update several comments commit a3e7c364164ab2f211e31bb3a10cc25321d68d6b Author: Dom Heinzeller Date: Wed Aug 22 21:11:30 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: replace Interstitial%rainst with Interstitial%prcpmp, remove Interstitial%{rain0,ice0,snow0,graupel0} and introduce Interstitial%{rainmp,icemp,snowmp,graupelmp} with correct units and names commit f6d825678da793341a5dc84ada97632fcbd98467 Merge: 99ac391 f50d267 Author: Grant.Firl Date: Wed Aug 22 15:38:50 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' into GFS_MP_generic_pre_update commit 99ac39101aaaaf5868444c14bfdc10b3144f712f Author: Grant.Firl Date: Wed Aug 22 14:06:06 2018 -0600 change save_qv/c/i to save_q with appropriate indices in GFS_physics_driver commit 50bcef0f8bc2cec47075750a010deb3cac1b7f5d Author: Grant.Firl Date: Wed Aug 22 13:18:37 2018 -0600 only allocate save_q instead of save_qv, save_qc, save_qi and save_q and use metadata to point to saved water vapor, cloud water and cloud ice commit f50d267d3010e1d0e3791015a68c2daa379176d5 Merge: b366e6c 12a44aa Author: Dom Heinzeller Date: Wed Aug 22 13:18:02 2018 -0600 Merge pull request #64 from climbfuji/memcheck_utility_and_cleanup_soil_vars Memory checking utility for non-CCPP and CCPP builds, remove local interstitial soil variables from GFS_physics_driver for CCPP build commit 013705e60a682511cd53c3c2c9b4c74488a23a33 Author: Grant.Firl Date: Wed Aug 22 12:38:14 2018 -0600 add CCPP option B call for GFS_MP_generic_pre; update standard name in GFS_typedefs commit 12a44aa45e79c610bfac3b7cf86c029eb60bd0d9 Author: Dom Heinzeller Date: Wed Aug 22 11:34:53 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: bugfix, call memcheck for CCPP build only if preprocessor flag MEMCHECK is set commit f6a498a2a067a265e785e3ac96f54abca2a0d64c Author: Dom Heinzeller Date: Wed Aug 22 11:31:49 2018 -0600 ipd/IPD_CCPP_driver.F90 and atmos_model.F90: bugfix for thread safety when MEMCHECK is enabled, process all blocks with first thread to avoid dead locks commit 28a095d85d4c180f8f5b0ae27d2dae4c5232aec9 Merge: 3437fb6 b366e6c Author: Dom Heinzeller Date: Wed Aug 22 06:44:29 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into memcheck_utility_and_cleanup_soil_vars commit b366e6cb4b557bdc594a9060f61457a4c6e97348 Merge: a6fb916 d696cef Author: Dom Heinzeller Date: Wed Aug 22 06:39:28 2018 -0600 Merge pull request #62 from climbfuji/ccpp_integration_branch_vlab_master_merge_20180821 Merge of VLAB master 08/20/2018 into Github CCPP integration branch commit d696cef21f48c7e76c57e087ee310baa585c4a4d Merge: 367dcc9 a6fb916 Author: Dom Heinzeller Date: Wed Aug 22 06:35:30 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into ccpp_integration_branch_vlab_master_merge_20180821 commit a6fb916795dfc734f1fd110d4ab19caf8dfd0ba9 Merge: 00be71e c227bfe Author: Dom Heinzeller Date: Wed Aug 22 06:31:35 2018 -0600 Merge pull request #63 from grantfirl/MP_interstitial_cleanup_3 Mp interstitial cleanup 3 commit 367dcc9d71e35fc53624f2b6eb47220639401547 Merge: c9eec84 c227bfe Author: Dom Heinzeller Date: Tue Aug 21 21:47:27 2018 -0600 Merge branch 'MP_interstitial_cleanup_3' of https://github.com/grantfirl/FV3 into ccpp_integration_branch_vlab_master_merge_20180821 commit c227bfe54d031585662a7f78106d174eb568d8fa Author: Grant.Firl Date: Tue Aug 21 13:22:18 2018 -0600 add CCPP option B call for GFS_suite_interstitial_3 in GFS_physics_driver.F90 commit 3437fb6244fc189a5d373c784c08114964edbcc5 Author: Dom Heinzeller Date: Tue Aug 21 15:09:19 2018 -0600 (1) Add logic to pass commglobal from atmos_model.F90 to the initialization routine of GFS_control_type (similar to CCPP) using the preprocessore directive MEMCHECK, add calls to non-CCPP memcheck utility to atmos_cubed_sphere/model/fv_dynamics.F90 (works for both CCPP and non-CCPP builds), add calls to non-CCPP or CCPP memcheck utility to gfsphysics/GFS_layer/GFS_physics_driver.F90 (2) Remove local interstitial variables stsoil, smsoil, slsoil from CCPP build (gfsphysics/GFS_layer/GFS_physics_driver.F90) commit 1d6960227fca100d1bc66be82ac73db8f504e798 Merge: da20b9c f568747 Author: Grant.Firl Date: Tue Aug 21 10:43:21 2018 -0600 merge in MP_interstitial_cleanup_2 commit f5687475fa6193ec097d3e80f28b84c927d65d67 Merge: 9eb04f7 00be71e Author: Grant.Firl Date: Tue Aug 21 10:11:02 2018 -0600 merge in latest NEMSfv3gfs_master_ccpp_integration commit c9eec84c4694059b746fd6e44da3d8cd39f31f82 Author: Dom Heinzeller Date: Mon Aug 20 16:03:10 2018 -0600 Merge of VLAB master 08/20/2018 into Github master. From Jun Wang: Following changes were committed to the NEMSfv3gfs and FV3 repositories: Task 54063: fix ice fraction on lake points in coupled mode When running FV3 in coupled system FV3-MOM6-CICE6, the ice fraction on lake points are removed when updating sea ice fraction from sea ice model. Code changes are made to not change the ice fraction on lake points. Task 54077: add capability to output GFDL reflectivity in FV3 3D dyn history file GFDL diagnostic program computes the reflectivity fields for GFDL MP, code changes are made in FV3 code to output these reflectivity fields in FV3 3D dynamics history file through the write grid component. Above code changes do not alter current baseline results. Regression test passed on the platforms wcoss phase1/2,cray, theia and gaea (c3,c4). commit 00be71ed4893ea96047ab243b51f3122c2f01088 Merge: 1257f84 397f8a1 Author: grantfirl Date: Tue Aug 21 09:32:18 2018 -0600 Merge pull request #58 from grantfirl/MP_interstitial_cleanup Mp interstitial cleanup commit da20b9c7c7f6901594f0ef584a4603369e0951a7 Author: Grant.Firl Date: Mon Aug 20 21:28:50 2018 -0600 add standard names to GFS_typedefs for GFS_suite_interstitial_3 commit 9eb04f749fad3a9eaf9026eff68f4abb0abf97eb Author: Grant.Firl Date: Mon Aug 20 16:33:54 2018 -0600 added if test for Thompson in interstitial copying commit 3fd68455ee3210193377308ecacaf55e736ba7f4 Author: Grant.Firl Date: Mon Aug 20 14:07:39 2018 -0600 add call to GFS_suite_interstitial_4 in GFS_physics_driver.F90 commit 8cc65cf2ec99aeaeb9a36ada584b10523db325e8 Merge: 88ffc35 1257f84 Author: Grant.Firl Date: Mon Aug 20 10:27:07 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' into MP_interstitial_cleanup_2 commit 397f8a1f82dac5f2951ef038bbe7a58e42b5ed14 Merge: 4b6e41c 1257f84 Author: Grant.Firl Date: Mon Aug 20 09:42:47 2018 -0600 merge in latest NEMSfv3gfs_master_ccpp_integration branch commit 1257f8490a84275d5729af92bebf369b54b2c04c Merge: ee5283c aeb40c7 Author: Dom Heinzeller Date: Mon Aug 20 09:16:05 2018 -0600 Merge pull request #57 from climbfuji/NEMSfv3gfs_add_teal_colored_schemes_cleanup_and_optimize_20180817 Add calls to CCPP-compliant physics, cleanup and optimize 2018/08/17 commit 88ffc3532de10dbc21db92f86d221e128a4e6f02 Author: Grant.Firl Date: Sun Aug 19 21:36:31 2018 -0600 applied changes to GFS_typedefs to call GFS_suite_interstitial_4 through the CCPP and minor prep for GFS_physics_driver (changes forthcoming in subsequent commit) commit 4b6e41c374e8180adbe096f07b92596462f648c4 Author: Grant.Firl Date: Sat Aug 18 22:03:59 2018 -0600 removed interstitial copy for several GFDL_MP-only variables commit 3182a4cb5a3c279222fbd2a450deeb0409a370a1 Author: Grant.Firl Date: Sat Aug 18 21:48:02 2018 -0600 fix compilation errors and add if test for GFDL_MP in order to copy to interstitial DDT values commit 764e1315d58bd44aa1100478c0fbbc942c37e2ad Author: Grant.Firl Date: Fri Aug 17 23:45:28 2018 -0600 added option B for GFS_MP_generic_post commit aeb40c77c11150cad141a750a9abbaab8140b273 Author: Dom Heinzeller Date: Fri Aug 17 18:35:03 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: rename specific_humidity_at_lowest_model_layer to water_vapor_specific_humidity_at_lowest_model_layer (similar for specific_humidity_at_lowest_model_layer_for_diag) for consistency, add missing metadata for updated sfc_diag scheme (now uses stateout instead of statein), remove unused interstitial variables and metadata Interstitial%{dq3dt,cice,tice,zice} commit fd1dbcf2ce8043d3105ac8646e36bba6ea2f0abd Author: Dom Heinzeller Date: Fri Aug 17 18:30:51 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: add calls to CCPP versions of GFS_suite_stateout_reset, sfc_diag, get_prs_fv3, get_phi_fv3, sfc_sice, sfc_sice_post, precpd; cleanup: remove unused module imports and unused variables from CCPP build; optimization: use Sfcprop%{hice,fice,tisfc} instead of interstitial variables {zice,cice,tice}, use Diag%dq3dt instead of interstitial variable dq3dt(_loc), remove unused argument h2op (=dqdt_loc(:,:,1:3)) from CCPP-version of h2ophys; add comment for bug related to use of work3 in non-CCPP code, add comments for further cleanup work; fix typos and debugging messages, replace IPD_Control with Model, fix formatting (indents) commit 422d203d3cb2fbf2fde195dbe46ad157153c742b Author: Dom Heinzeller Date: Fri Aug 17 18:17:16 2018 -0600 gfsphysics/makefile: remove CCPP-compliant physics from CCPP build commit 630b28661ab20ddddbca713e1b28cf1063647bb0 Author: Dom Heinzeller Date: Fri Aug 17 18:14:14 2018 -0600 ipd/IPD_CCPP_driver.F90: use keyword argument for ierr everywhere commit ee5283c96a5e79eee343cd27761fe0a217a24c90 Merge: 4c96873 ea3a884 Author: Dom Heinzeller Date: Thu Aug 16 20:24:05 2018 -0600 Merge pull request #50 from mzhangw/mp_generic add GFS_gfdlmp_pre, GFS_gfdl_pwat, GFS_zhao_carr_pwat with option B commit ea3a8840cc3ef8ff890316aa2dc849e53d44f580 Merge: e176e50 278b190 Author: Dom Heinzeller Date: Thu Aug 16 19:42:59 2018 -0600 Merge pull request #1 from climbfuji/MP_generic_pre_20180816_based_on_vlab_master_merge_20180815_follow_up_scm Update of MP generic pwat/calpreciptype changes to include latest VLAB master merge, bugfixes commit 278b190063efa5443fd49810f8cf367cfbfd6f3f Author: Dom Heinzeller Date: Thu Aug 16 15:44:12 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: add missing section to calculate pwat for wsm6 in CCPP build, adjust formatting commit 11e7a75c2c8a33c3d90a1f6da05621b719187f01 Author: Dom Heinzeller Date: Thu Aug 16 11:39:58 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: bugfix, use correct value for Interstitial%nncl calculated in Interstitial%create commit 8c793c0c3263c9c38f138d015d96832dfa6730d2 Merge: e176e50 4c96873 Author: Dom Heinzeller Date: Thu Aug 16 11:30:15 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into MP_generic_pre_20180816_based_on_vlab_master_merge_20180815_follow_up_scm commit 4c96873b19cc1f4dde1b48e4b8b4d293f33333ba Merge: 75d95c1 9c5bb27 Author: Dom Heinzeller Date: Wed Aug 15 16:42:59 2018 -0600 Merge pull request #56 from climbfuji/NEMSfv3gfs_merge_changes_from_VLAB_master_20180814 NEMSfv3gfs merge changes from VLAB master into CCPP integration code (08/14/2018) commit 77905cca54eba6b3405acc51082458e25c3a58fb Author: Julie Schramm Date: Tue Aug 14 13:47:21 2018 -0600 Fix comments and write statements for sfc_nst in GFS_physics_driver.F90 Add Option A and B for cs_conv_pre_run, cs_conv_run and cs_conv_post_run Fix standard name and long name of sigmatot and sigmafrac in GFS_typedefs.F90 commit 9c5bb2744055c782574b7de3fe17c014dbcc8eaa Author: Dom Heinzeller Date: Tue Aug 14 09:12:44 2018 -0600 Update of FV3 github master with recent changes from VLAB master (08/14/2018): Summary of changes: atmos_cubed_sphere/model/fv_dynamics.F90: bugfix for call to set_regional_BCs atmos_cubed_sphere/model/fv_regional_bc.F90: add code branches for preprocessor directives USE_COND and MOIST_CAPPA atmos_cubed_sphere/cpl/module_cap_cpl.F90: add missing calls to ESMF_GridDestroy etc. atmos_cubed_sphere/cpl/module_cplfields.F90: formatting changes gfsphysics/GFS_layer/GFS_typedefs.F90: new member lakemsk of GFS_sfcprop_type namphysics/NAM_layer/NAM_typedefs.F90: new member lakemsk of GFS_sfcprop_type (yes, they really call it GFS_sfcprop_type) atmos_model.F90: additional logic for coupling fields fv3_cap.F90: additional logic for coupling fields commit cee8bd087b8382774d59754cfa941e9657073789 Author: Dom Heinzeller Date: Tue Aug 14 09:41:00 2018 -0600 ipd/IPD_CCPP_driver.F90: add note on future improvements of physics initialization commit b9f187c06b5ac158638438d999b344934b8a737d Author: Dom Heinzeller Date: Tue Aug 14 09:39:28 2018 -0600 io/FV3GFS_io.F90: add note to remove calculation of snocvr, this belongs to physics commit 47eeb6ccb99fca26f3b61faa62a52f06bc7ac9e7 Author: Dom Heinzeller Date: Tue Aug 14 09:35:13 2018 -0600 gfsphysics/makefile: remove NOAH LSM, ozphys and h2ophys from CCPP build commit c4ff80ceeb25f8b4a5e9af34a303e19a93dace34 Author: Dom Heinzeller Date: Tue Aug 14 09:34:31 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: add missing metadata for IPD_Interstitial(:) and h2ophys-related variables, add logic to use CCPP version of ozone and h2o coefficients, add logic to use CCPP version of dxmin, dxinv, dxmax and rhcmax commit 848b057b94e38b9d7223b1782ff32d2ea271bc37 Author: Dom Heinzeller Date: Tue Aug 14 09:30:02 2018 -0600 gfsphysics/GFS_layer/GFS_driver.F90: add logic to use CCPP version of dxmin, dxinv, dxmax, rhcmax; remove dq3dt_loc from CCPP build, add CCPP-compliant calls to ozphys and h2ophys, add guard to prevent running ozphys2015 in CCPP build commit 0ce5253f1a963736eeffa18b04a87397de90c5c9 Author: Dom Heinzeller Date: Tue Aug 14 09:27:48 2018 -0600 gfsphysics/GFS_layer/GFS_driver.F90: skip non-CCPP init of ozphys, h2ophys and set_soilveg for CCPP build and add documentation why other init routines still need to be run commit 350e81ac666ebe2044142676e53ae95d2bb8a333 Author: Dom Heinzeller Date: Mon Aug 13 16:41:50 2018 -0600 io/module_wrt_grid_comp.F90: usual bugfix, character arrays with variable length violate the Fortran standard commit 860b6346ec718586b5cb56ebf71af7e73ab68711 Author: Dom Heinzeller Date: Mon Aug 13 16:41:10 2018 -0600 gfsphysics/physics/physcons.f90 -> gfsphysics/physics/physcons.F90: remove rhc_max, dxmin, dxinv, dxmax from CCPP build commit f86b7ff02b2848d1205a913e5de889095cb65a2e Author: Julie Schramm Date: Mon Aug 13 13:55:15 2018 -0600 Fix typos in variables rain1 and otspt in GFS_typedefs.F90 Fix problem with phy_fctd declaration/allocation, it is a Tbd not Interstitial commit 221a55822b11aca1f9940063bf50009c4acc60c0 Merge: 0d52403 75d95c1 Author: Julie Schramm Date: Mon Aug 13 10:44:07 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' into features/cs_conv_for_ccpp commit 0d52403976de3a887f3d56cec9e0bb9b6649388d Author: Julie Schramm Date: Mon Aug 13 10:27:29 2018 -0600 Add sigmafrac to GFS_typedefs.F90 commit e176e507d20f27cc153b9d02ece88a9feb2acdb0 Merge: d781e8c 75d95c1 Author: Man.Zhang Date: Mon Aug 13 10:04:33 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into mp_generic commit 13b81df638c5e701daba5d07cec7d44a4bba43b0 Author: Dom Heinzeller Date: Fri Aug 10 09:30:08 2018 -0600 atmos_model.F90: bugfix for merge of VLAB master commit 1fd47719b454176187bdb2a2c633126bb5dd268b Author: Dom Heinzeller Date: Thu Aug 9 17:06:36 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: add metadata for new variables (from VLAB master merge) commit 0003f3258885fb12562c77208a0d97d5a3a37b76 Author: Dom Heinzeller Date: Thu Aug 9 17:05:37 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: adjust dimensions of dkt, move code that is in CCPP inside ifdef regions (from VLAB master merge) commit dc643862686d8abfdff4624fa2c4341a5447c87e Author: Dom Heinzeller Date: Wed Aug 8 17:15:32 2018 -0600 Merge changes from VLAB/FV3 into GITHUB/FV3 master branch Summary of changes: FV3/atmos_cubed_sphere/driver/fvGFS/atmosphere.F90: regional capabilities option to flip vertical coordinate or not FV3/atmos_cubed_sphere/driver/model/a2v_edge.F90: regional capabilities FV3/atmos_cubed_sphere/driver/model/dyn_core.F90: regional capabilities FV3/atmos_cubed_sphere/driver/model/fv_arrays.F90: regional capabilities initialize components of DDTs as NaN FV3/atmos_cubed_sphere/driver/model/fv_control.F90: regional capabilities FV3/atmos_cubed_sphere/driver/model/fv_dynamics.F90: regional capabilities FV3/atmos_cubed_sphere/driver/model/fv_fill.F90: regional capabilities FV3/atmos_cubed_sphere/driver/model/fv_grid_utils.F90: regional capabilities FV3/atmos_cubed_sphere/driver/model/fv_nesting.F90: regional capabilities FV3/atmos_cubed_sphere/driver/model/fv_regional_bc.F90 (new file): regional capabilities FV3/atmos_cubed_sphere/driver/model/fv_tracer2d.F90: regional capabilities FV3/atmos_cubed_sphere/driver/model/fv_update_phys.F90: regional capabilities FV3/atmos_cubed_sphere/driver/model/nh_utils.F90: regional capabilities FV3/atmos_cubed_sphere/driver/model/sw_core.F90: regional capabilities FV3/atmos_cubed_sphere/driver/model/tp_core.F90: regional capabilities FV3/atmos_cubed_sphere/driver/tools/external_ic.F90: regional capabilities PGI fix FV3/atmos_cubed_sphere/driver/tools/fv_grid_tools.F90: regional capabilities FV3/atmos_cubed_sphere/driver/tools/fv_restart.F90: regional capabilities FV3/atmos_cubed_sphere/driver/tools/fv_surf_map.F90: regional capabilities FV3/atmos_cubed_sphere/driver/tools/test_cases.F90: regional capabilities FV3/atmos_cubed_sphere/driver/makefile: regional capabilities NAM physics make clean options FV3/conf/configure.fv3.theia: NAM physics debug compiler options FV3/cpl/makefile: make clean options FV3/cpl/module_cap_cpl.F90: new routine realizeConnectedCplFields FV3/cpl/module_cplfields.F90: use NUOPC additional coupled fields FV3/fms/makefile: make clean options FV3/gfsphysics/GFS_layer/GFS_diagnostics.F90: time average options (bucket fix) FV3/gfsphysics/GFS_layer/GFS_driver.F90: bucket precipitation adjustment due to sppt (in GFS_stochastic_driver) FV3/gfsphysics/GFS_layer/GFS_physics_driver.F90: GSDCHEM (cplchm) interstitial code -> new namelist option cplchm gfdl_cloud_microphys_driver suppress minimal rain changes gfdl_cloud_microphys_driver snow follow-up changes FV3/gfsphysics/GFS_layer/GFS_typedefs.F90: rainc_cpl component of GFS_coupling_type instantaneous quantities for GSDCHEM coupling FV3/gfsphysics/physics/sflx.f: bugfix for calculation of t1 in line 2413 FV3/gfsphysics/makefile: if "-axSSE4.2,AVX,CORE-AVX2" in FFLAGS, add "-axSSE4.2,AVX,CORE-AVX-I" for radiation_aerosols.f make clean options FV3/io/FV3GFS_io.F90: new arguments time_radsw, time_radlw for fv3gfs_diag_output FV3/io/makefile: NAM physics make clean options FV3/io/module_fv3_io_def.F90: new module variables for regional capabilities FV3/io/module_write_netcdf.F90: write/read list/vector of single precision variable attributes FV3/io/module_wrt_grid_comp.F90: regional capabilities FV3/ipd/IPD_driver.F90: change to IPD layer (use IPD_typedefs instead of physics_abstraction_layer) FV3/ipd/IPD_typedefs.F90: physics_abstraction_layer changes FV3/ipd/makefile: NAM physics remove old GFS code make clean options FV3/namphysics (new directory): NAM physics FV3/stochastic_physics/makefile: NAM physics make clean options FV3/atmos_model.F90: add get_tracer_index regional capabilities (new subroutines atmos_model_exchange_phase_1, atmos_model_exchange_phase_2, get_atmos_model_ungridded_dim) NAM physics (flip vertical coordinate) FV3/fv3_cap.F90: use additional functions/subroutines from NUOPC regional capabilities modification of I/O options (regional capabilities?) return instead of abort in many places new subroutines ModelAdvance_phase1, ModelAdvance_phase2, SetRunClock_onestep FV3/makefile: NAM physics: switch using either namphysics or gfsphysics FV3/module_fcst_grid_comp.F90: new macro ESMF_ERR_ABORT (with newline, might break for PGI compiler?) regional capabilities coupling improvements commit af011dfc87b59cb157b20b300f26d92c855adfa0 Author: Julie Schramm Date: Thu Aug 9 10:01:21 2018 -0600 - Add variable rain1 to GFS_typedefs.F90. This is prec in cs_conv.F90. - CCPP prebuild step completed successfully. commit 75d95c1e5e073cc4e7eac098e39e58fc95d48ddb Merge: f7da076 f394ec8 Author: grantfirl Date: Thu Aug 9 09:44:14 2018 -0600 Merge pull request #52 from grantfirl/GFS_surface_generic_update Gfs surface generic update commit 8eb7987f1a30a8df950ec4f876bc0ef724cfeb16 Author: Dom Heinzeller Date: Thu Aug 9 09:39:32 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: add new component nifa2d, introduce imp_physics_mg commit 6b5067561ed36f674e8978de708e174362b8ede0 Author: Dom Heinzeller Date: Thu Aug 9 09:32:39 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: enable CCPP-compliant Thompson scheme, fix rainfall variables, replace hard-coded values to test imp_physics against with Model%imp_physics_XYZ commit c8bbc5558e512b31156ae4df4c10f9a724f485a2 Author: Dom Heinzeller Date: Thu Aug 9 09:30:44 2018 -0600 io/FV3GFS_io.F90: comment out debugging message when writing 3d fields commit d781e8cba3b14aff66276a2f48b1ca84ab12b511 Author: Man.Zhang Date: Wed Aug 8 16:28:34 2018 -0600 add pwat interstital for zhao-carr and gfdlmp commit f7da076b51fa54a09fa7e5de6cb2f054edf7d31d Merge: eb272f4 04689a4 Author: Dom Heinzeller Date: Wed Aug 8 16:15:02 2018 -0600 Merge pull request #51 from climbfuji/cheyenne_update_build_flags_and_directory_structure_follow_up_fv3_stretched_nest_20180807 Fix for fv3_stretched_nest regression test on Cheyenne+Intel commit aa90236e7b11862c53b183112d7f13ea0af4c8fb Merge: e95e2b3 eb272f4 Author: Julie Schramm Date: Wed Aug 8 15:40:33 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' into features/cs_conv_for_ccpp commit f394ec8e3b915064b712defc1b8d3079eed20ba2 Merge: 428fdc4 eb272f4 Author: Grant.Firl Date: Wed Aug 8 14:12:40 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' into GFS_surface_generic_update commit eb272f4e66bdbd4da1f016c998d07ec436f84a78 Merge: 7fcac61 d715c95 Author: Dom Heinzeller Date: Wed Aug 8 13:41:26 2018 -0600 Merge pull request #49 from climbfuji/ldiag3d_add_tests Additional tests wsm6, wsm6 w/ ldiag3d, gfdlmp w/ ldiag3d for CCPP-REF and CCPP commit 2bf401038b48ebde11d42573a812f34d10a38674 Author: haiqin.li Date: Wed Aug 8 16:36:39 2018 +0000 "to add GF cps" commit 428fdc436336111c745a509ac2b34cd98f721b81 Author: Grant.Firl Date: Tue Aug 7 11:26:09 2018 -0600 added omitted arguments to GFS_surface_generic_post commit 04689a4387d2c8e27f4f9cb0d1cdc1d36cb7955c Author: Dom Heinzeller Date: Tue Aug 7 11:04:11 2018 -0600 Bugfix in fms/mpp/include/mpp_gather.h to prevent segmentation fault on Cheyenne with Intel compiler commit 5d6030843035262b4dfd0f879a4d6622e0c3de9c Author: Grant.Firl Date: Tue Aug 7 11:01:33 2018 -0600 added option B call for GFS_surface_generic_post and updated associated metadata in GFS_typedefs commit bce9081aa2c1cee95c8e1cb2bd3edc3fb1b3ad6d Author: Man.Zhang Date: Mon Aug 6 21:07:23 2018 -0600 add GFS_gfdlmp_pre with option B commit 7b299448f45c80abe2ec9a672d770e96aec6e7df Author: Grant.Firl Date: Mon Aug 6 13:03:26 2018 -0600 added option B for GFS_surface_generic_pre and updated standard names for GFS_surface_generic_pre commit d715c959b5d4ca26ea4309f68bd534c1b15f7ae3 Author: Dom Heinzeller Date: Fri Aug 3 13:09:20 2018 -0600 gfsphysics/GFS_layer/GFS_diagnostics.F90: enable output of 3d diagnostic fields dt3dt, dq3dt, du3dt, dv3dt commit 7fcac61784759df86d2d5243d245e97853ee0e20 Merge: 33a65fb dfd3f95 Author: Dom Heinzeller Date: Fri Aug 3 10:59:54 2018 -0600 Merge pull request #48 from climbfuji/time_vary_20180801_stochastic_physics stochastic_physics in GFS_time_vary_step CCPP-compliant commit 33a65fbe7be405c240642fe0cb368bdc10043d06 Merge: 57e8c35 0969646 Author: grantfirl Date: Fri Aug 3 09:32:37 2018 -0600 Merge pull request #47 from grantfirl/phys_cons_fix modify GFS_physics_driver and GFS_typedefs for passing physical constants into samf(deep/shal)cnv commit dfd3f954c4ce1d3ea8038f4bfae7196c468e6061 Author: Dom Heinzeller Date: Thu Aug 2 16:17:38 2018 -0600 ipd/IPD_driver.F90: remove references to time_vary_step for CCPP build commit 61cef1981fdebf8710f69ce2fd8afcb827b4d5b6 Author: Dom Heinzeller Date: Thu Aug 2 16:07:58 2018 -0600 ipd/IPD_CCPP_driver.F90: add IPD_CCPP_step 'time_vary' commit a73c669348e3cbd82ae45c2e18b3b141cefd7ef5 Author: Dom Heinzeller Date: Thu Aug 2 16:04:07 2018 -0600 gfsphysics/GFS_layer/GFS_driver.F90: add new variables and metadata to GFS_control_type and control_initialize, update control_initialize interface, remove calls to MPI routines commit 569d7be42a70bec5f022970f4a52f614b323b227 Author: Dom Heinzeller Date: Thu Aug 2 16:00:27 2018 -0600 gfsphysics/GFS_layer/GFS_driver.F90: pass additional arguments to IPD_Control=Model%initialize, remove calls to stochastic physics init from GFS_initialize for CCPP build, move calculation of Model%si inside Model%init for CCPP build, remove GFS_time_vary_step from CCPP build commit b194d8c9b9e4f376057746228b8d3c3577a12706 Author: Dom Heinzeller Date: Thu Aug 2 15:55:42 2018 -0600 atmos_model.F90 and gfsphysics/GFS_layer/GFS_abstraction_layer.F90: replace call to IPD_step 'time_vary' with call to IPD_CCPP_step 'time_vary', add arguments 'communicator=commglobal' and 'ntasks=mpp_npes()' to IPD_initialize for CCPP build commit 7112d87a113f0a335a9970481d91bc983c2e50df Author: Dom Heinzeller Date: Thu Aug 2 15:54:25 2018 -0600 makefile: remove FV3's stochastic_physics from CCPP build commit 0969646b0341bb661a90182e405defea079360b0 Author: Grant.Firl Date: Thu Aug 2 15:05:42 2018 -0600 added constants needed for samfdeepcnv and samfshalcnv to GFS_typedefs; modified CCPP option A calls to samfdeepcnv and samfshalcnv; imported necessary constants into GFS_physics_driver for option A calls commit 1e5a7e0e50a202781c9c85ae58a7a4ae5220596c Author: Dom Heinzeller Date: Thu Aug 2 14:02:28 2018 -0600 stochastic_physics/stochastic_physics.F90: bugfix to use correct size of pattern2d/pattern3d arrays in get_random_pattern_fv3* routines commit 4ed1ac9fdfb9267a8de68525396d29a0b4228c74 Author: Dom Heinzeller Date: Thu Aug 2 14:01:16 2018 -0600 stochastic_physics/get_stochy_pattern.F90: typos, removal of unused variables, bugfix to use correct size of pattern2d/pattern3d arrays in get_random_pattern_fv3* routines, bugfix initialize variable SLMASK, bugfix remove local variable inttyp (overwriting imported variable with correct value from other module) commit b667edffa4418fc83d8e3175bd0925bc61e1015d Author: Dom Heinzeller Date: Thu Aug 2 13:54:05 2018 -0600 gfsphysics/CCPP_layer/CCPP_typedefs.F90: adjust description commit 45c8b72f807170a9236bd96de876d8a83f65ad33 Author: Dom Heinzeller Date: Thu Aug 2 11:53:54 2018 -0600 stochastic_physics/*: formatting changes, typos, use '&' as line continuation commit 4ec65c72a8838b2c316c3211473266203226ef9f Author: Dom Heinzeller Date: Thu Aug 2 11:47:36 2018 -0600 stochastic_physics/compns_stochy.F90: bugfix, deltim is intent(in) in routines calling compns_stochy commit e95e2b3d95f6a1f2260d4fa19658d942e9c034f8 Author: Julie Schramm Date: Mon Jul 30 14:58:15 2018 -0600 Add fswtr and fscav to GFS_typedefs.F90 commit cce4e94ddab934103149ba7f8b44d8f34d99bbb0 Merge: 5be7456 57e8c35 Author: Julie Schramm Date: Mon Jul 30 13:36:55 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' into features/cs_conv_for_ccpp Resolved conflicts in: gfsphysics/GFS_layer/GFS_typedefs.F90 commit 57e8c3574670ed87476d420595c8c92b409d2e13 Merge: 0768e5e d4ada0d Author: grantfirl Date: Sun Jul 29 11:20:56 2018 -0600 Merge pull request #45 from grantfirl/PBL_interstitial PBL_interstitial update commit d4ada0db2cabd9e89a7bc01dea6401197a304bc3 Author: Grant.Firl Date: Sat Jul 28 21:04:06 2018 -0600 fixed error in standard names (cumulative -> instantaneous) commit 2d638aa8a18d2fc3c78b9f305e41a23c82f40328 Merge: 149af5f 0768e5e Author: Grant.Firl Date: Sat Jul 28 19:51:33 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' into PBL_interstitial commit 149af5f55f329e08723dda683469349fa5579d06 Author: Grant.Firl Date: Sat Jul 28 16:48:44 2018 -0600 rebased debugging commit; fixed several mistakes from initial commit that caused regression test failures commit 950d25a99717f7581746c208911be26befe2d050 Author: Grant.Firl Date: Thu Jul 26 15:52:15 2018 -0600 adding options A/B for GFS_PBL_interstitial_pre/post and associated metadata commit 0768e5ee26423e4dd71440a387ba06374dc14bf6 Merge: e9b6616 c50f0f3 Author: Dom Heinzeller Date: Fri Jul 27 11:50:53 2018 -0600 Merge pull request #44 from climbfuji/gcycle-and-time-vary-steps-dom-20180724 GFS_time_vary CCPP compliant, part 1 commit c50f0f32976fd22bdb65926821f1ad6a2ba2ab08 Author: Dom Heinzeller Date: Thu Jul 26 15:36:53 2018 -0600 gfsphysics/makefile: compile GFS_physics_driver.F90 in two steps to be able to look at the pre-processed Fortran code that gets compiled, formatting changes, documentation commit 9a1edd78019c2ba64b6c1d4cecb82e970fb72638 Author: Dom Heinzeller Date: Thu Jul 26 13:54:32 2018 -0600 gfsphysics/GFS_layer/GFS_driver.F90: add CCPP calls for steps GFS_time_vary_pre, GFS_rad_time_vary and GFS_phys_time_vary to GFS_time_vary_step, ifdef out unused code for CCPP build commit 5f373c601ff01f2f8188ffa0c63d06d21dcae8be Author: Dom Heinzeller Date: Thu Jul 26 13:50:05 2018 -0600 ipd/IPD_driver.F90 and ipd/IPD_typedefs.F90: make IPD_data_type = GFS_data_type for CCPP build commit fe1f302b47b082b233a9d81e1727f5780645e0e7 Author: Dom Heinzeller Date: Thu Jul 26 13:47:50 2018 -0600 gfsphysics/makefile: move files to the correct category commit 5fc73e547cead1cda7269030d26abec52af2eff5 Author: Dom Heinzeller Date: Thu Jul 26 13:45:14 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90 and gfsphysics/GFS_layer/GFS_abstraction_layer.F90: define new data type GFS_data_type (=IPD_data_type) for CCPP build, correct typos commit 494f59dca09c5b1f57cbd579e5733600209c5d71 Author: Dom Heinzeller Date: Thu Jul 26 11:53:54 2018 -0600 ipd/IPD_CCPP_driver.F90 and atmos_model.F90: remove unused argument IPD_Control from IPD_CCPP step physics_init, add code snippet (commented out) in preparation to run entire time_vary group through CCPP commit 94115288b406ede7ea9d173a977317e5a7f6114a Merge: 8e30a13 e9b6616 Author: Dom Heinzeller Date: Tue Jul 24 15:32:52 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into gcycle-and-time-vary-steps-dom-20180724 commit e9b661629f934aac2606e1f4ba8bbd4b95bbf283 Merge: ff7ead3 5766de1 Author: Dom Heinzeller Date: Tue Jul 24 15:27:24 2018 -0600 Merge pull request #42 from climbfuji/GFS_surface_loop_control-and_dcyc2t3 GFS_surface_loop_control and dcyc2t3 commit 8e30a13db25c7d9837c5436d75a253ed18e6c9f1 Merge: e33674f ff7ead3 Author: llpcarson Date: Tue Jul 24 20:22:27 2018 +0000 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into update_gcycle commit e33674f768cffd0ba72e7069eed416632dd9766d Author: llpcarson Date: Tue Jul 24 20:21:53 2018 +0000 local changes before merge commit faadd11b2f01b40c18e405b0552edb00342053e4 Merge: 085c5e9 ab482d2 Author: llpcarson Date: Tue Jul 24 20:15:47 2018 +0000 Merge branch 'master' of https://github.com/NCAR/FV3 into update_gcycle commit 5766de143ecc65cf765c0b64abb1186b6faea8f0 Author: Dom Heinzeller Date: Tue Jul 24 12:45:51 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: comment out assigning errmsg and errflg on input, since they are intent(out) variables, add calls to CCPP-compliant dcyc2t3, implement CCPP-compliant surface iterations, remove several local variables that are not required from CCPP build commit ce9e0d800f36f3a057434710c9de6b9b966c5210 Author: Dom Heinzeller Date: Tue Jul 24 12:39:15 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: add missing metadata, add new component 'surface net downwelling shortwave flux' to Intdiag type for CCPP-build, use Intdiag's surface flux variables, remove these components from the interstitial data type commit ff7ead3e90eb89e9a1ef6956383dc3d37eab29c2 Merge: f4b0db1 19f173d Author: Dom Heinzeller Date: Tue Jul 24 10:36:49 2018 -0600 Merge pull request #41 from mzhangw/zhao_carr_pre Zhao carr pre of option B is added to physics driver commit 19f173d325d2ff8677dfc84a78a3d799aa88d7bd Author: Dom Heinzeller Date: Tue Jul 24 10:34:06 2018 -0600 Update GFS_physics_driver part2 Comment out assigning im and ix to Interstitial(nt), because this is done in Interstitial(nt)%create and these values do not change. commit e20c254f21ce39485e39b5ccbf478cb1fcafebc3 Author: Dom Heinzeller Date: Tue Jul 24 10:30:50 2018 -0600 Update GFS_physics_driver Interstitial(nt)%{errmsg,errflg} are replaced with cdata_block(nb,nt)%{errmsg,errflg} since this branch is not up to date with the current master. commit f4b0db1abb42d8db159554f5c2be877baf533dee Merge: c3dfb35 6d34158 Author: Dom Heinzeller Date: Tue Jul 24 09:36:48 2018 -0600 Merge pull request #40 from climbfuji/ccpp-internal-variables-20180723 Introducing CCPP-internal variables for schemes commit ee6bc2c101672cde8534a6497dc47f7e8fc62266 Author: Man.Zhang Date: Tue Jul 24 08:21:58 2018 -0600 add zhao_carr_pre CCPP option B codes commit 6d341581ac55f5d5b9b0c2cf8e6e76d15a8b14dc Merge: 0131d95 c3dfb35 Author: Dom Heinzeller Date: Mon Jul 23 15:04:46 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into ccpp-internal-variables-20180723 commit 0131d9595bd4d8930b09049fd516847defa51bf1 Author: Dom Heinzeller Date: Mon Jul 23 15:01:53 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: errmsg and errflg are now defined as ccpp_data(nb,nt)%{errflg,errmsg} commit 2ff68345c7834da964fefd190cafe6fb3aba3e96 Author: Dom Heinzeller Date: Mon Jul 23 14:59:29 2018 -0600 gfsphysics/CCPP_layer/CCPP_typedefs.F90: remove error_message and error_flag from CCPP_shared datatype (now a CCPP-internal variable) commit 4bb306bce686888edd3d79fae56879042073c90b Author: Dom Heinzeller Date: Mon Jul 23 14:48:31 2018 -0600 atmos_cubed_sphere/driver/fvGFS/atmosphere.F90: update comment on use of shared CCPP data type with changes introduced by CCPP-internal variables commit c3dfb35f24a514d9d5b5de8614e3da4681bd20bc Merge: 798c931 4d8c3db Author: grantfirl Date: Fri Jul 20 20:18:48 2018 -0600 Merge pull request #31 from grantfirl/SCNV_interstitial Scnv interstitial commit 4d8c3dbee917bad36d5ed1d649a9e2374b86dae3 Author: Grant.Firl Date: Fri Jul 20 13:10:17 2018 -0600 debugging steps after regression tests failed commit 2bb22193eceb2839c484e0999681a76022e1d1c7 Author: Grant.Firl Date: Fri Jul 20 11:59:55 2018 -0600 pass in entire clw array into GFS_SCNV_generic_post instead of just clw(:,:,2) since it is uncertain whether clw(:,:,2) is in fact cloud liquid water or not at this point commit 2bf78c8aa74de3c6e570b86cfccace910633eba6 Author: Grant.Firl Date: Fri Jul 20 10:54:53 2018 -0600 added CCP endif to fix compilation error commit 0c5e8cd005c0935729edd0c7ba9321638243c783 Author: Grant.Firl Date: Fri Jul 20 10:34:58 2018 -0600 fixed inconsequential errors in option B data copying commit fd68e26c557d67f44ba67ec6064ea4541dfd9fcf Merge: 2d60d5a 798c931 Author: Grant.Firl Date: Fri Jul 20 09:55:11 2018 -0600 merged in latest NEMSfv3gfs_master_ccpp_integration commit 798c931e3a284cce2f71138d9c562e8b7585b16a Merge: 9d1f2d7 c80589a Author: Dom Heinzeller Date: Fri Jul 20 09:16:37 2018 -0600 Merge pull request #38 from climbfuji/GFS_stochastics_ccpp_compliant GFS_stochastics CCPP compliant, bugfixes for stochastic physics commit c80589a413ac32ed79d0bb643517d24be94bc6a9 Merge: df2babe 9d1f2d7 Author: Dom Heinzeller Date: Thu Jul 19 21:52:06 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into GFS_stochastics_ccpp_compliant commit df2babef77dc75827712fd76f4c6a8c5faed0504 Author: Dom Heinzeller Date: Thu Jul 19 21:47:08 2018 -0600 stochastic_physics/stochy_patterngenerator.F90: fix/workaround for gfortran, original code causes out-of-memory error commit 2f63401ed577bf2103393e27f0d5b315a141b7bc Author: Dom Heinzeller Date: Thu Jul 19 21:46:31 2018 -0600 stochastic_physics/get_stochy_pattern.F90: bugfix, specify correct dimension length in several assignments commit 763b0731134e13def8b37efce2e5505fc03b378c Author: Dom Heinzeller Date: Thu Jul 19 21:45:38 2018 -0600 atmos_cubed_sphere/driver/fvGFS/atmosphere.F90: bugfix, take abs() value after second round of calls to del2_cubed before taking sqrt commit 2d60d5a390351eb9cf88771b69a413d60a226aaa Author: Grant.Firl Date: Thu Jul 19 20:43:25 2018 -0600 fix line continuation character found in compilation with CCPP_OPTION_A commit 9d1f2d79812a69b792a880b9a8929f253818536b Merge: 1d19cd8 b9359fc Author: Dom Heinzeller Date: Thu Jul 19 19:26:56 2018 -0600 Merge pull request #37 from grantfirl/tracer_index_consolidation_2 Tracer index consolidation 2 commit a6c5bd8dddc47d5b74eba7f54c669599a5166960 Merge: d3c7b64 b9359fc Author: Grant.Firl Date: Thu Jul 19 12:43:21 2018 -0600 Merge branch 'tracer_index_consolidation_2' into SCNV_interstitial commit d3c7b647b1a0e2f20a408ed30f736a396ef7a7e0 Merge: c1a5d49 1d19cd8 Author: Grant.Firl Date: Thu Jul 19 12:42:49 2018 -0600 merging in latest NEMSfv3gfs_master_ccpp_integration commit b9359fcfd4739ba8b1231087673896e513f7e6be Merge: d4830d6 1d19cd8 Author: Grant.Firl Date: Thu Jul 19 11:23:46 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' into tracer_index_consolidation_2 commit d4830d644128716bbe10db9aee5fc3d0635ac603 Author: Grant.Firl Date: Thu Jul 19 10:57:05 2018 -0600 remove setting nsamftrac to 0 in interstitial_phys_reset since it is set once at initialization time in interstitial_setup_tracers commit d1e30b19f79ae5864291eb55c83f034f48bcb3ee Author: Grant.Firl Date: Thu Jul 19 09:59:09 2018 -0600 made sure tracer index values are initialized in GFS_typdefs/interstitial_setup_tracers commit 085c5e9f5968f2e4ad6d8ad22bd00cc5f62b9ee9 Author: llpcarson Date: Thu Jul 19 15:30:31 2018 +0000 Option A version... commit dd3f25f1eea77435e566fe24e60e031d20a889a4 Author: Dom Heinzeller Date: Thu Jul 19 09:22:53 2018 -0600 ipd/IPD_CCPP_driver.F90: add IPD_CCPP step 'stochastics' commit 42715640370cb7f5a24f68de541458589b516743 Author: Dom Heinzeller Date: Thu Jul 19 09:22:23 2018 -0600 gfsphysics/makefile: cleanup for previous GFS_calpreciptype commit, remove FV3's calpreciptype.f90 from CCPP build commit 1947bebe7f596c6fcbba0c202018806ec4af8a17 Author: Dom Heinzeller Date: Thu Jul 19 09:21:39 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: add missing metadata for GFS_stochastics commit c9ca68ecb47e0e7c7e80e0b5f974a13a32362805 Author: Dom Heinzeller Date: Thu Jul 19 09:20:41 2018 -0600 gfsphysics/GFS_layer/GFS_abstraction_layer.F90 and gfsphysics/GFS_layer/GFS_driver.F90: remove GFS_stochastics_driver from CCPP build commit fa50f03a6f3db256453712a2b822188b9f6d61ee Author: Dom Heinzeller Date: Thu Jul 19 09:19:24 2018 -0600 atmos_model.F90: add call to IPD_CCPP step 'stochastics', remove references to IPD step 'physics_step2' commit 1d19cd85af3ff3da9a7dcdec0252cc2580c1dc4b Merge: 980bbf4 f77f413 Author: Dom Heinzeller Date: Thu Jul 19 09:06:24 2018 -0600 Merge pull request #36 from climbfuji/GFS_calpreciptype_20180717 Gfs_calpreciptype interstitial update commit f77f4131f2d35d22e4576aa4774888885b1c1489 Author: Dom Heinzeller Date: Wed Jul 18 11:46:15 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: bugfix, rename gfdl_cloud_microphys_post_1 to gfdl_cloud_microphys_post commit acb44d6f0d05f2de8ceaf25a2ae744b6810d8da7 Merge: 6e72aa2 980bbf4 Author: Dom Heinzeller Date: Wed Jul 18 10:58:46 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into GFS_calpreciptype_20180717 commit 980bbf4cf196e57976d0d2cfcbb4f0adee9901bd Merge: 2cb2592 cf774d6 Author: Dom Heinzeller Date: Wed Jul 18 10:55:39 2018 -0600 Merge pull request #35 from grantfirl/dcnv_interstitial_2 deep convection interstitial update commit 6e72aa2df047d462c6318c522784f6d7dcdfed70 Author: Dom Heinzeller Date: Tue Jul 17 20:33:15 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: add missing standard names for GFS_calpreciptype interstitial commit e2142ff8329c964bb5c4a6e318f53f2505a852d8 Author: Dom Heinzeller Date: Tue Jul 17 20:32:04 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: add call to CCPP-compliant GFS_calpreciptype interstitial, remove unused local variables from CCPP build, remove temporary call to gfdl_cloud_microphysics_post_2 commit a37c798bfa64d1ed9d5e9b4bf181bffef77bc830 Author: Grant.Firl Date: Tue Jul 17 18:03:23 2018 -0600 added allocation of otspt commit cf7f089794ac6a5f1dbf76c808f61ba19286437c Author: Grant.Firl Date: Tue Jul 17 16:50:10 2018 -0600 consolidated tracer index code into GFS_typedefs/interstitial_setup_t… racers and put CPP ifdefs around code in GFS_physics_driver to use if CCPP is defined commit cf774d63036298a7fe5e3761630fcff7d6bfa584 Author: Grant.Firl Date: Tue Jul 17 15:21:01 2018 -0600 added calculation of num2, num3 for use in GFS_physics_driver after deep convection interstitial; fix interstitial variable copying by using correct variables commit 640b33dc7ca05de492e7b63086577d43425e1e91 Author: Grant.Firl Date: Mon Jul 16 16:58:09 2018 -0600 fix option A calls to sfc_nst interstitials and errors in interstitial DDT copying for DCNV interstitials commit 949e27d859482c30adede411d01afc9bbfafe9c3 Author: Grant.Firl Date: Mon Jul 16 14:28:16 2018 -0600 added options A/B for deep convection interstitial in GFS_physics_driver and add several variables to GFS_typedefs for deep convection interstitials commit 5be745613d8ac712a1988cfde345b164fe95ed66 Merge: a08e847 2cb2592 Author: Julie Schramm Date: Mon Jul 16 14:24:34 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' into features/cs_conv_for_ccpp Conflicts: gfsphysics/GFS_layer/GFS_typedefs.F90 commit 2cb25926f5c8b3f1ed04bd7f0d32851932aa1af2 Merge: 217e536 3bdeed1 Author: Dom Heinzeller Date: Mon Jul 16 13:24:16 2018 -0600 Merge pull request #32 from climbfuji/gfdlmp-slow-physics GFDL cloud microphysics (slow processes) commit 3bdeed16f821bc3f8377ceb1962661df2761ba6a Author: Dom Heinzeller Date: Mon Jul 16 13:06:28 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90 and gfsphysics/GFS_layer/GFS_typedefs.F90: revert standard name change from lwe_thickness_of_stratiform_precipitation_amount to lwe_thickness_of_stratiform_precipitation_amount_on_dynamics_timestep, because Interstitital(nt)%rainst is on physics time step commit 5236dc01d4f2f33634759c16c2ca3e2ee7a1c423 Merge: 1ec82af 217e536 Author: Dom Heinzeller Date: Mon Jul 16 10:49:13 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into gfdlmp-slow-physics commit 217e536cd8e4366c614beeb5bc4f7404676cb75d Merge: cf3b8de d29a966 Author: Dom Heinzeller Date: Mon Jul 16 10:37:38 2018 -0600 Merge pull request #34 from NCAR/revert-30-tracer_index_consolidation Revert "Tracer index consolidation" commit d29a966e819f8cafa3f942ef8ed9d1b57efbe335 Author: Dom Heinzeller Date: Mon Jul 16 10:27:15 2018 -0600 Revert "Tracer index consolidation" commit 1ec82afb3bc598104fa24cdb34d9e642dc0eb016 Author: Dom Heinzeller Date: Mon Jul 16 09:11:12 2018 -0600 Revert "update for deep convection generic interstitial" commit 5048cb1336ea2dc6524d84bd71d3e0905cbed1cb Author: Grant.Firl Date: Wed Jul 11 16:03:19 2018 -0600 fixed typos found during compilation using CCPP on theia commit 52b70a124c5879ca314824569ebc453f557c89e4 Author: Grant.Firl Date: Wed Jul 11 13:22:10 2018 -0600 added some metadata for variables needed in GFS_DCNV_generic commit 1990badc97b73e2543600122d957a795d266b4e2 Author: Grant.Firl Date: Wed Jul 11 13:09:35 2018 -0600 updated GFS_typedefs.F90 and GFS_physics_driver.F90 for GFS_DCNV_generic interstitial routines commit cf3b8deb3c7bad04da69c916f6d63ca744fef238 Merge: e85271b d3a6c70 Author: Dom Heinzeller Date: Mon Jul 16 09:31:07 2018 -0600 Merge pull request #33 from NCAR/revert-27-dcnv_interstitial Revert "update for deep convection generic interstitial" commit d3a6c703d78fa63702b734507c3d108e8f155c7d Author: Dom Heinzeller Date: Mon Jul 16 09:11:12 2018 -0600 Revert "update for deep convection generic interstitial" commit 9b4bafcd67603ad4546679a014a39ece96f0dba8 Author: Dom Heinzeller Date: Sun Jul 15 13:53:56 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: remove call to FV3's GFDL MP for CCPP build and skip allocating local arrays used exclusively for GFDL MP, add call to CCPP_compliant GFDL MP, remove old debugging statements commit e076fdfd47e7c985157dc9e3aff8e47907adb035 Author: Dom Heinzeller Date: Sun Jul 15 13:49:36 2018 -0600 gfsphysics/makefile: compile FV3's gfdl_cloud_microphys.F90 only for non-CCPP build commit ff08e872724b54cecb86031cc0e4955521a6d1bd Author: Dom Heinzeller Date: Sun Jul 15 13:48:39 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: add missing standard names for existing variables and new variables required for GFDL cloud microphysics, allocate these only when GFDL MP gets used commit f51760b37e06c8459e54e4e43a239453e2be5b85 Author: Dom Heinzeller Date: Sun Jul 15 13:27:58 2018 -0600 gfsphysics/GFS_layer/GFS_driver.F90: do GFDL microphysics init as part of GFS_initialize only for non-CCPP build commit 27526ff880976f8ee2959df4a6f4e9038508f7bd Author: Dom Heinzeller Date: Sun Jul 15 13:27:13 2018 -0600 gfsphysics/CCPP_layer/CCPP_typedefs.F90: add preprocessor directives as guards around metadata tables (line lengths) commit 21f04c4ff4ccd0e2a0bb8c56c53abf28d524480a Author: Dom Heinzeller Date: Sun Jul 15 13:25:59 2018 -0600 atmos_model.F90: do CCPP physics init just after CCPP framework init (needed for GFDL cloud microphysics, must happen before first dynamics call after the initial adiabatic init step in the dynamics; add note that special handling is required for schemes like Thompson MP in case it needs model temperature etc for initialization commit 6c7766ec6966e9ff6e5564c4b37767848a6b9f7e Author: Dom Heinzeller Date: Sun Jul 15 13:24:12 2018 -0600 atmos_cubed_sphere/model/fv_sg.F90 and atmos_cubed_sphere/tools/fv_diagnostics.F90: use module fv_cmp_mod only if GFS_PHYS is not defined (CCPP always sets GFS_PHYS) commit 3ed62d07f125dfe2779935efa9465496cce94e1d Author: Dom Heinzeller Date: Sun Jul 15 13:23:24 2018 -0600 atmos_cubed_sphere/model/fv_mapz.F90 and atmos_cubed_sphere/makefile: remove fv_cmp.F90 and reference to it from CCPP build commit cba969b5596d1d8320b6b446ed847b342abb0d58 Author: Dom Heinzeller Date: Wed Jul 11 15:52:33 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90 and gfsphysics/GFS_layer/GFS_driver.F90: cosmetic corrections commit c7813235e0d238512b69eaeafc2c872dc5b58e3e Author: Dom Heinzeller Date: Wed Jul 11 15:24:25 2018 -0600 README.md: add back in, got lost in recent commits commit b2c26abb84dcd467fbfc885afdefc251f41fb6b0 Author: Dom Heinzeller Date: Wed Jul 11 15:23:56 2018 -0600 ipd/IPD_CCPP_driver.F90: remove call to ccpp_physics_finalize for group fast_physics, now done in atmosphere_end (need to know if do_sat_adj is true, only then do the finalize) commit 8c9a9d3caaa1a94225e6a57d5dc3ca85024590b6 Author: Dom Heinzeller Date: Wed Jul 11 15:22:31 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: new component frland of IPD_interstitial commit 0de6c4d088392593bc966a223660a46cb7dfe2f4 Author: Dom Heinzeller Date: Wed Jul 11 15:22:01 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: CCPP-compliant GFS_suite_interstitial_1 commit dd4a0e44e6f5e997d5e54baff4962b4fdcc8ab11 Author: Dom Heinzeller Date: Wed Jul 11 15:20:19 2018 -0600 gfsphysics/CCPP_layer/CCPP_typedefs.F90: add hydrostatic and phys_hydrostatic to CCPP_shared data type; note that phys_hydrostatic defined in dynamics is inconsistent with value specified in call to GFDL MP slow physics commit 12a6b3104f8e63d86218d5d67148b6df1d5f7016 Author: Dom Heinzeller Date: Wed Jul 11 15:19:09 2018 -0600 atmos_model.F90: do fast physics finalize calls in atmosphere_end, all others in IPD_CCPP_step finalize (because do_sat_adj is not known to IPD_CCPP_step commit 646c1e74df7448a5f92bf0ea7c8a513f62515a47 Author: Dom Heinzeller Date: Wed Jul 11 15:17:27 2018 -0600 atmos_cubed_sphere/model/fv_dynamics.F90: run fv_sat_adj_pre only if do_sat_adj is true commit 9c2a75372bae0c985a39a2c45b87f5b8ac91509b Author: Dom Heinzeller Date: Wed Jul 11 15:16:01 2018 -0600 atmos_cubed_sphere/model/fv_arrays.F90: remove flag_for_hydrostatic_solver from metadata table (now in CCPP_shared) commit 44ee8158a21d4f88b79725ac7bda7b5e0c620efe Author: Dom Heinzeller Date: Wed Jul 11 15:14:23 2018 -0600 atmos_cubed_sphere/driver/fvGFS/atmosphere.F90: add hydrostatic and phys_hydrostatic to CCPP_shared%create call, init and finalize fast physics only when do_sat_adj is true commit c1a5d49baac1b2e2bfe50103b4f4a48165e3110d Author: Grant.Firl Date: Fri Jul 13 19:59:18 2018 -0600 add moninedmf and mfpbl back into makefile (a call to moninedmf still exists in GFS_physics_driver.F90 outside of a CCPP ifdef commit afb3530f2c34ef57ef427e3ad45335acf14ee44e Author: Grant.Firl Date: Fri Jul 13 19:36:09 2018 -0600 fix naming mistake in GFS_physics_driver commit 35afe298c0926ca220f288f48b6c80e17c606cdf Author: Grant.Firl Date: Fri Jul 13 19:06:24 2018 -0600 fix typo in makefile commit ac9b0cd7c0f16d8902a6e7c1eca8aefa4044defe Author: Grant.Firl Date: Fri Jul 13 19:00:11 2018 -0600 modify gfsphysics makefile to not compile physics in the CCPP to avoid potential module conflicts commit de758a927bf6d14c2f90f004af63bc1cedce962b Author: Grant.Firl Date: Fri Jul 13 17:28:13 2018 -0600 fixing #ifdef mismatch in GFS_physics_driver.F90 commit 5bbca545a2d4e6e6bd43dd82d23194cc2b3ec53e Author: Grant.Firl Date: Fri Jul 13 16:51:19 2018 -0600 updates to GFS_physics_driver for options A/B for shallow convection-related interstitial code and fixed typos in GFS_typedefs.F90 commit 7f66181dac31b816f1cb5d872d40c59263396ef9 Merge: b77bf5a e85271b Author: Grant.Firl Date: Fri Jul 13 16:01:07 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' into SCNV_interstitial commit b77bf5afca09d8d249901517398d186982cc3cc5 Author: Grant.Firl Date: Fri Jul 13 15:59:48 2018 -0600 updated GFS_typedefs for scnv_interstitial commit e85271b91787c85c43480ebd02abbd54739f94c0 Merge: 2373919 64dcfec Author: Dom Heinzeller Date: Fri Jul 13 15:47:42 2018 -0600 Merge pull request #30 from grantfirl/tracer_index_consolidation Tracer index consolidation commit e5a1bb7b3fdd0e423e3c7079ffc21ba922e73a53 Author: llpcarson Date: Fri Jul 13 21:17:38 2018 +0000 Updates for time_vary routines (rad+phys) commit 64dcfecca1667f3cea790c5867d0e30d6319d143 Author: Grant.Firl Date: Fri Jul 13 12:23:59 2018 -0600 add ncstrac to GFS_typedefs.F90 commit 2410ac5abdc13320502f910b2a34dddd90ae1e68 Author: Grant.Firl Date: Fri Jul 13 11:17:51 2018 -0600 fixed typo in GFS_typedefs.F90 commit f148fd669f1507d945aad27224ff611609611e9e Author: Grant.Firl Date: Fri Jul 13 10:53:12 2018 -0600 consolidated tracer index code into GFS_typedefs/interstitial_setup_tracers and put CPP ifdefs around code in GFS_physics_driver to use if CCPP is defined commit a08e84725840531cf51864360e5234bdb403dee4 Author: Julie Schramm Date: Thu Jul 12 15:18:48 2018 -0600 Add more variables from cs_conv.F90 argument table to GFS_typedefs.F90. Still need to figure out how to use ntr (number of tracers for CS). commit 2373919835a8fefe1fe9dfa1e49dc43f06d7fd73 Merge: a328b41 ca3fbc0 Author: grantfirl Date: Thu Jul 12 10:11:31 2018 -0600 Merge pull request #27 from grantfirl/dcnv_interstitial update for deep convection generic interstitial commit 13e97d5b6f4727cef72c7206b31c5a0ab903a7f4 Merge: 8959823 a328b41 Author: Julie Schramm Date: Wed Jul 11 16:12:10 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' into features/cs_conv_for_ccpp Conflicts: gfsphysics/GFS_layer/GFS_typedefs.F90 commit ca3fbc0b16207212ff70d4b0e9ca14fe94cd0464 Author: Grant.Firl Date: Wed Jul 11 16:03:19 2018 -0600 fixed typos found during compilation using CCPP on theia commit 797b2d1be3b52005ddaf05212e9a18e1e9e06ebd Merge: b6ca004 a328b41 Author: llpcarson Date: Wed Jul 11 21:38:23 2018 +0000 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into update_gcycle commit b6ca0043ce275e0514b50654ec8b8ff52bb736e6 Author: llpcarson Date: Wed Jul 11 21:22:28 2018 +0000 Update GFS_driver to call time_vary steps as CCPP-schemes. TODO: still need to pull in latest integration-branch updates! commit a328b411ef9a5169f241bac7b3c951b3839472c9 Merge: ff4520a e790129 Author: Dom Heinzeller Date: Wed Jul 11 14:41:55 2018 -0600 Merge pull request #26 from climbfuji/nst-fixup-20180711 Features/nst for v2 release from Julie with updates commit 1679f0dc8d324167cf027c8ecb81c548f542566c Author: Grant.Firl Date: Wed Jul 11 13:22:10 2018 -0600 added some metadata for variables needed in GFS_DCNV_generic commit 1d103dcd2dae55aad71d9920b232a424156922f5 Author: Grant.Firl Date: Wed Jul 11 13:09:35 2018 -0600 updated GFS_typedefs.F90 and GFS_physics_driver.F90 for GFS_DCNV_generic interstitial routines commit e790129c4b7c724e44527c6f8037b5f9d7717bc8 Author: Dom Heinzeller Date: Wed Jul 11 11:10:52 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: update errmsg/errflg, now in CCPP_shared(nt) commit afb1fd592912353d9addc038066746686835451f Author: Julie Schramm Date: Mon Jul 9 16:13:13 2018 -0600 - For OPTION B, call ccpp_physics_run for each scheme: sfc_nst_pre_run, sfc_nst_run, and sfc_nst_post_run - Copy local variables to Interstitial type before each call to ccpp_physics_run - Add copies of intent inout and out interstitial variables back into local variables after each call to ccpp_physics_run Passes rt_full and rt_ccpp regression tests on cheyenne. commit 13250c408e6480e56d89990bcf81a754e51d48b7 Author: Julie Schramm Date: Tue Jul 3 13:02:39 2018 -0600 - Add calls to sfc_nst in GFS_physics_driver.F90 for Option A (CCPP + Intel), Option B (CCPP all compilers), and the non-CCPP compliant version. - Add longitude and sine_of_latitude to GFS_typedefs.F90 to arg_table commit ff4520a81666882c079ad3c7edf1f9a807d00677 Merge: fdcf3b0 a4b8043 Author: Dom Heinzeller Date: Mon Jul 9 20:50:22 2018 -0600 Merge pull request #24 from climbfuji/ccpp-physics-gfdlmp-fast-processes GFDL MP fast physics calls through CCPP commit a4b8043f46da8f1a5f5bdb66fdf9ee2c4377f146 Author: Dom Heinzeller Date: Mon Jul 9 20:05:50 2018 -0600 atmos_cubed_sphere/model/fv_arrays.F90 and gfsphysics/CCPP_layer/CCPP_typedefs.F90: changed standard_name from moist_gas_constant to ratio_of_vapor_to_dry_air_gas_constants_minus_one_default_kind and from finite-volume_mean_pe_raised_to_the_power_of_kappa to finite-volume_mean_edge_pressure_raised_to_the_power_of_kappa commit 96e66ac2ca1f2c6c7ca59afb2ec9ab7bf245b676 Author: Dom Heinzeller Date: Mon Jul 9 16:59:47 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: fix errors due to merge with latest version of GFS_typedefs.F90: remove redundant code to retrieve block and thread number, errmsg and errflg now in CCPP_shared and no longer in IPD_interstitial commit 326f406a26c3101cfb7aed473c50ba1f27e41836 Author: Dom Heinzeller Date: Mon Jul 9 16:57:35 2018 -0600 atmos_cubed_sphere/model/fv_dynamics.F90 and atmos_cubed_sphere/model/fv_mapz.F90: for CCPP build, use CCPP_interstitial variable instead of local variables, use associate construct to avoid extensive code changes, work around differences between Intel and GNU for OpenMP shared/private clauses commit a5aa9998f0fcdfafc039357f6f1d5ca512c5fcca Merge: 1c09583 fdcf3b0 Author: Dom Heinzeller Date: Mon Jul 9 14:49:39 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into ccpp-physics-gfdlmp-fast-processes commit 1c09583d5e440b7a426bc584e0a560ab216e3c83 Author: Dom Heinzeller Date: Mon Jul 9 14:49:33 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: update comments on outdated code that calculates tracer indices for the GFS_interstitial data type commit fdcf3b06a0e2052e37492a61647cc368a9e268ef Merge: def3727 b697e01 Author: Dom Heinzeller Date: Mon Jul 9 13:31:50 2018 -0600 Merge pull request #23 from lulinxue/LX_FV3_development Fixed Interstitial%slopetype and updated Noah LSM in CCPP commit def3727ee0a421ca7cab05913002f5f05a843224 Merge: c7f2b49 e0565ba Author: Dom Heinzeller Date: Mon Jul 9 08:19:11 2018 -0600 Merge pull request #22 from grantfirl/scnv_update shallow convection (samfshalcnv) update for FV3 commit dac629bf7c33ce50e1fab04edf3ff1938d4cb581 Author: Dom Heinzeller Date: Fri Jul 6 19:07:20 2018 -0600 ipd/IPD_CCPP_driver.F90: remove IPD_fastphys, change API for ccpp_init with existing suite from a previous read of the SDF, use CCPP_shared datatype, add logic to finalize slow and fast physics commit ae2e732fff503affcfd8919854a90f73c0e2af19 Author: Dom Heinzeller Date: Fri Jul 6 19:05:21 2018 -0600 gfsphysics/CCPP_layer/CCPP_typedefs.F90: definition of CCPP_interstitial data type for fast physics, and CCPP_shared data type for fast and slow physics commit 50de07517055ba01cb2fd45d42ecd2d30ed9a768 Author: Dom Heinzeller Date: Fri Jul 6 19:04:38 2018 -0600 gfsphysics/makefile: add CCPP_typedefs.F90 to CCPP build commit e4ee1ff1fbcda7004ff137e4a91727d0e3079023 Author: Dom Heinzeller Date: Fri Jul 6 19:01:52 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: remove nthreads, errmsg and errflg from various data types, remove IPD_fastphys data type commit 619f4c3c33356dd0b2b1f07d8ff93152c9731100 Author: Dom Heinzeller Date: Fri Jul 6 19:00:52 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: errmsg and errflg now part of CCPP_shared data type commit a409764bdce2183d92fc5e337bb7f7c3a6208685 Author: Dom Heinzeller Date: Fri Jul 6 19:00:06 2018 -0600 gfsphysics/GFS_layer/GFS_abstraction_layer.F90, gfsphysics/GFS_layer/GFS_driver.F90, ipd/IPD_driver.F90, ipd/IPD_typedefs.F90: remove IPD_fastphys type (no longer needed) commit c2f74d9397276df29ff298158ca331ed4191ea5f Author: Dom Heinzeller Date: Fri Jul 6 18:57:49 2018 -0600 gfsphysics/CCPP_layer/CCPP_data.F90: new cdata structure and interstitial data type for fast physics, new shared data type between fast and slow physics commit b027ef935a41fdb989a9fd010ee5bc2c107ab411 Author: Dom Heinzeller Date: Fri Jul 6 17:40:39 2018 -0600 atmos_model.F90: remove IPD_fastphys type (no longer needed), import ccpp_suite from CCPP_data, call atmosphere_init after reading namelist for CCPP build, finalize CCPP before call to atmosphere_end commit f34ceb45166a1ac0555ad49d7e1fc6800e7e461e Author: Dom Heinzeller Date: Fri Jul 6 17:37:52 2018 -0600 atmos_cubed_sphere/model/fv_mapz.F90: skip qs_init for CCPP build, call CCPP fast physics, handle interstitial data; also: bugfix for both CCPP and non-CCPP build for dimensionality of delz in hydrostatic build commit 6c2dd03310057ad8c02bf7a8185ab45872606395 Author: Dom Heinzeller Date: Fri Jul 6 17:32:59 2018 -0600 atmos_cubed_sphere/model/fv_dynamics.F90: add call to fv_sat_adj_pre at top of fv_dynamics commit 3e2fd29692e1beeed89f997082e1299dd182804a Author: Dom Heinzeller Date: Fri Jul 6 17:30:40 2018 -0600 atmos_cubed_sphere/model/fv_arrays.F90: CCPP metadata table for fv_atmos_type commit 40430dcb95ef6d931fe08744cf197ffb02626865 Author: Dom Heinzeller Date: Fri Jul 6 17:28:39 2018 -0600 atmos_cubed_sphere/driver/fvGFS/atmosphere.F90: add logic to initialize CCPP infrastructure and CCPP data types commit b697e01c8e2e0bbc82f39256f701c9efa6d676d0 Author: lulinxue Date: Thu Jul 5 17:43:42 2018 -0600 Add back descriptions of smc stc and slc modified: GFS_typedefs.F90 commit 3753f6dbeca73ac95f87a80ed0a5571711f18aea Author: lulinxue Date: Thu Jul 5 17:35:25 2018 -0600 Fixed Interstitial%slopetype and updated Noah LSM modified: GFS_physics_driver.F90 modified: GFS_typedefs.F90 commit 1f2a005fb200df64973f6bcd89209e0b566acbfb Author: lulinxue Date: Thu Jul 5 17:13:33 2018 -0600 Fixed Interstitial%slopetype and updated Noah LSM modified: GFS_physics_driver.F90 modified: GFS_typedefs.F90 commit e0565ba869d9a9c9d57de5b2a18832b67ee86756 Author: Grant.Firl Date: Tue Jul 3 15:53:37 2018 -0600 fixed error in GFS_typedefs.F90 -- accidentally omitted a variable in the table commit 2e0101d58d495ade8aa3df1bbc8e886e88404a2d Author: Grant.Firl Date: Tue Jul 3 15:50:33 2018 -0600 fixed error in GFS_typedefs.F90 commit 49ef232c53fe4b34097b1ec2a729def213d50ead Author: Laurie Carson Date: Tue Jul 3 15:35:31 2018 -0600 Add option to call time_vary steps with CCPP commit 45fec60ef560800b9d3edc914a1d93e20071c5c6 Author: Grant.Firl Date: Tue Jul 3 15:32:29 2018 -0600 changes to GFS_physics_driver.F90 and GFS_typedefs related to updating shallow convection commit c7f2b49dae747014cd3eabf53359623cc3c5ff56 Merge: 681ac68 a160b9e Author: Dom Heinzeller Date: Mon Jul 2 10:49:11 2018 -0600 Merge pull request #14 from mzhangw/CCPPv2_gwdps gwdps, gwdc, and gscond pass all RT tests with or w/o CCPP commit be7a5c87a620ef3a3246a47da7148dc1d65ca223 Author: lulinxue Date: Fri Jun 29 15:10:56 2018 -0600 Temp updates modified: GFS_physics_driver.F90 modified: GFS_typedefs.F90 commit 681ac68da0150460a48ff710392d4ebf2931a15b Merge: bcf6f82 dba44ef Author: Dom Heinzeller Date: Fri Jun 29 11:10:42 2018 -0600 Merge pull request #19 from climbfuji/tmp_remove_thompson_20180629 Temporarily remove CCPP HRRR Thompson MP scheme commit dba44efd3983b195096f02d5a9ffd4539761c561 Author: Dom Heinzeller Date: Fri Jun 29 10:34:16 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: add error message and abort model if CCPP-Thompson MP scheme is used (currently removed from CCPP physics pool commit 8959823c95f6352108cfa4d86e9a584320111d1f Author: Julie Schramm Date: Thu Jun 28 10:22:22 2018 -0600 First pass at adding variables from cs_conv.F90 to GFS_typedefs.F90 commit 93c893f98085346d6a196dc54bb18e475c653803 Merge: a64cbbd bcf6f82 Author: Julie Schramm Date: Wed Jun 27 12:39:10 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' into features/cs_conv_for_ccpp commit a64cbbd3fe1255eed12879661801acbd4350e980 Author: Julie Schramm Date: Wed Jun 27 12:32:20 2018 -0600 Change standard names of do_aw, do_awdd and flx_form in GFS_typedefs.F90 argument table to match those in cs_conv.F90 commit bcf6f820cbfb39ffb240ed8d19a3fed9375d51d8 Merge: 7b9ffe2 ce8ef91 Author: Dom Heinzeller Date: Wed Jun 27 12:14:39 2018 -0600 Merge pull request #13 from climbfuji/fv3-thompson-hrrr-aerosol-climatology FV3 Thompson HRRR aerosol climatology commit a160b9e08cdee900aa00f626b6c9d8bbe5aa5b60 Merge: aba5a03 7b9ffe2 Author: Man.Zhang Date: Wed Jun 27 07:12:44 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into CCPPv2_gwdps commit aba5a0370236279822febf94df9c0193fbfa791d Author: Man.Zhang Date: Wed Jun 27 06:50:54 2018 -0600 CCPP bound for gscond intersitital. commit 7b9ffe22875b2575cc9f283c2126b9e2bc434de9 Merge: fcddbe4 ac33948 Author: Dom Heinzeller Date: Tue Jun 26 22:29:26 2018 -0600 Merge pull request #18 from climbfuji/FV3-radiation-ccpp FV3 RRTMG lw/sw radiation CCPP-compliant commit ac33948c4c78f723749f0ea15d5c461f815f5506 Author: Dom Heinzeller Date: Tue Jun 26 22:02:00 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90 and gfsphysics/GFS_layer/GFS_physics_driver.F90: bugfix for correctly allocating Interstitital%clw and debugging code (commented out for future use) commit 58ef5632aee7f15398bfbc01f98c58d8b1ab962b Author: Dom Heinzeller Date: Tue Jun 26 18:05:26 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: bugfixes for calling hedmf and samfdeepcnv, adopt new version to switch between option A and B from cnvc90, formatting commit f0eb4477e1541eb8a9007dda0ef81bf0fbdca16f Author: Man.Zhang Date: Tue Jun 26 16:54:26 2018 -0600 gscond pass CCPP rt tests with option B. commit bade5996aaca0827048470921bdbd1e192f5be85 Author: Man.Zhang Date: Tue Jun 26 10:41:55 2018 -0600 gwdps_post pass CCPP rt tests with option B. commit efe29cda84687e6171e6b6df8abcdecf31c202bf Merge: e03faab fcddbe4 Author: Dom Heinzeller Date: Tue Jun 26 10:41:06 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into FV3-radiation-ccpp commit e03faaba4c88264583780490ea93c845bfeede1a Author: Dom Heinzeller Date: Mon Jun 25 19:04:33 2018 -0600 atmos_model.F90: use IPD_CCPP step 'radiation' for CCPP build and remove reference to radiation driver; set IPD_Control%Communicator to commglobal commit 1775f1800a92f3506687ffdd60fd823383aa1429 Author: Dom Heinzeller Date: Mon Jun 25 19:03:19 2018 -0600 atmos_cubed_sphere/tools/fv_mp_mod.F90: make MPI communicator commglobal public for CCPP build; this is necessary for physics schemes to use the correct communicator (using MPI_COMM_WORLD causes the model to hang when quilting is used) commit d6aa530180ca5546a4061f19ed5a6a7ece1c7980 Author: Dom Heinzeller Date: Mon Jun 25 19:02:10 2018 -0600 ipd/IPD_CCPP_driver.F90: run ccpp framework init/finalize in serial (with respect to threads), since this does not work on all systems tested and is negligible in time; introduce new IPD_CCPP step 'radiation' commit ae6b450b62bd08753b952518e4128d4ff1fa3753 Author: Dom Heinzeller Date: Mon Jun 25 18:59:30 2018 -0600 gfsphysics/makefile: replace instead of append lower AVX optimizations for radiation_aerosols.f, introduce RADIATION_SRC_* and PHYSICS_SRC_* lists that allow us to remove source files from CCPP build commit a268565a854e2ae6a45bc44454554a0db5f4f007 Author: Dom Heinzeller Date: Mon Jun 25 18:57:16 2018 -0600 gfsphysics/GFS_layer/GFS_driver.F90: Run radiation initialization through CCPP (GFS_rrtmg_setup) and use Model%si instead of local si variable commit 4d85522455320dfee0b50cd97e728c33dc5f976f Author: Dom Heinzeller Date: Mon Jun 25 18:56:16 2018 -0600 gfsphysics/GFS_layer/GFS_abstraction_layer.F90 and ipd/IPD_driver.F90: remove references to GFS_radiation_driver.F90 for CCPP build commit 51c0c230700b8056410c920f17b1f754aabbaa0d Author: Dom Heinzeller Date: Mon Jun 25 18:55:18 2018 -0600 gfsphysics/GFS_layer/GFS_radiation_driver.F90: remove CCPP preprocessor directives from file, because GFS_radiation_driver.F90 is no longer compiled when CCPP is enabled commit 091fbb2cfd506ee475f6e0a8f3f68b9e2c067b04 Author: Dom Heinzeller Date: Mon Jun 25 18:24:15 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: define radiation constants instead of importing them from physics modules, add variables or missing standard names for variables required for radiation initialization via CCPP, add missing variables for RUC LSM (metadata was already defined, but actual variable declarations were forgotten; only allocated if RUC LSM is used), fix typos and non-standard F77 code, add guard for CCPP-runs to have lwhtr and swhtr enabled commit 6cf72d1acc8eda80fe0bf4465be909205c301a52 Author: Dom Heinzeller Date: Mon Jun 25 18:05:12 2018 -0600 gfsphysics/physics/sfc_drv.f: import ppfbet from surface_perturbation instead of module_radiation_surface commit ef2974ef6a901c8d5c4277c79a7dd6d275a3aa5d Author: Dom Heinzeller Date: Mon Jun 25 17:59:04 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: remove surface perturbation code and import from surface_perturbation.F90; define preprocessor flag to switch between CCPP-run options A and B (for Intel only, for others B will always be chosen); run GFS_suite_interstitial_phys_reset at top of GFS_physics_driver commit d2b8467067b6a13df1aa1054fe60ed9b23331e38 Author: Dom Heinzeller Date: Mon Jun 25 17:39:52 2018 -0600 gfsphysics/physics/radiation_surface.f: remove ppfbet and dependencies from module (now in surface_perturbation.F90) and import instead commit ce18edbd856ac59d8736faaf1dcd36a02c0be595 Author: Dom Heinzeller Date: Mon Jun 25 17:37:10 2018 -0600 New file physics/surface_perturbation.F90 that contains code added for surface perturbations, originally in GFS_physics_driver.F90 and module_radiation_surface.f, but required but other parts of the model commit fcddbe4a19812145b6d50e0ebfc964bd55c36289 Merge: 5a82cf3 3fdb80a Author: grantfirl Date: Mon Jun 25 16:36:32 2018 -0600 Merge pull request #17 from grantfirl/dcnv_update dcnv_update commit f77e3f580675f572b04fdebcfad0c75694826e8f Author: Man.Zhang Date: Mon Jun 25 16:12:03 2018 -0600 gwdps_pre pass CCPP RT tests with option B. commit 5a82cf398de6ad6a623f835505049825bb893c80 Merge: 51a8533 019d0c2 Author: Dom Heinzeller Date: Mon Jun 25 11:43:07 2018 -0600 Merge pull request #15 from grantfirl/moninedmf_update Moninedmf update commit 536e22f92d0b0ec1d1049046d82cfe619a7b9f4e Author: Man.Zhang Date: Sun Jun 24 21:52:14 2018 -0600 gwdps_run pass ccpp rt tests with Option B commit 3fdb80a22254d061d24f20a64268ebb9d694be1c Author: Grant.Firl Date: Fri Jun 22 14:53:11 2018 -0600 added CCPP calls to samfdeepcnv in GFS_physics_driver; added new variables and metadata in GFS_type_defs commit 8336a8dcaa96b05c4d5b97782bf7d4362b81a6f5 Author: Man.Zhang Date: Thu Jun 21 13:56:49 2018 -0600 gwdc_post with Option B pass CCPP RT tests. commit 019d0c2169bae5032e765402b91f4269f7795829 Author: Grant.Firl Date: Thu Jun 21 10:00:15 2018 -0600 reverted makefile to NEMSfv3gfs_master_ccpp_integration version since no changes are necessary and I keep on messing up whitespace somehow commit 675ed104b9264faa285c6c3c24db7787ccb40403 Author: Grant.Firl Date: Thu Jun 21 09:49:24 2018 -0600 fix whitespace in makefile again commit 40268ade5a5a8e7682dfd99593433026949d92cf Author: Man.Zhang Date: Thu Jun 21 09:47:34 2018 -0600 gwdc_run with option B pass CCPP RT tests commit a7cab352dc4b38e7540f704ba7f88b5d6bac2414 Author: Grant.Firl Date: Thu Jun 21 09:46:57 2018 -0600 fixed whitespace irregularity in makefile commit 52f4fbb53503a98cdad2a27ccc16d08536777371 Author: Man.Zhang Date: Wed Jun 20 22:04:45 2018 -0600 option B of gwdc_pre pass CCPP RT test. commit 756475de599c92bc3826c5e09624c425e7315caf Author: Grant.Firl Date: Wed Jun 20 14:11:17 2018 -0600 adding option B to calling hedmf from CCPP in driver commit d4a8fb6d32560393f930e1c877a84586c0ae40bb Author: Man.Zhang Date: Wed Jun 20 12:16:13 2018 -0600 add gwdc_post and get B4B results. commit 62daf1ea6325329869ab917399563ee599afb97e Author: Man.Zhang Date: Wed Jun 20 11:30:51 2018 -0600 add gwdc_pre and get b4b results. commit ff89d91b200f393942066fc96c1680c0c0766df3 Author: Grant Firl Date: Wed Jun 20 17:12:08 2018 +0000 changes to GFS_physics_driver.F90 to compile and run properly; passed regression test with option A commit c6a2405df153f46aef334ec5b1c701d5690462ef Author: Man.Zhang Date: Wed Jun 20 08:47:30 2018 -0600 merge gwdc_run with NEMSfv3gfs with B4B results. commit c7aa6de61142492d39e13daad790110942c99072 Author: Grant.Firl Date: Mon Jun 18 14:46:00 2018 -0600 WORK IN PROGRESS; removed tridi.f and makefile line (should not be necessary with non-CCPP compliant call; modified GFS_physics_driver.F90 to use 'option A' of calling CCPP-compliant scheme; non-CCPP compliant scheme can be called too commit eaebdccc655365f5b53996245a7dad4f53dba053 Author: Grant.Firl Date: Mon Jun 18 13:12:51 2018 -0600 WORK IN PROGRESS; updated variable table for hybrid EDMF scheme in GFS_typedefs.F90, moved tridiagonal solver subroutines from moninedmf file to its own file, updated makefile to compile it commit 3402ba369345dda14c2c1616632823c49a35fb1c Merge: b6d9a64 51a8533 Author: Dom Heinzeller Date: Mon Jun 18 13:12:15 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of https://github.com/NCAR/FV3 into FV3-laurie-rrtmg commit ce8ef911bf113241ba75ff6977ba20779c779aca Author: Dom Heinzeller Date: Sun Jun 17 14:32:30 2018 -0600 Add liq_aero and ice_aero tracers to debugging output in atmos_cubed_sphere/tools/external_ic.F90, and add notes in atmos_cubed_sphere/tools/external_ic.F90 and atmos_cubed_sphere/model/fv_control.F90 on how to improve the handling of aerosol input in the future commit 824db5ecf5e2fe7b4ee7b8013cf760368b653a58 Author: Dom Heinzeller Date: Sun Jun 17 14:30:17 2018 -0600 Fix for commit 6986a5bcb4a96965807e18556f6d193d602dafcc: if checksum does not match, delete precomputed tables before trying to recreate them commit 51a8533c3e91d16e93846deb89971862b8f0a14e Merge: e026b6b 5098404 Author: Dom Heinzeller Date: Thu Jun 14 09:19:34 2018 -0600 Merge pull request #12 from climbfuji/hrrr-thompson-mp HRRR Thompson MP (FV3) commit ab482d227635861623d7dce3ef8d12251add28ca Merge: ae01475 9e5215d Author: Dom Heinzeller Date: Wed Jun 13 11:09:26 2018 -0600 Merge pull request #11 from climbfuji/codeowners-FV3-master Code owner review code protection master branch commit 50984045baecc9f4356937b731a2442218e704c0 Author: Dom Heinzeller Date: Wed Jun 13 07:39:08 2018 -0600 Call IPD-CCPP step physics init once at the beginning of the physics time step commit 00ea8fe852e3b93f3d3d3c1f5419098cfc8b5907 Author: Dom Heinzeller Date: Wed Jun 13 07:38:41 2018 -0600 Create separate IPD-CCPP step 'physics_init' that runs physics init over blocks instead of running it as part of the CCPP framework init over the entire domain; required for initializing physics schemes such as Thompson MP that require atmospheric state variables (temperature, ...) for initialization and run over block variables commit 007ec324890c3219cfb1d0934d5669552a6e3476 Author: Dom Heinzeller Date: Wed Jun 13 07:36:10 2018 -0600 Add call to CCPP-compliant HRRR Thompson MP physics and add warning statements in the code where Thompson MP is not fully configured to work with other options such as shoc (applies to GFS Thompson MP as well, not only to CCPP HRRR Thompson MP) commit 772c253dfa24e0d6ad21a5005857e91f083d0914 Author: Dom Heinzeller Date: Wed Jun 13 07:28:11 2018 -0600 Add IPD_Control%threads variable to GFS_typedefs.F90 that holds the number of OpenMP threads available for physics schemes commit 70645aa2ed92541c27f2dc5caf89000d50fe17f9 Author: Dom Heinzeller Date: Wed Jun 13 07:26:42 2018 -0600 Remove call to GFS Thompson MP init for CCPP, since the init for HRRR Thompson MP is called automatically as part of the CCPP physics init commit 6986a5bcb4a96965807e18556f6d193d602dafcc Author: Dom Heinzeller Date: Wed Jun 13 07:21:40 2018 -0600 Add functionality to save Thompson MP tables to a SIONlib file and read it back from there instead of computing it at model startup; identical to the approach taken in CCPP's version of HRRR Thompson MP; temporary only to speed up testing on MacOSX, can be reverted later commit 9e5215d029815071bceb44e57bd961ccf0c6c5d1 Author: Dom Heinzeller Date: Tue Jun 12 09:35:13 2018 -0600 Add CODEOWNERS file for code owner review code protection commit e026b6b10b1fcb644181b2a4f03ff248eef2daa7 Merge: 6396b99 e1bc50c Author: Laurie Carson Date: Fri Jun 8 14:29:27 2018 -0600 Merge pull request #10 from llpcarson/vlab.integration.20180608 From Vlab: ccpp-20180608 commit ae0147564589307e2e1c25b0dc905d6048a0bb45 Merge: e97b631 3c46e59 Author: Laurie Carson Date: Fri Jun 8 14:29:10 2018 -0600 Merge pull request #9 from llpcarson/vlab.master.20180608 From Vlab: master-20180608 commit e1bc50c3be2b1e236d87f09e5d65331c2af3afec Merge: 6396b99 24ee09e Author: Laurie Carson Date: Fri Jun 8 14:16:42 2018 -0600 Merge branch 'NEMSfv3gfs_master_ccpp_integration' of gerrit:FV3 into NEMSfv3gfs_master_ccpp_integration commit 3c46e599e87e7c8fe51eec23142e4841e3f15a7d Merge: e97b631 06b956a Author: Laurie Carson Date: Fri Jun 8 14:12:22 2018 -0600 Merge branch 'master' of gerrit:FV3 commit 24ee09e87ffc7de46a97e847c39e1fc357f147b5 Merge: 096a822 06b956a Author: Laurie Date: Fri Jun 8 14:03:17 2018 -0600 Merge branch 'master' of gerrit:FV3 into NEMSfv3gfs_master_ccpp_integration commit b6d9a64184a899a28327702d380aa3f298838472 Author: Laurie Carson Date: Thu Jun 7 11:26:53 2018 -0600 Add metadata for two new clouds-fields in radiation calls commit 6396b9918e05e54b639ca7b4e1b89d373fffb7ee Merge: 9b7aeea 910434d Author: Dom Heinzeller Date: Wed Jun 6 14:32:02 2018 -0600 Merge pull request #7 from climbfuji/additional-variables-for-hrrr-physics_and_update_standard_names_update_20180605 Follow-up PR on "Additional variables for HRRR physics", add CODEOWNERS commit 910434d7a96a38372d0062d6fab5dd463f6dc1b7 Author: Dom Heinzeller Date: Wed Jun 6 14:18:58 2018 -0600 Add Model%communicator for MPI communicator in CCPP build, correct dimensions for RUC state variable flag_frsoil commit 48a1525781b58d58b8bff78e80a1219ac69511ae Author: Dom Heinzeller Date: Tue Jun 5 08:54:49 2018 -0600 Add CODEOWNERS file for code protection commit 3745247a261d38cc50512db2d7b4d9bb7d59afea Author: Dom Heinzeller Date: Tue Jun 5 08:53:59 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90: move RUC state variables to Sfcprop DDT, add/improve logic to allocate RUC variables only if needed, add default values for RUC LSM switch and Thompson MP switch commit 9b7aeead268f4c785c11077d8b1a4eb10c3a0019 Merge: 2d617b4 4ad3e1f Author: Dom Heinzeller Date: Mon Jun 4 16:11:28 2018 -0600 Merge pull request #6 from climbfuji/additional-variables-for-hrrr-physics_and_update_standard_names Additional variables for HRRR physics (RUC LSM), update of standard names commit 4ad3e1f3c4d7190f3f61a679de1b3b05f3ca2c68 Author: Dom Heinzeller Date: Fri Jun 1 17:45:42 2018 -0600 Add new variables required for HRRR physics (RUC LSM), update standard names (specific humidity -> (moist) mixing ratio) commit 2d617b45fd4128a15890d3c896030fb1837bb9b5 Merge: a41bcd9 525bf87 Author: Dom Heinzeller Date: Fri Jun 1 15:06:20 2018 -0600 Merge pull request #5 from climbfuji/add_cnvc90_and_interstitial_data_types_and_metadata_tables_and_update_standard_names (1) Add metadata tables to GFS_typedefs and (2) add CCPP-compliant CNVC90 commit 525bf8749e2a0cd78aba0ce009d4aaa1035c8605 Author: Dom Heinzeller Date: Thu May 31 10:27:36 2018 -0600 atmos_model.F90: add IPD_Interstitial variable to IPD_step calls (temporarily, only for calling CCPP-compliant physics from inside the GFS physics/radiation drivers), add IPD_Finalize routine, initialize CCPP data types after IPD_Initialize is called commit 2274a5c0b29b106cc1d00416b658f7e9a95ca372 Author: Dom Heinzeller Date: Thu May 31 10:26:19 2018 -0600 ipd/IPD_CCPP_driver.F90: add block- and thread-dependent cdata structure with initialization routines, add IPD-CCPP finalize step commit 0014d235d2378a679c83f52c78b8924796ab1869 Author: Dom Heinzeller Date: Thu May 31 10:25:22 2018 -0600 ipd/IPD_driver.F90: add IPD_Interstitial to argument lists (may be reverted later, see note in file) and define IPD_finalize routine commit f4a74f23012d39e7b5c682814960162b464035d6 Author: Dom Heinzeller Date: Thu May 31 10:24:16 2018 -0600 ipd/IPD_typedefs.F90: define IPD_interstitial data type commit b7190cd91c155e8acde99be01cbc60033f99e40f Author: Dom Heinzeller Date: Thu May 31 10:23:52 2018 -0600 ipd/makefile: enable two-step preprocessing of ipd/IPD_CCPP_driver.F90 commit e274ef1d4ee59098680108ce95b46618041b93e8 Author: Dom Heinzeller Date: Thu May 31 10:23:00 2018 -0600 gfsphysics/GFS_layer/GFS_radiation_driver.F90: addition of Interstitital data type commit 55ce958815052ec87635e29a5e7e9ebf8c62fdf4 Author: Dom Heinzeller Date: Thu May 31 10:22:36 2018 -0600 gfsphysics/GFS_layer/GFS_abstraction_layer.F90: propagate GFS_finalize routine and Interstitial data type commit cf1d65a1c2596311d0fdfcbec06fc52d87245b79 Author: Dom Heinzeller Date: Thu May 31 10:21:44 2018 -0600 gfsphysics/GFS_layer/GFS_driver.F90: define GFS_finalize, initialize Fastphys and Interstitial variables in GFS_initialize commit deefa960fa74ee5d9a9eecc52140421b69a8cc16 Author: Dom Heinzeller Date: Thu May 31 10:21:13 2018 -0600 gfsphysics/GFS_layer/GFS_physics_driver.F90: Add Interstitial data type, use CCPP_data module and demonstrate how to run cnvc90 in three different ways: from FV3/gfsphysics (i.e. non-CCPP-compliant physics in original NEMSfv3gfs repo), from ccpp-physics directly (via call cnvc90_mp_cnvc90_run; for Intel only, doesn't work with PGI/GNU) and from ccpp-physics via ccpp_physics_run. commit 5ad487aa0d864264adcbe64a2f7d0fea28b13e8b Author: Dom Heinzeller Date: Thu May 31 10:11:21 2018 -0600 Change name of cdata structure in atmos_cubed_sphere/model/fv_mapz.F90 from cdata to cdata_domain commit c6e5667ca3a4c3f134f9ea50bba3d2e87b6e641b Author: Dom Heinzeller Date: Thu May 31 10:10:45 2018 -0600 New module gfsphysics/CCPP_layer/CCPP_data.F90 that contains the CCPP data structures commit 85ee392dfd87a6bc11775cccf4663ea771bb90d0 Author: Dom Heinzeller Date: Thu May 31 09:51:42 2018 -0600 gfsphysics/GFS_layer/GFS_typedefs.F90 and gfsphysics/GFS_layer/GFS_radiation_driver.F90: add interstitial data types and metadata tables to GFS_typedefs.F90, move definition of LTP from GFS_radiation_driver.F90 to GFS_typedefs.F90 for CCPP build, update variable standard names commit a41bcd93cba7393e8e1bed18b411405fe6a783b5 Merge: 26c17aa 096a822 Author: Dom Heinzeller Date: Wed May 30 11:54:34 2018 -0600 Merge pull request #4 from llpcarson/vlab.ccpp.20180530 From Vlab: ccpp-20180530 commit e97b631321a088b1587598fcb66c032fcfd1fc6d Merge: 8ca3a1b 02b4642 Author: Dom Heinzeller Date: Wed May 30 11:52:11 2018 -0600 Merge pull request #3 from llpcarson/vlab.master.20180530 From Vlab: master-20180530 commit 02b4642e0204edeeb07d3a82c42e755647a52b7a Merge: 42ea482 8ca3a1b Author: Laurie Carson Date: Wed May 30 10:58:51 2018 -0600 Merge branch 'master' of https://github.com/NCAR/FV3 commit 096a822e90b790f6232d5c9e8be8440e9eabf34d Author: Dom Heinzeller Date: Wed May 30 09:52:47 2018 -0600 Fix for PGI compiler in atmos_cubed_sphere/tools/external_ic.F90: need to add module-use statement for GFS_restart_type commit 057047c9f8a4bd6b1b211bc1efe2b2c9043434a4 Merge: 38b925b 42ea482 Author: Dom Heinzeller Date: Tue May 29 08:55:03 2018 -0600 Merge branch 'master' of gerrit:FV3 into NEMSfv3gfs_master_ccpp_integration commit 38b925bf333be94a88fb1c0ee0b9f5ecf694e15c Merge: 26c17aa 81990a3 Author: Dom Heinzeller Date: Wed May 16 15:28:53 2018 -0600 Merge branch 'master' into NEMSfv3gfs_master_ccpp_integration commit 8ca3a1b0ac29257be267b2a63fff2a1d6bcd084d Merge: 81990a3 158d249 Author: Laurie Carson Date: Fri May 11 11:59:05 2018 -0600 Merge branch 'master' of https://github.com/NCAR/FV3 commit 26c17aa332553da9eb167fae99bc1e5b096412e9 Author: Dom Heinzeller Date: Wed May 9 09:32:28 2018 -0600 CCPP fast physics test calls in fv_mapz.F90 when do_sat_adj is true commit 028bc0d3767675961a410d9bebc557634391a915 Author: Dom Heinzeller Date: Wed May 9 09:31:56 2018 -0600 CCPP initialization and finalization calls in atmos_model.F90 commit 1bd07d44e5c49fd5824f68919fe8562142e682c2 Author: Dom Heinzeller Date: Wed May 9 09:29:13 2018 -0600 New module IPD_CCPP_driver (only compiled if CCPP is used), make CPP flags in makefiles add-on instead of replace to propagate -DCCPP from build system commit 800e2632ea550490b4c5279b1eede48555c0086d Author: Dom Heinzeller Date: Wed May 9 09:26:31 2018 -0600 Introduction and propagation of new derived type GFS_fastphys for testing of CCPP integration and running fast physics through CCPP commit 158d2497e3e132649a07b08bd539834da643a549 Merge: 39988db da74622 Author: Laurie Carson Date: Sun May 6 16:41:50 2018 -0600 Merge branch 'master' of https://github.com/NCAR/FV3 README only commit da74622038837d61345877ed320f331c8ca59197 Author: Laurie Carson Date: Fri Apr 27 12:57:12 2018 -0600 Create README.md --- ccpp/physics | 2 +- ccpp/suites/suite_FV3_GSD_SAR.xml | 83 ++++++++++++++++++++++++ gfsphysics/GFS_layer/GFS_diagnostics.F90 | 13 ++++ gfsphysics/GFS_layer/GFS_typedefs.F90 | 47 +++++++++----- gfsphysics/GFS_layer/GFS_typedefs.meta | 6 ++ io/FV3GFS_io.F90 | 34 +++++++++- 6 files changed, 164 insertions(+), 21 deletions(-) create mode 100644 ccpp/suites/suite_FV3_GSD_SAR.xml diff --git a/ccpp/physics b/ccpp/physics index 73b8c0ded..73bbc9f1d 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 73b8c0dedd2aab842c55045864dee233e07edfe2 +Subproject commit 73bbc9f1df683e4dab9c22d52d0319c8615ffab2 diff --git a/ccpp/suites/suite_FV3_GSD_SAR.xml b/ccpp/suites/suite_FV3_GSD_SAR.xml new file mode 100644 index 000000000..e563301c4 --- /dev/null +++ b/ccpp/suites/suite_FV3_GSD_SAR.xml @@ -0,0 +1,83 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmg_pre + rrtmg_sw_pre + mynnrad_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + mynnrad_post + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_ruc + lsm_ruc_sfc_sice_pre + sfc_sice + lsm_ruc_sfc_sice_post + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + dcyc2t3_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + diff --git a/gfsphysics/GFS_layer/GFS_diagnostics.F90 b/gfsphysics/GFS_layer/GFS_diagnostics.F90 index ec6c1233b..95f7f51e7 100644 --- a/gfsphysics/GFS_layer/GFS_diagnostics.F90 +++ b/gfsphysics/GFS_layer/GFS_diagnostics.F90 @@ -2804,6 +2804,19 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop enddo #ifdef CCPP + if (Model%rdlai) then + idx = idx + 1 + ExtDiag(idx)%axes = 2 + ExtDiag(idx)%name = 'xlaixy' + ExtDiag(idx)%desc = 'leaf area index' + ExtDiag(idx)%unit = 'number' + ExtDiag(idx)%mod_name = 'gfs_sfc' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var2 => sfcprop(nb)%xlaixy(:) + enddo + endif + if (Model%lsm == Model%lsm_ruc) then do num = 1,Model%lsoil_lsm write (xtra,'(i1)') num diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index d3137ed95..c6593edf3 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -712,6 +712,7 @@ module GFS_typedefs integer :: lsoil_lsm !< number of soil layers internal to land surface model integer :: lsnow_lsm !< maximum number of snow layers internal to land surface model integer :: lsnow_lsm_lbound!< lower bound for snow arrays, depending on lsnow_lsm + logical :: rdlai #endif integer :: ivegsrc !< ivegsrc = 0 => USGS, !< ivegsrc = 1 => IGBP (20 category) @@ -2321,6 +2322,11 @@ subroutine sfcprop_create (Sfcprop, IM, Model) Sfcprop%tsnow = clear_val Sfcprop%snowfallac = clear_val Sfcprop%acsnow = clear_val + ! + if (Model%rdlai) then + allocate (Sfcprop%xlaixy (IM)) + Sfcprop%xlaixy = clear_val + end if end if if (Model%do_mynnsfclay) then ! For MYNN surface layer scheme @@ -2796,6 +2802,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & #ifdef CCPP integer :: lsoil_lsm = -1 !< number of soil layers internal to land surface model; -1 use lsoil integer :: lsnow_lsm = 3 !< maximum number of snow layers internal to land surface model + logical :: rdlai = .false. #endif integer :: ivegsrc = 2 !< ivegsrc = 0 => USGS, !< ivegsrc = 1 => IGBP (20 category) @@ -3078,7 +3085,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & avg_max_length, & !--- land/surface model control #ifdef CCPP - lsm, lsoil, lsoil_lsm, lsnow_lsm, nmtvr, ivegsrc, use_ufo, & + lsm, lsoil, lsoil_lsm, lsnow_lsm, rdlai, & + nmtvr, ivegsrc, use_ufo, & #else lsm, lsoil, nmtvr, ivegsrc, use_ufo, & #endif @@ -3382,6 +3390,12 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & write(0,*) 'Logic error: RUC LSM cannot be used with surface data cycling at this point (fhcyc>0)' stop end if + ! Flag to read leaf area index from input files (initial conditions) + Model%rdlai = rdlai + if (Model%rdlai .and. .not. Model%lsm == Model%lsm_ruc) then + write(0,*) 'Logic error: rdlai = .true. only works with RUC LSM' + stop + end if ! Set surface layers for CCPP physics if (lsoil_lsm==-1) then Model%lsoil_lsm = lsoil @@ -3834,7 +3848,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & ' Boundary layer and Shallow Convection', & ' nshoc_3d=',Model%nshoc_3d, & ' nshoc_2d=',Model%nshoc_2d, & - ' ntke=',Model%ntke,'shoc_parm=',shoc_parm + ' ntke=',Model%ntke,' shoc_parm=',shoc_parm endif #ifdef CCPP @@ -4437,6 +4451,7 @@ subroutine control_print(Model) print *, ' lsm : ', Model%lsm print *, ' lsoil : ', Model%lsoil #ifdef CCPP + print *, ' rdlai : ', Model%rdlai print *, ' lsoil_lsm : ', Model%lsoil_lsm print *, ' lsnow_lsm : ', Model%lsnow_lsm #endif @@ -4867,7 +4882,7 @@ subroutine tbd_create (Tbd, IM, Model) Tbd%snowprv = clear_val Tbd%graupelprv = clear_val end if - + if (Model%lsm == Model%lsm_noahmp) then allocate(Tbd%draincprv (IM)) allocate(Tbd%drainncprv (IM)) @@ -4902,7 +4917,7 @@ subroutine tbd_create (Tbd, IM, Model) Tbd%qsq = clear_val Tbd%cov = clear_val end if - + ! MYJ variables if (Model%do_myjsfc.or.Model%do_myjpbl) then !print*,"Allocating all MYJ surface variables:" @@ -6033,7 +6048,6 @@ subroutine interstitial_setup_tracers(Interstitial, Model) Interstitial%nncl = 5 endif - if (Model%imp_physics == Model%imp_physics_mg) then if (abs(Model%fprcp) == 1) then Interstitial%nncl = 4 ! MG2 with rain and snow @@ -6185,8 +6199,7 @@ subroutine interstitial_rad_reset (Interstitial, Model) Interstitial%tsfg = clear_val ! F-A scheme - !if (Model%imp_physics == Model%imp_physics_fer_hires) then - if (Model%imp_physics == Model%imp_physics_fer_hires ) then + if (Model%imp_physics == Model%imp_physics_fer_hires) then Interstitial%qv_r = clear_val Interstitial%qc_r = clear_val Interstitial%qi_r = clear_val @@ -6768,17 +6781,17 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) ! Print arrays that are conditional on physics choices if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson) then write (0,*) 'Interstitial_print: values specific to GFDL/Thompson microphysics' - write (0,*) 'sum(Interstitial%graupelmp) = ', sum(Interstitial%graupelmp ) - write (0,*) 'sum(Interstitial%icemp ) = ', sum(Interstitial%icemp ) - write (0,*) 'sum(Interstitial%rainmp ) = ', sum(Interstitial%rainmp ) - write (0,*) 'sum(Interstitial%snowmp ) = ', sum(Interstitial%snowmp ) + write (0,*) 'sum(Interstitial%graupelmp ) = ', sum(Interstitial%graupelmp ) + write (0,*) 'sum(Interstitial%icemp ) = ', sum(Interstitial%icemp ) + write (0,*) 'sum(Interstitial%rainmp ) = ', sum(Interstitial%rainmp ) + write (0,*) 'sum(Interstitial%snowmp ) = ', sum(Interstitial%snowmp ) !F-A scheme else if (Model%imp_physics == Model%imp_physics_fer_hires) then write (0,*) 'Interstitial_print: values specific to F-A microphysics' - write (0,*) 'sum(Interstitial%f_ice ) = ', sum(Interstitial%f_ice ) - write (0,*) 'sum(Interstitial%f_rain ) = ', sum(Interstitial%f_rain ) - write (0,*) 'sum(Interstitial%f_rimef ) = ', sum(Interstitial%f_rimef ) - write (0,*) 'sum(Interstitial%cwm ) = ', sum(Interstitial%cwm ) + write (0,*) 'sum(Interstitial%f_ice ) = ', sum(Interstitial%f_ice ) + write (0,*) 'sum(Interstitial%f_rain ) = ', sum(Interstitial%f_rain ) + write (0,*) 'sum(Interstitial%f_rimef ) = ', sum(Interstitial%f_rimef ) + write (0,*) 'sum(Interstitial%cwm ) = ', sum(Interstitial%cwm ) else if (Model%imp_physics == Model%imp_physics_mg) then write (0,*) 'Interstitial_print: values specific to MG microphysics' write (0,*) 'sum(Interstitial%ncgl ) = ', sum(Interstitial%ncgl ) @@ -6808,8 +6821,8 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%ncpl ) = ', sum(Interstitial%ncpl ) end if if (Model%lsm == Model%lsm_noahmp) then - write (0,*) 'sum(Interstitial%t2mmp ) = ', sum(Interstitial%t2mmp ) - write (0,*) 'sum(Interstitial%q2mp ) = ', sum(Interstitial%q2mp ) + write (0,*) 'sum(Interstitial%t2mmp ) = ', sum(Interstitial%t2mmp ) + write (0,*) 'sum(Interstitial%q2mp ) = ', sum(Interstitial%q2mp ) end if write (0,*) 'Interstitial_print: end' ! diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index d0c054032..b6c5cead2 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -2556,6 +2556,12 @@ units = count dimensions = () type = integer +[rdlai] + standard_name = flag_for_reading_leaf_area_index_from_input + long_name = flag for reading leaf area index from initial conditions for RUC LSM + units = flag + dimensions = () + type = logical [ivegsrc] standard_name = vegetation_type_dataset_choice long_name = land use dataset choice diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90 index 3e7b7d2e7..e9d2e2c53 100644 --- a/io/FV3GFS_io.F90 +++ b/io/FV3GFS_io.F90 @@ -513,10 +513,18 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) nvar_s2o = 18 #ifdef CCPP if (Model%lsm == Model%lsm_ruc .and. warm_start) then - nvar_s2r = 6 + if(Model%rdlai) then + nvar_s2r = 7 + else + nvar_s2r = 6 + end if nvar_s3 = 5 else - nvar_s2r = 0 + if(Model%rdlai) then + nvar_s2r = 1 + else + nvar_s2r = 0 + endif nvar_s3 = 3 endif #else @@ -759,6 +767,11 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) sfc_name2(nvar_s2m+22) = 'tsnow' sfc_name2(nvar_s2m+23) = 'snowfall_acc' sfc_name2(nvar_s2m+24) = 'swe_snowfall_acc' + if (Model%rdlai) then + sfc_name2(nvar_s2m+25) = 'lai' + endif + else if (Model%lsm == Model%lsm_ruc .and. Model%rdlai) then + sfc_name2(nvar_s2m+19) = 'lai' #endif endif @@ -957,6 +970,11 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) Sfcprop(nb)%tsnow(ix) = sfc_var2(i,j,nvar_s2m+22) Sfcprop(nb)%snowfallac(ix) = sfc_var2(i,j,nvar_s2m+23) Sfcprop(nb)%acsnow(ix) = sfc_var2(i,j,nvar_s2m+24) + if (Model%rdlai) then + Sfcprop(nb)%xlaixy(ix) = sfc_var2(i,j,nvar_s2m+25) + endif + else if (Model%lsm == Model%lsm_ruc .and. Model%rdlai) then + Sfcprop(nb)%xlaixy(ix) = sfc_var2(i,j,nvar_s2m+19) elseif (Model%lsm == Model%lsm_noahmp) then !--- Extra Noah MP variables #else @@ -1453,7 +1471,11 @@ subroutine sfc_prop_restart_write (Sfcprop, Atm_block, Model, fv_domain, timesta nvar2o = 18 #ifdef CCPP if (Model%lsm == Model%lsm_ruc) then - nvar2r = 6 + if (Model%rdlai) then + nvar2r = 7 + else + nvar2r = 6 + endif nvar3 = 5 else nvar2r = 0 @@ -1587,6 +1609,9 @@ subroutine sfc_prop_restart_write (Sfcprop, Atm_block, Model, fv_domain, timesta sfc_name2(nvar2m+22) = 'tsnow' sfc_name2(nvar2m+23) = 'snowfall_acc' sfc_name2(nvar2m+24) = 'swe_snowfall_acc' + if (Model%rdlai) then + sfc_name2(nvar2m+25) = 'lai' + endif else if(Model%lsm == Model%lsm_noahmp) then #else ! Only needed when Noah MP LSM is used - 29 2D @@ -1789,6 +1814,9 @@ subroutine sfc_prop_restart_write (Sfcprop, Atm_block, Model, fv_domain, timesta sfc_var2(i,j,nvar2m+22) = Sfcprop(nb)%tsnow(ix) sfc_var2(i,j,nvar2m+23) = Sfcprop(nb)%snowfallac(ix) sfc_var2(i,j,nvar2m+24) = Sfcprop(nb)%acsnow(ix) + if (Model%rdlai) then + sfc_var2(i,j,nvar2m+25) = Sfcprop(nb)%xlaixy(ix) + endif else if (Model%lsm == Model%lsm_noahmp) then #else From 1688b2990cde67a4637b34a9b9628296db0314e5 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 26 Nov 2019 11:57:51 -0700 Subject: [PATCH 027/206] ccpp/config/ccpp_prebuild_config.py: add new configuration item DEFAULT_BUILD_DIR --- ccpp/config/ccpp_prebuild_config.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 72203192b..ea5557f0f 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -242,6 +242,10 @@ 'FV3/ccpp/physics/physics/GFS_suite_init_finalize_test.F90' : [ 'slow_physics' ], } +# Default build dir, relative to current working directory, +# if not specified as command-line argument +DEFAULT_BUILD_DIR = 'FV3' + # Auto-generated makefile/cmakefile snippets that contain all schemes SCHEMES_MAKEFILE = '{build_dir}/ccpp/physics/CCPP_SCHEMES.mk' SCHEMES_CMAKEFILE = '{build_dir}/ccpp/physics/CCPP_SCHEMES.cmake' From 07af073d0260e203433e96720e8572ce688e0697 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 26 Nov 2019 11:58:13 -0700 Subject: [PATCH 028/206] Update submodule pointers for ccpp-framework and ccpp-physics --- ccpp/framework | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/framework b/ccpp/framework index 6da780825..b9ff247ee 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 6da78082547b573d714a359368353dd065f59393 +Subproject commit b9ff247eefa526e4618c828f176dafd3de64a061 diff --git a/ccpp/physics b/ccpp/physics index 73bbc9f1d..80edd7812 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 73bbc9f1df683e4dab9c22d52d0319c8615ffab2 +Subproject commit 80edd7812cfa70db0c589026a0a65f2cba1b81a9 From 661e98c2833876e1de26989bb470fdf73730415e Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 27 Nov 2019 13:41:25 -0700 Subject: [PATCH 029/206] Update submodule pointers for ccpp/framework and ccpp/physics --- ccpp/framework | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/framework b/ccpp/framework index b9ff247ee..f7ae56dba 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit b9ff247eefa526e4618c828f176dafd3de64a061 +Subproject commit f7ae56dbaaff833222c77a313d22f894bd4167ac diff --git a/ccpp/physics b/ccpp/physics index 80edd7812..ac7e80dea 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 80edd7812cfa70db0c589026a0a65f2cba1b81a9 +Subproject commit ac7e80deab52f72dea63dddb3c097bc7dcf6d6a0 From 9caa172aaf8757dadc2590d2599706e00225bf51 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 27 Nov 2019 14:33:32 -0700 Subject: [PATCH 030/206] Update submodule pointer for ccpp/physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 2e0d55754..c11b6e8bf 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 2e0d55754ed8763a95f2aa035b2cb755db710350 +Subproject commit c11b6e8bf60f3d23be761b9aa4665d6611b9d7e0 From ac71e234cbecf8e7b516e6fafc7872d1bf45b009 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 29 Nov 2019 17:03:49 -0700 Subject: [PATCH 031/206] ccpp/CMakeLists.txt: add flag '-Wall' to DEBUG flags for GNU compiler --- ccpp/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ccpp/CMakeLists.txt b/ccpp/CMakeLists.txt index 1ee3fce3d..b95b2bc4f 100644 --- a/ccpp/CMakeLists.txt +++ b/ccpp/CMakeLists.txt @@ -89,8 +89,10 @@ if (${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fcray-pointer -ffree-line-length-none -fno-range-check") set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fbacktrace -cpp") if (${CMAKE_BUILD_TYPE} MATCHES "Debug") + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fno-unsafe-math-optimizations -frounding-math -fsignaling-nans") - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffpe-trap=invalid,zero,overflow -fcheck=bounds -fbacktrace -fno-range-check") + set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffpe-trap=invalid,zero,overflow -fcheck=bounds -fbacktrace -fno-range-check -Wall") elseif (${CMAKE_BUILD_TYPE} MATCHES "Bitforbit") set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}") endif (${CMAKE_BUILD_TYPE} MATCHES "Debug") From 2de4377fddeaf2c8d58202e8fef54274b313092c Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 2 Dec 2019 11:02:38 -0700 Subject: [PATCH 032/206] Update submodule pointers for ccpp-framework and ccpp-physics --- ccpp/framework | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/framework b/ccpp/framework index f7ae56dba..1d1027267 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit f7ae56dbaaff833222c77a313d22f894bd4167ac +Subproject commit 1d102726766a550b2c2292f0e964280c952ceb2c diff --git a/ccpp/physics b/ccpp/physics index c11b6e8bf..308a19747 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit c11b6e8bf60f3d23be761b9aa4665d6611b9d7e0 +Subproject commit 308a1974745b673ff6095b528bd3e35aebe5448c From eae67862e08a1285d4e2029aa8312f6d6d3ec7d8 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 3 Dec 2019 15:22:19 -0700 Subject: [PATCH 033/206] Update submodule pointers for atmos_cubed_sphere, ccpp/framework, ccpp/physics --- atmos_cubed_sphere | 2 +- ccpp/framework | 2 +- ccpp/physics | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 68576a61f..3a4dfd8c6 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 68576a61f2a57236931e5ef1b8bd73a4256b0a5f +Subproject commit 3a4dfd8c6c4ceb8cec06397f25cb229ecd98065b diff --git a/ccpp/framework b/ccpp/framework index 1d1027267..42596226f 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 1d102726766a550b2c2292f0e964280c952ceb2c +Subproject commit 42596226fcbbf4c151829ec99ff0649adc09a5df diff --git a/ccpp/physics b/ccpp/physics index 308a19747..f895fc0aa 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 308a1974745b673ff6095b528bd3e35aebe5448c +Subproject commit f895fc0aa011808cece39164443627a8126cc318 From bace3d3e7f190713bc8469086409af0b3c2a31f0 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 3 Dec 2019 15:42:59 -0700 Subject: [PATCH 034/206] Update CODEOWNERS, .gitmodules and submodule pointers for gsd/develop --- .gitmodules | 12 ++++++------ CODEOWNERS | 2 +- atmos_cubed_sphere | 2 +- ccpp/framework | 2 +- ccpp/physics | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.gitmodules b/.gitmodules index 2fdeca40a..59e3ccdf2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,12 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - url = https://github.com/NCAR/GFDL_atmos_cubed_sphere - branch = dtc/develop + url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere + branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/NCAR/ccpp-framework - branch = dtc/develop + url = https://github.com/climbfuji/ccpp-framework + branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NCAR/ccpp-physics - branch = dtc/develop + url = https://github.com/climbfuji/ccpp-physics + branch = gsd/develop diff --git a/CODEOWNERS b/CODEOWNERS index 0d5230f89..986cf7664 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -3,7 +3,7 @@ # These owners will be the default owners for everything in the repo. #* @defunkt -* @climbfuji @llpcarson @grantfirl @JulieSchramm +* @climbfuji @tanyasmirnova # Order is important. The last matching pattern has the most precedence. # So if a pull request only touches javascript files, only these owners diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 3a4dfd8c6..8d64268c1 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 3a4dfd8c6c4ceb8cec06397f25cb229ecd98065b +Subproject commit 8d64268c1013182a45ddfb0f1eba02e9d0cb9867 diff --git a/ccpp/framework b/ccpp/framework index 42596226f..ab790120b 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 42596226fcbbf4c151829ec99ff0649adc09a5df +Subproject commit ab790120bbf6d80e1a7029bee24a42d1042ffc25 diff --git a/ccpp/physics b/ccpp/physics index f895fc0aa..e563a91ee 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit f895fc0aa011808cece39164443627a8126cc318 +Subproject commit e563a91ee63ec82fb5c8ce3c5eb0329e3a57b9b3 From 1bb33702ffb184ef3a5e082fcc5097bd09bd1462 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 12 Dec 2019 10:13:41 -0700 Subject: [PATCH 035/206] Update .gitmodules to point to noaa-gsd instead of climbfuji --- .gitmodules | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 59e3ccdf2..d4b7cd2e0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,12 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere + url = https://github.com/noaa-gsd/GFDL_atmos_cubed_sphere branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/climbfuji/ccpp-framework + url = https://github.com/noaa-gsd/ccpp-framework branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/climbfuji/ccpp-physics + url = https://github.com/noaa-gsd/ccpp-physics branch = gsd/develop From cc0f89a8425085c39cab96a4e62daff15742f57b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 12 Dec 2019 10:24:31 -0700 Subject: [PATCH 036/206] Update CODEOWNERS for move to NOAA-GSD, update submodule pointers --- CODEOWNERS | 2 +- atmos_cubed_sphere | 2 +- ccpp/framework | 2 +- ccpp/physics | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index 986cf7664..b6c597371 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -3,7 +3,7 @@ # These owners will be the default owners for everything in the repo. #* @defunkt -* @climbfuji @tanyasmirnova +* @DomHeinzeller # Order is important. The last matching pattern has the most precedence. # So if a pull request only touches javascript files, only these owners diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 8d64268c1..e996043d6 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 8d64268c1013182a45ddfb0f1eba02e9d0cb9867 +Subproject commit e996043d682c1f071821354ef3be7b0d2e9b2b09 diff --git a/ccpp/framework b/ccpp/framework index ab790120b..78d5d5b15 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit ab790120bbf6d80e1a7029bee24a42d1042ffc25 +Subproject commit 78d5d5b155385c2d67276b31e8154cea9bfb1d34 diff --git a/ccpp/physics b/ccpp/physics index e563a91ee..e81ee3683 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit e563a91ee63ec82fb5c8ce3c5eb0329e3a57b9b3 +Subproject commit e81ee3683d61d557404543f59c4a70949cdf2f45 From 77bb53e5b9841d5b40340dbe495dfe6be3ae2192 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 5 Dec 2019 21:08:33 -0700 Subject: [PATCH 037/206] allow for radiation being called on physics timestep for first nhfrad timesteps --- ccpp/physics | 2 +- gfsphysics/GFS_layer/GFS_typedefs.F90 | 23 +++++++++++++++++++++++ gfsphysics/GFS_layer/GFS_typedefs.meta | 6 ++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index e81ee3683..32e245a44 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit e81ee3683d61d557404543f59c4a70949cdf2f45 +Subproject commit 32e245a44f372f3f17517548c7604cb57443783f diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 6b2402039..ff1d0184e 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -590,6 +590,9 @@ module GFS_typedefs real(kind=kind_phys) :: fhlwr !< frequency for longwave radiation (secs) integer :: nsswr !< integer trigger for shortwave radiation integer :: nslwr !< integer trigger for longwave radiation +#ifdef CCPP + integer :: nhfrad !< number of timesteps for which to call radiation on physics timestep (coldstarts) +#endif integer :: levr !< number of vertical levels for radiation calculations #ifdef CCPP integer :: levrp1 !< number of vertical levels for radiation calculations plus one @@ -2703,6 +2706,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & !--- radiation parameters real(kind=kind_phys) :: fhswr = 3600. !< frequency for shortwave radiation (secs) real(kind=kind_phys) :: fhlwr = 3600. !< frequency for longwave radiation (secs) +#ifdef CCPP + integer :: nhfrad = 0 !< number of timesteps for which to call radiation on physics timestep (coldstarts) +#endif integer :: levr = -99 !< number of vertical levels for radiation calculations integer :: nfxr = 39+6 !< second dimension of input/output array fluxr logical :: aero_in = .false. !< flag for initializing aero data @@ -3072,6 +3078,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & fhswr, fhlwr, levr, nfxr, aero_in, iflip, isol, ico2, ialb, & isot, iems, iaer, icliq_sw, iovr_sw, iovr_lw, ictm, isubc_sw,& isubc_lw, crick_proof, ccnorm, lwhtr, swhtr, & +#ifdef CCPP + nhfrad, & +#endif ! IN CCN forcing iccn, & !--- microphysical parameterizations @@ -3277,6 +3286,17 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%fhlwr = fhlwr Model%nsswr = nint(fhswr/Model%dtp) Model%nslwr = nint(fhlwr/Model%dtp) +#ifdef CCPP + if (restart) then + Model%nhfrad = 0 + if (Model%me == Model%master .and. nhfrad>0) & + write(*,'(a)') 'Disable high-frequency radiation calls for restart run' + else + Model%nhfrad = nhfrad + if (Model%me == Model%master .and. nhfrad>0) & + write(*,'(a,i0)') 'Number of high-frequency radiation calls for coldstart run: ', nhfrad + endif +#endif if (levr < 0) then Model%levr = levs else @@ -4384,6 +4404,9 @@ subroutine control_print(Model) print *, ' fhlwr : ', Model%fhlwr print *, ' nsswr : ', Model%nsswr print *, ' nslwr : ', Model%nslwr +#ifdef CCPP + print *, ' nhfrad : ', Model%nhfrad +#endif print *, ' levr : ', Model%levr print *, ' nfxr : ', Model%nfxr print *, ' aero_in : ', Model%aero_in diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index b6c5cead2..872cb56ca 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -2025,6 +2025,12 @@ dimensions = () type = real kind = kind_phys +[nhfrad] + standard_name = number_of_timesteps_for_radiation_calls_on_physics_timestep + long_name = number of timesteps for radiation calls on physics timestep (coldstarts only) + units = count + dimensions = () + type = integer [levr] standard_name = number_of_vertical_layers_for_radiation_calculations long_name = number of vertical levels for radiation calculations From 28f8cb30d884eb456199a3b82a2fdb379b543aeb Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 12 Dec 2019 15:56:43 -0700 Subject: [PATCH 038/206] Add README.md skeleton containing a disclaimer for compliance with the NOAA GitHub policies --- README.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 000000000..735892584 --- /dev/null +++ b/README.md @@ -0,0 +1,32 @@ +# fv3atm + +This is the FV3 atmosphere model component including fv3 dynamics core, dynsmics to physics driver, physics and io. + +# Where to find information + +Work in progress + +# What files are what + +The top level directory structure groups source code and input files as follow: + +| File/directory | Purpose | +| -------------- | ------- | +| ```LICENSE.md``` | A copy of the Gnu lesser general public license, version 3. | +| ```README.md``` | This file with basic pointers to more information. | +| Work in progress | | + +# Disclaimer + +The United States Department of Commerce (DOC) GitHub project code is provided +on an "as is" basis and the user assumes responsibility for its use. DOC has +relinquished control of the information and no longer has responsibility to +protect the integrity, confidentiality, or availability of the information. Any +claims against the Department of Commerce stemming from the use of its GitHub +project will be governed by all applicable Federal law. Any reference to +specific commercial products, processes, or services by service mark, +trademark, manufacturer, or otherwise, does not constitute or imply their +endorsement, recommendation or favoring by the Department of Commerce. The +Department of Commerce seal and logo, or the seal and logo of a DOC bureau, +shall not be used in any manner to imply endorsement of any commercial product +or activity by DOC or the United States Government. From df0e6eaa66dd083431ab21651128f806f679dd58 Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Thu, 19 Dec 2019 20:31:37 +0000 Subject: [PATCH 039/206] add qdiag3d support --- gfsphysics/GFS_layer/GFS_diagnostics.F90 | 142 ++++++++++++++++++++++- gfsphysics/GFS_layer/GFS_typedefs.F90 | 20 +++- gfsphysics/GFS_layer/GFS_typedefs.meta | 27 +++++ 3 files changed, 181 insertions(+), 8 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_diagnostics.F90 b/gfsphysics/GFS_layer/GFS_diagnostics.F90 index 95f7f51e7..68204a466 100644 --- a/gfsphysics/GFS_layer/GFS_diagnostics.F90 +++ b/gfsphysics/GFS_layer/GFS_diagnostics.F90 @@ -2231,6 +2231,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ! if(mpp_pe()==mpp_root_pe())print *,'in gfdl_diag_register,af shum_wts,idx=',idx !--- three-dimensional variables that need to be handled special when writing + if_ldiag3d: if(Model%ldiag3d) then idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dt3dt_lw' @@ -2308,11 +2309,22 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,7) enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_rdamp' + ExtDiag(idx)%desc = 'temperature change due to Rayleigh damping' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,8) + enddo + idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_pbl' ExtDiag(idx)%desc = 'u momentum change due to PBL' - ExtDiag(idx)%unit = 'XXX' + ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks @@ -2334,7 +2346,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_orogwd' ExtDiag(idx)%desc = 'u momentum change due to orographic gravity wave drag' - ExtDiag(idx)%unit = 'XXX' + ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks @@ -2398,6 +2410,132 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'du3dt_rdamp' + ExtDiag(idx)%desc = 'u momentum change due to Rayleigh damping' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,5) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dv3dt_damp' + ExtDiag(idx)%desc = 'v momentum change due to Rayleigh damping' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,5) + enddo + +#ifdef CCPP + if_qdiag3d: if(Model%qdiag3d) then + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_pbl' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to PBL' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,1) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_deepcnv' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to deep conv.' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,2) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_shlwcnv' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to shal conv.' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,3) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_microphy' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to microphysics' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,4) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_o3pbl' + ExtDiag(idx)%desc = 'cumulative change in ozone mixing ratio due to PBL' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,5) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_o3prodloss' + ExtDiag(idx)%desc = 'cumulative change in ozone concentration due to production and loss rate' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,6) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_o3mix' + ExtDiag(idx)%desc = 'cumulative change in ozone concentration due to ozone mixing ratio' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,7) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_o3temp' + ExtDiag(idx)%desc = 'cumulative change in ozone concentration due to temperature' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,8) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_o3column' + ExtDiag(idx)%desc = 'cumulative change in ozone concentration due to overhead ozone column' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,9) + enddo + end if if_qdiag3d +#endif + end if if_ldiag3d + !rab !rab do num = 1,5+Mdl_parms%pl_coeff !rab write (xtra,'(I1)') num diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index ff1d0184e..be463696d 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -530,6 +530,7 @@ module GFS_typedefs #endif real(kind=kind_phys) :: fhzero !< hours between clearing of diagnostic buckets logical :: ldiag3d !< flag for 3d diagnostic fields + logical :: qdiag3d !< flag for 3d tracer diagnostic fields logical :: lssav !< logical flag for storing diagnostics real(kind=kind_phys) :: fhcyc !< frequency for surface data cycling (hours) integer :: thermodyn_id !< valid for GFS only for get_prs/phi @@ -2689,6 +2690,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & !--- BEGIN NAMELIST VARIABLES real(kind=kind_phys) :: fhzero = 0.0 !< hours between clearing of diagnostic buckets logical :: ldiag3d = .false. !< flag for 3d diagnostic fields + logical :: qdiag3d = .false. !< flag for 3d tracer diagnostic fields logical :: lssav = .false. !< logical flag for storing diagnostics real(kind=kind_phys) :: fhcyc = 0. !< frequency for surface data cycling (hours) @@ -3070,7 +3072,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & NAMELIST /gfs_physics_nml/ & !--- general parameters - fhzero, ldiag3d, lssav, fhcyc, & + fhzero, ldiag3d, qdiag3d, lssav, fhcyc, & thermodyn_id, sfcpress_id, & !--- coupling parameters cplflx, cplwav, cplchm, lsidea, & @@ -3220,6 +3222,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & #endif Model%fhzero = fhzero Model%ldiag3d = ldiag3d + Model%qdiag3d = qdiag3d ! !VAY-ugwp --- set some GW-related switches ! @@ -4364,6 +4367,7 @@ subroutine control_print(Model) print *, ' fn_nml : ', trim(Model%fn_nml) print *, ' fhzero : ', Model%fhzero print *, ' ldiag3d : ', Model%ldiag3d + print *, ' qdiag3d : ', Model%qdiag3d print *, ' lssav : ', Model%lssav print *, ' fhcyc : ', Model%fhcyc print *, ' thermodyn_id : ', Model%thermodyn_id @@ -5186,10 +5190,12 @@ subroutine diag_create (Diag, IM, Model) !--- 3D diagnostics if (Model%ldiag3d) then - allocate (Diag%du3dt (IM,Model%levs,4)) - allocate (Diag%dv3dt (IM,Model%levs,4)) - allocate (Diag%dt3dt (IM,Model%levs,7)) - allocate (Diag%dq3dt (IM,Model%levs,9)) + allocate (Diag%du3dt (IM,Model%levs,5)) + allocate (Diag%dv3dt (IM,Model%levs,5)) + allocate (Diag%dt3dt (IM,Model%levs,8)) + if (Model%qdiag3d) then + allocate (Diag%dq3dt (IM,Model%levs,9)) + endif ! allocate (Diag%dq3dt (IM,Model%levs,oz_coeff+5)) !--- needed to allocate GoCart coupling fields ! allocate (Diag%upd_mf (IM,Model%levs)) @@ -5495,7 +5501,9 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%du3dt = zero Diag%dv3dt = zero Diag%dt3dt = zero -! Diag%dq3dt = zero + if (Model%qdiag3d) then + Diag%dq3dt = zero + endif ! Diag%upd_mf = zero ! Diag%dwn_mf = zero ! Diag%det_mf = zero diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 872cb56ca..db77d8911 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1865,6 +1865,12 @@ units = flag dimensions = () type = logical +[qdiag3d] + standard_name = flag_tracer_diagnostics_3D + long_name = flag for 3d tracer diagnostic fields + units = flag + dimensions = () + type = logical [lssav] standard_name = flag_diagnostics long_name = logical flag for storing diagnostics @@ -5373,6 +5379,13 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[du3dt(:,:,5)] + standard_name = cumulative_change_in_x_wind_due_to_rayleigh_damping + long_name = cumulative change in x wind due to Rayleigh damping + units = m s-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [dv3dt(:,:,1)] standard_name = cumulative_change_in_y_wind_due_to_PBL long_name = cumulative change in y wind due to PBL @@ -5401,6 +5414,13 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[dv3dt(:,:,5)] + standard_name = cumulative_change_in_y_wind_due_to_rayleigh_damping + long_name = cumulative change in y wind due to Rayleigh damping + units = m s-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [dt3dt(:,:,1)] standard_name = cumulative_change_in_temperature_due_to_longwave_radiation long_name = cumulative change in temperature due to longwave radiation @@ -5450,6 +5470,13 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[dt3dt(:,:,8)] + standard_name = cumulative_change_in_temperature_due_to_rayleigh_damping + long_name = cumulative change in temperature due to Rayleigh damping + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [dq3dt(:,:,1)] standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_PBL long_name = cumulative change in water vapor specific humidity due to PBL From c7ad1a3ac611fd598112c143a404ddc865cf28f7 Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Fri, 27 Dec 2019 19:03:43 +0000 Subject: [PATCH 040/206] add qdiag3d support --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 32e245a44..a48681459 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 32e245a44f372f3f17517548c7604cb57443783f +Subproject commit a48681459256779bdf2a95b6fb46916afd6df158 From 8b16470c5c9d911db60627a90b696d6d59a20a64 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 31 Dec 2019 10:48:27 -0700 Subject: [PATCH 041/206] Move CCPP initialization to just before the first timestep --- atmos_model.F90 | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/atmos_model.F90 b/atmos_model.F90 index 23e30e76c..0fc5d7fe7 100644 --- a/atmos_model.F90 +++ b/atmos_model.F90 @@ -276,6 +276,16 @@ subroutine update_atmos_radiation_physics (Atmos) call atmos_phys_driver_statein (IPD_data, Atm_block, flip_vc) call mpp_clock_end(getClock) +#ifdef CCPP + if (IPD_Control%first_time_step) then + ! Initialize the CCPP framework and physics + call CCPP_step (step="init", nblks=Atm_block%nblks, ierr=ierr) + if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP init step failed') + call CCPP_step (step="physics_init", nblks=Atm_block%nblks, ierr=ierr) + if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP physics_init step failed') + end if +#endif + !--- if dycore only run, set up the dummy physics output state as the input state if (dycore_only) then do nb = 1,Atm_block%nblks @@ -626,17 +636,6 @@ subroutine atmos_model_init (Atmos, Time_init, Time, Time_step) if(IPD_Control%me == IPD_Control%master) print *,'do_skeb=',IPD_Control%do_skeb end if -#ifdef CCPP - ! Initialize the CCPP framework - call CCPP_step (step="init", nblks=Atm_block%nblks, ierr=ierr) - if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP init step failed') - ! Doing the init here requires logic in thompson aerosol init if no aerosol - ! profiles are specified and internal profiles are calculated, because these - ! require temperature/geopotential etc which are not yet set. Sim. for RUC LSM. - call CCPP_step (step="physics_init", nblks=Atm_block%nblks, ierr=ierr) - if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP physics_init step failed') -#endif - Atmos%Diag => IPD_Diag if (IPD_Control%do_sfcperts) then From dc10a75f1cba239183307c0d58ad5ca68481d89a Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Fri, 3 Jan 2020 15:53:33 +0000 Subject: [PATCH 042/206] Further bug fixes to tendency accumulation --- ccpp/physics | 2 +- gfsphysics/GFS_layer/GFS_typedefs.F90 | 4 +++- gfsphysics/GFS_layer/GFS_typedefs.meta | 13 +++++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ccpp/physics b/ccpp/physics index a48681459..a77488d38 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit a48681459256779bdf2a95b6fb46916afd6df158 +Subproject commit a77488d3801117720d947242196e824a2f6e409c diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index be463696d..3286e8290 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -531,6 +531,7 @@ module GFS_typedefs real(kind=kind_phys) :: fhzero !< hours between clearing of diagnostic buckets logical :: ldiag3d !< flag for 3d diagnostic fields logical :: qdiag3d !< flag for 3d tracer diagnostic fields + logical :: gwd_generic_tend!< true if GFS_GWD_generic should calculate tendencies logical :: lssav !< logical flag for storing diagnostics real(kind=kind_phys) :: fhcyc !< frequency for surface data cycling (hours) integer :: thermodyn_id !< valid for GFS only for get_prs/phi @@ -3223,6 +3224,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%fhzero = fhzero Model%ldiag3d = ldiag3d Model%qdiag3d = qdiag3d + Model%gwd_generic_tend = .false. ! !VAY-ugwp --- set some GW-related switches ! @@ -5192,7 +5194,7 @@ subroutine diag_create (Diag, IM, Model) if (Model%ldiag3d) then allocate (Diag%du3dt (IM,Model%levs,5)) allocate (Diag%dv3dt (IM,Model%levs,5)) - allocate (Diag%dt3dt (IM,Model%levs,8)) + allocate (Diag%dt3dt (IM,Model%levs,9)) if (Model%qdiag3d) then allocate (Diag%dq3dt (IM,Model%levs,9)) endif diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index db77d8911..bdcfa9d8d 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1871,6 +1871,12 @@ units = flag dimensions = () type = logical +[gwd_generic_tend] + standard_name = true_if_GFS_GWD_generic_should_calculate_tendencies + long_name = true if GFS_GWD_generic should calculate tendencies + units = flag + dimensions = () + type = logical [lssav] standard_name = flag_diagnostics long_name = logical flag for storing diagnostics @@ -5477,6 +5483,13 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[dt3dt(:,:,9)] + standard_name = cumulative_change_in_temperature_due_to_convective_gravity_wave_drag + long_name = cumulative change in temperature due to convective gravity wave drag + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [dq3dt(:,:,1)] standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_PBL long_name = cumulative change in water vapor specific humidity due to PBL From 9d4959fc926fe8370532ea17cbea3588c63fe4de Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 31 Dec 2019 10:49:53 -0700 Subject: [PATCH 043/206] Update CCPP prebuild config with changes for Thompson initialization; update submodule pointer and .gitmodules for code review --- .gitmodules | 4 ++-- ccpp/config/ccpp_prebuild_config.py | 13 ++++--------- ccpp/physics | 2 +- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/.gitmodules b/.gitmodules index d4b7cd2e0..e6caf3e0c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/noaa-gsd/ccpp-physics - branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = thompson_init_update diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index ea5557f0f..29c6122ab 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -304,10 +304,14 @@ }, 'mp_thompson' : { 'mp_thompson_init' : [ + 'cloud_droplet_number_concentration', 'water_friendly_aerosol_number_concentration', 'ice_friendly_aerosol_number_concentration', 'tendency_of_water_friendly_aerosols_at_surface', 'tendency_of_ice_friendly_aerosols_at_surface', + 'mean_effective_radius_for_liquid_cloud', + 'mean_effective_radius_for_ice_cloud', + 'mean_effective_radius_for_snow_flake', ], 'mp_thompson_run' : [ 'cloud_droplet_number_concentration_updated_by_physics', @@ -320,15 +324,6 @@ 'mean_effective_radius_for_snow_flake', ], }, - 'mp_thompson_pre' : { - 'mp_thompson_pre_run' : [ - 'cloud_droplet_number_concentration_updated_by_physics', - 'water_friendly_aerosol_number_concentration_updated_by_physics', - 'ice_friendly_aerosol_number_concentration_updated_by_physics', - 'tendency_of_water_friendly_aerosols_at_surface', - 'tendency_of_ice_friendly_aerosols_at_surface', - ], - }, 'mp_fer_hires' : { 'mp_fer_hires_init' : [ 'fraction_of_ice_water_cloud', diff --git a/ccpp/physics b/ccpp/physics index 32e245a44..6dcc757ea 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 32e245a44f372f3f17517548c7604cb57443783f +Subproject commit 6dcc757eaad3fe85a6b90e0041d305cc533d8b8e From 53b365faa31871ef19f0863fb70661480e46abe0 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 6 Jan 2020 07:20:22 -0700 Subject: [PATCH 044/206] Revert change to .gitmodules, update submodule pointer for ccpp-physics --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index e6caf3e0c..d4b7cd2e0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/climbfuji/ccpp-physics - branch = thompson_init_update + url = https://github.com/noaa-gsd/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index 6dcc757ea..4eaa560af 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 6dcc757eaad3fe85a6b90e0041d305cc533d8b8e +Subproject commit 4eaa560af9e88270ed74a72effff6f12899afb1b From 8789b87daf9ba53e24f341a42c75039ebd901df9 Mon Sep 17 00:00:00 2001 From: hannah barnes Date: Mon, 6 Jan 2020 11:44:55 -0700 Subject: [PATCH 045/206] Moved number concentration approximation from cu_gf_driver to interstitial code --- ccpp/physics | 2 +- gfsphysics/GFS_layer/GFS_typedefs.F90 | 4 ++++ gfsphysics/GFS_layer/GFS_typedefs.meta | 7 +++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 4eaa560af..1c6cad52e 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 4eaa560af9e88270ed74a72effff6f12899afb1b +Subproject commit 1c6cad52ef65d4b7d01bbe9ce9fe93e71129180a diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index ff1d0184e..e3ba0bffa 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -1801,6 +1801,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: runoff(:) => null() !< real (kind=kind_phys), pointer :: save_q(:,:,:) => null() !< real (kind=kind_phys), pointer :: save_t(:,:) => null() !< + real (kind=kind_phys), pointer :: save_tcp(:,:) => null() !< real (kind=kind_phys), pointer :: save_u(:,:) => null() !< real (kind=kind_phys), pointer :: save_v(:,:) => null() !< real (kind=kind_phys), pointer :: sbsno(:) => null() !< @@ -5862,6 +5863,7 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%runoff (IM)) allocate (Interstitial%save_q (IM,Model%levs,Model%ntrac)) allocate (Interstitial%save_t (IM,Model%levs)) + allocate (Interstitial%save_tcp (IM,Model%levs)) allocate (Interstitial%save_u (IM,Model%levs)) allocate (Interstitial%save_v (IM,Model%levs)) allocate (Interstitial%sbsno (IM)) @@ -6393,6 +6395,7 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%runoff = clear_val Interstitial%save_q = clear_val Interstitial%save_t = clear_val + Interstitial%save_tcp = clear_val Interstitial%save_u = clear_val Interstitial%save_v = clear_val Interstitial%sbsno = clear_val @@ -6720,6 +6723,7 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%runoff ) = ', sum(Interstitial%runoff ) write (0,*) 'sum(Interstitial%save_q ) = ', sum(Interstitial%save_q ) write (0,*) 'sum(Interstitial%save_t ) = ', sum(Interstitial%save_t ) + write (0,*) 'sum(Interstitial%save_tcp ) = ', sum(Interstitial%save_tcp ) write (0,*) 'sum(Interstitial%save_u ) = ', sum(Interstitial%save_u ) write (0,*) 'sum(Interstitial%save_v ) = ', sum(Interstitial%save_v ) write (0,*) 'sum(Interstitial%sbsno ) = ', sum(Interstitial%sbsno ) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 872cb56ca..606409f0f 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -7661,6 +7661,13 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[save_tcp] + standard_name = air_temperature_save_from_cumulus_paramterization + long_name = air temperature after cumulus parameterization + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [save_u] standard_name = x_wind_save long_name = x-wind before entering a physics scheme From 220067864e82154868a3a49cfe8221683726b187 Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Mon, 6 Jan 2020 19:55:31 +0000 Subject: [PATCH 046/206] fix several bugs mentioned in code review --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index a77488d38..a227ad0d7 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit a77488d3801117720d947242196e824a2f6e409c +Subproject commit a227ad0d7e4c67e7ad6e74b770e4786f189af008 From 2398c9c53b1b796f30563a1ee6dcc84a1c451bcb Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 10 Jan 2020 13:08:08 -0700 Subject: [PATCH 047/206] atmos_model.F90: bugfix for retaining b4b identical results for GFDL-MP microphysics --- atmos_model.F90 | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/atmos_model.F90 b/atmos_model.F90 index 0fc5d7fe7..d92a7d2b9 100644 --- a/atmos_model.F90 +++ b/atmos_model.F90 @@ -276,16 +276,6 @@ subroutine update_atmos_radiation_physics (Atmos) call atmos_phys_driver_statein (IPD_data, Atm_block, flip_vc) call mpp_clock_end(getClock) -#ifdef CCPP - if (IPD_Control%first_time_step) then - ! Initialize the CCPP framework and physics - call CCPP_step (step="init", nblks=Atm_block%nblks, ierr=ierr) - if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP init step failed') - call CCPP_step (step="physics_init", nblks=Atm_block%nblks, ierr=ierr) - if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP physics_init step failed') - end if -#endif - !--- if dycore only run, set up the dummy physics output state as the input state if (dycore_only) then do nb = 1,Atm_block%nblks @@ -686,6 +676,18 @@ subroutine atmos_model_init (Atmos, Time_init, Time, Time_step) call FV3GFS_restart_read (IPD_Data, IPD_Restart, Atm_block, IPD_Control, Atmos%domain) #endif +#ifdef CCPP + ! Populate the IPD_Data%Statein container with the prognostic state + ! in Atm_block, which contains the initial conditions/restart data. + call atmos_phys_driver_statein (IPD_data, Atm_block, flip_vc) + ! Initialize the CCPP framework + call CCPP_step (step="init", nblks=Atm_block%nblks, ierr=ierr) + if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP init step failed') + ! Initialize the CCPP physics + call CCPP_step (step="physics_init", nblks=Atm_block%nblks, ierr=ierr) + if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP physics_init step failed') +#endif + !--- set the initial diagnostic timestamp diag_time = Time if (output_1st_tstep_rst) then From 6ec41e828067b278834b7afc893b0d49a1118868 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 10 Jan 2020 13:08:48 -0700 Subject: [PATCH 048/206] Update submodule pointer for ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 4eaa560af..ff02358fa 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 4eaa560af9e88270ed74a72effff6f12899afb1b +Subproject commit ff02358faa89878ac2d9c8d934bfd0cba96fba93 From a15f74be21f956fe427a797b22ce5216311bb749 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Sat, 11 Jan 2020 21:46:55 -0500 Subject: [PATCH 049/206] Update submodule pointer for ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index ff02358fa..44f9e596e 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit ff02358faa89878ac2d9c8d934bfd0cba96fba93 +Subproject commit 44f9e596ee55af92d3bad12c9cac0bb659333468 From 538a1d8b4a52a1db3c7aeb4011833afe08f9543b Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Tue, 14 Jan 2020 01:23:51 +0000 Subject: [PATCH 050/206] add a pbl_generic_tend flag to tell whether the GFS_PBL_generic module should calculate the 3D diagnostic tendencies. --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 2 ++ gfsphysics/GFS_layer/GFS_typedefs.meta | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 3286e8290..520f7c8ec 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -532,6 +532,7 @@ module GFS_typedefs logical :: ldiag3d !< flag for 3d diagnostic fields logical :: qdiag3d !< flag for 3d tracer diagnostic fields logical :: gwd_generic_tend!< true if GFS_GWD_generic should calculate tendencies + logical :: pbl_generic_tend!< true if GFS_PBL_generic should calculate tendencies logical :: lssav !< logical flag for storing diagnostics real(kind=kind_phys) :: fhcyc !< frequency for surface data cycling (hours) integer :: thermodyn_id !< valid for GFS only for get_prs/phi @@ -3225,6 +3226,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%ldiag3d = ldiag3d Model%qdiag3d = qdiag3d Model%gwd_generic_tend = .false. + Model%pbl_generic_tend = .false. ! !VAY-ugwp --- set some GW-related switches ! diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index bdcfa9d8d..3db26d49a 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1877,6 +1877,12 @@ units = flag dimensions = () type = logical +[pbl_generic_tend] + standard_name = true_if_GFS_PBL_generic_should_calculate_tendencies + long_name = true if GFS_PBL_generic should calculate tendencies + units = flag + dimensions = () + type = logical [lssav] standard_name = flag_diagnostics long_name = logical flag for storing diagnostics From fbc18264850d8bce2783171d2a2d8aab9cb3d3bb Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Tue, 14 Jan 2020 01:26:42 +0000 Subject: [PATCH 051/206] Move PBL tendencies into the PBL run subroutine. --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index a227ad0d7..2850217b2 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit a227ad0d7e4c67e7ad6e74b770e4786f189af008 +Subproject commit 2850217b2efafbda2cafa8a9b01af82348ee2cda From ff725de3860765219123ccbd5f6e24e06e5da3f0 Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Thu, 16 Jan 2020 00:34:08 +0000 Subject: [PATCH 052/206] add ldiag3d and qdiag3d support to physics/module_MYNNPBL_wrapper.F90 and physics/moninedmf.f --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 2850217b2..d5a527841 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 2850217b2efafbda2cafa8a9b01af82348ee2cda +Subproject commit d5a527841cfb07f0fe94f6fd2816264c39060655 From 7b299c5ed2dae77d7c55da5ccf943c9404a07819 Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Thu, 16 Jan 2020 00:52:51 +0000 Subject: [PATCH 053/206] Point to sam's repo --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index d4b7cd2e0..4872527e1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/noaa-gsd/ccpp-physics + url = https://github.com/SamuelTrahanNOAA/ccpp-physics branch = gsd/develop From d257b2a9b9d2b386441ea2deba5acb944cf19a3b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 27 Jan 2020 09:53:16 -0700 Subject: [PATCH 054/206] Update .gitmodules for code review and testing --- .gitmodules | 12 ++++++------ ccpp/physics | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitmodules b/.gitmodules index d4b7cd2e0..c2b56985c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,12 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - url = https://github.com/noaa-gsd/GFDL_atmos_cubed_sphere - branch = gsd/develop + url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere + branch = update_dtc_develop_from_dev-emc [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/noaa-gsd/ccpp-framework - branch = gsd/develop + url = https://github.com/climbfuji/ccpp-framework + branch = update_dtc_develop_from_master [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/noaa-gsd/ccpp-physics - branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = update_dtc_develop_from_master diff --git a/ccpp/physics b/ccpp/physics index 6c9e614a8..3449dd57f 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 6c9e614a8cd2eddf17c4a3b34e6f82de9048f82b +Subproject commit 3449dd57f0f678324c4d73e5ed883a088fbb1d34 From e95f8abff15cc9d8efba99dcffa6239fa027130f Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Tue, 28 Jan 2020 23:08:32 +0000 Subject: [PATCH 055/206] add model and ccpp tendency calculations --- ccpp/config/ccpp_prebuild_config.py | 8 +- ccpp/suites/suite_FV3_GSD_v0.xml | 11 ++ gfsphysics/GFS_layer/GFS_diagnostics.F90 | 132 ++++++++++++++++++ gfsphysics/GFS_layer/GFS_typedefs.F90 | 14 +- gfsphysics/GFS_layer/GFS_typedefs.meta | 168 +++++++++++++++++++++++ 5 files changed, 328 insertions(+), 5 deletions(-) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index ea5557f0f..9ed876f49 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -114,6 +114,9 @@ 'FV3/ccpp/physics/physics/mfpblt.f', 'FV3/ccpp/physics/physics/mfpbltq.f', 'FV3/ccpp/physics/physics/mfscu.f', + 'FV3/ccpp/physics/physics/total_tend.F90', + 'FV3/ccpp/physics/physics/model_tend_pre.F90', + 'FV3/ccpp/physics/physics/model_tend_post.F90', 'FV3/ccpp/physics/physics/mfscuq.f', 'FV3/ccpp/physics/physics/noahmp_tables.f90', 'FV3/ccpp/physics/physics/num_parthds.F', @@ -184,7 +187,10 @@ 'FV3/ccpp/physics/physics/gcm_shoc.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/get_prs_fv3.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/gfdl_cloud_microphys.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/gfdl_fv_sat_adj.F90' : [ 'fast_physics' ], + 'FV3/ccpp/physics/physics/gfdl_fv_sat_adj.F90' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/total_tend.F90' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/model_tend_pre.F90' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/model_tend_post.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/gscond.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/gwdc.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/gwdps.f' : [ 'slow_physics' ], diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index 3f83b5dc5..1219acdd0 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -12,6 +12,7 @@ + model_tend_pre GFS_suite_interstitial_rad_reset GFS_rrtmg_pre rrtmg_sw_pre @@ -23,10 +24,13 @@ mynnrad_post rrtmg_lw_post GFS_rrtmg_post + model_tend_post + total_tend + model_tend_pre GFS_suite_interstitial_phys_reset GFS_suite_stateout_reset get_prs_fv3 @@ -36,9 +40,11 @@ dcyc2t3 GFS_surface_composites_inter GFS_suite_interstitial_2 + model_tend_post + model_tend_pre sfc_diff GFS_surface_loop_control_part1 sfc_nst_pre @@ -49,9 +55,11 @@ sfc_sice lsm_ruc_sfc_sice_post GFS_surface_loop_control_part2 + model_tend_post + model_tend_pre GFS_surface_composites_post dcyc2t3_post sfc_diag @@ -83,11 +91,14 @@ GFS_MP_generic_post cu_gf_driver_post maximum_hourly_diagnostics + model_tend_post + model_tend_pre GFS_stochastics + model_tend_post diff --git a/gfsphysics/GFS_layer/GFS_diagnostics.F90 b/gfsphysics/GFS_layer/GFS_diagnostics.F90 index 68204a466..72f4847c7 100644 --- a/gfsphysics/GFS_layer/GFS_diagnostics.F90 +++ b/gfsphysics/GFS_layer/GFS_diagnostics.F90 @@ -2432,8 +2432,140 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,5) enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'du3dt_ccpp' + ExtDiag(idx)%desc = 'cumulative change in x wind from CCPP' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,6) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dv3dt_ccpp' + ExtDiag(idx)%desc = 'cumulative change in y wind from CCPP' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,6) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'du3dt_model' + ExtDiag(idx)%desc = 'cumulative change in x wind from model' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,7) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dv3dt_model' + ExtDiag(idx)%desc = 'cumulative change in y wind from model' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,7) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'du3dt_total' + ExtDiag(idx)%desc = 'cumulative change in x wind' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,8) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dv3dt_total' + ExtDiag(idx)%desc = 'cumulative change in y wind' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,8) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_ccpp' + ExtDiag(idx)%desc = 'cumulative change in temperature from CCPP' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,10) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_model' + ExtDiag(idx)%desc = 'cumulative change in temperature from model' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,11) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_total' + ExtDiag(idx)%desc = 'cumulative change in temperature' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,12) + enddo + #ifdef CCPP if_qdiag3d: if(Model%qdiag3d) then + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_ccpp' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity from CCPP' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,10) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_model' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity from model' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,11) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_total' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,12) + enddo + idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dq3dt_pbl' diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 520f7c8ec..548e138fb 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -1464,6 +1464,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: dv3dt (:,:,:) => null() !< v momentum change due to physics real (kind=kind_phys), pointer :: dt3dt (:,:,:) => null() !< temperature change due to physics real (kind=kind_phys), pointer :: dq3dt (:,:,:) => null() !< moisture change due to physics + real (kind=kind_phys), pointer :: tend_book(:,:,:)=>null() !< CCPP tendency storage real (kind=kind_phys), pointer :: refdmax (:) => null() !< max hourly 1-km agl reflectivity real (kind=kind_phys), pointer :: refdmax263k(:) => null() !< max hourly -10C reflectivity real (kind=kind_phys), pointer :: t02max (:) => null() !< max hourly 2m T @@ -5194,12 +5195,16 @@ subroutine diag_create (Diag, IM, Model) !--- 3D diagnostics if (Model%ldiag3d) then - allocate (Diag%du3dt (IM,Model%levs,5)) - allocate (Diag%dv3dt (IM,Model%levs,5)) - allocate (Diag%dt3dt (IM,Model%levs,9)) + allocate (Diag%du3dt (IM,Model%levs,8)) + allocate (Diag%dv3dt (IM,Model%levs,8)) + allocate (Diag%dt3dt (IM,Model%levs,12)) if (Model%qdiag3d) then - allocate (Diag%dq3dt (IM,Model%levs,9)) + allocate (Diag%dq3dt (IM,Model%levs,12)) + allocate (Diag%tend_book(IM,Model%levs,12)) + else + allocate (Diag%tend_book(IM,Model%levs,9)) endif + Diag%tend_book=0 ! allocate (Diag%dq3dt (IM,Model%levs,oz_coeff+5)) !--- needed to allocate GoCart coupling fields ! allocate (Diag%upd_mf (IM,Model%levs)) @@ -5505,6 +5510,7 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%du3dt = zero Diag%dv3dt = zero Diag%dt3dt = zero + if (Model%qdiag3d) then Diag%dq3dt = zero endif diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 3db26d49a..a7dc03992 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -5398,6 +5398,27 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[du3dt(:,:,6)] + standard_name = cumulative_change_in_x_wind_from_ccpp + long_name = cumulative change in x wind from CCPP + units = m s-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[du3dt(:,:,7)] + standard_name = cumulative_change_in_x_wind_from_model + long_name = cumulative change in x wind from model + units = m s-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[du3dt(:,:,8)] + standard_name = cumulative_change_in_x_wind + long_name = cumulative change in x wind + units = m s-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [dv3dt(:,:,1)] standard_name = cumulative_change_in_y_wind_due_to_PBL long_name = cumulative change in y wind due to PBL @@ -5433,6 +5454,27 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[dv3dt(:,:,6)] + standard_name = cumulative_change_in_y_wind_from_ccpp + long_name = cumulative change in y wind from CCPP + units = m s-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[dv3dt(:,:,7)] + standard_name = cumulative_change_in_y_wind_from_model + long_name = cumulative change in y wind from model + units = m s-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[dv3dt(:,:,8)] + standard_name = cumulative_change_in_y_wind + long_name = cumulative change in y wind + units = m s-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [dt3dt(:,:,1)] standard_name = cumulative_change_in_temperature_due_to_longwave_radiation long_name = cumulative change in temperature due to longwave radiation @@ -5496,6 +5538,27 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[dt3dt(:,:,10)] + standard_name = cumulative_change_in_temperature_from_ccpp + long_name = cumulative change in temperature from CCPP + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[dt3dt(:,:,11)] + standard_name = cumulative_change_in_temperature_from_model + long_name = cumulative change in temperature from model + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[dt3dt(:,:,12)] + standard_name = cumulative_change_in_temperature + long_name = cumulative change in temperature + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [dq3dt(:,:,1)] standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_PBL long_name = cumulative change in water vapor specific humidity due to PBL @@ -5559,6 +5622,111 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[dq3dt(:,:,10)] + standard_name = cumulative_change_in_water_vapor_specific_humidity_from_CCPP + long_name = cumulative change in water vapor specific humidity from CCPP + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[dq3dt(:,:,11)] + standard_name = cumulative_change_in_water_vapor_specific_humidity_from_model + long_name = cumulative change in water vapor specific humidity from model + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[dq3dt(:,:,12)] + standard_name = cumulative_change_in_water_vapor_specific_humidity + long_name = cumulative change in water vapor specific humidity + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[tend_book(:,:,1)] + standard_name = temperature_at_start_of_ccpp + long_name = temperature at start of ccpp + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[tend_book(:,:,2)] + standard_name = temperature_at_end_of_ccpp + long_name = temperature at end of ccpp + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[tend_book(:,:,3)] + standard_name = temperature_at_total_check_point + long_name = temperature when model total is calculated in ccpp + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[tend_book(:,:,4)] + standard_name = x_wind_at_start_of_ccpp + long_name = x wind at start of ccpp + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[tend_book(:,:,5)] + standard_name = x_wind_at_end_of_ccpp + long_name = x wind at end of ccpp + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[tend_book(:,:,6)] + standard_name = x_wind_at_total_check_point + long_name = x when model total is calculated in ccpp + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[tend_book(:,:,7)] + standard_name = y_wind_at_start_of_ccpp + long_name = y wind at start of ccpp + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[tend_book(:,:,8)] + standard_name = y_wind_at_end_of_ccpp + long_name = y wind at start of ccpp + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[tend_book(:,:,9)] + standard_name = y_wind_at_total_check_point + long_name = y when model total is calculated in ccpp + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[tend_book(:,:,10)] + standard_name = water_vapor_specific_humidity_at_start_of_ccpp + long_name = water vapor specific humidity at start of ccpp + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[tend_book(:,:,11)] + standard_name = water_vapor_specific_humidity_at_end_of_ccpp + long_name = water vapor specific humidity at end of ccpp + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[tend_book(:,:,12)] + standard_name = water_vapor_specific_humidity_at_total_check_point + long_name = water vapor specific humidity when model total is calculated in ccpp + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [refdmax] standard_name = maximum_reflectivity_at_1km_agl_over_maximum_hourly_time_interval long_name = maximum reflectivity at 1km agl over maximum hourly time interval From 5275fb99ccbb4b9f30927940c2020a630ea06ed4 Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Tue, 28 Jan 2020 23:08:53 +0000 Subject: [PATCH 056/206] physics-level changes for tendencies --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index d5a527841..c23b8d19c 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit d5a527841cfb07f0fe94f6fd2816264c39060655 +Subproject commit c23b8d19c31b68869b15c0d0bc1367fa4e991234 From 1e0619f86d506d4fb5bc29251d7b480c57fc67c2 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 30 Jan 2020 08:54:43 -0700 Subject: [PATCH 057/206] Revert change to .gitmodules, update submodule pointers --- .gitmodules | 12 ++++++------ atmos_cubed_sphere | 2 +- ccpp/framework | 2 +- ccpp/physics | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.gitmodules b/.gitmodules index c2b56985c..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,12 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere - branch = update_dtc_develop_from_dev-emc + url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/climbfuji/ccpp-framework - branch = update_dtc_develop_from_master + url = https://github.com/NOAA-GSD/ccpp-framework + branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/climbfuji/ccpp-physics - branch = update_dtc_develop_from_master + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index ee15b812f..e53a24be1 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit ee15b812f7273a1dfbbc30356a60b7835450f470 +Subproject commit e53a24be1bee834a14f5f85ef5d8d18f431d6b16 diff --git a/ccpp/framework b/ccpp/framework index 21019f892..60b4cc785 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 21019f892caf771846bf99f66d7c1cdaf56038ae +Subproject commit 60b4cc785cd6ddc5151fb61f3c24e657d71db451 diff --git a/ccpp/physics b/ccpp/physics index 3449dd57f..a779ea8f2 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 3449dd57f0f678324c4d73e5ed883a088fbb1d34 +Subproject commit a779ea8f2c53052cf854c12b0264a4b7e429ac4d From bc13d22410acfa5c982e7f3967732893be9fae2f Mon Sep 17 00:00:00 2001 From: tanyasmirnova Date: Fri, 31 Jan 2020 20:53:32 +0000 Subject: [PATCH 058/206] Changed order of calls in three suites: first MYNNrad_pre or SGSCloud_RadPre, and then rrtmg_pre. Use SGSCloud_RadPre in GSD_noah and GSD_v0 suites to replace MYNNrad_pre. --- ccpp/suites/suite_FV3_GFS_v15_mynn.xml | 2 +- ccpp/suites/suite_FV3_GSD_noah.xml | 4 ++-- ccpp/suites/suite_FV3_GSD_v0.xml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml index 8fffa33e8..6e766c98d 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml @@ -18,9 +18,9 @@ GFS_suite_interstitial_rad_reset + mynnrad_pre GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre diff --git a/ccpp/suites/suite_FV3_GSD_noah.xml b/ccpp/suites/suite_FV3_GSD_noah.xml index e9795b6ef..e0e10100d 100644 --- a/ccpp/suites/suite_FV3_GSD_noah.xml +++ b/ccpp/suites/suite_FV3_GSD_noah.xml @@ -13,14 +13,14 @@ GFS_suite_interstitial_rad_reset + sgscloud_radpre GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpost rrtmg_lw_post GFS_rrtmg_post diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index 3f83b5dc5..bd45bcb4f 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -13,14 +13,14 @@ GFS_suite_interstitial_rad_reset + sgscloud_radpre GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpre rrtmg_lw_post GFS_rrtmg_post From 73586f07c3ce8ede04e61c72676e9ed8ebed575c Mon Sep 17 00:00:00 2001 From: tanyasmirnova Date: Fri, 31 Jan 2020 20:58:47 +0000 Subject: [PATCH 059/206] Added qci_conv for convective clouds. --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 8 ++++++++ gfsphysics/GFS_layer/GFS_typedefs.meta | 8 +++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index ff1d0184e..a21b3c95f 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -497,6 +497,8 @@ module GFS_typedefs real (kind=kind_phys), pointer :: dqdti (:,:) => null() !< instantaneous total moisture tendency (kg/kg/s) real (kind=kind_phys), pointer :: ushfsfci(:) => null() !< instantaneous upward sensible heat flux (w/m**2) real (kind=kind_phys), pointer :: dkt (:,:) => null() !< instantaneous dkt diffusion coefficient for temperature (m**2/s) + real (kind=kind_phys), pointer :: qci_conv(:,:) => null() !< convective cloud condesate after rainout + contains procedure :: create => coupling_create !< allocate array data @@ -2606,6 +2608,12 @@ subroutine coupling_create (Coupling, IM, Model) Coupling%nwfa2d = clear_val Coupling%nifa2d = clear_val endif +#ifdef CCPP + if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then + allocate (Coupling%qci_conv (IM,Model%levs)) + Coupling%qci_conv = clear_val + endif +#endif end subroutine coupling_create diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 872cb56ca..f1bb6f778 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1792,7 +1792,13 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys - +[qci_conv] + standard_name = convective_cloud_condesate_after_rainout + long_name = convective cloud condesate after rainout + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys ######################################################################## [ccpp-arg-table] name = GFS_control_type From c1351746d9c65b929367d197484927f08d1a5d49 Mon Sep 17 00:00:00 2001 From: tanyasmirnova Date: Fri, 31 Jan 2020 20:59:28 +0000 Subject: [PATCH 060/206] Added module_SGSCloud_RadPre.F90 and module_SGSCloud_RadPost.F90. --- ccpp/config/ccpp_prebuild_config.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 29c6122ab..72d2015a5 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -209,6 +209,8 @@ 'FV3/ccpp/physics/physics/module_MYNNSFC_wrapper.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYNNrad_pre.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYNNrad_post.F90' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/module_SGSCloud_RadPre.F90' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/module_SGSCloud_RadPost.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYJSFC_wrapper.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYJPBL_wrapper.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/mp_thompson_pre.F90' : [ 'slow_physics' ], From cf3d933088970d0e06df1c37a54ab2ead626bfac Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Thu, 6 Feb 2020 15:46:56 +0000 Subject: [PATCH 061/206] Correct tendency flag names, implement some more diagnostic tendencies, implement model/ccpp/total tendencies. --- ccpp/physics | 2 +- ccpp/suites/suite_FV3_GFS_v15plus.xml | 15 +++++++ ccpp/suites/suite_FV3_GSD_v0.xml | 2 + gfsphysics/GFS_layer/GFS_diagnostics.F90 | 2 +- gfsphysics/GFS_layer/GFS_typedefs.F90 | 57 +++++++++++++++++++++--- gfsphysics/GFS_layer/GFS_typedefs.meta | 38 +++++++++++++--- 6 files changed, 102 insertions(+), 14 deletions(-) diff --git a/ccpp/physics b/ccpp/physics index c23b8d19c..15f36e7b1 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit c23b8d19c31b68869b15c0d0bc1367fa4e991234 +Subproject commit 15f36e7b1b8d72c18cc82660ca6657b5b0e3c63f diff --git a/ccpp/suites/suite_FV3_GFS_v15plus.xml b/ccpp/suites/suite_FV3_GFS_v15plus.xml index 837cba69f..d025b6321 100644 --- a/ccpp/suites/suite_FV3_GFS_v15plus.xml +++ b/ccpp/suites/suite_FV3_GFS_v15plus.xml @@ -4,19 +4,24 @@ + fv_sat_adj + + model_tend_pre GFS_time_vary_pre GFS_rrtmg_setup GFS_rad_time_vary GFS_phys_time_vary + model_tend_post + model_tend_pre GFS_suite_interstitial_rad_reset GFS_rrtmg_pre rrtmg_sw_pre @@ -26,10 +31,13 @@ rrtmg_lw rrtmg_lw_post GFS_rrtmg_post + model_tend_post + model_tend_pre + total_tend GFS_suite_interstitial_phys_reset GFS_suite_stateout_reset get_prs_fv3 @@ -39,9 +47,11 @@ dcyc2t3 GFS_surface_composites_inter GFS_suite_interstitial_2 + model_tend_post + model_tend_pre sfc_diff GFS_surface_loop_control_part1 sfc_nst_pre @@ -50,9 +60,11 @@ lsm_noah sfc_sice GFS_surface_loop_control_part2 + model_tend_post + model_tend_pre GFS_surface_composites_post dcyc2t3_post sfc_diag @@ -83,11 +95,14 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics + model_tend_post + GFS_stochastics + diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index 1219acdd0..349194c5e 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -4,10 +4,12 @@ + model_tend_pre GFS_time_vary_pre GFS_rrtmg_setup GFS_rad_time_vary GFS_phys_time_vary + model_tend_post diff --git a/gfsphysics/GFS_layer/GFS_diagnostics.F90 b/gfsphysics/GFS_layer/GFS_diagnostics.F90 index 72f4847c7..522b954af 100644 --- a/gfsphysics/GFS_layer/GFS_diagnostics.F90 +++ b/gfsphysics/GFS_layer/GFS_diagnostics.F90 @@ -2323,7 +2323,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_pbl' - ExtDiag(idx)%desc = 'u momentum change due to PBL' + ExtDiag(idx)%desc = 'u wind change due to PBL' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 548e138fb..d07ca2b5a 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -531,8 +531,10 @@ module GFS_typedefs real(kind=kind_phys) :: fhzero !< hours between clearing of diagnostic buckets logical :: ldiag3d !< flag for 3d diagnostic fields logical :: qdiag3d !< flag for 3d tracer diagnostic fields - logical :: gwd_generic_tend!< true if GFS_GWD_generic should calculate tendencies - logical :: pbl_generic_tend!< true if GFS_PBL_generic should calculate tendencies + logical :: flag_for_gwd_generic_tend!< true if GFS_GWD_generic should calculate tendencies + logical :: flag_for_pbl_generic_tend!< true if GFS_PBL_generic should calculate tendencies + logical :: flag_for_scnv_generic_tend!< true if GFS_DCNV_generic should calculate tendencies + logical :: flag_for_dcnv_generic_tend!< true if GFS_DCNV_generic should calculate tendencies logical :: lssav !< logical flag for storing diagnostics real(kind=kind_phys) :: fhcyc !< frequency for surface data cycling (hours) integer :: thermodyn_id !< valid for GFS only for get_prs/phi @@ -3226,8 +3228,51 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%fhzero = fhzero Model%ldiag3d = ldiag3d Model%qdiag3d = qdiag3d - Model%gwd_generic_tend = .false. - Model%pbl_generic_tend = .false. + Model%flag_for_gwd_generic_tend = .true. + Model%flag_for_pbl_generic_tend = .true. + Model%flag_for_scnv_generic_tend = .true. + Model%flag_for_dcnv_generic_tend = .true. + + write(0,*) 'GOT HERE (stderr)' + print *,'GOT HERE (stdout)' + + if(gwd_opt==1) then + write(0,*) 'FLAG: gwd_opt==1 so gwd not generic' + Model%flag_for_gwd_generic_tend=.false. + else + write(0,*) 'NO FLAG: gwd is generic' + endif + + if(satmedmf) then + write(0,*) 'FLAG: satmedmf so pbl not generic' + Model%flag_for_pbl_generic_tend=.false. + else if(do_mynnedmf) then + write(0,*) 'FLAG: do_mynnedmf so pbl not generic' + Model%flag_for_pbl_generic_tend=.false. + else + write(0,*) 'NO FLAG: pbl is generic' + endif + + if(imfshalcnv == Model%imfshalcnv_gf) then + write(0,*) 'FLAG: imfshalcnv_gf so scnv not generic' + Model%flag_for_scnv_generic_tend=.false. + else if(imfshalcnv == Model%imfshalcnv_samf) then + write(0,*) 'FLAG: imfshalcnv_samf so scnv not generic' + Model%flag_for_scnv_generic_tend=.false. + else + write(0,*) 'NO FLAG: scnv is generic' + endif + + if(imfdeepcnv == Model%imfdeepcnv_gf) then + write(0,*) 'FLAG: imfdeepcnv_gf so dcnv not generic' + Model%flag_for_scnv_generic_tend=.false. + else if(imfdeepcnv == Model%imfdeepcnv_samf) then + write(0,*) 'FLAG: imfdeepcnv_samf so dcnv not generic' + Model%flag_for_scnv_generic_tend=.false. + else + write(0,*) 'NO FLAG: dcnv is generic' + endif + ! !VAY-ugwp --- set some GW-related switches ! @@ -5195,8 +5240,8 @@ subroutine diag_create (Diag, IM, Model) !--- 3D diagnostics if (Model%ldiag3d) then - allocate (Diag%du3dt (IM,Model%levs,8)) - allocate (Diag%dv3dt (IM,Model%levs,8)) + allocate (Diag%du3dt (IM,Model%levs,9)) + allocate (Diag%dv3dt (IM,Model%levs,9)) allocate (Diag%dt3dt (IM,Model%levs,12)) if (Model%qdiag3d) then allocate (Diag%dq3dt (IM,Model%levs,12)) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index a7dc03992..9922e3697 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1871,18 +1871,30 @@ units = flag dimensions = () type = logical -[gwd_generic_tend] +[flag_for_gwd_generic_tend] standard_name = true_if_GFS_GWD_generic_should_calculate_tendencies long_name = true if GFS_GWD_generic should calculate tendencies units = flag dimensions = () type = logical -[pbl_generic_tend] +[flag_for_pbl_generic_tend] standard_name = true_if_GFS_PBL_generic_should_calculate_tendencies long_name = true if GFS_PBL_generic should calculate tendencies units = flag dimensions = () type = logical +[flag_for_dcnv_generic_tend] + standard_name = true_if_GFS_DCNV_generic_should_calculate_tendencies + long_name = true if GFS_DCNV_generic should calculate tendencies + units = flag + dimensions = () + type = logical +[flag_for_scnv_generic_tend] + standard_name = true_if_GFS_SCNV_generic_should_calculate_tendencies + long_name = true if GFS_SCNV_generic should calculate tendencies + units = flag + dimensions = () + type = logical [lssav] standard_name = flag_diagnostics long_name = logical flag for storing diagnostics @@ -5399,20 +5411,27 @@ type = real kind = kind_phys [du3dt(:,:,6)] + standard_name = cumulative_change_in_x_wind_due_to_shal_convection + long_name = cumulative change in x wind due to shallow convection + units = m s-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[du3dt(:,:,7)] standard_name = cumulative_change_in_x_wind_from_ccpp long_name = cumulative change in x wind from CCPP units = m s-1 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys -[du3dt(:,:,7)] +[du3dt(:,:,8)] standard_name = cumulative_change_in_x_wind_from_model long_name = cumulative change in x wind from model units = m s-1 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys -[du3dt(:,:,8)] +[du3dt(:,:,9)] standard_name = cumulative_change_in_x_wind long_name = cumulative change in x wind units = m s-1 @@ -5455,20 +5474,27 @@ type = real kind = kind_phys [dv3dt(:,:,6)] + standard_name = cumulative_change_in_y_wind_due_to_shal_convection + long_name = cumulative change in y wind due to shallow convection + units = m s-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[dv3dt(:,:,7)] standard_name = cumulative_change_in_y_wind_from_ccpp long_name = cumulative change in y wind from CCPP units = m s-1 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys -[dv3dt(:,:,7)] +[dv3dt(:,:,8)] standard_name = cumulative_change_in_y_wind_from_model long_name = cumulative change in y wind from model units = m s-1 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys -[dv3dt(:,:,8)] +[dv3dt(:,:,9)] standard_name = cumulative_change_in_y_wind long_name = cumulative change in y wind units = m s-1 From dd8f27e4e9253424e9677c9ee4b6a58fc507a813 Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Fri, 7 Feb 2020 21:57:25 +0000 Subject: [PATCH 062/206] remove model_tend_pre&post from fast physics, add to stochastic --- ccpp/suites/suite_FV3_GFS_v15plus.xml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ccpp/suites/suite_FV3_GFS_v15plus.xml b/ccpp/suites/suite_FV3_GFS_v15plus.xml index d025b6321..97cfa320d 100644 --- a/ccpp/suites/suite_FV3_GFS_v15plus.xml +++ b/ccpp/suites/suite_FV3_GFS_v15plus.xml @@ -4,9 +4,7 @@ - fv_sat_adj - @@ -100,9 +98,9 @@ - + model_tend_pre GFS_stochastics - + model_tend_post From 1216e7c9231ffb124cfcddbb2d17edb72a485d11 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 13 Feb 2020 08:10:22 -0700 Subject: [PATCH 063/206] Update submodule pointer for ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index a779ea8f2..ba242ded2 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit a779ea8f2c53052cf854c12b0264a4b7e429ac4d +Subproject commit ba242ded2ad5b6e1498d515dceff122de9b5c7f8 From f4fecfd61b72d597ac18a58b1b9379b09e5917cb Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Thu, 13 Feb 2020 18:30:02 +0000 Subject: [PATCH 064/206] All gfs v15p2 and v16beta 3d diagnostic tendencies look reasonable; added model and cppp tendency variables --- ccpp/physics | 2 +- ccpp/suites/suite_FV3_GFS_v15p2.xml | 13 +++++++++ ccpp/suites/suite_FV3_GFS_v16beta.xml | 13 +++++++++ gfsphysics/GFS_layer/GFS_diagnostics.F90 | 35 ++++++++++++++++++++---- gfsphysics/GFS_layer/GFS_typedefs.F90 | 18 ++++++------ 5 files changed, 65 insertions(+), 16 deletions(-) diff --git a/ccpp/physics b/ccpp/physics index 47b26be3a..1a3c4d1d0 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 47b26be3abdcdc2255a6d05795978fffec727eb9 +Subproject commit 1a3c4d1d020bc9edca46a1911232156143cf3001 diff --git a/ccpp/suites/suite_FV3_GFS_v15p2.xml b/ccpp/suites/suite_FV3_GFS_v15p2.xml index b4907bb1b..68d1d8c91 100644 --- a/ccpp/suites/suite_FV3_GFS_v15p2.xml +++ b/ccpp/suites/suite_FV3_GFS_v15p2.xml @@ -9,14 +9,17 @@ + model_tend_pre GFS_time_vary_pre GFS_rrtmg_setup GFS_rad_time_vary GFS_phys_time_vary + model_tend_post + model_tend_pre GFS_suite_interstitial_rad_reset GFS_rrtmg_pre rrtmg_sw_pre @@ -26,10 +29,13 @@ rrtmg_lw rrtmg_lw_post GFS_rrtmg_post + model_tend_post + model_tend_pre + total_tend GFS_suite_interstitial_phys_reset GFS_suite_stateout_reset get_prs_fv3 @@ -39,9 +45,11 @@ dcyc2t3 GFS_surface_composites_inter GFS_suite_interstitial_2 + model_tend_post + model_tend_pre sfc_diff GFS_surface_loop_control_part1 sfc_nst_pre @@ -50,9 +58,11 @@ lsm_noah sfc_sice GFS_surface_loop_control_part2 + model_tend_pre + model_tend_pre GFS_surface_composites_post dcyc2t3_post sfc_diag @@ -83,11 +93,14 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics + model_tend_post + model_tend_pre GFS_stochastics + model_tend_post diff --git a/ccpp/suites/suite_FV3_GFS_v16beta.xml b/ccpp/suites/suite_FV3_GFS_v16beta.xml index 7f53d7f6f..9b2df96ca 100644 --- a/ccpp/suites/suite_FV3_GFS_v16beta.xml +++ b/ccpp/suites/suite_FV3_GFS_v16beta.xml @@ -9,14 +9,17 @@ + model_tend_pre GFS_time_vary_pre GFS_rrtmg_setup GFS_rad_time_vary GFS_phys_time_vary + model_tend_post + model_tend_pre GFS_suite_interstitial_rad_reset GFS_rrtmg_pre rrtmg_sw_pre @@ -26,10 +29,13 @@ rrtmg_lw rrtmg_lw_post GFS_rrtmg_post + model_tend_post + total_tend + model_tend_pre GFS_suite_interstitial_phys_reset GFS_suite_stateout_reset get_prs_fv3 @@ -39,9 +45,11 @@ dcyc2t3 GFS_surface_composites_inter GFS_suite_interstitial_2 + model_tend_post + model_tend_pre sfc_diff GFS_surface_loop_control_part1 sfc_nst_pre @@ -50,9 +58,11 @@ lsm_noah sfc_sice GFS_surface_loop_control_part2 + model_tend_post + model_tend_pre GFS_surface_composites_post dcyc2t3_post sfc_diag @@ -83,11 +93,14 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics + model_tend_post + model_tend_pre GFS_stochastics + model_tend_post diff --git a/gfsphysics/GFS_layer/GFS_diagnostics.F90 b/gfsphysics/GFS_layer/GFS_diagnostics.F90 index 522b954af..51075a202 100644 --- a/gfsphysics/GFS_layer/GFS_diagnostics.F90 +++ b/gfsphysics/GFS_layer/GFS_diagnostics.F90 @@ -2432,6 +2432,29 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,5) enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'du3dt_shlwcnv' + ExtDiag(idx)%desc = 'u momentum change due to shal conv.' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,6) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dv3dt_shlwcnv' + ExtDiag(idx)%desc = 'v momentum change due to shal conv.' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,6) + enddo + idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_ccpp' @@ -2440,7 +2463,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,6) + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,7) enddo idx = idx + 1 @@ -2451,7 +2474,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,6) + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,7) enddo idx = idx + 1 @@ -2462,7 +2485,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,7) + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,8) enddo idx = idx + 1 @@ -2473,7 +2496,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,7) + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,8) enddo idx = idx + 1 @@ -2484,7 +2507,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,8) + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,9) enddo idx = idx + 1 @@ -2495,7 +2518,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,8) + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,9) enddo idx = idx + 1 diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index f27eec78d..580828218 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -3268,8 +3268,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & write(0,*) 'NO FLAG: gwd is generic' endif - if(satmedmf) then - write(0,*) 'FLAG: satmedmf so pbl not generic' + if(satmedmf .and. isatmedmf==0) then + write(0,*) 'FLAG: satmedmf and isatedmf=0 so pbl not generic' Model%flag_for_pbl_generic_tend=.false. else if(do_mynnedmf) then write(0,*) 'FLAG: do_mynnedmf so pbl not generic' @@ -3281,19 +3281,19 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & if(imfshalcnv == Model%imfshalcnv_gf) then write(0,*) 'FLAG: imfshalcnv_gf so scnv not generic' Model%flag_for_scnv_generic_tend=.false. - else if(imfshalcnv == Model%imfshalcnv_samf) then - write(0,*) 'FLAG: imfshalcnv_samf so scnv not generic' - Model%flag_for_scnv_generic_tend=.false. + ! else if(imfshalcnv == Model%imfshalcnv_samf) then + ! write(0,*) 'FLAG: imfshalcnv_samf so scnv not generic' + ! Model%flag_for_scnv_generic_tend=.false. else write(0,*) 'NO FLAG: scnv is generic' endif if(imfdeepcnv == Model%imfdeepcnv_gf) then write(0,*) 'FLAG: imfdeepcnv_gf so dcnv not generic' - Model%flag_for_scnv_generic_tend=.false. - else if(imfdeepcnv == Model%imfdeepcnv_samf) then - write(0,*) 'FLAG: imfdeepcnv_samf so dcnv not generic' - Model%flag_for_scnv_generic_tend=.false. + Model%flag_for_dcnv_generic_tend=.false. + ! else if(imfdeepcnv == Model%imfdeepcnv_samf) then + ! write(0,*) 'FLAG: imfdeepcnv_samf so dcnv not generic' + ! Model%flag_for_dcnv_generic_tend=.false. else write(0,*) 'NO FLAG: dcnv is generic' endif From 2c3d99c91c323595479fccf904215e137f453aad Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 17 Feb 2020 09:49:30 -0700 Subject: [PATCH 065/206] Update .gitmodules and submodule pointers for ccpp-framework and ccpp-physics for code review and testing --- .gitmodules | 8 ++++---- ccpp/framework | 2 +- ccpp/physics | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..5b4853940 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,9 +4,9 @@ branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/NOAA-GSD/ccpp-framework - branch = gsd/develop + url = https://github.com/climbfuji/ccpp-framework + branch = bugfix_new_metadata_optional [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = move_number_concentration_bugfix_reorg_interstitials diff --git a/ccpp/framework b/ccpp/framework index 60b4cc785..d2b4c4fb7 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 60b4cc785cd6ddc5151fb61f3c24e657d71db451 +Subproject commit d2b4c4fb70844829de5f8c9d0dd48553fcea0b26 diff --git a/ccpp/physics b/ccpp/physics index f0e836949..cebdfa40b 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit f0e836949afb6b190609b19d83747cd3754434d7 +Subproject commit cebdfa40bdd3059e689fd579c9fba2c689d33f2f From e43103d5ca53adbb4bba883d530a6411c6f936c4 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 17 Feb 2020 09:51:00 -0700 Subject: [PATCH 066/206] ccpp/suites/*.xml: fix suite_FV3_GSD_SAR.xml, move GFS_DCNV_generic_pre after GFS_suite_interstitial_3 --- ccpp/suites/suite_FV3_CPT_v0.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_coupled.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_csawmg.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_myj.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_sas.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_shinhong.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_stretched.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_ysu.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_gf.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_mynn.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_thompson.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15p2.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15plus.xml | 2 +- ccpp/suites/suite_FV3_GFS_v16beta.xml | 2 +- ccpp/suites/suite_FV3_GSD_SAR.xml | 5 +++++ ccpp/suites/suite_FV3_GSD_noah.xml | 2 +- ccpp/suites/suite_FV3_GSD_v0.xml | 2 +- ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml | 2 +- ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml | 2 +- 33 files changed, 37 insertions(+), 32 deletions(-) diff --git a/ccpp/suites/suite_FV3_CPT_v0.xml b/ccpp/suites/suite_FV3_CPT_v0.xml index 8eed8e78c..2462e85ac 100644 --- a/ccpp/suites/suite_FV3_CPT_v0.xml +++ b/ccpp/suites/suite_FV3_CPT_v0.xml @@ -69,9 +69,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cs_conv_pre cs_conv cs_conv_post diff --git a/ccpp/suites/suite_FV3_GFS_2017.xml b/ccpp/suites/suite_FV3_GFS_2017.xml index fc1739bd5..02b1d4a1d 100644 --- a/ccpp/suites/suite_FV3_GFS_2017.xml +++ b/ccpp/suites/suite_FV3_GFS_2017.xml @@ -63,9 +63,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_coupled.xml b/ccpp/suites/suite_FV3_GFS_2017_coupled.xml index d67ce3116..28a9d8610 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_coupled.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_coupled.xml @@ -62,9 +62,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml b/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml index fec7f373e..62ebad37f 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml @@ -64,9 +64,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cs_conv_pre cs_conv cs_conv_post diff --git a/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml b/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml index 9fc0b6dae..ab7a4b8cf 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml @@ -64,9 +64,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre shoc cs_conv_pre cs_conv diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml index 35fdd9143..2525c754c 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml @@ -68,9 +68,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml index 55dedad57..6dfa58e24 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml @@ -68,9 +68,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml index 20f91469f..562ccd513 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml @@ -63,9 +63,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml index 2e208f6e7..474028194 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml @@ -63,9 +63,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml b/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml index 3e6acbc98..2778bc4f8 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml @@ -64,9 +64,9 @@ GFS_suite_stateout_update ozphys h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_myj.xml b/ccpp/suites/suite_FV3_GFS_2017_myj.xml index 7a193a10b..d3ccfd388 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_myj.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_myj.xml @@ -69,9 +69,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml b/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml index 0331483c6..9d66abcd6 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml @@ -68,9 +68,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cu_ntiedtke_pre cu_ntiedtke GFS_DCNV_generic_post diff --git a/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml b/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml index 4e382886c..a79b11aa8 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml @@ -63,9 +63,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys_2015 - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_sas.xml b/ccpp/suites/suite_FV3_GFS_2017_sas.xml index 1c52ac2cd..68b4ac805 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_sas.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_sas.xml @@ -68,9 +68,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre sascnvn GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml b/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml index af93678ac..c55e454ff 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml @@ -63,9 +63,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml b/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml index a975c9235..be4d130a2 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml @@ -63,9 +63,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml b/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml index 756695e65..9b33a91d4 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml @@ -67,9 +67,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_stretched.xml b/ccpp/suites/suite_FV3_GFS_2017_stretched.xml index 6bef91b06..8f534da68 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_stretched.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_stretched.xml @@ -67,9 +67,9 @@ GFS_GWD_generic_post GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_ysu.xml b/ccpp/suites/suite_FV3_GFS_2017_ysu.xml index baeb11c22..aa4d677bd 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ysu.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ysu.xml @@ -67,9 +67,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_v15.xml b/ccpp/suites/suite_FV3_GFS_v15.xml index efd5fc97b..d9ea5d2ac 100644 --- a/ccpp/suites/suite_FV3_GFS_v15.xml +++ b/ccpp/suites/suite_FV3_GFS_v15.xml @@ -69,9 +69,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_v15_gf.xml b/ccpp/suites/suite_FV3_GFS_v15_gf.xml index 0d56e54c8..c7ca87900 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_gf.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_gf.xml @@ -69,9 +69,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cu_gf_driver_pre cu_gf_driver GFS_DCNV_generic_post diff --git a/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml b/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml index 1e51e5a13..0de2803ae 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml @@ -64,9 +64,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cu_gf_driver_pre cu_gf_driver GFS_DCNV_generic_post diff --git a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml index 8fffa33e8..3e228351f 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml @@ -69,9 +69,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson.xml index a436c11c8..a079fd84c 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson.xml @@ -64,9 +64,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml index 3de52fa45..4b8137c98 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml @@ -64,9 +64,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_v15p2.xml b/ccpp/suites/suite_FV3_GFS_v15p2.xml index b4907bb1b..1ab234105 100644 --- a/ccpp/suites/suite_FV3_GFS_v15p2.xml +++ b/ccpp/suites/suite_FV3_GFS_v15p2.xml @@ -69,9 +69,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_v15plus.xml b/ccpp/suites/suite_FV3_GFS_v15plus.xml index 837cba69f..04f1d5f46 100644 --- a/ccpp/suites/suite_FV3_GFS_v15plus.xml +++ b/ccpp/suites/suite_FV3_GFS_v15plus.xml @@ -69,9 +69,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_v16beta.xml b/ccpp/suites/suite_FV3_GFS_v16beta.xml index 7f53d7f6f..8571ec1b4 100644 --- a/ccpp/suites/suite_FV3_GFS_v16beta.xml +++ b/ccpp/suites/suite_FV3_GFS_v16beta.xml @@ -69,9 +69,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GSD_SAR.xml b/ccpp/suites/suite_FV3_GSD_SAR.xml index e563301c4..9d5e7639c 100644 --- a/ccpp/suites/suite_FV3_GSD_SAR.xml +++ b/ccpp/suites/suite_FV3_GSD_SAR.xml @@ -66,6 +66,11 @@ GFS_suite_stateout_update ozphys_2015 h2ophys + get_phi_fv3 + + GFS_suite_interstitial_3 + GFS_suite_interstitial_4 + GFS_MP_generic_pre mp_thompson_pre mp_thompson diff --git a/ccpp/suites/suite_FV3_GSD_noah.xml b/ccpp/suites/suite_FV3_GSD_noah.xml index e9795b6ef..28c2d38da 100644 --- a/ccpp/suites/suite_FV3_GSD_noah.xml +++ b/ccpp/suites/suite_FV3_GSD_noah.xml @@ -64,9 +64,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cu_gf_driver_pre cu_gf_driver GFS_DCNV_generic_post diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index 3f83b5dc5..cb8e633bb 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -66,9 +66,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cu_gf_driver_pre cu_gf_driver GFS_DCNV_generic_post diff --git a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml b/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml index 8c56c07e5..c11fed8ca 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml @@ -65,9 +65,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cu_gf_driver_pre cu_gf_driver GFS_DCNV_generic_post diff --git a/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml b/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml index 375e9972d..7a168ce54 100644 --- a/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml +++ b/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml @@ -63,9 +63,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre GFS_DCNV_generic_post GFS_SCNV_generic_pre From 815476d4d536e3fe08261dedcd146eb4aa7f2ade Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 18 Feb 2020 10:20:12 -0700 Subject: [PATCH 067/206] Revert change to .gitmodules, update submodule pointers for ccpp-framework and ccpp-physics --- .gitmodules | 8 ++++---- ccpp/framework | 2 +- ccpp/physics | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitmodules b/.gitmodules index 5b4853940..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,9 +4,9 @@ branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/climbfuji/ccpp-framework - branch = bugfix_new_metadata_optional + url = https://github.com/NOAA-GSD/ccpp-framework + branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/climbfuji/ccpp-physics - branch = move_number_concentration_bugfix_reorg_interstitials + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/framework b/ccpp/framework index d2b4c4fb7..463a72cce 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit d2b4c4fb70844829de5f8c9d0dd48553fcea0b26 +Subproject commit 463a72cce605ae0f8f8725574d5e3b9cf6c9d90c diff --git a/ccpp/physics b/ccpp/physics index cebdfa40b..e9621efc8 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit cebdfa40bdd3059e689fd579c9fba2c689d33f2f +Subproject commit e9621efc8f7f1d3474df50a1378fa2d61c17dad5 From b8bcb327a29a0528fc1fcb6dcced799e8bf8fc33 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 21 Feb 2020 08:20:10 -0700 Subject: [PATCH 068/206] Remove mynnrad_{pre,post} from CCPP prebuild config, replace with sgscloud_rad{pre,post} in suites; adjust number of tracers in array of vertically diffused tracers for Thompson MP --- ccpp/config/ccpp_prebuild_config.py | 2 -- ccpp/suites/suite_FV3_GFS_v15_mynn.xml | 4 ++-- ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml | 4 ++-- ccpp/suites/suite_FV3_GSD_SAR.xml | 4 ++-- ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml | 4 ++-- gfsphysics/GFS_layer/GFS_typedefs.F90 | 5 +++-- 6 files changed, 11 insertions(+), 12 deletions(-) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 3df57c2d5..46d6872d9 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -207,8 +207,6 @@ 'FV3/ccpp/physics/physics/ysuvdif.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYNNPBL_wrapper.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYNNSFC_wrapper.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/module_MYNNrad_pre.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/module_MYNNrad_post.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_SGSCloud_RadPre.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_SGSCloud_RadPost.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYJSFC_wrapper.F90' : [ 'slow_physics' ], diff --git a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml index aecf818e8..5ee55cda7 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml @@ -18,14 +18,14 @@ GFS_suite_interstitial_rad_reset - mynnrad_pre + sgscloud_radpre GFS_rrtmg_pre rrtmg_sw_pre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpre rrtmg_lw_post GFS_rrtmg_post diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml index 4b8137c98..de709d38a 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml @@ -13,14 +13,14 @@ GFS_suite_interstitial_rad_reset + sgscloud_radpre GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpre rrtmg_lw_post GFS_rrtmg_post diff --git a/ccpp/suites/suite_FV3_GSD_SAR.xml b/ccpp/suites/suite_FV3_GSD_SAR.xml index 9d5e7639c..e4d619abb 100644 --- a/ccpp/suites/suite_FV3_GSD_SAR.xml +++ b/ccpp/suites/suite_FV3_GSD_SAR.xml @@ -13,14 +13,14 @@ GFS_suite_interstitial_rad_reset + sgscloud_radpre GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpre rrtmg_lw_post GFS_rrtmg_post diff --git a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml b/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml index c11fed8ca..26cff57a6 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml @@ -13,14 +13,14 @@ GFS_suite_interstitial_rad_reset + sgscloud_radpre GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpre rrtmg_lw_post GFS_rrtmg_post diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index da67a0381..68e93533c 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -2634,6 +2634,7 @@ subroutine coupling_create (Coupling, IM, Model) Coupling%nwfa2d = clear_val Coupling%nifa2d = clear_val endif + #ifdef CCPP if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then allocate (Coupling%qci_conv (IM,Model%levs)) @@ -6072,9 +6073,9 @@ subroutine interstitial_setup_tracers(Interstitial, Model) if (Model%imp_physics == Model%imp_physics_thompson) then if (Model%ltaerosol) then - Interstitial%nvdiff = 10 + Interstitial%nvdiff = 12 else - Interstitial%nvdiff = 7 + Interstitial%nvdiff = 9 endif if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1 Interstitial%nncl = 5 From ae4f6bed06e44c4522294a9d8ebed1126930448e Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 21 Feb 2020 08:21:04 -0700 Subject: [PATCH 069/206] Update .gitmodules and submodule pointer for ccpp-physics for code review and testing --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..6592152b0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = gsd-dev-clouds_thompson-no-aero_dom diff --git a/ccpp/physics b/ccpp/physics index e9621efc8..3a852e8a3 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit e9621efc8f7f1d3474df50a1378fa2d61c17dad5 +Subproject commit 3a852e8a3cd016571a5b08ddffda28585b2347f9 From f23fa378c7a662a7c69ed387dcab56148ce06120 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 25 Feb 2020 14:25:36 -0700 Subject: [PATCH 070/206] Fix restarts for suites using the GF scheme --- gfsphysics/GFS_layer/GFS_restart.F90 | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_restart.F90 b/gfsphysics/GFS_layer/GFS_restart.F90 index 8e80f6f99..e4622331c 100644 --- a/gfsphysics/GFS_layer/GFS_restart.F90 +++ b/gfsphysics/GFS_layer/GFS_restart.F90 @@ -188,7 +188,7 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, & !--- RAP/HRRR-specific variables, 2D num = offset + ndiag_rst ! GF - if (Model%imfdeepcnv == 3) then + if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then num = num + 1 Restart%name2d(num) = 'gf_2d_conv_act' do nb = 1,nblks @@ -267,7 +267,7 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, & num = Model%ntot3d ! GF - if (Model%imfdeepcnv == 3) then + if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then num = num + 1 Restart%name3d(num) = 'gf_3d_prevst' do nb = 1,nblks @@ -278,6 +278,11 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, & do nb = 1,nblks Restart%data(nb,num)%var3p => Tbd(nb)%prevsq(:,:) enddo + num = num + 1 + Restart%name3d(num) = 'gf_3d_qci_conv' + do nb = 1,nblks + Restart%data(nb,num)%var3p => Coupling(nb)%qci_conv(:,:) + enddo endif ! MYNN PBL if (Model%do_mynnedmf) then From 7a3ab3a080e9009fbf394e6d066ac5cb7127e509 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 26 Feb 2020 06:28:53 -0700 Subject: [PATCH 071/206] gfsphysics/GFS_layer/GFS_restart.F90: bugfix, adjust dimension of 3d restart array --- gfsphysics/GFS_layer/GFS_restart.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gfsphysics/GFS_layer/GFS_restart.F90 b/gfsphysics/GFS_layer/GFS_restart.F90 index e4622331c..85de87289 100644 --- a/gfsphysics/GFS_layer/GFS_restart.F90 +++ b/gfsphysics/GFS_layer/GFS_restart.F90 @@ -123,7 +123,7 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, & #ifdef CCPP ! GF if (Model%imfdeepcnv == 3) then - Restart%num3d = Restart%num3d + 2 + Restart%num3d = Restart%num3d + 3 endif ! MYNN PBL if (Model%do_mynnedmf) then From 596a0b57a1a718cd269edca18fc022c6a92f515e Mon Sep 17 00:00:00 2001 From: Joseph Olson Date: Fri, 28 Feb 2020 16:58:43 +0000 Subject: [PATCH 072/206] Update to MYNN Surface Layer Scheme and related modules - part II --- atmos_model.F90 | 2 +- gfsphysics/GFS_layer/GFS_diagnostics.F90 | 2 +- gfsphysics/GFS_layer/GFS_typedefs.F90 | 152 ++++++------ gfsphysics/GFS_layer/GFS_typedefs.meta | 294 +++++++++++------------ 4 files changed, 218 insertions(+), 232 deletions(-) diff --git a/atmos_model.F90 b/atmos_model.F90 index 92c154cb7..e8cc8b832 100644 --- a/atmos_model.F90 +++ b/atmos_model.F90 @@ -1443,7 +1443,7 @@ subroutine update_atmos_chemistry(state, rc) ib = i + Atm_block%isc - 1 nb = Atm_block%blkno(ib,jb) ix = Atm_block%ixp(ib,jb) - hpbl(i,j) = IPD_Data(nb)%IntDiag%hpbl(ix) + hpbl(i,j) = IPD_Data(nb)%Tbd%hpbl(ix) area(i,j) = IPD_Data(nb)%Grid%area(ix) stype(i,j) = IPD_Data(nb)%Sfcprop%stype(ix) rainc(i,j) = IPD_Data(nb)%Coupling%rainc_cpl(ix) diff --git a/gfsphysics/GFS_layer/GFS_diagnostics.F90 b/gfsphysics/GFS_layer/GFS_diagnostics.F90 index 95f7f51e7..25657f760 100644 --- a/gfsphysics/GFS_layer/GFS_diagnostics.F90 +++ b/gfsphysics/GFS_layer/GFS_diagnostics.F90 @@ -1535,7 +1535,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%intpl_method = 'bilinear' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var2 => IntDiag(nb)%hpbl(:) + ExtDiag(idx)%data(nb)%var2 => Tbd(nb)%hpbl(:) enddo idx = idx + 1 diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 34cd73ce0..d9a5760a1 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -259,6 +259,27 @@ module GFS_typedefs real (kind=kind_phys), pointer :: oro (:) => null() !< orography real (kind=kind_phys), pointer :: oro_uf (:) => null() !< unfiltered orography + real (kind=kind_phys), pointer :: qss_ice(:) => null() !< + real (kind=kind_phys), pointer :: qss_land(:) => null() !< + real (kind=kind_phys), pointer :: qss_ocean(:) => null() !< + real (kind=kind_phys), pointer :: snowd_ice(:) => null() !< + real (kind=kind_phys), pointer :: snowd_land(:) => null() !< + real (kind=kind_phys), pointer :: snowd_ocean(:) => null() !< + real (kind=kind_phys), pointer :: tsfc_ice(:) => null() !< + real (kind=kind_phys), pointer :: tsfc_land(:) => null() !< + real (kind=kind_phys), pointer :: tsfc_ocean(:) => null() !< + real (kind=kind_phys), pointer :: tsurf_ice(:) => null() !< + real (kind=kind_phys), pointer :: tsurf_land(:) => null() !< + real (kind=kind_phys), pointer :: tsurf_ocean(:) => null() !< + real (kind=kind_phys), pointer :: uustar_ice(:) => null() !< + real (kind=kind_phys), pointer :: uustar_land(:) => null() !< + real (kind=kind_phys), pointer :: uustar_ocean(:) => null() !< + real (kind=kind_phys), pointer :: zorl_ice(:) => null() !< + real (kind=kind_phys), pointer :: zorl_land(:) => null() !< + real (kind=kind_phys), pointer :: zorl_ocean(:) => null() !< + real (kind=kind_phys), pointer :: evap(:) => null() !< + real (kind=kind_phys), pointer :: hflx(:) => null() !< + !-- In/Out #ifdef CCPP real (kind=kind_phys), pointer :: conv_act(:) => null() !< convective activity counter hli 09/2017 @@ -1191,6 +1212,9 @@ module GFS_typedefs real (kind=kind_phys), pointer :: phy_f2d (:,:) => null() !< 2d arrays saved for restart real (kind=kind_phys), pointer :: phy_f3d (:,:,:) => null() !< 3d arrays saved for restart +!--- Diagnostic that needs to be carried over to the next time step (removed from diag_type) + real (kind=kind_phys), pointer :: hpbl (:) => null() !< Planetary boundary layer height + #ifndef CCPP !--- for explicit data blocking integer :: blkno !< block number of this block @@ -1415,7 +1439,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: dpt2m (:) => null() !< 2 meter dew point temperature real (kind=kind_phys), pointer :: zlvl (:) => null() !< layer 1 height (m) real (kind=kind_phys), pointer :: psurf (:) => null() !< surface pressure (Pa) - real (kind=kind_phys), pointer :: hpbl (:) => null() !< pbl height (m) real (kind=kind_phys), pointer :: pwat (:) => null() !< precipitable water real (kind=kind_phys), pointer :: t1 (:) => null() !< layer 1 temperature (K) real (kind=kind_phys), pointer :: q1 (:) => null() !< layer 1 specific humidity (kg/kg) @@ -1665,7 +1688,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: ep1d_ice(:) => null() !< real (kind=kind_phys), pointer :: ep1d_land(:) => null() !< real (kind=kind_phys), pointer :: ep1d_ocean(:) => null() !< - real (kind=kind_phys), pointer :: evap(:) => null() !< real (kind=kind_phys), pointer :: evap_ice(:) => null() !< real (kind=kind_phys), pointer :: evap_land(:) => null() !< real (kind=kind_phys), pointer :: evap_ocean(:) => null() !< @@ -1711,7 +1733,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: gwdcv(:,:) => null() !< integer :: h2o_coeff !< real (kind=kind_phys), pointer :: h2o_pres(:) => null() !< - real (kind=kind_phys), pointer :: hflx(:) => null() !< real (kind=kind_phys), pointer :: hflx_ice(:) => null() !< real (kind=kind_phys), pointer :: hflx_land(:) => null() !< real (kind=kind_phys), pointer :: hflx_ocean(:) => null() !< @@ -1783,9 +1804,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: qrn(:,:) => null() !< real (kind=kind_phys), pointer :: qsnw(:,:) => null() !< real (kind=kind_phys), pointer :: qss(:) => null() !< - real (kind=kind_phys), pointer :: qss_ice(:) => null() !< - real (kind=kind_phys), pointer :: qss_land(:) => null() !< - real (kind=kind_phys), pointer :: qss_ocean(:) => null() !< real (kind=kind_phys) :: raddt !< real (kind=kind_phys), pointer :: rainmp(:) => null() !< real (kind=kind_phys), pointer :: raincd(:) => null() !< @@ -1817,9 +1835,6 @@ module GFS_typedefs logical :: skip_macro !< integer, pointer :: slopetype(:) => null() !< real (kind=kind_phys), pointer :: snowc(:) => null() !< - real (kind=kind_phys), pointer :: snowd_ice(:) => null() !< - real (kind=kind_phys), pointer :: snowd_land(:) => null() !< - real (kind=kind_phys), pointer :: snowd_ocean(:) => null() !< real (kind=kind_phys), pointer :: snohf(:) => null() !< real (kind=kind_phys), pointer :: snowmp(:) => null() !< real (kind=kind_phys), pointer :: snowmt(:) => null() !< @@ -1843,24 +1858,15 @@ module GFS_typedefs real (kind=kind_phys), pointer :: trans(:) => null() !< real (kind=kind_phys), pointer :: tseal(:) => null() !< real (kind=kind_phys), pointer :: tsfa(:) => null() !< - real (kind=kind_phys), pointer :: tsfc_ice(:) => null() !< - real (kind=kind_phys), pointer :: tsfc_land(:) => null() !< - real (kind=kind_phys), pointer :: tsfc_ocean(:) => null() !< real (kind=kind_phys), pointer :: tsfg(:) => null() !< real (kind=kind_phys), pointer :: tsnow(:) => null() !< real (kind=kind_phys), pointer :: tsurf(:) => null() !< - real (kind=kind_phys), pointer :: tsurf_ice(:) => null() !< - real (kind=kind_phys), pointer :: tsurf_land(:) => null() !< - real (kind=kind_phys), pointer :: tsurf_ocean(:) => null() !< real (kind=kind_phys), pointer :: ud_mf(:,:) => null() !< real (kind=kind_phys), pointer :: ulwsfc_cice(:) => null() !< real (kind=kind_phys), pointer :: dusfc_cice(:) => null() !< real (kind=kind_phys), pointer :: dvsfc_cice(:) => null() !< real (kind=kind_phys), pointer :: dqsfc_cice(:) => null() !< real (kind=kind_phys), pointer :: dtsfc_cice(:) => null() !< - real (kind=kind_phys), pointer :: uustar_ice(:) => null() !< - real (kind=kind_phys), pointer :: uustar_land(:) => null() !< - real (kind=kind_phys), pointer :: uustar_ocean(:) => null() !< real (kind=kind_phys), pointer :: vdftra(:,:,:) => null() !< real (kind=kind_phys), pointer :: vegf1d(:) => null() !< integer, pointer :: vegtype(:) => null() !< @@ -1877,9 +1883,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: xlai1d(:) => null() !< real (kind=kind_phys), pointer :: xmu(:) => null() !< real (kind=kind_phys), pointer :: z01d(:) => null() !< - real (kind=kind_phys), pointer :: zorl_ice(:) => null() !< - real (kind=kind_phys), pointer :: zorl_land(:) => null() !< - real (kind=kind_phys), pointer :: zorl_ocean(:) => null() !< real (kind=kind_phys), pointer :: zt1d(:) => null() !< real (kind=kind_phys), pointer :: gw_dudt(:,:) => null() !< real (kind=kind_phys), pointer :: gw_dvdt(:,:) => null() !< @@ -2132,6 +2135,48 @@ subroutine sfcprop_create (Sfcprop, IM, Model) Sfcprop%oro = clear_val Sfcprop%oro_uf = clear_val + allocate (Sfcprop%qss_ice (IM)) + allocate (Sfcprop%qss_land (IM)) + allocate (Sfcprop%qss_ocean (IM)) + allocate (Sfcprop%snowd_ice (IM)) + allocate (Sfcprop%snowd_land (IM)) + allocate (Sfcprop%snowd_ocean (IM)) + allocate (Sfcprop%tsfc_ice (IM)) + allocate (Sfcprop%tsfc_land (IM)) + allocate (Sfcprop%tsfc_ocean (IM)) + allocate (Sfcprop%tsurf_ice (IM)) + allocate (Sfcprop%tsurf_land (IM)) + allocate (Sfcprop%tsurf_ocean (IM)) + allocate (Sfcprop%uustar_ice (IM)) + allocate (Sfcprop%uustar_land (IM)) + allocate (Sfcprop%uustar_ocean(IM)) + allocate (Sfcprop%zorl_ice (IM)) + allocate (Sfcprop%zorl_land (IM)) + allocate (Sfcprop%zorl_ocean (IM)) + allocate (Sfcprop%evap (IM)) + allocate (Sfcprop%hflx (IM)) + + Sfcprop%qss_ice = huge + Sfcprop%qss_land = huge + Sfcprop%qss_ocean = huge + Sfcprop%snowd_ice = huge + Sfcprop%snowd_land = huge + Sfcprop%snowd_ocean = huge + Sfcprop%tsfc_ice = huge + Sfcprop%tsfc_land = huge + Sfcprop%tsfc_ocean = huge + Sfcprop%tsurf_ice = huge + Sfcprop%tsurf_land = huge + Sfcprop%tsurf_ocean = huge + Sfcprop%uustar_ice = huge + Sfcprop%uustar_land = huge + Sfcprop%uustar_ocean = huge + Sfcprop%zorl_ice = huge + Sfcprop%zorl_land = huge + Sfcprop%zorl_ocean = huge + Sfcprop%evap = clear_val + Sfcprop%hflx = clear_val + !--- In/Out allocate (Sfcprop%hice (IM)) allocate (Sfcprop%weasd (IM)) @@ -4898,6 +4943,9 @@ subroutine tbd_create (Tbd, IM, Model) ! if (Model%do_shoc) Tbd%phy_f3d(:,1,Model%ntot3d-1) = 3.0 ! if (Model%do_shoc) Tbd%phy_f3d(:,:,Model%ntot3d-1) = 1.0 + allocate (Tbd%hpbl (IM)) + Tbd%hpbl = clear_val + #ifndef CCPP Tbd%blkno = BLKNO #endif @@ -5133,7 +5181,6 @@ subroutine diag_create (Diag, IM, Model) allocate (Diag%dpt2m (IM)) allocate (Diag%zlvl (IM)) allocate (Diag%psurf (IM)) - allocate (Diag%hpbl (IM)) allocate (Diag%pwat (IM)) allocate (Diag%t1 (IM)) allocate (Diag%q1 (IM)) @@ -5433,7 +5480,6 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%dpt2m = zero Diag%zlvl = zero Diag%psurf = zero - Diag%hpbl = zero Diag%pwat = zero Diag%t1 = zero Diag%q1 = zero @@ -5775,7 +5821,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%ep1d_ice (IM)) allocate (Interstitial%ep1d_land (IM)) allocate (Interstitial%ep1d_ocean (IM)) - allocate (Interstitial%evap (IM)) allocate (Interstitial%evap_ice (IM)) allocate (Interstitial%evap_land (IM)) allocate (Interstitial%evap_ocean (IM)) @@ -5818,7 +5863,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%gwdcu (IM,Model%levs)) allocate (Interstitial%gwdcv (IM,Model%levs)) allocate (Interstitial%h2o_pres (levh2o)) - allocate (Interstitial%hflx (IM)) allocate (Interstitial%hflx_ice (IM)) allocate (Interstitial%hflx_land (IM)) allocate (Interstitial%hflx_ocean (IM)) @@ -5847,9 +5891,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%qlyr (IM,Model%levr+LTP)) allocate (Interstitial%prcpmp (IM)) allocate (Interstitial%qss (IM)) - allocate (Interstitial%qss_ice (IM)) - allocate (Interstitial%qss_land (IM)) - allocate (Interstitial%qss_ocean (IM)) allocate (Interstitial%raincd (IM)) allocate (Interstitial%raincs (IM)) allocate (Interstitial%rainmcadj (IM)) @@ -5877,9 +5918,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%sigmatot (IM,Model%levs)) allocate (Interstitial%slopetype (IM)) allocate (Interstitial%snowc (IM)) - allocate (Interstitial%snowd_ice (IM)) - allocate (Interstitial%snowd_land (IM)) - allocate (Interstitial%snowd_ocean (IM)) allocate (Interstitial%snohf (IM)) allocate (Interstitial%snowmt (IM)) allocate (Interstitial%soiltype (IM)) @@ -5897,23 +5935,14 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%trans (IM)) allocate (Interstitial%tseal (IM)) allocate (Interstitial%tsfa (IM)) - allocate (Interstitial%tsfc_ice (IM)) - allocate (Interstitial%tsfc_land (IM)) - allocate (Interstitial%tsfc_ocean (IM)) allocate (Interstitial%tsfg (IM)) allocate (Interstitial%tsurf (IM)) - allocate (Interstitial%tsurf_ice (IM)) - allocate (Interstitial%tsurf_land (IM)) - allocate (Interstitial%tsurf_ocean (IM)) allocate (Interstitial%ud_mf (IM,Model%levs)) allocate (Interstitial%ulwsfc_cice (IM)) allocate (Interstitial%dusfc_cice (IM)) allocate (Interstitial%dvsfc_cice (IM)) allocate (Interstitial%dtsfc_cice (IM)) allocate (Interstitial%dqsfc_cice (IM)) - allocate (Interstitial%uustar_ice (IM)) - allocate (Interstitial%uustar_land (IM)) - allocate (Interstitial%uustar_ocean (IM)) allocate (Interstitial%vdftra (IM,Model%levs,Interstitial%nvdiff)) !GJF first dimension was set as 'IX' in GFS_physics_driver allocate (Interstitial%vegf1d (IM)) allocate (Interstitial%vegtype (IM)) @@ -5929,9 +5958,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%xlai1d (IM)) allocate (Interstitial%xmu (IM)) allocate (Interstitial%z01d (IM)) - allocate (Interstitial%zorl_ice (IM)) - allocate (Interstitial%zorl_land (IM)) - allocate (Interstitial%zorl_ocean (IM)) allocate (Interstitial%zt1d (IM)) ! CIRES UGWP v0 allocate (Interstitial%gw_dudt (IM,Model%levs)) @@ -6319,7 +6345,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%ep1d_ice = huge Interstitial%ep1d_land = huge Interstitial%ep1d_ocean = huge - Interstitial%evap = clear_val Interstitial%evap_ice = huge Interstitial%evap_land = huge Interstitial%evap_ocean = huge @@ -6358,7 +6383,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%gflx_ocean = zero Interstitial%gwdcu = clear_val Interstitial%gwdcv = clear_val - Interstitial%hflx = clear_val Interstitial%hflx_ice = huge Interstitial%hflx_land = huge Interstitial%hflx_ocean = huge @@ -6379,9 +6403,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%prcpmp = clear_val Interstitial%prnum = clear_val Interstitial%qss = clear_val - Interstitial%qss_ice = huge - Interstitial%qss_land = huge - Interstitial%qss_ocean = huge Interstitial%raincd = clear_val Interstitial%raincs = clear_val Interstitial%rainmcadj = clear_val @@ -6407,9 +6428,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%sigmatot = clear_val Interstitial%slopetype = 0 Interstitial%snowc = clear_val - Interstitial%snowd_ice = huge - Interstitial%snowd_land = huge - Interstitial%snowd_ocean = huge Interstitial%snohf = clear_val Interstitial%snowmt = clear_val Interstitial%soiltype = 0 @@ -6424,22 +6442,13 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%tprcp_ocean = huge Interstitial%trans = clear_val Interstitial%tseal = clear_val - Interstitial%tsfc_ice = huge - Interstitial%tsfc_land = huge - Interstitial%tsfc_ocean = huge Interstitial%tsurf = clear_val - Interstitial%tsurf_ice = huge - Interstitial%tsurf_land = huge - Interstitial%tsurf_ocean = huge Interstitial%ud_mf = clear_val Interstitial%ulwsfc_cice = clear_val Interstitial%dusfc_cice = clear_val Interstitial%dvsfc_cice = clear_val Interstitial%dtsfc_cice = clear_val Interstitial%dqsfc_cice = clear_val - Interstitial%uustar_ice = huge - Interstitial%uustar_land = huge - Interstitial%uustar_ocean = huge Interstitial%vdftra = clear_val Interstitial%vegf1d = clear_val Interstitial%vegtype = 0 @@ -6455,9 +6464,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%xlai1d = clear_val Interstitial%xmu = clear_val Interstitial%z01d = clear_val - Interstitial%zorl_ice = huge - Interstitial%zorl_land = huge - Interstitial%zorl_ocean = huge Interstitial%zt1d = clear_val ! CIRES UGWP v0 Interstitial%gw_dudt = clear_val @@ -6630,7 +6636,6 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%ep1d_ice ) = ', sum(Interstitial%ep1d_ice ) write (0,*) 'sum(Interstitial%ep1d_land ) = ', sum(Interstitial%ep1d_land ) write (0,*) 'sum(Interstitial%ep1d_ocean ) = ', sum(Interstitial%ep1d_ocean ) - write (0,*) 'sum(Interstitial%evap ) = ', sum(Interstitial%evap ) write (0,*) 'sum(Interstitial%evap_ice ) = ', sum(Interstitial%evap_ice ) write (0,*) 'sum(Interstitial%evap_land ) = ', sum(Interstitial%evap_land ) write (0,*) 'sum(Interstitial%evap_ocean ) = ', sum(Interstitial%evap_ocean ) @@ -6673,7 +6678,6 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%gflx_ocean ) = ', sum(Interstitial%gflx_ocean ) write (0,*) 'sum(Interstitial%gwdcu ) = ', sum(Interstitial%gwdcu ) write (0,*) 'sum(Interstitial%gwdcv ) = ', sum(Interstitial%gwdcv ) - write (0,*) 'sum(Interstitial%hflx ) = ', sum(Interstitial%hflx ) write (0,*) 'sum(Interstitial%hflx_ice ) = ', sum(Interstitial%hflx_ice ) write (0,*) 'sum(Interstitial%hflx_land ) = ', sum(Interstitial%hflx_land ) write (0,*) 'sum(Interstitial%hflx_ocean ) = ', sum(Interstitial%hflx_ocean ) @@ -6705,9 +6709,6 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%prnum ) = ', sum(Interstitial%prnum ) write (0,*) 'sum(Interstitial%qlyr ) = ', sum(Interstitial%qlyr ) write (0,*) 'sum(Interstitial%qss ) = ', sum(Interstitial%qss ) - write (0,*) 'sum(Interstitial%qss_ice ) = ', sum(Interstitial%qss_ice ) - write (0,*) 'sum(Interstitial%qss_land ) = ', sum(Interstitial%qss_land ) - write (0,*) 'sum(Interstitial%qss_ocean ) = ', sum(Interstitial%qss_ocean ) write (0,*) 'Interstitial%raddt = ', Interstitial%raddt write (0,*) 'sum(Interstitial%raincd ) = ', sum(Interstitial%raincd ) write (0,*) 'sum(Interstitial%raincs ) = ', sum(Interstitial%raincs ) @@ -6742,9 +6743,6 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%sigmatot ) = ', sum(Interstitial%sigmatot ) write (0,*) 'sum(Interstitial%slopetype ) = ', sum(Interstitial%slopetype ) write (0,*) 'sum(Interstitial%snowc ) = ', sum(Interstitial%snowc ) - write (0,*) 'sum(Interstitial%snowd_ice ) = ', sum(Interstitial%snowd_ice ) - write (0,*) 'sum(Interstitial%snowd_land ) = ', sum(Interstitial%snowd_land ) - write (0,*) 'sum(Interstitial%snowd_ocean ) = ', sum(Interstitial%snowd_ocean ) write (0,*) 'sum(Interstitial%snohf ) = ', sum(Interstitial%snohf ) write (0,*) 'sum(Interstitial%snowmt ) = ', sum(Interstitial%snowmt ) write (0,*) 'sum(Interstitial%soiltype ) = ', sum(Interstitial%soiltype ) @@ -6762,23 +6760,14 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%trans ) = ', sum(Interstitial%trans ) write (0,*) 'sum(Interstitial%tseal ) = ', sum(Interstitial%tseal ) write (0,*) 'sum(Interstitial%tsfa ) = ', sum(Interstitial%tsfa ) - write (0,*) 'sum(Interstitial%tsfc_ice ) = ', sum(Interstitial%tsfc_ice ) - write (0,*) 'sum(Interstitial%tsfc_land ) = ', sum(Interstitial%tsfc_land ) - write (0,*) 'sum(Interstitial%tsfc_ocean ) = ', sum(Interstitial%tsfc_ocean ) write (0,*) 'sum(Interstitial%tsfg ) = ', sum(Interstitial%tsfg ) write (0,*) 'sum(Interstitial%tsurf ) = ', sum(Interstitial%tsurf ) - write (0,*) 'sum(Interstitial%tsurf_ice ) = ', sum(Interstitial%tsurf_ice ) - write (0,*) 'sum(Interstitial%tsurf_land ) = ', sum(Interstitial%tsurf_land ) - write (0,*) 'sum(Interstitial%tsurf_ocean ) = ', sum(Interstitial%tsurf_ocean ) write (0,*) 'sum(Interstitial%ud_mf ) = ', sum(Interstitial%ud_mf ) write (0,*) 'sum(Interstitial%ulwsfc_cice ) = ', sum(Interstitial%ulwsfc_cice ) write (0,*) 'sum(Interstitial%dusfc_cice ) = ', sum(Interstitial%dusfc_cice ) write (0,*) 'sum(Interstitial%dvsfc_cice ) = ', sum(Interstitial%dvsfc_cice ) write (0,*) 'sum(Interstitial%dtsfc_cice ) = ', sum(Interstitial%dtsfc_cice ) write (0,*) 'sum(Interstitial%dqsfc_cice ) = ', sum(Interstitial%dqsfc_cice ) - write (0,*) 'sum(Interstitial%uustar_ice ) = ', sum(Interstitial%uustar_ice ) - write (0,*) 'sum(Interstitial%uustar_land ) = ', sum(Interstitial%uustar_land ) - write (0,*) 'sum(Interstitial%uustar_ocean ) = ', sum(Interstitial%uustar_ocean ) write (0,*) 'sum(Interstitial%vdftra ) = ', sum(Interstitial%vdftra ) write (0,*) 'sum(Interstitial%vegf1d ) = ', sum(Interstitial%vegf1d ) write (0,*) 'sum(Interstitial%vegtype ) = ', sum(Interstitial%vegtype ) @@ -6794,9 +6783,6 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%xlai1d ) = ', sum(Interstitial%xlai1d ) write (0,*) 'sum(Interstitial%xmu ) = ', sum(Interstitial%xmu ) write (0,*) 'sum(Interstitial%z01d ) = ', sum(Interstitial%z01d ) - write (0,*) 'sum(Interstitial%zorl_ice ) = ', sum(Interstitial%zorl_ice ) - write (0,*) 'sum(Interstitial%zorl_land ) = ', sum(Interstitial%zorl_land ) - write (0,*) 'sum(Interstitial%zorl_ocean ) = ', sum(Interstitial%zorl_ocean ) write (0,*) 'sum(Interstitial%zt1d ) = ', sum(Interstitial%zt1d ) ! CIRES UGWP v0 write (0,*) 'sum(Interstitial%gw_dudt ) = ', sum(Interstitial%gw_dudt ) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 6645ae3af..48f2fd7fb 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1269,6 +1269,146 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys +[evap] + standard_name = kinematic_surface_upward_latent_heat_flux + long_name = kinematic surface upward latent heat flux + units = kg kg-1 m s-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[hflx] + standard_name = kinematic_surface_upward_sensible_heat_flux + long_name = kinematic surface upward sensible heat flux + units = K m s-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[tsfc_ocean] + standard_name = surface_skin_temperature_over_ocean_interstitial + long_name = surface skin temperature over ocean (temporary use as interstitial) + units = K + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[tsfc_land] + standard_name = surface_skin_temperature_over_land_interstitial + long_name = surface skin temperature over land (temporary use as interstitial) + units = K + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[tsfc_ice] + standard_name = surface_skin_temperature_over_ice_interstitial + long_name = surface skin temperature over ice (temporary use as interstitial) + units = K + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[tsurf_ocean] + standard_name = surface_skin_temperature_after_iteration_over_ocean + long_name = surface skin temperature after iteration over ocean + units = K + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[tsurf_land] + standard_name = surface_skin_temperature_after_iteration_over_land + long_name = surface skin temperature after iteration over land + units = K + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[tsurf_ice] + standard_name = surface_skin_temperature_after_iteration_over_ice + long_name = surface skin temperature after iteration over ice + units = K + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[uustar_ocean] + standard_name = surface_friction_velocity_over_ocean + long_name = surface friction velocity over ocean + units = m s-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[uustar_land] + standard_name = surface_friction_velocity_over_land + long_name = surface friction velocity over land + units = m s-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[uustar_ice] + standard_name = surface_friction_velocity_over_ice + long_name = surface friction velocity over ice + units = m s-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[qss_ocean] + standard_name = surface_specific_humidity_over_ocean + long_name = surface air saturation specific humidity over ocean + units = kg kg-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[qss_land] + standard_name = surface_specific_humidity_over_land + long_name = surface air saturation specific humidity over land + units = kg kg-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[qss_ice] + standard_name = surface_specific_humidity_over_ice + long_name = surface air saturation specific humidity over ice + units = kg kg-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[snowd_ocean] + standard_name = surface_snow_thickness_water_equivalent_over_ocean + long_name = water equivalent snow depth over ocean + units = mm + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[snowd_land] + standard_name = surface_snow_thickness_water_equivalent_over_land + long_name = water equivalent snow depth over land + units = mm + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[snowd_ice] + standard_name = surface_snow_thickness_water_equivalent_over_ice + long_name = water equivalent snow depth over ice + units = mm + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[zorl_ocean] + standard_name = surface_roughness_length_over_ocean_interstitial + long_name = surface roughness length over ocean (temporary use as interstitial) + units = cm + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[zorl_land] + standard_name = surface_roughness_length_over_land_interstitial + long_name = surface roughness length over land (temporary use as interstitial) + units = cm + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[zorl_ice] + standard_name = surface_roughness_length_over_ice_interstitial + long_name = surface roughness length over ice (temporary use as interstitial) + units = cm + dimensions = (horizontal_dimension) + type = real + kind = kind_phys [raincprv] standard_name = lwe_thickness_of_convective_precipitation_amount_from_previous_timestep long_name = convective_precipitation_amount from previous timestep @@ -4091,6 +4231,13 @@ dimensions = (horizontal_dimension,vertical_dimension_of_h2o_forcing_data,number_of_coefficients_in_h2o_forcing_data) type = real kind = kind_phys +[hpbl] + standard_name = atmosphere_boundary_layer_thickness + long_name = pbl height + units = m + dimensions = (horizontal_dimension) + type = real + kind = kind_phys [in_nm] standard_name = in_number_concentration long_name = IN number concentration @@ -5121,13 +5268,6 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[hpbl] - standard_name = atmosphere_boundary_layer_thickness - long_name = pbl height - units = m - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [pwat] standard_name = column_precipitable_water long_name = precipitable water @@ -6634,13 +6774,6 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[evap] - standard_name = kinematic_surface_upward_latent_heat_flux - long_name = kinematic surface upward latent heat flux - units = kg kg-1 m s-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [evap_ocean] standard_name = kinematic_surface_upward_latent_heat_flux_over_ocean long_name = kinematic surface upward latent heat flux over ocean @@ -7057,13 +7190,6 @@ dimensions = (vertical_dimension_of_h2o_forcing_data) type = real kind = kind_phys -[hflx] - standard_name = kinematic_surface_upward_sensible_heat_flux - long_name = kinematic surface upward sensible heat flux - units = K m s-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [hflx_ocean] standard_name = kinematic_surface_upward_sensible_heat_flux_over_ocean long_name = kinematic surface upward sensible heat flux over ocean @@ -7515,27 +7641,6 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[qss_ocean] - standard_name = surface_specific_humidity_over_ocean - long_name = surface air saturation specific humidity over ocean - units = kg kg-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[qss_land] - standard_name = surface_specific_humidity_over_land - long_name = surface air saturation specific humidity over land - units = kg kg-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[qss_ice] - standard_name = surface_specific_humidity_over_ice - long_name = surface air saturation specific humidity over ice - units = kg kg-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [raddt] standard_name = time_step_for_radiation long_name = radiation time step @@ -7770,27 +7875,6 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[snowd_ocean] - standard_name = surface_snow_thickness_water_equivalent_over_ocean - long_name = water equivalent snow depth over ocean - units = mm - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[snowd_land] - standard_name = surface_snow_thickness_water_equivalent_over_land - long_name = water equivalent snow depth over land - units = mm - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[snowd_ice] - standard_name = surface_snow_thickness_water_equivalent_over_ice - long_name = water equivalent snow depth over ice - units = mm - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [snohf] standard_name = snow_freezing_rain_upward_latent_heat_flux long_name = latent heat flux due to snow and frz rain @@ -7941,27 +8025,6 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[tsfc_ocean] - standard_name = surface_skin_temperature_over_ocean_interstitial - long_name = surface skin temperature over ocean (temporary use as interstitial) - units = K - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[tsfc_land] - standard_name = surface_skin_temperature_over_land_interstitial - long_name = surface skin temperature over land (temporary use as interstitial) - units = K - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[tsfc_ice] - standard_name = surface_skin_temperature_over_ice_interstitial - long_name = surface skin temperature over ice (temporary use as interstitial) - units = K - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [tsfg] standard_name = surface_ground_temperature_for_radiation long_name = surface ground temperature for radiation @@ -7976,27 +8039,6 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[tsurf_ocean] - standard_name = surface_skin_temperature_after_iteration_over_ocean - long_name = surface skin temperature after iteration over ocean - units = K - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[tsurf_land] - standard_name = surface_skin_temperature_after_iteration_over_land - long_name = surface skin temperature after iteration over land - units = K - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[tsurf_ice] - standard_name = surface_skin_temperature_after_iteration_over_ice - long_name = surface skin temperature after iteration over ice - units = K - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [tracers_water] standard_name = number_of_water_tracers long_name = number of water-related tracers @@ -8017,27 +8059,6 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[uustar_ocean] - standard_name = surface_friction_velocity_over_ocean - long_name = surface friction velocity over ocean - units = m s-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[uustar_land] - standard_name = surface_friction_velocity_over_land - long_name = surface friction velocity over land - units = m s-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[uustar_ice] - standard_name = surface_friction_velocity_over_ice - long_name = surface friction velocity over ice - units = m s-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [vdftra] standard_name = vertically_diffused_tracer_concentration long_name = tracer concentration diffused by PBL scheme @@ -8149,27 +8170,6 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[zorl_ocean] - standard_name = surface_roughness_length_over_ocean_interstitial - long_name = surface roughness length over ocean (temporary use as interstitial) - units = cm - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[zorl_land] - standard_name = surface_roughness_length_over_land_interstitial - long_name = surface roughness length over land (temporary use as interstitial) - units = cm - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[zorl_ice] - standard_name = surface_roughness_length_over_ice_interstitial - long_name = surface roughness length over ice (temporary use as interstitial) - units = cm - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [zt1d] standard_name = perturbation_of_heat_to_momentum_roughness_length_ratio long_name = perturbation of heat to momentum roughness length ratio From 7d4d5697ee41311ee09de2163dafc18ec28c7be7 Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Wed, 4 Mar 2020 20:07:49 +0000 Subject: [PATCH 073/206] Add timestep_init and timestep_final actions to CCPP. Update code so model tendencies add up to total change in 3 hours for the gfs v16 beta suite --- atmos_model.F90 | 10 ++++ ccpp/driver/CCPP_driver.F90 | 67 +++++++++++++++++++++++++- ccpp/physics | 2 +- ccpp/suites/suite_FV3_GFS_v15p2.xml | 21 ++++---- ccpp/suites/suite_FV3_GFS_v16beta.xml | 22 ++++----- ccpp/suites/suite_FV3_GSD_v0.xml | 21 ++++---- gfsphysics/GFS_layer/GFS_typedefs.meta | 7 +++ 7 files changed, 111 insertions(+), 39 deletions(-) diff --git a/atmos_model.F90 b/atmos_model.F90 index 92c154cb7..460ef0dc9 100644 --- a/atmos_model.F90 +++ b/atmos_model.F90 @@ -297,6 +297,7 @@ subroutine update_atmos_radiation_physics (Atmos) !--- execute the IPD atmospheric setup step call mpp_clock_begin(setupClock) + #ifdef CCPP call CCPP_step (step="time_vary", nblks=Atm_block%nblks, ierr=ierr) if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP time_vary step failed') @@ -331,6 +332,9 @@ subroutine update_atmos_radiation_physics (Atmos) ! print *,'in atmos_model, after assign_importdata, rc=',rc endif + call CCPP_step (step="timestep_init", nblks=Atm_block%nblks, ierr=ierr) + if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP timestep_init step failed') + call mpp_clock_end(setupClock) if (mpp_pe() == mpp_root_pe() .and. debug) write(6,*) "radiation driver" @@ -394,6 +398,9 @@ subroutine update_atmos_radiation_physics (Atmos) #ifdef CCPP call CCPP_step (step="stochastics", nblks=Atm_block%nblks, ierr=ierr) if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP stochastics step failed') + + call CCPP_step (step="timestep_final", nblks=Atm_block%nblks, ierr=ierr) + if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP timestep_final step failed') #else Func0d => physics_step2 !$OMP parallel do default (none) & @@ -404,13 +411,16 @@ subroutine update_atmos_radiation_physics (Atmos) call IPD_step (IPD_Control, IPD_Data(nb:nb), IPD_Diag, IPD_Restart, IPD_func0d=Func0d) enddo #endif + call mpp_clock_end(physClock) if (chksum_debug) then if (mpp_pe() == mpp_root_pe()) print *,'PHYSICS STEP2 ', IPD_Control%kdt, IPD_Control%fhour call FV3GFS_IPD_checksum(IPD_Control, IPD_Data, Atm_block) endif + call getiauforcing(IPD_Control,IAU_data) + if (mpp_pe() == mpp_root_pe() .and. debug) write(6,*) "end of radiation and physics step" endif diff --git a/ccpp/driver/CCPP_driver.F90 b/ccpp/driver/CCPP_driver.F90 index 449aaf03c..2ab882d60 100644 --- a/ccpp/driver/CCPP_driver.F90 +++ b/ccpp/driver/CCPP_driver.F90 @@ -49,7 +49,7 @@ module CCPP_driver ! number nthrdsX in case of non-uniform block sizes) ! !--------------------------------------------------------! logical :: non_uniform_blocks - integer :: nthrds, nthrdsX + integer :: nthrds, nthrdsX, ithread !---------------- ! Public Entities @@ -184,6 +184,68 @@ subroutine CCPP_step (step, nblks, ierr) return end if +! else if (trim(step)=='timestep_init') then + +! ! Threading is forbidden in timestep_init +! ierr=0 +! print *,'received timestep_init' +! !$OMP MASTER +! outerI: do nb = 1,nblks +! print *,'nb=',nb +! ! For non-uniform blocks, the last block has a different (shorter) +! ! length than the other blocks; use special CCPP_Interstitial(nthrdsX) +! if (non_uniform_blocks .and. nb==nblks) then +! ntX = nthrdsX +! else +! ntX = nt +! end if +! do ithread = 1,ntX +! #ifdef STATIC +! call ccpp_physics_run(cdata_domain, suite_name=trim(ccpp_suite), group_name="timestep_init", ierr=ierr) +! #else +! call ccpp_physics_run(cdata_domain, group_name="timestep_init", ierr=ierr) +! #endif +! if (ierr/=0) exit outerI +! enddo +! enddo outerI +! !$OMP END MASTER + +! if (ierr/=0) then +! write(0,'(a)') "An error occurred in ccpp_physics_run for group timestep_init" +! write(0,'(a)') trim(cdata_domain%errmsg) +! return +! end if + +! else if (trim(step)=='timestep_final') then + +! ! Threading is forbidden in timestep_final +! ierr=0 +! !$OMP MASTER +! outerF: do nb = 1,nblks +! ! For non-uniform blocks, the last block has a different (shorter) +! ! length than the other blocks; use special CCPP_Interstitial(nthrdsX) +! if (non_uniform_blocks .and. nb==nblks) then +! ntX = nthrdsX +! else +! ntX = nt +! end if +! do ithread = 1,ntX +! #ifdef STATIC +! call ccpp_physics_run(cdata_domain, suite_name=trim(ccpp_suite), group_name="timestep_final", ierr=ierr) +! #else +! call ccpp_physics_run(cdata_domain, group_name="timestep_final", ierr=ierr) +! #endif +! if (ierr/=0) exit outerF +! enddo +! enddo outerF +! !$OMP END MASTER + +! if (ierr/=0) then +! write(0,'(a)') "An error occurred in ccpp_physics_run for group timestep_final" +! write(0,'(a)') trim(cdata_domain%errmsg) +! return +! end if + else if (trim(step)=="time_vary") then ! Since the time_vary steps only use data structures for all blocks (except the @@ -205,7 +267,8 @@ subroutine CCPP_step (step, nblks, ierr) end if ! Radiation and stochastic physics - else if (trim(step)=="radiation" .or. trim(step)=="physics" .or. trim(step)=="stochastics") then + else if (trim(step)=="radiation" .or. trim(step)=="physics" .or. trim(step)=="stochastics" & + .or. trim(step)=="timestep_init" .or. trim(step)=="timestep_final") then ! Set number of threads available to physics schemes to one, ! because threads are used on the outside for blocking diff --git a/ccpp/physics b/ccpp/physics index 1a3c4d1d0..b4918a451 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 1a3c4d1d020bc9edca46a1911232156143cf3001 +Subproject commit b4918a451256eb4f811851c7973bfee7e26f0c8c diff --git a/ccpp/suites/suite_FV3_GFS_v15p2.xml b/ccpp/suites/suite_FV3_GFS_v15p2.xml index 68d1d8c91..4096166dd 100644 --- a/ccpp/suites/suite_FV3_GFS_v15p2.xml +++ b/ccpp/suites/suite_FV3_GFS_v15p2.xml @@ -9,17 +9,19 @@ - model_tend_pre GFS_time_vary_pre GFS_rrtmg_setup GFS_rad_time_vary GFS_phys_time_vary - model_tend_post - + model_tend_pre + + + + GFS_suite_interstitial_rad_reset GFS_rrtmg_pre rrtmg_sw_pre @@ -29,13 +31,10 @@ rrtmg_lw rrtmg_lw_post GFS_rrtmg_post - model_tend_post - model_tend_pre - total_tend GFS_suite_interstitial_phys_reset GFS_suite_stateout_reset get_prs_fv3 @@ -45,11 +44,9 @@ dcyc2t3 GFS_surface_composites_inter GFS_suite_interstitial_2 - model_tend_post - model_tend_pre sfc_diff GFS_surface_loop_control_part1 sfc_nst_pre @@ -58,11 +55,9 @@ lsm_noah sfc_sice GFS_surface_loop_control_part2 - model_tend_pre - model_tend_pre GFS_surface_composites_post dcyc2t3_post sfc_diag @@ -93,13 +88,15 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - model_tend_post - model_tend_pre GFS_stochastics + + + + model_tend_post diff --git a/ccpp/suites/suite_FV3_GFS_v16beta.xml b/ccpp/suites/suite_FV3_GFS_v16beta.xml index 9b2df96ca..53837905d 100644 --- a/ccpp/suites/suite_FV3_GFS_v16beta.xml +++ b/ccpp/suites/suite_FV3_GFS_v16beta.xml @@ -9,17 +9,19 @@ - model_tend_pre GFS_time_vary_pre GFS_rrtmg_setup GFS_rad_time_vary GFS_phys_time_vary - model_tend_post - + model_tend_pre + + + + GFS_suite_interstitial_rad_reset GFS_rrtmg_pre rrtmg_sw_pre @@ -29,13 +31,10 @@ rrtmg_lw rrtmg_lw_post GFS_rrtmg_post - model_tend_post - total_tend - model_tend_pre GFS_suite_interstitial_phys_reset GFS_suite_stateout_reset get_prs_fv3 @@ -45,11 +44,9 @@ dcyc2t3 GFS_surface_composites_inter GFS_suite_interstitial_2 - model_tend_post - model_tend_pre sfc_diff GFS_surface_loop_control_part1 sfc_nst_pre @@ -58,11 +55,9 @@ lsm_noah sfc_sice GFS_surface_loop_control_part2 - model_tend_post - model_tend_pre GFS_surface_composites_post dcyc2t3_post sfc_diag @@ -93,14 +88,17 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - model_tend_post - model_tend_pre GFS_stochastics + + + + model_tend_post + total_tend diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index 349194c5e..f06f28de7 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -4,17 +4,19 @@ - model_tend_pre GFS_time_vary_pre GFS_rrtmg_setup GFS_rad_time_vary GFS_phys_time_vary - model_tend_post - + model_tend_pre + + + + GFS_suite_interstitial_rad_reset GFS_rrtmg_pre rrtmg_sw_pre @@ -26,13 +28,10 @@ mynnrad_post rrtmg_lw_post GFS_rrtmg_post - model_tend_post - total_tend - model_tend_pre GFS_suite_interstitial_phys_reset GFS_suite_stateout_reset get_prs_fv3 @@ -42,11 +41,9 @@ dcyc2t3 GFS_surface_composites_inter GFS_suite_interstitial_2 - model_tend_post - model_tend_pre sfc_diff GFS_surface_loop_control_part1 sfc_nst_pre @@ -57,11 +54,9 @@ sfc_sice lsm_ruc_sfc_sice_post GFS_surface_loop_control_part2 - model_tend_post - model_tend_pre GFS_surface_composites_post dcyc2t3_post sfc_diag @@ -93,13 +88,15 @@ GFS_MP_generic_post cu_gf_driver_post maximum_hourly_diagnostics - model_tend_post - model_tend_pre GFS_stochastics + + + + model_tend_post diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index d333eb97d..f0ae1adb9 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -7866,6 +7866,13 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys +[save_q(:,:,index_for_ozone)] + standard_name = ozone_mixing_ratio_save + long_name = ozone mixing ratio before entering a physics scheme + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [save_q(:,:,index_for_liquid_cloud_condensate)] standard_name = cloud_condensed_water_mixing_ratio_save long_name = moist (dry+vapor, no condensates) mixing ratio of cloud water (condensate) before entering a physics scheme From d46ebe84454b2921a455fd02c5b7e09c5ed14d70 Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Wed, 4 Mar 2020 22:28:46 +0000 Subject: [PATCH 074/206] Remove debug prints and commented-out code. --- ccpp/driver/CCPP_driver.F90 | 62 ------------------------------------- ccpp/physics | 2 +- 2 files changed, 1 insertion(+), 63 deletions(-) diff --git a/ccpp/driver/CCPP_driver.F90 b/ccpp/driver/CCPP_driver.F90 index 2ab882d60..0bf88b218 100644 --- a/ccpp/driver/CCPP_driver.F90 +++ b/ccpp/driver/CCPP_driver.F90 @@ -184,68 +184,6 @@ subroutine CCPP_step (step, nblks, ierr) return end if -! else if (trim(step)=='timestep_init') then - -! ! Threading is forbidden in timestep_init -! ierr=0 -! print *,'received timestep_init' -! !$OMP MASTER -! outerI: do nb = 1,nblks -! print *,'nb=',nb -! ! For non-uniform blocks, the last block has a different (shorter) -! ! length than the other blocks; use special CCPP_Interstitial(nthrdsX) -! if (non_uniform_blocks .and. nb==nblks) then -! ntX = nthrdsX -! else -! ntX = nt -! end if -! do ithread = 1,ntX -! #ifdef STATIC -! call ccpp_physics_run(cdata_domain, suite_name=trim(ccpp_suite), group_name="timestep_init", ierr=ierr) -! #else -! call ccpp_physics_run(cdata_domain, group_name="timestep_init", ierr=ierr) -! #endif -! if (ierr/=0) exit outerI -! enddo -! enddo outerI -! !$OMP END MASTER - -! if (ierr/=0) then -! write(0,'(a)') "An error occurred in ccpp_physics_run for group timestep_init" -! write(0,'(a)') trim(cdata_domain%errmsg) -! return -! end if - -! else if (trim(step)=='timestep_final') then - -! ! Threading is forbidden in timestep_final -! ierr=0 -! !$OMP MASTER -! outerF: do nb = 1,nblks -! ! For non-uniform blocks, the last block has a different (shorter) -! ! length than the other blocks; use special CCPP_Interstitial(nthrdsX) -! if (non_uniform_blocks .and. nb==nblks) then -! ntX = nthrdsX -! else -! ntX = nt -! end if -! do ithread = 1,ntX -! #ifdef STATIC -! call ccpp_physics_run(cdata_domain, suite_name=trim(ccpp_suite), group_name="timestep_final", ierr=ierr) -! #else -! call ccpp_physics_run(cdata_domain, group_name="timestep_final", ierr=ierr) -! #endif -! if (ierr/=0) exit outerF -! enddo -! enddo outerF -! !$OMP END MASTER - -! if (ierr/=0) then -! write(0,'(a)') "An error occurred in ccpp_physics_run for group timestep_final" -! write(0,'(a)') trim(cdata_domain%errmsg) -! return -! end if - else if (trim(step)=="time_vary") then ! Since the time_vary steps only use data structures for all blocks (except the diff --git a/ccpp/physics b/ccpp/physics index b4918a451..abde3d01f 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit b4918a451256eb4f811851c7973bfee7e26f0c8c +Subproject commit abde3d01f61e20a64e6605f8ac2dfd7a9aff6fba From 9f8b18f17a428c4367b82651eb8ae3db2813c823 Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Thu, 12 Mar 2020 17:20:48 +0000 Subject: [PATCH 075/206] Add total tendency calculations for gfsv15p2 and gsdv0. Calculate pbl tendencies for gvsv15p2 --- ccpp/suites/suite_FV3_GFS_v15p2.xml | 1 + ccpp/suites/suite_FV3_GSD_v0.xml | 1 + gfsphysics/GFS_layer/GFS_typedefs.F90 | 3 +++ 3 files changed, 5 insertions(+) diff --git a/ccpp/suites/suite_FV3_GFS_v15p2.xml b/ccpp/suites/suite_FV3_GFS_v15p2.xml index 4096166dd..7c68f4253 100644 --- a/ccpp/suites/suite_FV3_GFS_v15p2.xml +++ b/ccpp/suites/suite_FV3_GFS_v15p2.xml @@ -98,6 +98,7 @@ model_tend_post + total_tend diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index f06f28de7..8f6afecf1 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -98,6 +98,7 @@ model_tend_post + total_tend diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 580828218..803cd4a69 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -3271,6 +3271,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & if(satmedmf .and. isatmedmf==0) then write(0,*) 'FLAG: satmedmf and isatedmf=0 so pbl not generic' Model%flag_for_pbl_generic_tend=.false. + else if(hybedmf) then + write(0,*) 'FLAG: hybedmf so pbl not generic' + Model%flag_for_pbl_generic_tend=.false. else if(do_mynnedmf) then write(0,*) 'FLAG: do_mynnedmf so pbl not generic' Model%flag_for_pbl_generic_tend=.false. From 71ecc5bedb330aa821428cda144b51bc91ea3f94 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 12 Mar 2020 15:16:45 -0600 Subject: [PATCH 076/206] Update submodule pointer for ccpp/physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 3a852e8a3..2edeeadb4 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 3a852e8a3cd016571a5b08ddffda28585b2347f9 +Subproject commit 2edeeadb4416937dfb18eb32f3bf327449d47de2 From 3338fe0684dd415cc9306017b9950e70cabe3779 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 13 Mar 2020 07:20:13 -0600 Subject: [PATCH 077/206] Revert change to .gitmodules, update submodule pointer for ccpp-physics --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 6592152b0..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/climbfuji/ccpp-physics - branch = gsd-dev-clouds_thompson-no-aero_dom + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index 2edeeadb4..d1ef650d2 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 2edeeadb4416937dfb18eb32f3bf327449d47de2 +Subproject commit d1ef650d22c4af1414577405c489ed347657563f From cd2583d4af760b913aa08e0d6a5f88ddee6f13b2 Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Tue, 17 Mar 2020 17:00:32 +0000 Subject: [PATCH 078/206] Add some #ifdef CCPP to avoid breaking non-CCPP runs --- atmos_model.F90 | 2 ++ gfsphysics/GFS_layer/GFS_typedefs.F90 | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/atmos_model.F90 b/atmos_model.F90 index 460ef0dc9..044597d62 100644 --- a/atmos_model.F90 +++ b/atmos_model.F90 @@ -332,8 +332,10 @@ subroutine update_atmos_radiation_physics (Atmos) ! print *,'in atmos_model, after assign_importdata, rc=',rc endif +#ifdef CCPP call CCPP_step (step="timestep_init", nblks=Atm_block%nblks, ierr=ierr) if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP timestep_init step failed') +#endif call mpp_clock_end(setupClock) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 803cd4a69..41eea707c 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -3258,6 +3258,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%flag_for_scnv_generic_tend = .true. Model%flag_for_dcnv_generic_tend = .true. +#ifdef CCPP + write(0,*) 'GOT HERE (stderr)' print *,'GOT HERE (stdout)' @@ -3300,7 +3302,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & else write(0,*) 'NO FLAG: dcnv is generic' endif - +#endif ! !VAY-ugwp --- set some GW-related switches ! From 397258788e4025f23dd818b1a6a6dcd42760aeb8 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 17 Mar 2020 14:16:18 -0600 Subject: [PATCH 079/206] Update .gitmodules and submodule pointer for ccpp-physics for code review and testing --- .gitmodules | 6 ++++-- ccpp/physics | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..608e5ede8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,7 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = mynnsfclay_from_joe_in_latest_code \ No newline at end of file diff --git a/ccpp/physics b/ccpp/physics index d1ef650d2..fe74f5a87 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit d1ef650d22c4af1414577405c489ed347657563f +Subproject commit fe74f5a87170ee78edff5f8dcb18de78f1069deb From 78586f4e7bace07f8e352a0da9b37b4f5dbe79d5 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 17 Mar 2020 14:31:20 -0600 Subject: [PATCH 080/206] Mirror changes to CCPP version of GFS_debug.F90 in IPD version --- ccpp/physics | 2 +- gfsphysics/physics/GFS_debug.F90 | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ccpp/physics b/ccpp/physics index fe74f5a87..5960e5e8a 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit fe74f5a87170ee78edff5f8dcb18de78f1069deb +Subproject commit 5960e5e8a1e15ebb7040656ebe1ea2c62253ae87 diff --git a/gfsphysics/physics/GFS_debug.F90 b/gfsphysics/physics/GFS_debug.F90 index 75fa97603..1f6ae5096 100644 --- a/gfsphysics/physics/GFS_debug.F90 +++ b/gfsphysics/physics/GFS_debug.F90 @@ -172,7 +172,7 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling, call print_var(mpirank,omprank, blkno, 'Sfcprop%dt_cool ', Sfcprop%dt_cool) call print_var(mpirank,omprank, blkno, 'Sfcprop%qrain ', Sfcprop%qrain) end if - ! CCPP only + ! CCPP/RUC only !if (Model%lsm == Model%lsm_ruc) then ! call print_var(mpirank,omprank, blkno, 'Sfcprop%sh2o', Sfcprop%sh2o) ! call print_var(mpirank,omprank, blkno, 'Sfcprop%smois', Sfcprop%smois) @@ -215,6 +215,7 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling, call print_var(mpirank,omprank, blkno, 'Tbd%acv' , Tbd%acv) call print_var(mpirank,omprank, blkno, 'Tbd%acvb' , Tbd%acvb) call print_var(mpirank,omprank, blkno, 'Tbd%acvt' , Tbd%acvt) + call print_var(mpirank,omprank, blkno, 'Tbd%hpbl' , Tbd%hpbl) if (Model%do_sppt) then call print_var(mpirank,omprank, blkno, 'Tbd%dtdtr' , Tbd%dtdtr) call print_var(mpirank,omprank, blkno, 'Tbd%dtotprcp' , Tbd%dtotprcp) @@ -284,7 +285,6 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling, call print_var(mpirank,omprank, blkno, 'Diag%dpt2m ', Diag%dpt2m) call print_var(mpirank,omprank, blkno, 'Diag%zlvl ', Diag%zlvl) call print_var(mpirank,omprank, blkno, 'Diag%psurf ', Diag%psurf) - call print_var(mpirank,omprank, blkno, 'Diag%hpbl ', Diag%hpbl) call print_var(mpirank,omprank, blkno, 'Diag%pwat ', Diag%pwat) call print_var(mpirank,omprank, blkno, 'Diag%t1 ', Diag%t1) call print_var(mpirank,omprank, blkno, 'Diag%q1 ', Diag%q1) @@ -300,7 +300,7 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling, call print_var(mpirank,omprank, blkno, 'Diag%tdomzr ', Diag%tdomzr) call print_var(mpirank,omprank, blkno, 'Diag%tdomip ', Diag%tdomip) call print_var(mpirank,omprank, blkno, 'Diag%tdoms ', Diag%tdoms) - ! CCPP only + ! CCPP/RUC only !if (Model%lsm == Model%lsm_ruc) then ! call print_var(mpirank,omprank, blkno, 'Diag%wet1 ', Sfcprop%wetness) !else @@ -336,7 +336,7 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling, if(Model%lradar) then call print_var(mpirank,omprank, blkno, 'Diag%refl_10cm ', Diag%refl_10cm) end if - ! CCPP only + ! CCPP/MYNNPBL only !if (Model%do_mynnedmf) then ! call print_var(mpirank,omprank, blkno, 'Diag%edmf_a ', Diag%edmf_a) ! call print_var(mpirank,omprank, blkno, 'Diag%edmf_w ', Diag%edmf_w) From 934cf14ad1574a860839c93476e8c5224df96747 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 19 Mar 2020 13:39:33 -0600 Subject: [PATCH 081/206] Revert change to move composite interstitials to persistent data types --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 141 +++++++------- gfsphysics/GFS_layer/GFS_typedefs.meta | 252 ++++++++++++------------- 2 files changed, 204 insertions(+), 189 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 2edc9528b..f6655fde0 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -258,27 +258,8 @@ module GFS_typedefs real (kind=kind_phys), pointer :: uustar (:) => null() !< boundary layer parameter real (kind=kind_phys), pointer :: oro (:) => null() !< orography real (kind=kind_phys), pointer :: oro_uf (:) => null() !< unfiltered orography - - real (kind=kind_phys), pointer :: qss_ice(:) => null() !< - real (kind=kind_phys), pointer :: qss_land(:) => null() !< - real (kind=kind_phys), pointer :: qss_ocean(:) => null() !< - real (kind=kind_phys), pointer :: snowd_ice(:) => null() !< - real (kind=kind_phys), pointer :: snowd_land(:) => null() !< - real (kind=kind_phys), pointer :: snowd_ocean(:) => null() !< - real (kind=kind_phys), pointer :: tsfc_ice(:) => null() !< - real (kind=kind_phys), pointer :: tsfc_land(:) => null() !< - real (kind=kind_phys), pointer :: tsfc_ocean(:) => null() !< - real (kind=kind_phys), pointer :: tsurf_ice(:) => null() !< - real (kind=kind_phys), pointer :: tsurf_land(:) => null() !< - real (kind=kind_phys), pointer :: tsurf_ocean(:) => null() !< - real (kind=kind_phys), pointer :: uustar_ice(:) => null() !< - real (kind=kind_phys), pointer :: uustar_land(:) => null() !< - real (kind=kind_phys), pointer :: uustar_ocean(:) => null() !< - real (kind=kind_phys), pointer :: zorl_ice(:) => null() !< - real (kind=kind_phys), pointer :: zorl_land(:) => null() !< - real (kind=kind_phys), pointer :: zorl_ocean(:) => null() !< - real (kind=kind_phys), pointer :: evap(:) => null() !< - real (kind=kind_phys), pointer :: hflx(:) => null() !< + real (kind=kind_phys), pointer :: evap (:) => null() !< + real (kind=kind_phys), pointer :: hflx (:) => null() !< !-- In/Out #ifdef CCPP @@ -1806,6 +1787,9 @@ module GFS_typedefs real (kind=kind_phys), pointer :: qrn(:,:) => null() !< real (kind=kind_phys), pointer :: qsnw(:,:) => null() !< real (kind=kind_phys), pointer :: qss(:) => null() !< + real (kind=kind_phys), pointer :: qss_ice(:) => null() !< + real (kind=kind_phys), pointer :: qss_land(:) => null() !< + real (kind=kind_phys), pointer :: qss_ocean(:) => null() !< real (kind=kind_phys) :: raddt !< real (kind=kind_phys), pointer :: rainmp(:) => null() !< real (kind=kind_phys), pointer :: raincd(:) => null() !< @@ -1837,6 +1821,9 @@ module GFS_typedefs logical :: skip_macro !< integer, pointer :: slopetype(:) => null() !< real (kind=kind_phys), pointer :: snowc(:) => null() !< + real (kind=kind_phys), pointer :: snowd_ice(:) => null() !< + real (kind=kind_phys), pointer :: snowd_land(:) => null() !< + real (kind=kind_phys), pointer :: snowd_ocean(:) => null() !< real (kind=kind_phys), pointer :: snohf(:) => null() !< real (kind=kind_phys), pointer :: snowmp(:) => null() !< real (kind=kind_phys), pointer :: snowmt(:) => null() !< @@ -1860,15 +1847,24 @@ module GFS_typedefs real (kind=kind_phys), pointer :: trans(:) => null() !< real (kind=kind_phys), pointer :: tseal(:) => null() !< real (kind=kind_phys), pointer :: tsfa(:) => null() !< + real (kind=kind_phys), pointer :: tsfc_ice(:) => null() !< + real (kind=kind_phys), pointer :: tsfc_land(:) => null() !< + real (kind=kind_phys), pointer :: tsfc_ocean(:) => null() !< real (kind=kind_phys), pointer :: tsfg(:) => null() !< real (kind=kind_phys), pointer :: tsnow(:) => null() !< real (kind=kind_phys), pointer :: tsurf(:) => null() !< + real (kind=kind_phys), pointer :: tsurf_ice(:) => null() !< + real (kind=kind_phys), pointer :: tsurf_land(:) => null() !< + real (kind=kind_phys), pointer :: tsurf_ocean(:) => null() !< real (kind=kind_phys), pointer :: ud_mf(:,:) => null() !< real (kind=kind_phys), pointer :: ulwsfc_cice(:) => null() !< real (kind=kind_phys), pointer :: dusfc_cice(:) => null() !< real (kind=kind_phys), pointer :: dvsfc_cice(:) => null() !< real (kind=kind_phys), pointer :: dqsfc_cice(:) => null() !< real (kind=kind_phys), pointer :: dtsfc_cice(:) => null() !< + real (kind=kind_phys), pointer :: uustar_ice(:) => null() !< + real (kind=kind_phys), pointer :: uustar_land(:) => null() !< + real (kind=kind_phys), pointer :: uustar_ocean(:) => null() !< real (kind=kind_phys), pointer :: vdftra(:,:,:) => null() !< real (kind=kind_phys), pointer :: vegf1d(:) => null() !< integer, pointer :: vegtype(:) => null() !< @@ -1885,6 +1881,9 @@ module GFS_typedefs real (kind=kind_phys), pointer :: xlai1d(:) => null() !< real (kind=kind_phys), pointer :: xmu(:) => null() !< real (kind=kind_phys), pointer :: z01d(:) => null() !< + real (kind=kind_phys), pointer :: zorl_ice(:) => null() !< + real (kind=kind_phys), pointer :: zorl_land(:) => null() !< + real (kind=kind_phys), pointer :: zorl_ocean(:) => null() !< real (kind=kind_phys), pointer :: zt1d(:) => null() !< real (kind=kind_phys), pointer :: gw_dudt(:,:) => null() !< real (kind=kind_phys), pointer :: gw_dvdt(:,:) => null() !< @@ -2124,6 +2123,8 @@ subroutine sfcprop_create (Sfcprop, IM, Model) allocate (Sfcprop%uustar (IM)) allocate (Sfcprop%oro (IM)) allocate (Sfcprop%oro_uf (IM)) + allocate (Sfcprop%evap (IM)) + allocate (Sfcprop%hflx (IM)) Sfcprop%slope = clear_val Sfcprop%shdmin = clear_val @@ -2136,48 +2137,8 @@ subroutine sfcprop_create (Sfcprop, IM, Model) Sfcprop%uustar = clear_val Sfcprop%oro = clear_val Sfcprop%oro_uf = clear_val - - allocate (Sfcprop%qss_ice (IM)) - allocate (Sfcprop%qss_land (IM)) - allocate (Sfcprop%qss_ocean (IM)) - allocate (Sfcprop%snowd_ice (IM)) - allocate (Sfcprop%snowd_land (IM)) - allocate (Sfcprop%snowd_ocean (IM)) - allocate (Sfcprop%tsfc_ice (IM)) - allocate (Sfcprop%tsfc_land (IM)) - allocate (Sfcprop%tsfc_ocean (IM)) - allocate (Sfcprop%tsurf_ice (IM)) - allocate (Sfcprop%tsurf_land (IM)) - allocate (Sfcprop%tsurf_ocean (IM)) - allocate (Sfcprop%uustar_ice (IM)) - allocate (Sfcprop%uustar_land (IM)) - allocate (Sfcprop%uustar_ocean(IM)) - allocate (Sfcprop%zorl_ice (IM)) - allocate (Sfcprop%zorl_land (IM)) - allocate (Sfcprop%zorl_ocean (IM)) - allocate (Sfcprop%evap (IM)) - allocate (Sfcprop%hflx (IM)) - - Sfcprop%qss_ice = huge - Sfcprop%qss_land = huge - Sfcprop%qss_ocean = huge - Sfcprop%snowd_ice = huge - Sfcprop%snowd_land = huge - Sfcprop%snowd_ocean = huge - Sfcprop%tsfc_ice = huge - Sfcprop%tsfc_land = huge - Sfcprop%tsfc_ocean = huge - Sfcprop%tsurf_ice = huge - Sfcprop%tsurf_land = huge - Sfcprop%tsurf_ocean = huge - Sfcprop%uustar_ice = huge - Sfcprop%uustar_land = huge - Sfcprop%uustar_ocean = huge - Sfcprop%zorl_ice = huge - Sfcprop%zorl_land = huge - Sfcprop%zorl_ocean = huge - Sfcprop%evap = clear_val - Sfcprop%hflx = clear_val + Sfcprop%evap = clear_val + Sfcprop%hflx = clear_val !--- In/Out allocate (Sfcprop%hice (IM)) @@ -5900,6 +5861,9 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%qlyr (IM,Model%levr+LTP)) allocate (Interstitial%prcpmp (IM)) allocate (Interstitial%qss (IM)) + allocate (Interstitial%qss_ice (IM)) + allocate (Interstitial%qss_land (IM)) + allocate (Interstitial%qss_ocean (IM)) allocate (Interstitial%raincd (IM)) allocate (Interstitial%raincs (IM)) allocate (Interstitial%rainmcadj (IM)) @@ -5927,6 +5891,9 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%sigmatot (IM,Model%levs)) allocate (Interstitial%slopetype (IM)) allocate (Interstitial%snowc (IM)) + allocate (Interstitial%snowd_ice (IM)) + allocate (Interstitial%snowd_land (IM)) + allocate (Interstitial%snowd_ocean (IM)) allocate (Interstitial%snohf (IM)) allocate (Interstitial%snowmt (IM)) allocate (Interstitial%soiltype (IM)) @@ -5944,14 +5911,23 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%trans (IM)) allocate (Interstitial%tseal (IM)) allocate (Interstitial%tsfa (IM)) + allocate (Interstitial%tsfc_ice (IM)) + allocate (Interstitial%tsfc_land (IM)) + allocate (Interstitial%tsfc_ocean (IM)) allocate (Interstitial%tsfg (IM)) allocate (Interstitial%tsurf (IM)) + allocate (Interstitial%tsurf_ice (IM)) + allocate (Interstitial%tsurf_land (IM)) + allocate (Interstitial%tsurf_ocean (IM)) allocate (Interstitial%ud_mf (IM,Model%levs)) allocate (Interstitial%ulwsfc_cice (IM)) allocate (Interstitial%dusfc_cice (IM)) allocate (Interstitial%dvsfc_cice (IM)) allocate (Interstitial%dtsfc_cice (IM)) allocate (Interstitial%dqsfc_cice (IM)) + allocate (Interstitial%uustar_ice (IM)) + allocate (Interstitial%uustar_land (IM)) + allocate (Interstitial%uustar_ocean (IM)) allocate (Interstitial%vdftra (IM,Model%levs,Interstitial%nvdiff)) !GJF first dimension was set as 'IX' in GFS_physics_driver allocate (Interstitial%vegf1d (IM)) allocate (Interstitial%vegtype (IM)) @@ -5967,6 +5943,9 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%xlai1d (IM)) allocate (Interstitial%xmu (IM)) allocate (Interstitial%z01d (IM)) + allocate (Interstitial%zorl_ice (IM)) + allocate (Interstitial%zorl_land (IM)) + allocate (Interstitial%zorl_ocean (IM)) allocate (Interstitial%zt1d (IM)) ! CIRES UGWP v0 allocate (Interstitial%gw_dudt (IM,Model%levs)) @@ -6412,6 +6391,9 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%prcpmp = clear_val Interstitial%prnum = clear_val Interstitial%qss = clear_val + Interstitial%qss_ice = huge + Interstitial%qss_land = huge + Interstitial%qss_ocean = huge Interstitial%raincd = clear_val Interstitial%raincs = clear_val Interstitial%rainmcadj = clear_val @@ -6437,6 +6419,9 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%sigmatot = clear_val Interstitial%slopetype = 0 Interstitial%snowc = clear_val + Interstitial%snowd_ice = huge + Interstitial%snowd_land = huge + Interstitial%snowd_ocean = huge Interstitial%snohf = clear_val Interstitial%snowmt = clear_val Interstitial%soiltype = 0 @@ -6451,13 +6436,22 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%tprcp_ocean = huge Interstitial%trans = clear_val Interstitial%tseal = clear_val + Interstitial%tsfc_ice = huge + Interstitial%tsfc_land = huge + Interstitial%tsfc_ocean = huge Interstitial%tsurf = clear_val + Interstitial%tsurf_ice = huge + Interstitial%tsurf_land = huge + Interstitial%tsurf_ocean = huge Interstitial%ud_mf = clear_val Interstitial%ulwsfc_cice = clear_val Interstitial%dusfc_cice = clear_val Interstitial%dvsfc_cice = clear_val Interstitial%dtsfc_cice = clear_val Interstitial%dqsfc_cice = clear_val + Interstitial%uustar_ice = huge + Interstitial%uustar_land = huge + Interstitial%uustar_ocean = huge Interstitial%vdftra = clear_val Interstitial%vegf1d = clear_val Interstitial%vegtype = 0 @@ -6473,6 +6467,9 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%xlai1d = clear_val Interstitial%xmu = clear_val Interstitial%z01d = clear_val + Interstitial%zorl_ice = huge + Interstitial%zorl_land = huge + Interstitial%zorl_ocean = huge Interstitial%zt1d = clear_val ! CIRES UGWP v0 Interstitial%gw_dudt = clear_val @@ -6718,6 +6715,9 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%prnum ) = ', sum(Interstitial%prnum ) write (0,*) 'sum(Interstitial%qlyr ) = ', sum(Interstitial%qlyr ) write (0,*) 'sum(Interstitial%qss ) = ', sum(Interstitial%qss ) + write (0,*) 'sum(Interstitial%qss_ice ) = ', sum(Interstitial%qss_ice ) + write (0,*) 'sum(Interstitial%qss_land ) = ', sum(Interstitial%qss_land ) + write (0,*) 'sum(Interstitial%qss_ocean ) = ', sum(Interstitial%qss_ocean ) write (0,*) 'Interstitial%raddt = ', Interstitial%raddt write (0,*) 'sum(Interstitial%raincd ) = ', sum(Interstitial%raincd ) write (0,*) 'sum(Interstitial%raincs ) = ', sum(Interstitial%raincs ) @@ -6752,6 +6752,9 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%sigmatot ) = ', sum(Interstitial%sigmatot ) write (0,*) 'sum(Interstitial%slopetype ) = ', sum(Interstitial%slopetype ) write (0,*) 'sum(Interstitial%snowc ) = ', sum(Interstitial%snowc ) + write (0,*) 'sum(Interstitial%snowd_ice ) = ', sum(Interstitial%snowd_ice ) + write (0,*) 'sum(Interstitial%snowd_land ) = ', sum(Interstitial%snowd_land ) + write (0,*) 'sum(Interstitial%snowd_ocean ) = ', sum(Interstitial%snowd_ocean ) write (0,*) 'sum(Interstitial%snohf ) = ', sum(Interstitial%snohf ) write (0,*) 'sum(Interstitial%snowmt ) = ', sum(Interstitial%snowmt ) write (0,*) 'sum(Interstitial%soiltype ) = ', sum(Interstitial%soiltype ) @@ -6769,14 +6772,23 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%trans ) = ', sum(Interstitial%trans ) write (0,*) 'sum(Interstitial%tseal ) = ', sum(Interstitial%tseal ) write (0,*) 'sum(Interstitial%tsfa ) = ', sum(Interstitial%tsfa ) + write (0,*) 'sum(Interstitial%tsfc_ice ) = ', sum(Interstitial%tsfc_ice ) + write (0,*) 'sum(Interstitial%tsfc_land ) = ', sum(Interstitial%tsfc_land ) + write (0,*) 'sum(Interstitial%tsfc_ocean ) = ', sum(Interstitial%tsfc_ocean ) write (0,*) 'sum(Interstitial%tsfg ) = ', sum(Interstitial%tsfg ) write (0,*) 'sum(Interstitial%tsurf ) = ', sum(Interstitial%tsurf ) + write (0,*) 'sum(Interstitial%tsurf_ice ) = ', sum(Interstitial%tsurf_ice ) + write (0,*) 'sum(Interstitial%tsurf_land ) = ', sum(Interstitial%tsurf_land ) + write (0,*) 'sum(Interstitial%tsurf_ocean ) = ', sum(Interstitial%tsurf_ocean ) write (0,*) 'sum(Interstitial%ud_mf ) = ', sum(Interstitial%ud_mf ) write (0,*) 'sum(Interstitial%ulwsfc_cice ) = ', sum(Interstitial%ulwsfc_cice ) write (0,*) 'sum(Interstitial%dusfc_cice ) = ', sum(Interstitial%dusfc_cice ) write (0,*) 'sum(Interstitial%dvsfc_cice ) = ', sum(Interstitial%dvsfc_cice ) write (0,*) 'sum(Interstitial%dtsfc_cice ) = ', sum(Interstitial%dtsfc_cice ) write (0,*) 'sum(Interstitial%dqsfc_cice ) = ', sum(Interstitial%dqsfc_cice ) + write (0,*) 'sum(Interstitial%uustar_ice ) = ', sum(Interstitial%uustar_ice ) + write (0,*) 'sum(Interstitial%uustar_land ) = ', sum(Interstitial%uustar_land ) + write (0,*) 'sum(Interstitial%uustar_ocean ) = ', sum(Interstitial%uustar_ocean ) write (0,*) 'sum(Interstitial%vdftra ) = ', sum(Interstitial%vdftra ) write (0,*) 'sum(Interstitial%vegf1d ) = ', sum(Interstitial%vegf1d ) write (0,*) 'sum(Interstitial%vegtype ) = ', sum(Interstitial%vegtype ) @@ -6792,6 +6804,9 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%xlai1d ) = ', sum(Interstitial%xlai1d ) write (0,*) 'sum(Interstitial%xmu ) = ', sum(Interstitial%xmu ) write (0,*) 'sum(Interstitial%z01d ) = ', sum(Interstitial%z01d ) + write (0,*) 'sum(Interstitial%zorl_ice ) = ', sum(Interstitial%zorl_ice ) + write (0,*) 'sum(Interstitial%zorl_land ) = ', sum(Interstitial%zorl_land ) + write (0,*) 'sum(Interstitial%zorl_ocean ) = ', sum(Interstitial%zorl_ocean ) write (0,*) 'sum(Interstitial%zt1d ) = ', sum(Interstitial%zt1d ) ! CIRES UGWP v0 write (0,*) 'sum(Interstitial%gw_dudt ) = ', sum(Interstitial%gw_dudt ) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 4a20fdab8..bf356b36c 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1283,132 +1283,6 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[tsfc_ocean] - standard_name = surface_skin_temperature_over_ocean_interstitial - long_name = surface skin temperature over ocean (temporary use as interstitial) - units = K - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[tsfc_land] - standard_name = surface_skin_temperature_over_land_interstitial - long_name = surface skin temperature over land (temporary use as interstitial) - units = K - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[tsfc_ice] - standard_name = surface_skin_temperature_over_ice_interstitial - long_name = surface skin temperature over ice (temporary use as interstitial) - units = K - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[tsurf_ocean] - standard_name = surface_skin_temperature_after_iteration_over_ocean - long_name = surface skin temperature after iteration over ocean - units = K - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[tsurf_land] - standard_name = surface_skin_temperature_after_iteration_over_land - long_name = surface skin temperature after iteration over land - units = K - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[tsurf_ice] - standard_name = surface_skin_temperature_after_iteration_over_ice - long_name = surface skin temperature after iteration over ice - units = K - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[uustar_ocean] - standard_name = surface_friction_velocity_over_ocean - long_name = surface friction velocity over ocean - units = m s-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[uustar_land] - standard_name = surface_friction_velocity_over_land - long_name = surface friction velocity over land - units = m s-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[uustar_ice] - standard_name = surface_friction_velocity_over_ice - long_name = surface friction velocity over ice - units = m s-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[qss_ocean] - standard_name = surface_specific_humidity_over_ocean - long_name = surface air saturation specific humidity over ocean - units = kg kg-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[qss_land] - standard_name = surface_specific_humidity_over_land - long_name = surface air saturation specific humidity over land - units = kg kg-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[qss_ice] - standard_name = surface_specific_humidity_over_ice - long_name = surface air saturation specific humidity over ice - units = kg kg-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[snowd_ocean] - standard_name = surface_snow_thickness_water_equivalent_over_ocean - long_name = water equivalent snow depth over ocean - units = mm - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[snowd_land] - standard_name = surface_snow_thickness_water_equivalent_over_land - long_name = water equivalent snow depth over land - units = mm - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[snowd_ice] - standard_name = surface_snow_thickness_water_equivalent_over_ice - long_name = water equivalent snow depth over ice - units = mm - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[zorl_ocean] - standard_name = surface_roughness_length_over_ocean_interstitial - long_name = surface roughness length over ocean (temporary use as interstitial) - units = cm - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[zorl_land] - standard_name = surface_roughness_length_over_land_interstitial - long_name = surface roughness length over land (temporary use as interstitial) - units = cm - dimensions = (horizontal_dimension) - type = real - kind = kind_phys -[zorl_ice] - standard_name = surface_roughness_length_over_ice_interstitial - long_name = surface roughness length over ice (temporary use as interstitial) - units = cm - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [raincprv] standard_name = lwe_thickness_of_convective_precipitation_amount_from_previous_timestep long_name = convective_precipitation_amount from previous timestep @@ -7647,6 +7521,27 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys +[qss_ocean] + standard_name = surface_specific_humidity_over_ocean + long_name = surface air saturation specific humidity over ocean + units = kg kg-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[qss_land] + standard_name = surface_specific_humidity_over_land + long_name = surface air saturation specific humidity over land + units = kg kg-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[qss_ice] + standard_name = surface_specific_humidity_over_ice + long_name = surface air saturation specific humidity over ice + units = kg kg-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys [raddt] standard_name = time_step_for_radiation long_name = radiation time step @@ -7881,6 +7776,27 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys +[snowd_ocean] + standard_name = surface_snow_thickness_water_equivalent_over_ocean + long_name = water equivalent snow depth over ocean + units = mm + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[snowd_land] + standard_name = surface_snow_thickness_water_equivalent_over_land + long_name = water equivalent snow depth over land + units = mm + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[snowd_ice] + standard_name = surface_snow_thickness_water_equivalent_over_ice + long_name = water equivalent snow depth over ice + units = mm + dimensions = (horizontal_dimension) + type = real + kind = kind_phys [snohf] standard_name = snow_freezing_rain_upward_latent_heat_flux long_name = latent heat flux due to snow and frz rain @@ -8031,6 +7947,27 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys +[tsfc_ocean] + standard_name = surface_skin_temperature_over_ocean_interstitial + long_name = surface skin temperature over ocean (temporary use as interstitial) + units = K + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[tsfc_land] + standard_name = surface_skin_temperature_over_land_interstitial + long_name = surface skin temperature over land (temporary use as interstitial) + units = K + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[tsfc_ice] + standard_name = surface_skin_temperature_over_ice_interstitial + long_name = surface skin temperature over ice (temporary use as interstitial) + units = K + dimensions = (horizontal_dimension) + type = real + kind = kind_phys [tsfg] standard_name = surface_ground_temperature_for_radiation long_name = surface ground temperature for radiation @@ -8045,6 +7982,27 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys +[tsurf_ocean] + standard_name = surface_skin_temperature_after_iteration_over_ocean + long_name = surface skin temperature after iteration over ocean + units = K + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[tsurf_land] + standard_name = surface_skin_temperature_after_iteration_over_land + long_name = surface skin temperature after iteration over land + units = K + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[tsurf_ice] + standard_name = surface_skin_temperature_after_iteration_over_ice + long_name = surface skin temperature after iteration over ice + units = K + dimensions = (horizontal_dimension) + type = real + kind = kind_phys [tracers_water] standard_name = number_of_water_tracers long_name = number of water-related tracers @@ -8065,6 +8023,27 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys +[uustar_ocean] + standard_name = surface_friction_velocity_over_ocean + long_name = surface friction velocity over ocean + units = m s-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[uustar_land] + standard_name = surface_friction_velocity_over_land + long_name = surface friction velocity over land + units = m s-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[uustar_ice] + standard_name = surface_friction_velocity_over_ice + long_name = surface friction velocity over ice + units = m s-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys [vdftra] standard_name = vertically_diffused_tracer_concentration long_name = tracer concentration diffused by PBL scheme @@ -8176,6 +8155,27 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys +[zorl_ocean] + standard_name = surface_roughness_length_over_ocean_interstitial + long_name = surface roughness length over ocean (temporary use as interstitial) + units = cm + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[zorl_land] + standard_name = surface_roughness_length_over_land_interstitial + long_name = surface roughness length over land (temporary use as interstitial) + units = cm + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[zorl_ice] + standard_name = surface_roughness_length_over_ice_interstitial + long_name = surface roughness length over ice (temporary use as interstitial) + units = cm + dimensions = (horizontal_dimension) + type = real + kind = kind_phys [zt1d] standard_name = perturbation_of_heat_to_momentum_roughness_length_ratio long_name = perturbation of heat to momentum roughness length ratio From 001d24f1e83588f469e2bf9449c57ca579d7a338 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 20 Mar 2020 09:35:10 -0600 Subject: [PATCH 082/206] Add SDF suite_FV3_GSD_v0_mynnsfc.xml --- ccpp/physics | 2 +- ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml | 94 ++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml diff --git a/ccpp/physics b/ccpp/physics index 5960e5e8a..10e357f8f 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 5960e5e8a1e15ebb7040656ebe1ea2c62253ae87 +Subproject commit 10e357f8f03d03ec2a704529685e2b047cec9af0 diff --git a/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml b/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml new file mode 100644 index 000000000..f5c19b8ee --- /dev/null +++ b/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml @@ -0,0 +1,94 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + sgscloud_radpre + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + mynnsfc_wrapper + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_ruc + lsm_ruc_sfc_sice_pre + sfc_sice + lsm_ruc_sfc_sice_post + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + dcyc2t3_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + cu_gf_driver_pre + cu_gf_driver + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + cu_gf_driver_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + From 859cdd23fe222b72698d3a98429ebddb99eafb9a Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 23 Mar 2020 16:52:41 -0600 Subject: [PATCH 083/206] suites/suite_FV3_GSD_v0_mynnsfc.xml: correct name of suite --- ccpp/physics | 2 +- ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/physics b/ccpp/physics index 10e357f8f..65da24ee5 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 10e357f8f03d03ec2a704529685e2b047cec9af0 +Subproject commit 65da24ee5def2e86a19614bf2536af76b9074d99 diff --git a/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml b/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml index f5c19b8ee..2bbf5cd6c 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml @@ -1,6 +1,6 @@ - + From ddec8aec702f3f47ef9e8cf21e9cd3d3d27bf350 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 26 Mar 2020 13:07:04 -0600 Subject: [PATCH 084/206] Update submodule pointer for ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 65da24ee5..a6f3dedf3 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 65da24ee5def2e86a19614bf2536af76b9074d99 +Subproject commit a6f3dedf3311863e4a3fd66086d7c53472b11fdc From 58670cc109c4fc8fabfe0e4a99bd4a479473d5f3 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Sat, 28 Mar 2020 06:33:36 -0600 Subject: [PATCH 085/206] Move qss from GFS_interstitial_type to GFS_sfcprop_type --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 7 +++---- gfsphysics/GFS_layer/GFS_typedefs.meta | 14 +++++++------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index f6655fde0..db70dd030 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -260,6 +260,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: oro_uf (:) => null() !< unfiltered orography real (kind=kind_phys), pointer :: evap (:) => null() !< real (kind=kind_phys), pointer :: hflx (:) => null() !< + real (kind=kind_phys), pointer :: qss (:) => null() !< !-- In/Out #ifdef CCPP @@ -1786,7 +1787,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: qlyr(:,:) => null() !< real (kind=kind_phys), pointer :: qrn(:,:) => null() !< real (kind=kind_phys), pointer :: qsnw(:,:) => null() !< - real (kind=kind_phys), pointer :: qss(:) => null() !< real (kind=kind_phys), pointer :: qss_ice(:) => null() !< real (kind=kind_phys), pointer :: qss_land(:) => null() !< real (kind=kind_phys), pointer :: qss_ocean(:) => null() !< @@ -2125,6 +2125,7 @@ subroutine sfcprop_create (Sfcprop, IM, Model) allocate (Sfcprop%oro_uf (IM)) allocate (Sfcprop%evap (IM)) allocate (Sfcprop%hflx (IM)) + allocate (Sfcprop%qss (IM)) Sfcprop%slope = clear_val Sfcprop%shdmin = clear_val @@ -2139,6 +2140,7 @@ subroutine sfcprop_create (Sfcprop, IM, Model) Sfcprop%oro_uf = clear_val Sfcprop%evap = clear_val Sfcprop%hflx = clear_val + Sfcprop%qss = clear_val !--- In/Out allocate (Sfcprop%hice (IM)) @@ -5860,7 +5862,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%prnum (IM,Model%levs)) allocate (Interstitial%qlyr (IM,Model%levr+LTP)) allocate (Interstitial%prcpmp (IM)) - allocate (Interstitial%qss (IM)) allocate (Interstitial%qss_ice (IM)) allocate (Interstitial%qss_land (IM)) allocate (Interstitial%qss_ocean (IM)) @@ -6390,7 +6391,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%oc = clear_val Interstitial%prcpmp = clear_val Interstitial%prnum = clear_val - Interstitial%qss = clear_val Interstitial%qss_ice = huge Interstitial%qss_land = huge Interstitial%qss_ocean = huge @@ -6714,7 +6714,6 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%prcpmp ) = ', sum(Interstitial%prcpmp ) write (0,*) 'sum(Interstitial%prnum ) = ', sum(Interstitial%prnum ) write (0,*) 'sum(Interstitial%qlyr ) = ', sum(Interstitial%qlyr ) - write (0,*) 'sum(Interstitial%qss ) = ', sum(Interstitial%qss ) write (0,*) 'sum(Interstitial%qss_ice ) = ', sum(Interstitial%qss_ice ) write (0,*) 'sum(Interstitial%qss_land ) = ', sum(Interstitial%qss_land ) write (0,*) 'sum(Interstitial%qss_ocean ) = ', sum(Interstitial%qss_ocean ) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index bf356b36c..1c3011902 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1283,6 +1283,13 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys +[qss] + standard_name = surface_specific_humidity + long_name = surface air saturation specific humidity + units = kg kg-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys [raincprv] standard_name = lwe_thickness_of_convective_precipitation_amount_from_previous_timestep long_name = convective_precipitation_amount from previous timestep @@ -7514,13 +7521,6 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[qss] - standard_name = surface_specific_humidity - long_name = surface air saturation specific humidity - units = kg kg-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [qss_ocean] standard_name = surface_specific_humidity_over_ocean long_name = surface air saturation specific humidity over ocean From c6e032ebab239398906df2f56a45b05515d4f54b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 1 Apr 2020 15:26:17 -0600 Subject: [PATCH 086/206] Bugfix in ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml, new SDF ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml --- ccpp/physics | 2 +- ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml | 92 ++++++++++++++++++++++ ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml | 2 +- 3 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml diff --git a/ccpp/physics b/ccpp/physics index a6f3dedf3..afd648112 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit a6f3dedf3311863e4a3fd66086d7c53472b11fdc +Subproject commit afd6481120054a5531bdaa3a8ccbf24c884b7f88 diff --git a/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml b/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml new file mode 100644 index 000000000..0f886fb85 --- /dev/null +++ b/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml @@ -0,0 +1,92 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + mynnsfc_wrapper + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_noah + sfc_sice + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + dcyc2t3_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + cu_gf_driver_pre + cu_gf_driver + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + cu_gf_driver_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + diff --git a/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml b/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml index 2bbf5cd6c..e71213f35 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml @@ -20,7 +20,7 @@ rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - sgscloud_radpre + sgscloud_radpost rrtmg_lw_post GFS_rrtmg_post From 544cbe5a8da73895829813aba717288f9787fa9a Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 3 Apr 2020 10:29:48 -0600 Subject: [PATCH 087/206] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 6 ++---- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index 608e5ede8..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = mynnsfclay_from_joe_in_latest_code \ No newline at end of file + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index afd648112..fadc3cd23 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit afd6481120054a5531bdaa3a8ccbf24c884b7f88 +Subproject commit fadc3cd2359eac5ed874a7776724098f9445704d From 2dd765a8a5030edffefd55836af9a5632bf31ade Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Fri, 3 Apr 2020 20:23:29 +0000 Subject: [PATCH 088/206] merge gsd/develop --- atmos_model.F90 | 2 +- ccpp/config/ccpp_prebuild_config.py | 4 +- ccpp/framework | 2 +- ccpp/physics | 2 +- ccpp/suites/suite_FV3_CPT_v0.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_coupled.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_csawmg.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml | 2 +- .../suite_FV3_GFS_2017_gfdlmp_noahmp.xml | 2 +- .../suite_FV3_GFS_2017_gfdlmp_regional.xml | 2 +- ...uite_FV3_GFS_2017_gfdlmp_regional_c768.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_myj.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml | 2 +- .../suites/suite_FV3_GFS_2017_ozphys_2015.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_sas.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_shinhong.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_stretched.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_ysu.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_gf.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_mynn.xml | 6 +- ccpp/suites/suite_FV3_GFS_v15_thompson.xml | 2 +- .../suite_FV3_GFS_v15_thompson_mynn.xml | 6 +- ccpp/suites/suite_FV3_GFS_v15p2.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15plus.xml | 2 +- ccpp/suites/suite_FV3_GFS_v16beta.xml | 2 +- ccpp/suites/suite_FV3_GSD_SAR.xml | 9 +- ccpp/suites/suite_FV3_GSD_noah.xml | 6 +- ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml | 92 ++++++++++++++++++ ccpp/suites/suite_FV3_GSD_v0.xml | 6 +- ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml | 6 +- ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml | 94 +++++++++++++++++++ .../suite_FV3_HAFS_ferhires_update_moist.xml | 2 +- gfsphysics/GFS_layer/GFS_diagnostics.F90 | 2 +- gfsphysics/GFS_layer/GFS_restart.F90 | 11 ++- gfsphysics/GFS_layer/GFS_typedefs.F90 | 47 ++++++---- gfsphysics/GFS_layer/GFS_typedefs.meta | 71 ++++++++------ gfsphysics/physics/GFS_debug.F90 | 8 +- 44 files changed, 325 insertions(+), 103 deletions(-) create mode 100644 ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml create mode 100644 ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml diff --git a/atmos_model.F90 b/atmos_model.F90 index 044597d62..6343c267c 100644 --- a/atmos_model.F90 +++ b/atmos_model.F90 @@ -1455,7 +1455,7 @@ subroutine update_atmos_chemistry(state, rc) ib = i + Atm_block%isc - 1 nb = Atm_block%blkno(ib,jb) ix = Atm_block%ixp(ib,jb) - hpbl(i,j) = IPD_Data(nb)%IntDiag%hpbl(ix) + hpbl(i,j) = IPD_Data(nb)%Tbd%hpbl(ix) area(i,j) = IPD_Data(nb)%Grid%area(ix) stype(i,j) = IPD_Data(nb)%Sfcprop%stype(ix) rainc(i,j) = IPD_Data(nb)%Coupling%rainc_cpl(ix) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 5db2898da..c3f6e4846 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -213,8 +213,8 @@ 'FV3/ccpp/physics/physics/ysuvdif.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYNNPBL_wrapper.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYNNSFC_wrapper.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/module_MYNNrad_pre.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/module_MYNNrad_post.F90' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/module_SGSCloud_RadPre.F90' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/module_SGSCloud_RadPost.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYJSFC_wrapper.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYJPBL_wrapper.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/mp_thompson_pre.F90' : [ 'slow_physics' ], diff --git a/ccpp/framework b/ccpp/framework index 78d5d5b15..463a72cce 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 78d5d5b155385c2d67276b31e8154cea9bfb1d34 +Subproject commit 463a72cce605ae0f8f8725574d5e3b9cf6c9d90c diff --git a/ccpp/physics b/ccpp/physics index abde3d01f..e4b80ea01 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit abde3d01f61e20a64e6605f8ac2dfd7a9aff6fba +Subproject commit e4b80ea016899c7c23fa07396bd7fcbc0195a0f9 diff --git a/ccpp/suites/suite_FV3_CPT_v0.xml b/ccpp/suites/suite_FV3_CPT_v0.xml index 8eed8e78c..2462e85ac 100644 --- a/ccpp/suites/suite_FV3_CPT_v0.xml +++ b/ccpp/suites/suite_FV3_CPT_v0.xml @@ -69,9 +69,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cs_conv_pre cs_conv cs_conv_post diff --git a/ccpp/suites/suite_FV3_GFS_2017.xml b/ccpp/suites/suite_FV3_GFS_2017.xml index fc1739bd5..02b1d4a1d 100644 --- a/ccpp/suites/suite_FV3_GFS_2017.xml +++ b/ccpp/suites/suite_FV3_GFS_2017.xml @@ -63,9 +63,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_coupled.xml b/ccpp/suites/suite_FV3_GFS_2017_coupled.xml index d67ce3116..28a9d8610 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_coupled.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_coupled.xml @@ -62,9 +62,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml b/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml index fec7f373e..62ebad37f 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml @@ -64,9 +64,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cs_conv_pre cs_conv cs_conv_post diff --git a/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml b/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml index 9fc0b6dae..ab7a4b8cf 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml @@ -64,9 +64,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre shoc cs_conv_pre cs_conv diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml index 35fdd9143..2525c754c 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml @@ -68,9 +68,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml index 55dedad57..6dfa58e24 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml @@ -68,9 +68,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml index 20f91469f..562ccd513 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml @@ -63,9 +63,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml index 2e208f6e7..474028194 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml @@ -63,9 +63,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml b/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml index 3e6acbc98..2778bc4f8 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml @@ -64,9 +64,9 @@ GFS_suite_stateout_update ozphys h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_myj.xml b/ccpp/suites/suite_FV3_GFS_2017_myj.xml index 7a193a10b..d3ccfd388 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_myj.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_myj.xml @@ -69,9 +69,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml b/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml index 0331483c6..9d66abcd6 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml @@ -68,9 +68,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cu_ntiedtke_pre cu_ntiedtke GFS_DCNV_generic_post diff --git a/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml b/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml index 4e382886c..a79b11aa8 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml @@ -63,9 +63,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys_2015 - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_sas.xml b/ccpp/suites/suite_FV3_GFS_2017_sas.xml index 1c52ac2cd..68b4ac805 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_sas.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_sas.xml @@ -68,9 +68,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre sascnvn GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml b/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml index af93678ac..c55e454ff 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml @@ -63,9 +63,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml b/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml index a975c9235..be4d130a2 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml @@ -63,9 +63,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml b/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml index 756695e65..9b33a91d4 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml @@ -67,9 +67,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_stretched.xml b/ccpp/suites/suite_FV3_GFS_2017_stretched.xml index 6bef91b06..8f534da68 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_stretched.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_stretched.xml @@ -67,9 +67,9 @@ GFS_GWD_generic_post GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_2017_ysu.xml b/ccpp/suites/suite_FV3_GFS_2017_ysu.xml index baeb11c22..aa4d677bd 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ysu.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ysu.xml @@ -67,9 +67,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_v15.xml b/ccpp/suites/suite_FV3_GFS_v15.xml index efd5fc97b..d9ea5d2ac 100644 --- a/ccpp/suites/suite_FV3_GFS_v15.xml +++ b/ccpp/suites/suite_FV3_GFS_v15.xml @@ -69,9 +69,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_v15_gf.xml b/ccpp/suites/suite_FV3_GFS_v15_gf.xml index 0d56e54c8..c7ca87900 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_gf.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_gf.xml @@ -69,9 +69,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cu_gf_driver_pre cu_gf_driver GFS_DCNV_generic_post diff --git a/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml b/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml index 1e51e5a13..0de2803ae 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml @@ -64,9 +64,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cu_gf_driver_pre cu_gf_driver GFS_DCNV_generic_post diff --git a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml index 8fffa33e8..5ee55cda7 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml @@ -18,14 +18,14 @@ GFS_suite_interstitial_rad_reset + sgscloud_radpre GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpre rrtmg_lw_post GFS_rrtmg_post @@ -69,9 +69,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson.xml index a436c11c8..a079fd84c 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson.xml @@ -64,9 +64,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml index 3de52fa45..de709d38a 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml @@ -13,14 +13,14 @@ GFS_suite_interstitial_rad_reset + sgscloud_radpre GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpre rrtmg_lw_post GFS_rrtmg_post @@ -64,9 +64,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_v15p2.xml b/ccpp/suites/suite_FV3_GFS_v15p2.xml index 7c68f4253..46234fdc9 100644 --- a/ccpp/suites/suite_FV3_GFS_v15p2.xml +++ b/ccpp/suites/suite_FV3_GFS_v15p2.xml @@ -74,9 +74,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_v15plus.xml b/ccpp/suites/suite_FV3_GFS_v15plus.xml index 97cfa320d..57a0d921b 100644 --- a/ccpp/suites/suite_FV3_GFS_v15plus.xml +++ b/ccpp/suites/suite_FV3_GFS_v15plus.xml @@ -79,9 +79,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GFS_v16beta.xml b/ccpp/suites/suite_FV3_GFS_v16beta.xml index 53837905d..ede385cf0 100644 --- a/ccpp/suites/suite_FV3_GFS_v16beta.xml +++ b/ccpp/suites/suite_FV3_GFS_v16beta.xml @@ -74,9 +74,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre samfdeepcnv GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/ccpp/suites/suite_FV3_GSD_SAR.xml b/ccpp/suites/suite_FV3_GSD_SAR.xml index e563301c4..e4d619abb 100644 --- a/ccpp/suites/suite_FV3_GSD_SAR.xml +++ b/ccpp/suites/suite_FV3_GSD_SAR.xml @@ -13,14 +13,14 @@ GFS_suite_interstitial_rad_reset + sgscloud_radpre GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpre rrtmg_lw_post GFS_rrtmg_post @@ -66,6 +66,11 @@ GFS_suite_stateout_update ozphys_2015 h2ophys + get_phi_fv3 + + GFS_suite_interstitial_3 + GFS_suite_interstitial_4 + GFS_MP_generic_pre mp_thompson_pre mp_thompson diff --git a/ccpp/suites/suite_FV3_GSD_noah.xml b/ccpp/suites/suite_FV3_GSD_noah.xml index e9795b6ef..735c5be58 100644 --- a/ccpp/suites/suite_FV3_GSD_noah.xml +++ b/ccpp/suites/suite_FV3_GSD_noah.xml @@ -13,14 +13,14 @@ GFS_suite_interstitial_rad_reset + sgscloud_radpre GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpost rrtmg_lw_post GFS_rrtmg_post @@ -64,9 +64,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cu_gf_driver_pre cu_gf_driver GFS_DCNV_generic_post diff --git a/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml b/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml new file mode 100644 index 000000000..0f886fb85 --- /dev/null +++ b/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml @@ -0,0 +1,92 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + mynnsfc_wrapper + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_noah + sfc_sice + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + dcyc2t3_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + cu_gf_driver_pre + cu_gf_driver + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + cu_gf_driver_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index 8f6afecf1..e572fdc39 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -18,14 +18,14 @@ GFS_suite_interstitial_rad_reset + sgscloud_radpre GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpre rrtmg_lw_post GFS_rrtmg_post @@ -71,9 +71,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cu_gf_driver_pre cu_gf_driver GFS_DCNV_generic_post diff --git a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml b/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml index 8c56c07e5..26cff57a6 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml @@ -13,14 +13,14 @@ GFS_suite_interstitial_rad_reset + sgscloud_radpre GFS_rrtmg_pre rrtmg_sw_pre - mynnrad_pre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - mynnrad_post + sgscloud_radpre rrtmg_lw_post GFS_rrtmg_post @@ -65,9 +65,9 @@ GFS_suite_stateout_update ozphys_2015 h2ophys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre cu_gf_driver_pre cu_gf_driver GFS_DCNV_generic_post diff --git a/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml b/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml new file mode 100644 index 000000000..e71213f35 --- /dev/null +++ b/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml @@ -0,0 +1,94 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + mynnsfc_wrapper + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_ruc + lsm_ruc_sfc_sice_pre + sfc_sice + lsm_ruc_sfc_sice_post + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + dcyc2t3_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + cu_gf_driver_pre + cu_gf_driver + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + cu_gf_driver_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + diff --git a/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml b/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml index 375e9972d..7a168ce54 100644 --- a/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml +++ b/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml @@ -63,9 +63,9 @@ rayleigh_damp GFS_suite_stateout_update ozphys - GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 + GFS_DCNV_generic_pre GFS_DCNV_generic_post GFS_SCNV_generic_pre diff --git a/gfsphysics/GFS_layer/GFS_diagnostics.F90 b/gfsphysics/GFS_layer/GFS_diagnostics.F90 index 51075a202..7f5bddbf1 100644 --- a/gfsphysics/GFS_layer/GFS_diagnostics.F90 +++ b/gfsphysics/GFS_layer/GFS_diagnostics.F90 @@ -1535,7 +1535,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%intpl_method = 'bilinear' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var2 => IntDiag(nb)%hpbl(:) + ExtDiag(idx)%data(nb)%var2 => Tbd(nb)%hpbl(:) enddo idx = idx + 1 diff --git a/gfsphysics/GFS_layer/GFS_restart.F90 b/gfsphysics/GFS_layer/GFS_restart.F90 index 8e80f6f99..85de87289 100644 --- a/gfsphysics/GFS_layer/GFS_restart.F90 +++ b/gfsphysics/GFS_layer/GFS_restart.F90 @@ -123,7 +123,7 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, & #ifdef CCPP ! GF if (Model%imfdeepcnv == 3) then - Restart%num3d = Restart%num3d + 2 + Restart%num3d = Restart%num3d + 3 endif ! MYNN PBL if (Model%do_mynnedmf) then @@ -188,7 +188,7 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, & !--- RAP/HRRR-specific variables, 2D num = offset + ndiag_rst ! GF - if (Model%imfdeepcnv == 3) then + if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then num = num + 1 Restart%name2d(num) = 'gf_2d_conv_act' do nb = 1,nblks @@ -267,7 +267,7 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, & num = Model%ntot3d ! GF - if (Model%imfdeepcnv == 3) then + if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then num = num + 1 Restart%name3d(num) = 'gf_3d_prevst' do nb = 1,nblks @@ -278,6 +278,11 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, & do nb = 1,nblks Restart%data(nb,num)%var3p => Tbd(nb)%prevsq(:,:) enddo + num = num + 1 + Restart%name3d(num) = 'gf_3d_qci_conv' + do nb = 1,nblks + Restart%data(nb,num)%var3p => Coupling(nb)%qci_conv(:,:) + enddo endif ! MYNN PBL if (Model%do_mynnedmf) then diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 41eea707c..89c9db948 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -258,6 +258,9 @@ module GFS_typedefs real (kind=kind_phys), pointer :: uustar (:) => null() !< boundary layer parameter real (kind=kind_phys), pointer :: oro (:) => null() !< orography real (kind=kind_phys), pointer :: oro_uf (:) => null() !< unfiltered orography + real (kind=kind_phys), pointer :: evap (:) => null() !< + real (kind=kind_phys), pointer :: hflx (:) => null() !< + real (kind=kind_phys), pointer :: qss (:) => null() !< !-- In/Out #ifdef CCPP @@ -511,6 +514,8 @@ module GFS_typedefs real (kind=kind_phys), pointer :: dqdti (:,:) => null() !< instantaneous total moisture tendency (kg/kg/s) real (kind=kind_phys), pointer :: ushfsfci(:) => null() !< instantaneous upward sensible heat flux (w/m**2) real (kind=kind_phys), pointer :: dkt (:,:) => null() !< instantaneous dkt diffusion coefficient for temperature (m**2/s) + real (kind=kind_phys), pointer :: qci_conv(:,:) => null() !< convective cloud condesate after rainout + contains procedure :: create => coupling_create !< allocate array data @@ -1196,6 +1201,9 @@ module GFS_typedefs real (kind=kind_phys), pointer :: phy_f2d (:,:) => null() !< 2d arrays saved for restart real (kind=kind_phys), pointer :: phy_f3d (:,:,:) => null() !< 3d arrays saved for restart +!--- Diagnostic that needs to be carried over to the next time step (removed from diag_type) + real (kind=kind_phys), pointer :: hpbl (:) => null() !< Planetary boundary layer height + #ifndef CCPP !--- for explicit data blocking integer :: blkno !< block number of this block @@ -1420,7 +1428,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: dpt2m (:) => null() !< 2 meter dew point temperature real (kind=kind_phys), pointer :: zlvl (:) => null() !< layer 1 height (m) real (kind=kind_phys), pointer :: psurf (:) => null() !< surface pressure (Pa) - real (kind=kind_phys), pointer :: hpbl (:) => null() !< pbl height (m) real (kind=kind_phys), pointer :: pwat (:) => null() !< precipitable water real (kind=kind_phys), pointer :: t1 (:) => null() !< layer 1 temperature (K) real (kind=kind_phys), pointer :: q1 (:) => null() !< layer 1 specific humidity (kg/kg) @@ -1671,7 +1678,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: ep1d_ice(:) => null() !< real (kind=kind_phys), pointer :: ep1d_land(:) => null() !< real (kind=kind_phys), pointer :: ep1d_ocean(:) => null() !< - real (kind=kind_phys), pointer :: evap(:) => null() !< real (kind=kind_phys), pointer :: evap_ice(:) => null() !< real (kind=kind_phys), pointer :: evap_land(:) => null() !< real (kind=kind_phys), pointer :: evap_ocean(:) => null() !< @@ -1717,7 +1723,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: gwdcv(:,:) => null() !< integer :: h2o_coeff !< real (kind=kind_phys), pointer :: h2o_pres(:) => null() !< - real (kind=kind_phys), pointer :: hflx(:) => null() !< real (kind=kind_phys), pointer :: hflx_ice(:) => null() !< real (kind=kind_phys), pointer :: hflx_land(:) => null() !< real (kind=kind_phys), pointer :: hflx_ocean(:) => null() !< @@ -1788,7 +1793,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: qlyr(:,:) => null() !< real (kind=kind_phys), pointer :: qrn(:,:) => null() !< real (kind=kind_phys), pointer :: qsnw(:,:) => null() !< - real (kind=kind_phys), pointer :: qss(:) => null() !< real (kind=kind_phys), pointer :: qss_ice(:) => null() !< real (kind=kind_phys), pointer :: qss_land(:) => null() !< real (kind=kind_phys), pointer :: qss_ocean(:) => null() !< @@ -1807,6 +1811,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: runoff(:) => null() !< real (kind=kind_phys), pointer :: save_q(:,:,:) => null() !< real (kind=kind_phys), pointer :: save_t(:,:) => null() !< + real (kind=kind_phys), pointer :: save_tcp(:,:) => null() !< real (kind=kind_phys), pointer :: save_u(:,:) => null() !< real (kind=kind_phys), pointer :: save_v(:,:) => null() !< real (kind=kind_phys), pointer :: sbsno(:) => null() !< @@ -2124,6 +2129,9 @@ subroutine sfcprop_create (Sfcprop, IM, Model) allocate (Sfcprop%uustar (IM)) allocate (Sfcprop%oro (IM)) allocate (Sfcprop%oro_uf (IM)) + allocate (Sfcprop%evap (IM)) + allocate (Sfcprop%hflx (IM)) + allocate (Sfcprop%qss (IM)) Sfcprop%slope = clear_val Sfcprop%shdmin = clear_val @@ -2136,6 +2144,9 @@ subroutine sfcprop_create (Sfcprop, IM, Model) Sfcprop%uustar = clear_val Sfcprop%oro = clear_val Sfcprop%oro_uf = clear_val + Sfcprop%evap = clear_val + Sfcprop%hflx = clear_val + Sfcprop%qss = clear_val !--- In/Out allocate (Sfcprop%hice (IM)) @@ -2638,6 +2649,13 @@ subroutine coupling_create (Coupling, IM, Model) Coupling%nifa2d = clear_val endif +#ifdef CCPP + if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then + allocate (Coupling%qci_conv (IM,Model%levs)) + Coupling%qci_conv = clear_val + endif +#endif + end subroutine coupling_create @@ -4956,6 +4974,9 @@ subroutine tbd_create (Tbd, IM, Model) ! if (Model%do_shoc) Tbd%phy_f3d(:,1,Model%ntot3d-1) = 3.0 ! if (Model%do_shoc) Tbd%phy_f3d(:,:,Model%ntot3d-1) = 1.0 + allocate (Tbd%hpbl (IM)) + Tbd%hpbl = clear_val + #ifndef CCPP Tbd%blkno = BLKNO #endif @@ -5191,7 +5212,6 @@ subroutine diag_create (Diag, IM, Model) allocate (Diag%dpt2m (IM)) allocate (Diag%zlvl (IM)) allocate (Diag%psurf (IM)) - allocate (Diag%hpbl (IM)) allocate (Diag%pwat (IM)) allocate (Diag%t1 (IM)) allocate (Diag%q1 (IM)) @@ -5497,7 +5517,6 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%dpt2m = zero Diag%zlvl = zero Diag%psurf = zero - Diag%hpbl = zero Diag%pwat = zero Diag%t1 = zero Diag%q1 = zero @@ -5842,7 +5861,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%ep1d_ice (IM)) allocate (Interstitial%ep1d_land (IM)) allocate (Interstitial%ep1d_ocean (IM)) - allocate (Interstitial%evap (IM)) allocate (Interstitial%evap_ice (IM)) allocate (Interstitial%evap_land (IM)) allocate (Interstitial%evap_ocean (IM)) @@ -5885,7 +5903,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%gwdcu (IM,Model%levs)) allocate (Interstitial%gwdcv (IM,Model%levs)) allocate (Interstitial%h2o_pres (levh2o)) - allocate (Interstitial%hflx (IM)) allocate (Interstitial%hflx_ice (IM)) allocate (Interstitial%hflx_land (IM)) allocate (Interstitial%hflx_ocean (IM)) @@ -5913,7 +5930,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%prnum (IM,Model%levs)) allocate (Interstitial%qlyr (IM,Model%levr+LTP)) allocate (Interstitial%prcpmp (IM)) - allocate (Interstitial%qss (IM)) allocate (Interstitial%qss_ice (IM)) allocate (Interstitial%qss_land (IM)) allocate (Interstitial%qss_ocean (IM)) @@ -5929,6 +5945,7 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%runoff (IM)) allocate (Interstitial%save_q (IM,Model%levs,Model%ntrac)) allocate (Interstitial%save_t (IM,Model%levs)) + allocate (Interstitial%save_tcp (IM,Model%levs)) allocate (Interstitial%save_u (IM,Model%levs)) allocate (Interstitial%save_v (IM,Model%levs)) allocate (Interstitial%sbsno (IM)) @@ -6130,9 +6147,9 @@ subroutine interstitial_setup_tracers(Interstitial, Model) if (Model%imp_physics == Model%imp_physics_thompson) then if (Model%ltaerosol) then - Interstitial%nvdiff = 10 + Interstitial%nvdiff = 12 else - Interstitial%nvdiff = 7 + Interstitial%nvdiff = 9 endif if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1 Interstitial%nncl = 5 @@ -6385,7 +6402,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%ep1d_ice = huge Interstitial%ep1d_land = huge Interstitial%ep1d_ocean = huge - Interstitial%evap = clear_val Interstitial%evap_ice = huge Interstitial%evap_land = huge Interstitial%evap_ocean = huge @@ -6424,7 +6440,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%gflx_ocean = zero Interstitial%gwdcu = clear_val Interstitial%gwdcv = clear_val - Interstitial%hflx = clear_val Interstitial%hflx_ice = huge Interstitial%hflx_land = huge Interstitial%hflx_ocean = huge @@ -6444,7 +6459,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%oc = clear_val Interstitial%prcpmp = clear_val Interstitial%prnum = clear_val - Interstitial%qss = clear_val Interstitial%qss_ice = huge Interstitial%qss_land = huge Interstitial%qss_ocean = huge @@ -6460,6 +6474,7 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%runoff = clear_val Interstitial%save_q = clear_val Interstitial%save_t = clear_val + Interstitial%save_tcp = clear_val Interstitial%save_u = clear_val Interstitial%save_v = clear_val Interstitial%sbsno = clear_val @@ -6695,7 +6710,6 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%ep1d_ice ) = ', sum(Interstitial%ep1d_ice ) write (0,*) 'sum(Interstitial%ep1d_land ) = ', sum(Interstitial%ep1d_land ) write (0,*) 'sum(Interstitial%ep1d_ocean ) = ', sum(Interstitial%ep1d_ocean ) - write (0,*) 'sum(Interstitial%evap ) = ', sum(Interstitial%evap ) write (0,*) 'sum(Interstitial%evap_ice ) = ', sum(Interstitial%evap_ice ) write (0,*) 'sum(Interstitial%evap_land ) = ', sum(Interstitial%evap_land ) write (0,*) 'sum(Interstitial%evap_ocean ) = ', sum(Interstitial%evap_ocean ) @@ -6738,7 +6752,6 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%gflx_ocean ) = ', sum(Interstitial%gflx_ocean ) write (0,*) 'sum(Interstitial%gwdcu ) = ', sum(Interstitial%gwdcu ) write (0,*) 'sum(Interstitial%gwdcv ) = ', sum(Interstitial%gwdcv ) - write (0,*) 'sum(Interstitial%hflx ) = ', sum(Interstitial%hflx ) write (0,*) 'sum(Interstitial%hflx_ice ) = ', sum(Interstitial%hflx_ice ) write (0,*) 'sum(Interstitial%hflx_land ) = ', sum(Interstitial%hflx_land ) write (0,*) 'sum(Interstitial%hflx_ocean ) = ', sum(Interstitial%hflx_ocean ) @@ -6769,7 +6782,6 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%prcpmp ) = ', sum(Interstitial%prcpmp ) write (0,*) 'sum(Interstitial%prnum ) = ', sum(Interstitial%prnum ) write (0,*) 'sum(Interstitial%qlyr ) = ', sum(Interstitial%qlyr ) - write (0,*) 'sum(Interstitial%qss ) = ', sum(Interstitial%qss ) write (0,*) 'sum(Interstitial%qss_ice ) = ', sum(Interstitial%qss_ice ) write (0,*) 'sum(Interstitial%qss_land ) = ', sum(Interstitial%qss_land ) write (0,*) 'sum(Interstitial%qss_ocean ) = ', sum(Interstitial%qss_ocean ) @@ -6787,6 +6799,7 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%runoff ) = ', sum(Interstitial%runoff ) write (0,*) 'sum(Interstitial%save_q ) = ', sum(Interstitial%save_q ) write (0,*) 'sum(Interstitial%save_t ) = ', sum(Interstitial%save_t ) + write (0,*) 'sum(Interstitial%save_tcp ) = ', sum(Interstitial%save_tcp ) write (0,*) 'sum(Interstitial%save_u ) = ', sum(Interstitial%save_u ) write (0,*) 'sum(Interstitial%save_v ) = ', sum(Interstitial%save_v ) write (0,*) 'sum(Interstitial%sbsno ) = ', sum(Interstitial%sbsno ) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index f0ae1adb9..60de65c75 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1269,6 +1269,27 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys +[evap] + standard_name = kinematic_surface_upward_latent_heat_flux + long_name = kinematic surface upward latent heat flux + units = kg kg-1 m s-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[hflx] + standard_name = kinematic_surface_upward_sensible_heat_flux + long_name = kinematic surface upward sensible heat flux + units = K m s-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[qss] + standard_name = surface_specific_humidity + long_name = surface air saturation specific humidity + units = kg kg-1 + dimensions = (horizontal_dimension) + type = real + kind = kind_phys [raincprv] standard_name = lwe_thickness_of_convective_precipitation_amount_from_previous_timestep long_name = convective_precipitation_amount from previous timestep @@ -1862,7 +1883,13 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys - +[qci_conv] + standard_name = convective_cloud_condesate_after_rainout + long_name = convective cloud condesate after rainout + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys ######################################################################## [ccpp-arg-table] name = GFS_control_type @@ -4121,6 +4148,13 @@ dimensions = (horizontal_dimension,vertical_dimension_of_h2o_forcing_data,number_of_coefficients_in_h2o_forcing_data) type = real kind = kind_phys +[hpbl] + standard_name = atmosphere_boundary_layer_thickness + long_name = pbl height + units = m + dimensions = (horizontal_dimension) + type = real + kind = kind_phys [in_nm] standard_name = in_number_concentration long_name = IN number concentration @@ -5151,13 +5185,6 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[hpbl] - standard_name = atmosphere_boundary_layer_thickness - long_name = pbl height - units = m - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [pwat] standard_name = column_precipitable_water long_name = precipitable water @@ -6874,13 +6901,6 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[evap] - standard_name = kinematic_surface_upward_latent_heat_flux - long_name = kinematic surface upward latent heat flux - units = kg kg-1 m s-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [evap_ocean] standard_name = kinematic_surface_upward_latent_heat_flux_over_ocean long_name = kinematic surface upward latent heat flux over ocean @@ -7297,13 +7317,6 @@ dimensions = (vertical_dimension_of_h2o_forcing_data) type = real kind = kind_phys -[hflx] - standard_name = kinematic_surface_upward_sensible_heat_flux - long_name = kinematic surface upward sensible heat flux - units = K m s-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [hflx_ocean] standard_name = kinematic_surface_upward_sensible_heat_flux_over_ocean long_name = kinematic surface upward sensible heat flux over ocean @@ -7748,13 +7761,6 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[qss] - standard_name = surface_specific_humidity - long_name = surface air saturation specific humidity - units = kg kg-1 - dimensions = (horizontal_dimension) - type = real - kind = kind_phys [qss_ocean] standard_name = surface_specific_humidity_over_ocean long_name = surface air saturation specific humidity over ocean @@ -7908,6 +7914,13 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[save_tcp] + standard_name = air_temperature_save_from_cumulus_paramterization + long_name = air temperature after cumulus parameterization + units = K + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [save_u] standard_name = x_wind_save long_name = x-wind before entering a physics scheme diff --git a/gfsphysics/physics/GFS_debug.F90 b/gfsphysics/physics/GFS_debug.F90 index 75fa97603..1f6ae5096 100644 --- a/gfsphysics/physics/GFS_debug.F90 +++ b/gfsphysics/physics/GFS_debug.F90 @@ -172,7 +172,7 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling, call print_var(mpirank,omprank, blkno, 'Sfcprop%dt_cool ', Sfcprop%dt_cool) call print_var(mpirank,omprank, blkno, 'Sfcprop%qrain ', Sfcprop%qrain) end if - ! CCPP only + ! CCPP/RUC only !if (Model%lsm == Model%lsm_ruc) then ! call print_var(mpirank,omprank, blkno, 'Sfcprop%sh2o', Sfcprop%sh2o) ! call print_var(mpirank,omprank, blkno, 'Sfcprop%smois', Sfcprop%smois) @@ -215,6 +215,7 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling, call print_var(mpirank,omprank, blkno, 'Tbd%acv' , Tbd%acv) call print_var(mpirank,omprank, blkno, 'Tbd%acvb' , Tbd%acvb) call print_var(mpirank,omprank, blkno, 'Tbd%acvt' , Tbd%acvt) + call print_var(mpirank,omprank, blkno, 'Tbd%hpbl' , Tbd%hpbl) if (Model%do_sppt) then call print_var(mpirank,omprank, blkno, 'Tbd%dtdtr' , Tbd%dtdtr) call print_var(mpirank,omprank, blkno, 'Tbd%dtotprcp' , Tbd%dtotprcp) @@ -284,7 +285,6 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling, call print_var(mpirank,omprank, blkno, 'Diag%dpt2m ', Diag%dpt2m) call print_var(mpirank,omprank, blkno, 'Diag%zlvl ', Diag%zlvl) call print_var(mpirank,omprank, blkno, 'Diag%psurf ', Diag%psurf) - call print_var(mpirank,omprank, blkno, 'Diag%hpbl ', Diag%hpbl) call print_var(mpirank,omprank, blkno, 'Diag%pwat ', Diag%pwat) call print_var(mpirank,omprank, blkno, 'Diag%t1 ', Diag%t1) call print_var(mpirank,omprank, blkno, 'Diag%q1 ', Diag%q1) @@ -300,7 +300,7 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling, call print_var(mpirank,omprank, blkno, 'Diag%tdomzr ', Diag%tdomzr) call print_var(mpirank,omprank, blkno, 'Diag%tdomip ', Diag%tdomip) call print_var(mpirank,omprank, blkno, 'Diag%tdoms ', Diag%tdoms) - ! CCPP only + ! CCPP/RUC only !if (Model%lsm == Model%lsm_ruc) then ! call print_var(mpirank,omprank, blkno, 'Diag%wet1 ', Sfcprop%wetness) !else @@ -336,7 +336,7 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling, if(Model%lradar) then call print_var(mpirank,omprank, blkno, 'Diag%refl_10cm ', Diag%refl_10cm) end if - ! CCPP only + ! CCPP/MYNNPBL only !if (Model%do_mynnedmf) then ! call print_var(mpirank,omprank, blkno, 'Diag%edmf_a ', Diag%edmf_a) ! call print_var(mpirank,omprank, blkno, 'Diag%edmf_w ', Diag%edmf_w) From 19fb05e11ace86f7aaa088984f6c376b1e1ae94d Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Fri, 3 Apr 2020 20:25:35 +0000 Subject: [PATCH 089/206] merge gsd/develop submodule ccpp/framework --- ccpp/framework | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/framework b/ccpp/framework index 463a72cce..78d5d5b15 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 463a72cce605ae0f8f8725574d5e3b9cf6c9d90c +Subproject commit 78d5d5b155385c2d67276b31e8154cea9bfb1d34 From e09316a89571312959b75c3fbc45cc5ec748da36 Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Mon, 6 Apr 2020 12:04:23 +0000 Subject: [PATCH 090/206] Correction: Diag%hpbl => Tbd%hpbl --- gfsphysics/GFS_layer/GFS_physics_driver.F90 | 40 ++++++++++----------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_physics_driver.F90 b/gfsphysics/GFS_layer/GFS_physics_driver.F90 index 36266aab8..a1f6b1ad2 100644 --- a/gfsphysics/GFS_layer/GFS_physics_driver.F90 +++ b/gfsphysics/GFS_layer/GFS_physics_driver.F90 @@ -2335,7 +2335,7 @@ subroutine GFS_physics_driver & Diag%v10m, Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx,& evap, stress, wind, kpbl, Statein%prsi, del, Statein%prsl,& Statein%prslk, Statein%phii, Statein%phil, dtp, dusfc1, & - dvsfc1, dtsfc1, dqsfc1, dkt, Diag%hpbl, kinver, & + dvsfc1, dtsfc1, dqsfc1, dkt, tbd%hpbl, kinver, & Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, Model%xkzminv, & lprnt, ipr, me) ! if (lprnt) write(0,*)'aftmonshoc=',Statein%tgrs(ipr,:) @@ -2356,7 +2356,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s) !*## CCPP ## elseif (Model%isatmedmf == 1) then ! updated version of satmedmfvdif (May 2019) @@ -2369,7 +2369,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, & Model%dspfac, Model%bl_upfr, Model%bl_dnfr) !*## CCPP ## @@ -2383,7 +2383,7 @@ subroutine GFS_physics_driver & Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, stress, & wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl,& + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl,& gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac) @@ -2395,7 +2395,7 @@ subroutine GFS_physics_driver & Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, stress, & wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl,& + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl,& gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac,islmsk) @@ -2419,7 +2419,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac, Model%rbcr) @@ -2431,7 +2431,7 @@ subroutine GFS_physics_driver & Sfcprop%tsfc, qss, hflx, evap, stress, wind, kpbl, & Statein%prsi, del, Statein%prsl, Statein%prslk, & Statein%phii, Statein%phil, dtp, dusfc1, dvsfc1, & - dtsfc1, dqsfc1, Diag%hpbl, gamt, gamq, dkt, kinver, & + dtsfc1, dqsfc1, tbd%hpbl, gamt, gamq, dkt, kinver, & Model%xkzm_m, Model%xkzm_h) else call moninp(ix, im, levs, nvdiff, dvdt, dudt, dtdt, dqdt, & @@ -2440,7 +2440,7 @@ subroutine GFS_physics_driver & Sfcprop%tsfc, qss, hflx, evap, stress, wind, kpbl, & Statein%prsi, del, Statein%prsl, Statein%phii, & Statein%phil, dtp, dusfc1, dvsfc1, dtsfc1, dqsfc1, & - Diag%hpbl, gamt, gamq, dkt, Model%xkzm_m, Model%xkzm_h) + tbd%hpbl, gamt, gamq, dkt, Model%xkzm_m, Model%xkzm_h) endif endif ! end if_hybedmf @@ -2593,7 +2593,7 @@ subroutine GFS_physics_driver & Diag%v10m, Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, & evap, stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, dusfc1, & - dvsfc1, dtsfc1, dqsfc1, dkt, Diag%hpbl, kinver, & + dvsfc1, dtsfc1, dqsfc1, dkt, tbd%hpbl, kinver, & Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, Model%xkzminv, & lprnt, ipr, me) !*## CCPP ## @@ -2609,7 +2609,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s) !*## CCPP ## elseif (Model%isatmedmf == 1) then ! updated version of satmedmfvdif (May 2019) @@ -2622,7 +2622,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, & Model%dspfac, Model%bl_upfr, Model%bl_dnfr) !*## CCPP ## @@ -2638,7 +2638,7 @@ subroutine GFS_physics_driver & Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, stress, & wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac) @@ -2652,7 +2652,7 @@ subroutine GFS_physics_driver & Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, stress, & wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac,islmsk) @@ -2664,7 +2664,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac, Model%rbcr) @@ -2676,7 +2676,7 @@ subroutine GFS_physics_driver & Sfcprop%tsfc, qss, hflx, evap, stress, wind, kpbl, & Statein%prsi, del, Statein%prsl, Statein%prslk, & Statein%phii, Statein%phil, dtp, dusfc1, dvsfc1, & - dtsfc1, dqsfc1, Diag%hpbl, gamt, gamq, dkt, kinver, & + dtsfc1, dqsfc1, tbd%hpbl, gamt, gamq, dkt, kinver, & Model%xkzm_m, Model%xkzm_h) else call moninp(ix, im, levs, nvdiff, dvdt, dudt, dtdt, dvdftra, & @@ -2685,7 +2685,7 @@ subroutine GFS_physics_driver & Sfcprop%tsfc, qss, hflx, evap, stress, wind, kpbl, & Statein%prsi, del, Statein%prsl, Statein%phii, & Statein%phil, dtp, dusfc1, dvsfc1, dtsfc1, dqsfc1, & - Diag%hpbl, gamt, gamq, dkt, Model%xkzm_m, Model%xkzm_h) + tbd%hpbl, gamt, gamq, dkt, Model%xkzm_m, Model%xkzm_h) endif endif ! end if_satmedmf @@ -4265,7 +4265,7 @@ subroutine GFS_physics_driver & Statein%pgr, Statein%phil, clw, Stateout%gq0, & Stateout%gt0, Stateout%gu0, Stateout%gv0, rain1, & kbot, ktop, kcnv, islmsk, Statein%vvl, ncld, & - Diag%hpbl, hflx, evap, ud_mf, dt_mf, cnvw, cnvc, & + tbd%hpbl, hflx, evap, ud_mf, dt_mf, cnvw, cnvc, & Model%clam_shal, Model%c0s_shal, Model%c1_shal, & Model%pgcon_shal) !*## CCPP ## @@ -4305,7 +4305,7 @@ subroutine GFS_physics_driver & Stateout%gq0(:,:,1), Stateout%gt0, & Stateout%gu0, Stateout%gv0, Model%fscav, & rain1, kbot, ktop, kcnv, islmsk, garea, & - Statein%vvl, ncld, Diag%hpbl, ud_mf, & + Statein%vvl, ncld, tbd%hpbl, ud_mf, & dt_mf, cnvw, cnvc, & Model%clam_shal, Model%c0s_shal, Model%c1_shal, & Model%pgcon_shal, Model%asolfac_shal) @@ -4904,8 +4904,8 @@ subroutine GFS_physics_driver & Statein%prsi, Statein%phil, Statein%phii, & Statein%vvl, clw(1,1,2), QLCN, clw(1,1,1), QICN, & Radtend%htrlw, Radtend%htrsw, w_upi, cf_upi, & - FRLAND, Diag%HPBL, CNV_MFD, CNV_DQLDT, & -! FRLAND, Diag%HPBL, CNV_MFD, CNV_PRC3, CNV_DQLDT, & + FRLAND, Tbd%Hpbl, CNV_MFD, CNV_DQLDT, & +! FRLAND, Tbd%Hpbl, CNV_MFD, CNV_PRC3, CNV_DQLDT, & CLCN, Stateout%gu0, Stateout%gv0, Diag%dusfc, & Diag%dvsfc, dusfc1, dvsfc1, dusfc1, dvsfc1, & CNV_FICE, CNV_NDROP, CNV_NICE, Stateout%gq0(1,1,1), & From af8c130486b20aa473a695cee6a3ad99700d7cdd Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Mon, 6 Apr 2020 13:07:02 +0000 Subject: [PATCH 091/206] tbd => Tbd in gfsphysics/GFS_layer/GFS_physics_driver.F90 --- gfsphysics/GFS_layer/GFS_physics_driver.F90 | 44 ++++++++++----------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_physics_driver.F90 b/gfsphysics/GFS_layer/GFS_physics_driver.F90 index a1f6b1ad2..0a189026f 100644 --- a/gfsphysics/GFS_layer/GFS_physics_driver.F90 +++ b/gfsphysics/GFS_layer/GFS_physics_driver.F90 @@ -2335,7 +2335,7 @@ subroutine GFS_physics_driver & Diag%v10m, Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx,& evap, stress, wind, kpbl, Statein%prsi, del, Statein%prsl,& Statein%prslk, Statein%phii, Statein%phil, dtp, dusfc1, & - dvsfc1, dtsfc1, dqsfc1, dkt, tbd%hpbl, kinver, & + dvsfc1, dtsfc1, dqsfc1, dkt, Tbd%hpbl, kinver, & Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, Model%xkzminv, & lprnt, ipr, me) ! if (lprnt) write(0,*)'aftmonshoc=',Statein%tgrs(ipr,:) @@ -2356,7 +2356,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s) !*## CCPP ## elseif (Model%isatmedmf == 1) then ! updated version of satmedmfvdif (May 2019) @@ -2369,7 +2369,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, & Model%dspfac, Model%bl_upfr, Model%bl_dnfr) !*## CCPP ## @@ -2383,7 +2383,7 @@ subroutine GFS_physics_driver & Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, stress, & wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl,& + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl,& gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac) @@ -2395,7 +2395,7 @@ subroutine GFS_physics_driver & Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, stress, & wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl,& + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl,& gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac,islmsk) @@ -2419,7 +2419,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac, Model%rbcr) @@ -2431,7 +2431,7 @@ subroutine GFS_physics_driver & Sfcprop%tsfc, qss, hflx, evap, stress, wind, kpbl, & Statein%prsi, del, Statein%prsl, Statein%prslk, & Statein%phii, Statein%phil, dtp, dusfc1, dvsfc1, & - dtsfc1, dqsfc1, tbd%hpbl, gamt, gamq, dkt, kinver, & + dtsfc1, dqsfc1, Tbd%hpbl, gamt, gamq, dkt, kinver, & Model%xkzm_m, Model%xkzm_h) else call moninp(ix, im, levs, nvdiff, dvdt, dudt, dtdt, dqdt, & @@ -2440,7 +2440,7 @@ subroutine GFS_physics_driver & Sfcprop%tsfc, qss, hflx, evap, stress, wind, kpbl, & Statein%prsi, del, Statein%prsl, Statein%phii, & Statein%phil, dtp, dusfc1, dvsfc1, dtsfc1, dqsfc1, & - tbd%hpbl, gamt, gamq, dkt, Model%xkzm_m, Model%xkzm_h) + Tbd%hpbl, gamt, gamq, dkt, Model%xkzm_m, Model%xkzm_h) endif endif ! end if_hybedmf @@ -2593,7 +2593,7 @@ subroutine GFS_physics_driver & Diag%v10m, Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, & evap, stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, dusfc1, & - dvsfc1, dtsfc1, dqsfc1, dkt, tbd%hpbl, kinver, & + dvsfc1, dtsfc1, dqsfc1, dkt, Tbd%hpbl, kinver, & Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, Model%xkzminv, & lprnt, ipr, me) !*## CCPP ## @@ -2609,7 +2609,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s) !*## CCPP ## elseif (Model%isatmedmf == 1) then ! updated version of satmedmfvdif (May 2019) @@ -2622,7 +2622,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, & Model%dspfac, Model%bl_upfr, Model%bl_dnfr) !*## CCPP ## @@ -2638,7 +2638,7 @@ subroutine GFS_physics_driver & Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, stress, & wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac) @@ -2652,7 +2652,7 @@ subroutine GFS_physics_driver & Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, stress, & wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac,islmsk) @@ -2664,7 +2664,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac, Model%rbcr) @@ -2676,7 +2676,7 @@ subroutine GFS_physics_driver & Sfcprop%tsfc, qss, hflx, evap, stress, wind, kpbl, & Statein%prsi, del, Statein%prsl, Statein%prslk, & Statein%phii, Statein%phil, dtp, dusfc1, dvsfc1, & - dtsfc1, dqsfc1, tbd%hpbl, gamt, gamq, dkt, kinver, & + dtsfc1, dqsfc1, Tbd%hpbl, gamt, gamq, dkt, kinver, & Model%xkzm_m, Model%xkzm_h) else call moninp(ix, im, levs, nvdiff, dvdt, dudt, dtdt, dvdftra, & @@ -2685,7 +2685,7 @@ subroutine GFS_physics_driver & Sfcprop%tsfc, qss, hflx, evap, stress, wind, kpbl, & Statein%prsi, del, Statein%prsl, Statein%phii, & Statein%phil, dtp, dusfc1, dvsfc1, dtsfc1, dqsfc1, & - tbd%hpbl, gamt, gamq, dkt, Model%xkzm_m, Model%xkzm_h) + Tbd%hpbl, gamt, gamq, dkt, Model%xkzm_m, Model%xkzm_h) endif endif ! end if_satmedmf @@ -3615,7 +3615,7 @@ subroutine GFS_physics_driver & ! if (lprnt) write(0,*)'aftshocgq0=',Stateout%gq0(ipr,1:60,1) ! if (lprnt) write(0,*)' aft shoc tke=',clw(ipr,1:25,ntk), & ! &' kdt=',kdt,'xlon=',grid%xlon(ipr),' xlat=',grid%xlat(ipr) -! if (lprnt) write(0,*)' aftshoccld=',tbd%phy_f3d(ipr,:,ntot3d-2)*100 +! if (lprnt) write(0,*)' aftshoccld=',Tbd%phy_f3d(ipr,:,ntot3d-2)*100 ! if (lprnt) write(0,*)' aftshocice=',clw(ipr,:,1) ! if (lprnt) write(0,*)' aftshocwat=',clw(ipr,:,2) ! write(1000+me,*)' at latitude = ',lat @@ -4265,7 +4265,7 @@ subroutine GFS_physics_driver & Statein%pgr, Statein%phil, clw, Stateout%gq0, & Stateout%gt0, Stateout%gu0, Stateout%gv0, rain1, & kbot, ktop, kcnv, islmsk, Statein%vvl, ncld, & - tbd%hpbl, hflx, evap, ud_mf, dt_mf, cnvw, cnvc, & + Tbd%hpbl, hflx, evap, ud_mf, dt_mf, cnvw, cnvc, & Model%clam_shal, Model%c0s_shal, Model%c1_shal, & Model%pgcon_shal) !*## CCPP ## @@ -4305,7 +4305,7 @@ subroutine GFS_physics_driver & Stateout%gq0(:,:,1), Stateout%gt0, & Stateout%gu0, Stateout%gv0, Model%fscav, & rain1, kbot, ktop, kcnv, islmsk, garea, & - Statein%vvl, ncld, tbd%hpbl, ud_mf, & + Statein%vvl, ncld, Tbd%hpbl, ud_mf, & dt_mf, cnvw, cnvc, & Model%clam_shal, Model%c0s_shal, Model%c1_shal, & Model%pgcon_shal, Model%asolfac_shal) @@ -4892,7 +4892,7 @@ subroutine GFS_physics_driver & ! if (lprnt) write(0,*)' qsnwb=',qsnw(ipr,:),' kdt=',kdt ! if (lprnt) write(0,*)' qglb=',qgl(ipr,:),' kdt=',kdt ! if (lprnt) write(0,*)' rhc=',rhc(ipr,:),' kdt=',kdt,' kk=',kk -! if (lprnt) write(0,*)' cloudsb=',tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt +! if (lprnt) write(0,*)' cloudsb=',Tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt ! if (lprnt) write(0,*)' cloudsb=',Tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt ! if (lprnt) write(0,*)' clcn=',clcn(ipr,:)*100,' kdt=',kdt ! txa(:,:) = Stateout%gq0(:,:,1) @@ -4947,7 +4947,7 @@ subroutine GFS_physics_driver & ! if (lprnt) write(0,*)' clw1aft=',stateout%gq0(ipr,:,ntiw),' kdt=',kdt ! if (ntgl > 0 .and. lprnt) & ! write(0,*)' cgw1aft=',stateout%gq0(ipr,:,ntgl),' kdt=',kdt -! if (lprnt) write(0,*)' cloudsm=',tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt +! if (lprnt) write(0,*)' cloudsm=',Tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt ! if (lprnt) write(0,*)' clw2aft=',stateout%gq0(ipr,:,ntcw),' kdt=',kdt ! if (lprnt) write(0,*)' qrna=',qrn(ipr,:),' kdt=',kdt ! if (lprnt) write(0,*)' qsnwa=',qsnw(ipr,:),' kdt=',kdt @@ -4991,7 +4991,7 @@ subroutine GFS_physics_driver & !*## CCPP ## endif -! if (lprnt) write(0,*)' cloudsm=',tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt +! if (lprnt) write(0,*)' cloudsm=',Tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt ! if (lprnt) write(0,*)' clw2aft=',stateout%gq0(ipr,:,ntcw),' kdt=',kdt ! if (lprnt) write(0,*)' qrna=',qrn(ipr,:),' kdt=',kdt ! if (lprnt) write(0,*)' qsnwa=',qsnw(ipr,:),' kdt=',kdt From 8c8137ccca79a0cabe9c35b7d9e2401fe4853d1a Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 16 Apr 2020 16:07:18 -0600 Subject: [PATCH 092/206] Update .gitmodules and submodule pointer for ccpp-physics for code review and testing --- .gitmodules | 4 ++-- ccpp/framework | 2 +- ccpp/physics | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitmodules b/.gitmodules index 7b257df89..da30da663 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/SamuelTrahanNOAA/ccpp-physics - branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = tendencies_sam_with_dom_mods diff --git a/ccpp/framework b/ccpp/framework index 78d5d5b15..463a72cce 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 78d5d5b155385c2d67276b31e8154cea9bfb1d34 +Subproject commit 463a72cce605ae0f8f8725574d5e3b9cf6c9d90c diff --git a/ccpp/physics b/ccpp/physics index e4b80ea01..680c365db 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit e4b80ea016899c7c23fa07396bd7fcbc0195a0f9 +Subproject commit 680c365dbe4b660425b24198d743f4a7d6fa09e7 From 522342edbf042ef3a4aaa9d49aeea216792ef2b2 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 16 Apr 2020 16:11:46 -0600 Subject: [PATCH 093/206] Revert unnecessary changes made in original PR --- atmos_model.F90 | 12 - ccpp/config/ccpp_prebuild_config.py | 8 +- ccpp/driver/CCPP_driver.F90 | 5 +- ccpp/suites/suite_FV3_GFS_v15p2.xml | 11 - ccpp/suites/suite_FV3_GFS_v15plus.xml | 13 - ccpp/suites/suite_FV3_GFS_v16beta.xml | 11 - ccpp/suites/suite_FV3_GSD_v0.xml | 13 +- gfsphysics/GFS_layer/GFS_diagnostics.F90 | 538 +++++++++++------------ gfsphysics/GFS_layer/GFS_typedefs.F90 | 16 +- gfsphysics/GFS_layer/GFS_typedefs.meta | 116 +---- 10 files changed, 292 insertions(+), 451 deletions(-) diff --git a/atmos_model.F90 b/atmos_model.F90 index 6343c267c..e8cc8b832 100644 --- a/atmos_model.F90 +++ b/atmos_model.F90 @@ -297,7 +297,6 @@ subroutine update_atmos_radiation_physics (Atmos) !--- execute the IPD atmospheric setup step call mpp_clock_begin(setupClock) - #ifdef CCPP call CCPP_step (step="time_vary", nblks=Atm_block%nblks, ierr=ierr) if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP time_vary step failed') @@ -332,11 +331,6 @@ subroutine update_atmos_radiation_physics (Atmos) ! print *,'in atmos_model, after assign_importdata, rc=',rc endif -#ifdef CCPP - call CCPP_step (step="timestep_init", nblks=Atm_block%nblks, ierr=ierr) - if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP timestep_init step failed') -#endif - call mpp_clock_end(setupClock) if (mpp_pe() == mpp_root_pe() .and. debug) write(6,*) "radiation driver" @@ -400,9 +394,6 @@ subroutine update_atmos_radiation_physics (Atmos) #ifdef CCPP call CCPP_step (step="stochastics", nblks=Atm_block%nblks, ierr=ierr) if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP stochastics step failed') - - call CCPP_step (step="timestep_final", nblks=Atm_block%nblks, ierr=ierr) - if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP timestep_final step failed') #else Func0d => physics_step2 !$OMP parallel do default (none) & @@ -413,16 +404,13 @@ subroutine update_atmos_radiation_physics (Atmos) call IPD_step (IPD_Control, IPD_Data(nb:nb), IPD_Diag, IPD_Restart, IPD_func0d=Func0d) enddo #endif - call mpp_clock_end(physClock) if (chksum_debug) then if (mpp_pe() == mpp_root_pe()) print *,'PHYSICS STEP2 ', IPD_Control%kdt, IPD_Control%fhour call FV3GFS_IPD_checksum(IPD_Control, IPD_Data, Atm_block) endif - call getiauforcing(IPD_Control,IAU_data) - if (mpp_pe() == mpp_root_pe() .and. debug) write(6,*) "end of radiation and physics step" endif diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index c3f6e4846..46d6872d9 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -114,9 +114,6 @@ 'FV3/ccpp/physics/physics/mfpblt.f', 'FV3/ccpp/physics/physics/mfpbltq.f', 'FV3/ccpp/physics/physics/mfscu.f', - 'FV3/ccpp/physics/physics/total_tend.F90', - 'FV3/ccpp/physics/physics/model_tend_pre.F90', - 'FV3/ccpp/physics/physics/model_tend_post.F90', 'FV3/ccpp/physics/physics/mfscuq.f', 'FV3/ccpp/physics/physics/noahmp_tables.f90', 'FV3/ccpp/physics/physics/num_parthds.F', @@ -187,10 +184,7 @@ 'FV3/ccpp/physics/physics/gcm_shoc.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/get_prs_fv3.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/gfdl_cloud_microphys.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/gfdl_fv_sat_adj.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/total_tend.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/model_tend_pre.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/model_tend_post.F90' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/gfdl_fv_sat_adj.F90' : [ 'fast_physics' ], 'FV3/ccpp/physics/physics/gscond.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/gwdc.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/gwdps.f' : [ 'slow_physics' ], diff --git a/ccpp/driver/CCPP_driver.F90 b/ccpp/driver/CCPP_driver.F90 index 0bf88b218..449aaf03c 100644 --- a/ccpp/driver/CCPP_driver.F90 +++ b/ccpp/driver/CCPP_driver.F90 @@ -49,7 +49,7 @@ module CCPP_driver ! number nthrdsX in case of non-uniform block sizes) ! !--------------------------------------------------------! logical :: non_uniform_blocks - integer :: nthrds, nthrdsX, ithread + integer :: nthrds, nthrdsX !---------------- ! Public Entities @@ -205,8 +205,7 @@ subroutine CCPP_step (step, nblks, ierr) end if ! Radiation and stochastic physics - else if (trim(step)=="radiation" .or. trim(step)=="physics" .or. trim(step)=="stochastics" & - .or. trim(step)=="timestep_init" .or. trim(step)=="timestep_final") then + else if (trim(step)=="radiation" .or. trim(step)=="physics" .or. trim(step)=="stochastics") then ! Set number of threads available to physics schemes to one, ! because threads are used on the outside for blocking diff --git a/ccpp/suites/suite_FV3_GFS_v15p2.xml b/ccpp/suites/suite_FV3_GFS_v15p2.xml index 46234fdc9..1ab234105 100644 --- a/ccpp/suites/suite_FV3_GFS_v15p2.xml +++ b/ccpp/suites/suite_FV3_GFS_v15p2.xml @@ -15,11 +15,6 @@ GFS_phys_time_vary - - - model_tend_pre - - GFS_suite_interstitial_rad_reset @@ -95,11 +90,5 @@ GFS_stochastics - - - model_tend_post - total_tend - - diff --git a/ccpp/suites/suite_FV3_GFS_v15plus.xml b/ccpp/suites/suite_FV3_GFS_v15plus.xml index 57a0d921b..04f1d5f46 100644 --- a/ccpp/suites/suite_FV3_GFS_v15plus.xml +++ b/ccpp/suites/suite_FV3_GFS_v15plus.xml @@ -9,17 +9,14 @@ - model_tend_pre GFS_time_vary_pre GFS_rrtmg_setup GFS_rad_time_vary GFS_phys_time_vary - model_tend_post - model_tend_pre GFS_suite_interstitial_rad_reset GFS_rrtmg_pre rrtmg_sw_pre @@ -29,13 +26,10 @@ rrtmg_lw rrtmg_lw_post GFS_rrtmg_post - model_tend_post - model_tend_pre - total_tend GFS_suite_interstitial_phys_reset GFS_suite_stateout_reset get_prs_fv3 @@ -45,11 +39,9 @@ dcyc2t3 GFS_surface_composites_inter GFS_suite_interstitial_2 - model_tend_post - model_tend_pre sfc_diff GFS_surface_loop_control_part1 sfc_nst_pre @@ -58,11 +50,9 @@ lsm_noah sfc_sice GFS_surface_loop_control_part2 - model_tend_post - model_tend_pre GFS_surface_composites_post dcyc2t3_post sfc_diag @@ -93,14 +83,11 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - model_tend_post - model_tend_pre GFS_stochastics - model_tend_post diff --git a/ccpp/suites/suite_FV3_GFS_v16beta.xml b/ccpp/suites/suite_FV3_GFS_v16beta.xml index ede385cf0..8571ec1b4 100644 --- a/ccpp/suites/suite_FV3_GFS_v16beta.xml +++ b/ccpp/suites/suite_FV3_GFS_v16beta.xml @@ -15,11 +15,6 @@ GFS_phys_time_vary - - - model_tend_pre - - GFS_suite_interstitial_rad_reset @@ -95,11 +90,5 @@ GFS_stochastics - - - model_tend_post - total_tend - - diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index e572fdc39..fb4b13546 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -10,11 +10,6 @@ GFS_phys_time_vary - - - model_tend_pre - - GFS_suite_interstitial_rad_reset @@ -25,7 +20,7 @@ rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - sgscloud_radpre + sgscloud_radpost rrtmg_lw_post GFS_rrtmg_post @@ -95,11 +90,5 @@ GFS_stochastics - - - model_tend_post - total_tend - - diff --git a/gfsphysics/GFS_layer/GFS_diagnostics.F90 b/gfsphysics/GFS_layer/GFS_diagnostics.F90 index 7f5bddbf1..e62dbd290 100644 --- a/gfsphysics/GFS_layer/GFS_diagnostics.F90 +++ b/gfsphysics/GFS_layer/GFS_diagnostics.F90 @@ -2230,185 +2230,183 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ! if(mpp_pe()==mpp_root_pe())print *,'in gfdl_diag_register,af shum_wts,idx=',idx -!--- three-dimensional variables that need to be handled special when writing - if_ldiag3d: if(Model%ldiag3d) then - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_lw' - ExtDiag(idx)%desc = 'temperature change due to long wave radiation' - ExtDiag(idx)%unit = 'K' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,1) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_sw' - ExtDiag(idx)%desc = 'temperature change due to short wave radiation' - ExtDiag(idx)%unit = 'K' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,2) - enddo +!--- three-dimensional variables that need to be handled special when writing + if_ldiag3d: if(Model%ldiag3d) then + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_lw' + ExtDiag(idx)%desc = 'temperature change due to long wave radiation' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,1) + enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_pbl' - ExtDiag(idx)%desc = 'temperature change due to pbl' - ExtDiag(idx)%unit = 'K' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,3) - enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_sw' + ExtDiag(idx)%desc = 'temperature change due to short wave radiation' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,2) + enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_deepcnv' - ExtDiag(idx)%desc = 'temperature change due to deep convection' - ExtDiag(idx)%unit = 'K' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,4) - enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_pbl' + ExtDiag(idx)%desc = 'temperature change due to pbl' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,3) + enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_shlwcnv' - ExtDiag(idx)%desc = 'temperature change due to shallow convection' - ExtDiag(idx)%unit = 'K' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,5) - enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_deepcnv' + ExtDiag(idx)%desc = 'temperature change due to deep convection' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,4) + enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_microphy' - ExtDiag(idx)%desc = 'temperature change due to micro-physics' - ExtDiag(idx)%unit = 'K' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,6) - enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_shlwcnv' + ExtDiag(idx)%desc = 'temperature change due to shallow convection' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,5) + enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_orogwd' - ExtDiag(idx)%desc = 'temperature change due to orographic gravity wave drag' - ExtDiag(idx)%unit = 'K' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,7) - enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_microphy' + ExtDiag(idx)%desc = 'temperature change due to micro-physics' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,6) + enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_rdamp' - ExtDiag(idx)%desc = 'temperature change due to Rayleigh damping' - ExtDiag(idx)%unit = 'K' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,8) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'du3dt_pbl' - ExtDiag(idx)%desc = 'u wind change due to PBL' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,1) - enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_orogwd' + ExtDiag(idx)%desc = 'temperature change due to orographic gravity wave drag' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,7) + enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dv3dt_pbl' - ExtDiag(idx)%desc = 'v momentum change due to PBL' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,1) - enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_rdamp' + ExtDiag(idx)%desc = 'temperature change due to Rayleigh damping' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,8) + enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'du3dt_orogwd' - ExtDiag(idx)%desc = 'u momentum change due to orographic gravity wave drag' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,2) - enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'du3dt_pbl' + ExtDiag(idx)%desc = 'u wind change due to PBL' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,1) + enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dv3dt_orogwd' - ExtDiag(idx)%desc = 'v momentum change due to orographic gravity wave drag' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,2) - enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dv3dt_pbl' + ExtDiag(idx)%desc = 'v momentum change due to PBL' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,1) + enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'du3dt_deepcnv' - ExtDiag(idx)%desc = 'u momentum change due to deep convection' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,3) - enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'du3dt_orogwd' + ExtDiag(idx)%desc = 'u momentum change due to orographic gravity wave drag' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,2) + enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dv3dt_deepcnv' - ExtDiag(idx)%desc = 'v momentum change due to deep convection' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,3) - enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dv3dt_orogwd' + ExtDiag(idx)%desc = 'v momentum change due to orographic gravity wave drag' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,2) + enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'du3dt_deepcnv' + ExtDiag(idx)%desc = 'u momentum change due to deep convection' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,3) + enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'du3dt_cnvgwd' - ExtDiag(idx)%desc = 'u momentum change due to convective gravity wave drag' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,4) - enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dv3dt_deepcnv' + ExtDiag(idx)%desc = 'v momentum change due to deep convection' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,3) + enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dv3dt_cnvgwd' - ExtDiag(idx)%desc = 'v momentum change due to convective gravity wave drag' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,4) - enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'du3dt_cnvgwd' + ExtDiag(idx)%desc = 'u momentum change due to convective gravity wave drag' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,4) + enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dv3dt_cnvgwd' + ExtDiag(idx)%desc = 'v momentum change due to convective gravity wave drag' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,4) + enddo idx = idx + 1 ExtDiag(idx)%axes = 3 @@ -2458,7 +2456,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_ccpp' - ExtDiag(idx)%desc = 'cumulative change in x wind from CCPP' + ExtDiag(idx)%desc = 'cumulative change in x wind due to physics' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2469,7 +2467,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dv3dt_ccpp' - ExtDiag(idx)%desc = 'cumulative change in y wind from CCPP' + ExtDiag(idx)%desc = 'cumulative change in y wind due to physics' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2480,7 +2478,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_model' - ExtDiag(idx)%desc = 'cumulative change in x wind from model' + ExtDiag(idx)%desc = 'cumulative change in x wind due to model w/o physics' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2491,7 +2489,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dv3dt_model' - ExtDiag(idx)%desc = 'cumulative change in y wind from model' + ExtDiag(idx)%desc = 'cumulative change in y wind due to model w/o physics' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2524,7 +2522,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dt3dt_ccpp' - ExtDiag(idx)%desc = 'cumulative change in temperature from CCPP' + ExtDiag(idx)%desc = 'cumulative change in temperature due to physics' ExtDiag(idx)%unit = 'K' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2535,7 +2533,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dt3dt_model' - ExtDiag(idx)%desc = 'cumulative change in temperature from model' + ExtDiag(idx)%desc = 'cumulative change in temperature due to model w/o physics' ExtDiag(idx)%unit = 'K' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2559,7 +2557,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dq3dt_ccpp' - ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity from CCPP' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to physics' ExtDiag(idx)%unit = 'kg kg-1' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2570,7 +2568,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dq3dt_model' - ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity from model' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to model w/o physics' ExtDiag(idx)%unit = 'kg kg-1' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2589,104 +2587,104 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,12) enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_pbl' - ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to PBL' - ExtDiag(idx)%unit = 'kg kg-1' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,1) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_deepcnv' - ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to deep conv.' - ExtDiag(idx)%unit = 'kg kg-1' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,2) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_shlwcnv' - ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to shal conv.' - ExtDiag(idx)%unit = 'kg kg-1' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,3) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_microphy' - ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to microphysics' - ExtDiag(idx)%unit = 'kg kg-1' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,4) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_o3pbl' - ExtDiag(idx)%desc = 'cumulative change in ozone mixing ratio due to PBL' - ExtDiag(idx)%unit = 'kg kg-1' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,5) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_o3prodloss' - ExtDiag(idx)%desc = 'cumulative change in ozone concentration due to production and loss rate' - ExtDiag(idx)%unit = 'kg kg-1' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,6) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_o3mix' - ExtDiag(idx)%desc = 'cumulative change in ozone concentration due to ozone mixing ratio' - ExtDiag(idx)%unit = 'kg kg-1' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,7) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_o3temp' - ExtDiag(idx)%desc = 'cumulative change in ozone concentration due to temperature' - ExtDiag(idx)%unit = 'kg kg-1' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,8) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_o3column' - ExtDiag(idx)%desc = 'cumulative change in ozone concentration due to overhead ozone column' - ExtDiag(idx)%unit = 'kg kg-1' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,9) - enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_pbl' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to PBL' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,1) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_deepcnv' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to deep conv.' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,2) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_shlwcnv' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to shal conv.' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,3) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_microphy' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to microphysics' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,4) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_o3pbl' + ExtDiag(idx)%desc = 'cumulative change in ozone mixing ratio due to PBL' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,5) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_o3prodloss' + ExtDiag(idx)%desc = 'cumulative change in ozone concentration due to production and loss rate' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,6) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_o3mix' + ExtDiag(idx)%desc = 'cumulative change in ozone concentration due to ozone mixing ratio' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,7) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_o3temp' + ExtDiag(idx)%desc = 'cumulative change in ozone concentration due to temperature' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,8) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_o3column' + ExtDiag(idx)%desc = 'cumulative change in ozone concentration due to overhead ozone column' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,9) + enddo end if if_qdiag3d #endif end if if_ldiag3d diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 89c9db948..ee951fbcf 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -550,10 +550,10 @@ module GFS_typedefs real(kind=kind_phys) :: fhzero !< hours between clearing of diagnostic buckets logical :: ldiag3d !< flag for 3d diagnostic fields logical :: qdiag3d !< flag for 3d tracer diagnostic fields - logical :: flag_for_gwd_generic_tend!< true if GFS_GWD_generic should calculate tendencies - logical :: flag_for_pbl_generic_tend!< true if GFS_PBL_generic should calculate tendencies - logical :: flag_for_scnv_generic_tend!< true if GFS_DCNV_generic should calculate tendencies - logical :: flag_for_dcnv_generic_tend!< true if GFS_DCNV_generic should calculate tendencies + logical :: flag_for_gwd_generic_tend !< true if GFS_GWD_generic should calculate tendencies + logical :: flag_for_pbl_generic_tend !< true if GFS_PBL_generic should calculate tendencies + logical :: flag_for_scnv_generic_tend !< true if GFS_DCNV_generic should calculate tendencies + logical :: flag_for_dcnv_generic_tend !< true if GFS_DCNV_generic should calculate tendencies logical :: lssav !< logical flag for storing diagnostics real(kind=kind_phys) :: fhcyc !< frequency for surface data cycling (hours) integer :: thermodyn_id !< valid for GFS only for get_prs/phi @@ -1473,7 +1473,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: dv3dt (:,:,:) => null() !< v momentum change due to physics real (kind=kind_phys), pointer :: dt3dt (:,:,:) => null() !< temperature change due to physics real (kind=kind_phys), pointer :: dq3dt (:,:,:) => null() !< moisture change due to physics - real (kind=kind_phys), pointer :: tend_book(:,:,:)=>null() !< CCPP tendency storage real (kind=kind_phys), pointer :: refdmax (:) => null() !< max hourly 1-km agl reflectivity real (kind=kind_phys), pointer :: refdmax263k(:) => null() !< max hourly -10C reflectivity real (kind=kind_phys), pointer :: t02max (:) => null() !< max hourly 2m T @@ -3278,9 +3277,6 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & #ifdef CCPP - write(0,*) 'GOT HERE (stderr)' - print *,'GOT HERE (stdout)' - if(gwd_opt==1) then write(0,*) 'FLAG: gwd_opt==1 so gwd not generic' Model%flag_for_gwd_generic_tend=.false. @@ -5269,9 +5265,6 @@ subroutine diag_create (Diag, IM, Model) allocate (Diag%dt3dt (IM,Model%levs,12)) if (Model%qdiag3d) then allocate (Diag%dq3dt (IM,Model%levs,12)) - allocate (Diag%tend_book(IM,Model%levs,12)) - else - allocate (Diag%tend_book(IM,Model%levs,9)) endif Diag%tend_book=0 ! allocate (Diag%dq3dt (IM,Model%levs,oz_coeff+5)) @@ -5578,7 +5571,6 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%du3dt = zero Diag%dv3dt = zero Diag%dt3dt = zero - if (Model%qdiag3d) then Diag%dq3dt = zero endif diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 60de65c75..af03a43f5 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -5445,15 +5445,15 @@ type = real kind = kind_phys [du3dt(:,:,7)] - standard_name = cumulative_change_in_x_wind_from_ccpp - long_name = cumulative change in x wind from CCPP + standard_name = cumulative_change_in_x_wind_due_to_physics + long_name = cumulative change in x wind due to physics units = m s-1 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys [du3dt(:,:,8)] - standard_name = cumulative_change_in_x_wind_from_model - long_name = cumulative change in x wind from model + standard_name = cumulative_change_in_x_wind_due_to_model_without_physics + long_name = cumulative change in x wind due to model without physics units = m s-1 dimensions = (horizontal_dimension,vertical_dimension) type = real @@ -5508,15 +5508,15 @@ type = real kind = kind_phys [dv3dt(:,:,7)] - standard_name = cumulative_change_in_y_wind_from_ccpp - long_name = cumulative change in y wind from CCPP + standard_name = cumulative_change_in_y_wind_due_to_physics + long_name = cumulative change in y wind due to physics units = m s-1 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys [dv3dt(:,:,8)] - standard_name = cumulative_change_in_y_wind_from_model - long_name = cumulative change in y wind from model + standard_name = cumulative_change_in_y_wind_due_to_model_without_physics + long_name = cumulative change in y wind due to model without physics units = m s-1 dimensions = (horizontal_dimension,vertical_dimension) type = real @@ -5592,15 +5592,15 @@ type = real kind = kind_phys [dt3dt(:,:,10)] - standard_name = cumulative_change_in_temperature_from_ccpp - long_name = cumulative change in temperature from CCPP + standard_name = cumulative_change_in_temperature_due_to_physics + long_name = cumulative change in temperature due to physics units = K dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys [dt3dt(:,:,11)] - standard_name = cumulative_change_in_temperature_from_model - long_name = cumulative change in temperature from model + standard_name = cumulative_change_in_temperature_due_to_model_without_physics + long_name = cumulative change in temperature due to model without physics units = K dimensions = (horizontal_dimension,vertical_dimension) type = real @@ -5676,15 +5676,15 @@ type = real kind = kind_phys [dq3dt(:,:,10)] - standard_name = cumulative_change_in_water_vapor_specific_humidity_from_CCPP - long_name = cumulative change in water vapor specific humidity from CCPP + standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_physics + long_name = cumulative change in water vapor specific humidity due to physics units = kg kg-1 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys [dq3dt(:,:,11)] - standard_name = cumulative_change_in_water_vapor_specific_humidity_from_model - long_name = cumulative change in water vapor specific humidity from model + standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_model_without_physics + long_name = cumulative change in water vapor specific humidity due to model without physics units = kg kg-1 dimensions = (horizontal_dimension,vertical_dimension) type = real @@ -5696,90 +5696,6 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys -[tend_book(:,:,1)] - standard_name = temperature_at_start_of_ccpp - long_name = temperature at start of ccpp - units = K - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys -[tend_book(:,:,2)] - standard_name = temperature_at_end_of_ccpp - long_name = temperature at end of ccpp - units = K - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys -[tend_book(:,:,3)] - standard_name = temperature_at_total_check_point - long_name = temperature when model total is calculated in ccpp - units = K - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys -[tend_book(:,:,4)] - standard_name = x_wind_at_start_of_ccpp - long_name = x wind at start of ccpp - units = K - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys -[tend_book(:,:,5)] - standard_name = x_wind_at_end_of_ccpp - long_name = x wind at end of ccpp - units = K - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys -[tend_book(:,:,6)] - standard_name = x_wind_at_total_check_point - long_name = x when model total is calculated in ccpp - units = K - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys -[tend_book(:,:,7)] - standard_name = y_wind_at_start_of_ccpp - long_name = y wind at start of ccpp - units = K - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys -[tend_book(:,:,8)] - standard_name = y_wind_at_end_of_ccpp - long_name = y wind at start of ccpp - units = K - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys -[tend_book(:,:,9)] - standard_name = y_wind_at_total_check_point - long_name = y when model total is calculated in ccpp - units = K - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys -[tend_book(:,:,10)] - standard_name = water_vapor_specific_humidity_at_start_of_ccpp - long_name = water vapor specific humidity at start of ccpp - units = K - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys -[tend_book(:,:,11)] - standard_name = water_vapor_specific_humidity_at_end_of_ccpp - long_name = water vapor specific humidity at end of ccpp - units = K - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys -[tend_book(:,:,12)] - standard_name = water_vapor_specific_humidity_at_total_check_point - long_name = water vapor specific humidity when model total is calculated in ccpp - units = K - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys [refdmax] standard_name = maximum_reflectivity_at_1km_agl_over_maximum_hourly_time_interval long_name = maximum reflectivity at 1km agl over maximum hourly time interval From 66e9859776d9ebd6bb21ffd19405e21fea98a0ec Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 16 Apr 2020 16:12:23 -0600 Subject: [PATCH 094/206] gfsphysics/GFS_layer/GFS_physics_driver.F90: change case tbd% -> Tbd% --- gfsphysics/GFS_layer/GFS_physics_driver.F90 | 44 ++++++++++----------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_physics_driver.F90 b/gfsphysics/GFS_layer/GFS_physics_driver.F90 index a1f6b1ad2..0a189026f 100644 --- a/gfsphysics/GFS_layer/GFS_physics_driver.F90 +++ b/gfsphysics/GFS_layer/GFS_physics_driver.F90 @@ -2335,7 +2335,7 @@ subroutine GFS_physics_driver & Diag%v10m, Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx,& evap, stress, wind, kpbl, Statein%prsi, del, Statein%prsl,& Statein%prslk, Statein%phii, Statein%phil, dtp, dusfc1, & - dvsfc1, dtsfc1, dqsfc1, dkt, tbd%hpbl, kinver, & + dvsfc1, dtsfc1, dqsfc1, dkt, Tbd%hpbl, kinver, & Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, Model%xkzminv, & lprnt, ipr, me) ! if (lprnt) write(0,*)'aftmonshoc=',Statein%tgrs(ipr,:) @@ -2356,7 +2356,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s) !*## CCPP ## elseif (Model%isatmedmf == 1) then ! updated version of satmedmfvdif (May 2019) @@ -2369,7 +2369,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, & Model%dspfac, Model%bl_upfr, Model%bl_dnfr) !*## CCPP ## @@ -2383,7 +2383,7 @@ subroutine GFS_physics_driver & Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, stress, & wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl,& + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl,& gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac) @@ -2395,7 +2395,7 @@ subroutine GFS_physics_driver & Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, stress, & wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl,& + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl,& gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac,islmsk) @@ -2419,7 +2419,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac, Model%rbcr) @@ -2431,7 +2431,7 @@ subroutine GFS_physics_driver & Sfcprop%tsfc, qss, hflx, evap, stress, wind, kpbl, & Statein%prsi, del, Statein%prsl, Statein%prslk, & Statein%phii, Statein%phil, dtp, dusfc1, dvsfc1, & - dtsfc1, dqsfc1, tbd%hpbl, gamt, gamq, dkt, kinver, & + dtsfc1, dqsfc1, Tbd%hpbl, gamt, gamq, dkt, kinver, & Model%xkzm_m, Model%xkzm_h) else call moninp(ix, im, levs, nvdiff, dvdt, dudt, dtdt, dqdt, & @@ -2440,7 +2440,7 @@ subroutine GFS_physics_driver & Sfcprop%tsfc, qss, hflx, evap, stress, wind, kpbl, & Statein%prsi, del, Statein%prsl, Statein%phii, & Statein%phil, dtp, dusfc1, dvsfc1, dtsfc1, dqsfc1, & - tbd%hpbl, gamt, gamq, dkt, Model%xkzm_m, Model%xkzm_h) + Tbd%hpbl, gamt, gamq, dkt, Model%xkzm_m, Model%xkzm_h) endif endif ! end if_hybedmf @@ -2593,7 +2593,7 @@ subroutine GFS_physics_driver & Diag%v10m, Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, & evap, stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, dusfc1, & - dvsfc1, dtsfc1, dqsfc1, dkt, tbd%hpbl, kinver, & + dvsfc1, dtsfc1, dqsfc1, dkt, Tbd%hpbl, kinver, & Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, Model%xkzminv, & lprnt, ipr, me) !*## CCPP ## @@ -2609,7 +2609,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s) !*## CCPP ## elseif (Model%isatmedmf == 1) then ! updated version of satmedmfvdif (May 2019) @@ -2622,7 +2622,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, & Model%dspfac, Model%bl_upfr, Model%bl_dnfr) !*## CCPP ## @@ -2638,7 +2638,7 @@ subroutine GFS_physics_driver & Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, stress, & wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac) @@ -2652,7 +2652,7 @@ subroutine GFS_physics_driver & Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, stress, & wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac,islmsk) @@ -2664,7 +2664,7 @@ subroutine GFS_physics_driver & Sfcprop%ffmm, Sfcprop%ffhh, Sfcprop%tsfc, qss, hflx, evap, & stress, wind, kpbl, Statein%prsi, del, Statein%prsl, & Statein%prslk, Statein%phii, Statein%phil, dtp, & - Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, tbd%hpbl, & + Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Tbd%hpbl, & gamt, gamq, dkt, kinver, Model%xkzm_m, Model%xkzm_h, & Model%xkzm_s, lprnt, ipr, & Model%xkzminv, Model%moninq_fac, Model%rbcr) @@ -2676,7 +2676,7 @@ subroutine GFS_physics_driver & Sfcprop%tsfc, qss, hflx, evap, stress, wind, kpbl, & Statein%prsi, del, Statein%prsl, Statein%prslk, & Statein%phii, Statein%phil, dtp, dusfc1, dvsfc1, & - dtsfc1, dqsfc1, tbd%hpbl, gamt, gamq, dkt, kinver, & + dtsfc1, dqsfc1, Tbd%hpbl, gamt, gamq, dkt, kinver, & Model%xkzm_m, Model%xkzm_h) else call moninp(ix, im, levs, nvdiff, dvdt, dudt, dtdt, dvdftra, & @@ -2685,7 +2685,7 @@ subroutine GFS_physics_driver & Sfcprop%tsfc, qss, hflx, evap, stress, wind, kpbl, & Statein%prsi, del, Statein%prsl, Statein%phii, & Statein%phil, dtp, dusfc1, dvsfc1, dtsfc1, dqsfc1, & - tbd%hpbl, gamt, gamq, dkt, Model%xkzm_m, Model%xkzm_h) + Tbd%hpbl, gamt, gamq, dkt, Model%xkzm_m, Model%xkzm_h) endif endif ! end if_satmedmf @@ -3615,7 +3615,7 @@ subroutine GFS_physics_driver & ! if (lprnt) write(0,*)'aftshocgq0=',Stateout%gq0(ipr,1:60,1) ! if (lprnt) write(0,*)' aft shoc tke=',clw(ipr,1:25,ntk), & ! &' kdt=',kdt,'xlon=',grid%xlon(ipr),' xlat=',grid%xlat(ipr) -! if (lprnt) write(0,*)' aftshoccld=',tbd%phy_f3d(ipr,:,ntot3d-2)*100 +! if (lprnt) write(0,*)' aftshoccld=',Tbd%phy_f3d(ipr,:,ntot3d-2)*100 ! if (lprnt) write(0,*)' aftshocice=',clw(ipr,:,1) ! if (lprnt) write(0,*)' aftshocwat=',clw(ipr,:,2) ! write(1000+me,*)' at latitude = ',lat @@ -4265,7 +4265,7 @@ subroutine GFS_physics_driver & Statein%pgr, Statein%phil, clw, Stateout%gq0, & Stateout%gt0, Stateout%gu0, Stateout%gv0, rain1, & kbot, ktop, kcnv, islmsk, Statein%vvl, ncld, & - tbd%hpbl, hflx, evap, ud_mf, dt_mf, cnvw, cnvc, & + Tbd%hpbl, hflx, evap, ud_mf, dt_mf, cnvw, cnvc, & Model%clam_shal, Model%c0s_shal, Model%c1_shal, & Model%pgcon_shal) !*## CCPP ## @@ -4305,7 +4305,7 @@ subroutine GFS_physics_driver & Stateout%gq0(:,:,1), Stateout%gt0, & Stateout%gu0, Stateout%gv0, Model%fscav, & rain1, kbot, ktop, kcnv, islmsk, garea, & - Statein%vvl, ncld, tbd%hpbl, ud_mf, & + Statein%vvl, ncld, Tbd%hpbl, ud_mf, & dt_mf, cnvw, cnvc, & Model%clam_shal, Model%c0s_shal, Model%c1_shal, & Model%pgcon_shal, Model%asolfac_shal) @@ -4892,7 +4892,7 @@ subroutine GFS_physics_driver & ! if (lprnt) write(0,*)' qsnwb=',qsnw(ipr,:),' kdt=',kdt ! if (lprnt) write(0,*)' qglb=',qgl(ipr,:),' kdt=',kdt ! if (lprnt) write(0,*)' rhc=',rhc(ipr,:),' kdt=',kdt,' kk=',kk -! if (lprnt) write(0,*)' cloudsb=',tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt +! if (lprnt) write(0,*)' cloudsb=',Tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt ! if (lprnt) write(0,*)' cloudsb=',Tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt ! if (lprnt) write(0,*)' clcn=',clcn(ipr,:)*100,' kdt=',kdt ! txa(:,:) = Stateout%gq0(:,:,1) @@ -4947,7 +4947,7 @@ subroutine GFS_physics_driver & ! if (lprnt) write(0,*)' clw1aft=',stateout%gq0(ipr,:,ntiw),' kdt=',kdt ! if (ntgl > 0 .and. lprnt) & ! write(0,*)' cgw1aft=',stateout%gq0(ipr,:,ntgl),' kdt=',kdt -! if (lprnt) write(0,*)' cloudsm=',tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt +! if (lprnt) write(0,*)' cloudsm=',Tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt ! if (lprnt) write(0,*)' clw2aft=',stateout%gq0(ipr,:,ntcw),' kdt=',kdt ! if (lprnt) write(0,*)' qrna=',qrn(ipr,:),' kdt=',kdt ! if (lprnt) write(0,*)' qsnwa=',qsnw(ipr,:),' kdt=',kdt @@ -4991,7 +4991,7 @@ subroutine GFS_physics_driver & !*## CCPP ## endif -! if (lprnt) write(0,*)' cloudsm=',tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt +! if (lprnt) write(0,*)' cloudsm=',Tbd%phy_f3d(ipr,:,1)*100,' kdt=',kdt ! if (lprnt) write(0,*)' clw2aft=',stateout%gq0(ipr,:,ntcw),' kdt=',kdt ! if (lprnt) write(0,*)' qrna=',qrn(ipr,:),' kdt=',kdt ! if (lprnt) write(0,*)' qsnwa=',qsnw(ipr,:),' kdt=',kdt From fed81f929895a4c4cb86c6bc16fef6fb0243cde9 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 16 Apr 2020 16:13:10 -0600 Subject: [PATCH 095/206] Bugfix for several suite definition files: rename sgscloud_radpre to sgscloud_radpost --- ccpp/suites/suite_FV3_GFS_v15_mynn.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml | 2 +- ccpp/suites/suite_FV3_GSD_SAR.xml | 2 +- ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml index 5ee55cda7..02f64bb0c 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml @@ -25,7 +25,7 @@ rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - sgscloud_radpre + sgscloud_radpost rrtmg_lw_post GFS_rrtmg_post diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml index de709d38a..8feae747b 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml @@ -20,7 +20,7 @@ rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - sgscloud_radpre + sgscloud_radpost rrtmg_lw_post GFS_rrtmg_post diff --git a/ccpp/suites/suite_FV3_GSD_SAR.xml b/ccpp/suites/suite_FV3_GSD_SAR.xml index e4d619abb..e20104229 100644 --- a/ccpp/suites/suite_FV3_GSD_SAR.xml +++ b/ccpp/suites/suite_FV3_GSD_SAR.xml @@ -20,7 +20,7 @@ rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - sgscloud_radpre + sgscloud_radpost rrtmg_lw_post GFS_rrtmg_post diff --git a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml b/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml index 26cff57a6..22e354a1a 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml @@ -20,7 +20,7 @@ rrtmg_sw_post rrtmg_lw_pre rrtmg_lw - sgscloud_radpre + sgscloud_radpost rrtmg_lw_post GFS_rrtmg_post From 68d403311118597184debb4d8d8d9c94a30be126 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 16 Apr 2020 17:12:33 -0600 Subject: [PATCH 096/206] Update standard names and descriptions as per code review, add missing tendency in GFS_diagnostics.F90 --- ccpp/physics | 2 +- gfsphysics/GFS_layer/GFS_diagnostics.F90 | 216 ++++++++++++----------- gfsphysics/GFS_layer/GFS_typedefs.meta | 16 +- 3 files changed, 123 insertions(+), 111 deletions(-) diff --git a/ccpp/physics b/ccpp/physics index 680c365db..5e990730c 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 680c365dbe4b660425b24198d743f4a7d6fa09e7 +Subproject commit 5e990730cbd83250e5fd6cc1853a38557a18aec7 diff --git a/gfsphysics/GFS_layer/GFS_diagnostics.F90 b/gfsphysics/GFS_layer/GFS_diagnostics.F90 index e62dbd290..ec0e26591 100644 --- a/gfsphysics/GFS_layer/GFS_diagnostics.F90 +++ b/gfsphysics/GFS_layer/GFS_diagnostics.F90 @@ -2235,7 +2235,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dt3dt_lw' - ExtDiag(idx)%desc = 'temperature change due to long wave radiation' + ExtDiag(idx)%desc = 'cumulative change in temperature due to long wave radiation' ExtDiag(idx)%unit = 'K' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2246,7 +2246,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dt3dt_sw' - ExtDiag(idx)%desc = 'temperature change due to short wave radiation' + ExtDiag(idx)%desc = 'cumulative change in temperature due to short wave radiation' ExtDiag(idx)%unit = 'K' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2257,7 +2257,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dt3dt_pbl' - ExtDiag(idx)%desc = 'temperature change due to pbl' + ExtDiag(idx)%desc = 'cumulative change in temperature due to PBL' ExtDiag(idx)%unit = 'K' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2268,7 +2268,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dt3dt_deepcnv' - ExtDiag(idx)%desc = 'temperature change due to deep convection' + ExtDiag(idx)%desc = 'cumulative change in temperature due to deep convection' ExtDiag(idx)%unit = 'K' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2278,8 +2278,8 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_shlwcnv' - ExtDiag(idx)%desc = 'temperature change due to shallow convection' + ExtDiag(idx)%name = 'dt3dt_shalcnv' + ExtDiag(idx)%desc = 'cumulative change in temperature due to shallow convection' ExtDiag(idx)%unit = 'K' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2289,8 +2289,8 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_microphy' - ExtDiag(idx)%desc = 'temperature change due to micro-physics' + ExtDiag(idx)%name = 'dt3dt_mp' + ExtDiag(idx)%desc = 'cumulative change in temperature due to microphysics' ExtDiag(idx)%unit = 'K' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2301,7 +2301,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dt3dt_orogwd' - ExtDiag(idx)%desc = 'temperature change due to orographic gravity wave drag' + ExtDiag(idx)%desc = 'cumulative change in temperature due to orographic gravity wave drag' ExtDiag(idx)%unit = 'K' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2312,7 +2312,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dt3dt_rdamp' - ExtDiag(idx)%desc = 'temperature change due to Rayleigh damping' + ExtDiag(idx)%desc = 'cumulative change in temperature due to Rayleigh damping' ExtDiag(idx)%unit = 'K' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2320,10 +2320,54 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,8) enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_cnvgwd' + ExtDiag(idx)%desc = 'cumulative change in temperature due to convective gravity wave drag' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,9) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_physics' + ExtDiag(idx)%desc = 'cumulative change in temperature due to physics' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,10) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_model' + ExtDiag(idx)%desc = 'cumulative change in temperature due to model w/o physics' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,11) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dt3dt_total' + ExtDiag(idx)%desc = 'total cumulative temperature change' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,12) + enddo + idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_pbl' - ExtDiag(idx)%desc = 'u wind change due to PBL' + ExtDiag(idx)%desc = 'cumulative change in u momentum due to PBL' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2334,7 +2378,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dv3dt_pbl' - ExtDiag(idx)%desc = 'v momentum change due to PBL' + ExtDiag(idx)%desc = 'cumulative change in v momentum due to PBL' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2345,7 +2389,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_orogwd' - ExtDiag(idx)%desc = 'u momentum change due to orographic gravity wave drag' + ExtDiag(idx)%desc = 'cumulative change in u momentum due to orographic gravity wave drag' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2356,7 +2400,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dv3dt_orogwd' - ExtDiag(idx)%desc = 'v momentum change due to orographic gravity wave drag' + ExtDiag(idx)%desc = 'cumulative change in v momentum due to orographic gravity wave drag' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2367,7 +2411,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_deepcnv' - ExtDiag(idx)%desc = 'u momentum change due to deep convection' + ExtDiag(idx)%desc = 'cumulative change in u momentum due to deep convection' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2378,7 +2422,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dv3dt_deepcnv' - ExtDiag(idx)%desc = 'v momentum change due to deep convection' + ExtDiag(idx)%desc = 'cumulative change in v momentum due to deep convection' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2389,7 +2433,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_cnvgwd' - ExtDiag(idx)%desc = 'u momentum change due to convective gravity wave drag' + ExtDiag(idx)%desc = 'cumulative change in u momentum due to convective gravity wave drag' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2400,7 +2444,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dv3dt_cnvgwd' - ExtDiag(idx)%desc = 'v momentum change due to convective gravity wave drag' + ExtDiag(idx)%desc = 'cumulative change in v momentum due to convective gravity wave drag' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2411,7 +2455,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_rdamp' - ExtDiag(idx)%desc = 'u momentum change due to Rayleigh damping' + ExtDiag(idx)%desc = 'cumulative change in u momentum due to Rayleigh damping' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2422,7 +2466,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dv3dt_damp' - ExtDiag(idx)%desc = 'v momentum change due to Rayleigh damping' + ExtDiag(idx)%desc = 'cumulative change in v momentum due to Rayleigh damping' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2433,8 +2477,8 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'du3dt_shlwcnv' - ExtDiag(idx)%desc = 'u momentum change due to shal conv.' + ExtDiag(idx)%name = 'du3dt_shalcnv' + ExtDiag(idx)%desc = 'cumulative change in u momentum due to shallow convection' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2444,8 +2488,8 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dv3dt_shlwcnv' - ExtDiag(idx)%desc = 'v momentum change due to shal conv.' + ExtDiag(idx)%name = 'dv3dt_shalcnv' + ExtDiag(idx)%desc = 'cumulative change in v momentum due to shallow convection' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2455,8 +2499,8 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'du3dt_ccpp' - ExtDiag(idx)%desc = 'cumulative change in x wind due to physics' + ExtDiag(idx)%name = 'du3dt_physics' + ExtDiag(idx)%desc = 'cumulative change in u momentum due to physics' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2466,8 +2510,8 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dv3dt_ccpp' - ExtDiag(idx)%desc = 'cumulative change in y wind due to physics' + ExtDiag(idx)%name = 'dv3dt_physics' + ExtDiag(idx)%desc = 'cumulative change in v momentum due to physics' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2478,7 +2522,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_model' - ExtDiag(idx)%desc = 'cumulative change in x wind due to model w/o physics' + ExtDiag(idx)%desc = 'cumulative change in u momentum due to model w/o physics' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2489,7 +2533,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dv3dt_model' - ExtDiag(idx)%desc = 'cumulative change in y wind due to model w/o physics' + ExtDiag(idx)%desc = 'cumulative change in v momentum due to model w/o physics' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2500,7 +2544,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_total' - ExtDiag(idx)%desc = 'cumulative change in x wind' + ExtDiag(idx)%desc = 'total cumulative u momentum change' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2511,7 +2555,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dv3dt_total' - ExtDiag(idx)%desc = 'cumulative change in y wind' + ExtDiag(idx)%desc = 'total cumulative v momentum change' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2519,74 +2563,8 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,9) enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_ccpp' - ExtDiag(idx)%desc = 'cumulative change in temperature due to physics' - ExtDiag(idx)%unit = 'K' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,10) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_model' - ExtDiag(idx)%desc = 'cumulative change in temperature due to model w/o physics' - ExtDiag(idx)%unit = 'K' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,11) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_total' - ExtDiag(idx)%desc = 'cumulative change in temperature' - ExtDiag(idx)%unit = 'K' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,12) - enddo - #ifdef CCPP if_qdiag3d: if(Model%qdiag3d) then - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_ccpp' - ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to physics' - ExtDiag(idx)%unit = 'kg kg-1' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,10) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_model' - ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to model w/o physics' - ExtDiag(idx)%unit = 'kg kg-1' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,11) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_total' - ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity' - ExtDiag(idx)%unit = 'kg kg-1' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,12) - enddo - idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dq3dt_pbl' @@ -2601,7 +2579,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dq3dt_deepcnv' - ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to deep conv.' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to deep convection' ExtDiag(idx)%unit = 'kg kg-1' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2611,8 +2589,8 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_shlwcnv' - ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to shal conv.' + ExtDiag(idx)%name = 'dq3dt_shalcnv' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to shallow convection' ExtDiag(idx)%unit = 'kg kg-1' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2622,7 +2600,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_microphy' + ExtDiag(idx)%name = 'dq3dt_mp' ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to microphysics' ExtDiag(idx)%unit = 'kg kg-1' ExtDiag(idx)%mod_name = 'gfs_phys' @@ -2686,6 +2664,40 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,9) enddo end if if_qdiag3d + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_physics' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to physics' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,10) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_model' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to model w/o physics' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,11) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_total' + ExtDiag(idx)%desc = 'total cumulative change in water vapor specific humidity' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,12) + enddo + #endif end if if_ldiag3d diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index af03a43f5..62c6a3938 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1969,25 +1969,25 @@ dimensions = () type = logical [flag_for_gwd_generic_tend] - standard_name = true_if_GFS_GWD_generic_should_calculate_tendencies + standard_name = flag_for_generic_gravity_wave_drag_tendency long_name = true if GFS_GWD_generic should calculate tendencies units = flag dimensions = () type = logical [flag_for_pbl_generic_tend] - standard_name = true_if_GFS_PBL_generic_should_calculate_tendencies + standard_name = flag_for_generic_planetary_boundary_layer_tendency long_name = true if GFS_PBL_generic should calculate tendencies units = flag dimensions = () type = logical [flag_for_dcnv_generic_tend] - standard_name = true_if_GFS_DCNV_generic_should_calculate_tendencies + standard_name = flag_for_generic_deep_convection_tendency long_name = true if GFS_DCNV_generic should calculate tendencies units = flag dimensions = () type = logical [flag_for_scnv_generic_tend] - standard_name = true_if_GFS_SCNV_generic_should_calculate_tendencies + standard_name = flag_for_generic_shallow_convection_tendency long_name = true if GFS_SCNV_generic should calculate tendencies units = flag dimensions = () @@ -5438,7 +5438,7 @@ type = real kind = kind_phys [du3dt(:,:,6)] - standard_name = cumulative_change_in_x_wind_due_to_shal_convection + standard_name = cumulative_change_in_x_wind_due_to_shallow_convection long_name = cumulative change in x wind due to shallow convection units = m s-1 dimensions = (horizontal_dimension,vertical_dimension) @@ -5501,7 +5501,7 @@ type = real kind = kind_phys [dv3dt(:,:,6)] - standard_name = cumulative_change_in_y_wind_due_to_shal_convection + standard_name = cumulative_change_in_y_wind_due_to_shallow_convection long_name = cumulative change in y wind due to shallow convection units = m s-1 dimensions = (horizontal_dimension,vertical_dimension) @@ -5557,7 +5557,7 @@ type = real kind = kind_phys [dt3dt(:,:,5)] - standard_name = cumulative_change_in_temperature_due_to_shal_convection + standard_name = cumulative_change_in_temperature_due_to_shallow_convection long_name = cumulative change in temperature due to shallow convection units = K dimensions = (horizontal_dimension,vertical_dimension) @@ -5627,7 +5627,7 @@ type = real kind = kind_phys [dq3dt(:,:,3)] - standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_shal_convection + standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_shallow_convection long_name = cumulative change in water vapor specific humidity due to shallow convection units = kg kg-1 dimensions = (horizontal_dimension,vertical_dimension) From 6608e4658899924670a009f6a85384145b0574f5 Mon Sep 17 00:00:00 2001 From: Joseph Olson Date: Fri, 17 Apr 2020 14:41:08 +0000 Subject: [PATCH 097/206] Updating MYNN-EDMF part II: fv3atm part --- gfsphysics/GFS_layer/GFS_diagnostics.F90 | 118 ++++++++++++++++++++++- gfsphysics/GFS_layer/GFS_typedefs.F90 | 69 +++++++++---- gfsphysics/GFS_layer/GFS_typedefs.meta | 57 ++++++++++- 3 files changed, 220 insertions(+), 24 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_diagnostics.F90 b/gfsphysics/GFS_layer/GFS_diagnostics.F90 index 25657f760..17e5fd945 100644 --- a/gfsphysics/GFS_layer/GFS_diagnostics.F90 +++ b/gfsphysics/GFS_layer/GFS_diagnostics.F90 @@ -3315,13 +3315,13 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop !idx = idx + 1 !ExtDiag(idx)%axes = 2 - !ExtDiag(idx)%name = 'ktop_shallow' + !ExtDiag(idx)%name = 'ktop_plume' !ExtDiag(idx)%desc = 'k-level of plume top' !ExtDiag(idx)%unit = 'n/a' !ExtDiag(idx)%mod_name = 'gfs_sfc' !allocate (ExtDiag(idx)%data(nblks)) !do nb = 1,nblks - ! ExtDiag(idx)%data(nb)%var2 => real(IntDiag(nb)%ktop_shallow(:),kind=kind_phys) + ! ExtDiag(idx)%data(nb)%var2 => real(IntDiag(nb)%ktop_plume(:),kind=kind_phys) !enddo idx = idx + 1 @@ -3426,6 +3426,120 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop do nb = 1,nblks ExtDiag(idx)%data(nb)%var3 => Tbd(nb)%QKE(:,:) enddo + + if (Model%bl_mynn_output > 0) then + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'edmf_a' + ExtDiag(idx)%desc = 'updraft area fraction (from mynn)' + ExtDiag(idx)%unit = '-' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_a(:,:) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'edmf_w' + ExtDiag(idx)%desc = 'mean updraft vertical veloctity (mynn)' + ExtDiag(idx)%unit = 'm s-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_w(:,:) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'edmf_qt' + ExtDiag(idx)%desc = 'updraft total water (from mynn)' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_qt(:,:) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'edmf_thl' + ExtDiag(idx)%desc = 'mean liquid potential temperature (mynn)' + ExtDiag(idx)%unit = 'K' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_thl(:,:) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'edmf_ent' + ExtDiag(idx)%desc = 'updraft entrainment rate (from mynn)' + ExtDiag(idx)%unit = 'm-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_ent(:,:) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'edmf_qc' + ExtDiag(idx)%desc = 'mean updraft liquid water (mynn)' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_qc(:,:) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'sub_thl' + ExtDiag(idx)%desc = 'subsidence temperature tendency (from mynn)' + ExtDiag(idx)%unit = 'K s-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%sub_thl(:,:) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'sub_sqv' + ExtDiag(idx)%desc = 'subsidence water vapor tendency (mynn)' + ExtDiag(idx)%unit = 'kg kg-1 s-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%sub_sqv(:,:) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'det_thl' + ExtDiag(idx)%desc = 'detrainment temperature tendency (from mynn)' + ExtDiag(idx)%unit = 'K s-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%det_thl(:,:) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'det_sqv' + ExtDiag(idx)%desc = 'detrainment water vapor tendency (mynn)' + ExtDiag(idx)%unit = 'kg kg-1 s-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%det_sqv(:,:) + enddo + + endif endif #endif diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index db70dd030..5d84bc978 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -130,6 +130,7 @@ module GFS_typedefs #ifdef CCPP !--- restart information logical :: restart !< flag whether this is a coldstart (.false.) or a warmstart/restart (.true.) + logical :: cycling !< flag whether this is a coldstart (.false.) or a cycled run (.true.) !--- hydrostatic/non-hydrostatic flag logical :: hydrostatic !< flag whether this is a hydrostatic or non-hydrostatic run #endif @@ -881,6 +882,7 @@ module GFS_typedefs integer :: bl_mynn_edmf_part !< flag to partitioning og the MF and ED areas integer :: bl_mynn_cloudmix !< flag to activate mixing of cloud species integer :: bl_mynn_mixqt !< flag to mix total water or individual species + integer :: bl_mynn_output !< flag to initialize and write out extra 3D arrays integer :: icloud_bl !< flag for coupling sgs clouds to radiation ! *DH ! MYJ switches @@ -1063,6 +1065,7 @@ module GFS_typedefs #ifdef CCPP logical :: first_time_step !< flag signaling first time step for time integration routine logical :: restart !< flag whether this is a coldstart (.false.) or a warmstart/restart (.true.) + logical :: cycling !< flag whether this is a coldstart (.false.) or a cycled run (.true.) logical :: hydrostatic !< flag whether this is a hydrostatic or non-hydrostatic run #endif integer :: jdat(1:8) !< current forecast date and time @@ -1221,6 +1224,7 @@ module GFS_typedefs !--- MYNN prognostic variables that can't be in the Intdiag or Interstitial DDTs real (kind=kind_phys), pointer :: CLDFRA_BL (:,:) => null() ! real (kind=kind_phys), pointer :: QC_BL (:,:) => null() ! + real (kind=kind_phys), pointer :: QI_BL (:,:) => null() ! real (kind=kind_phys), pointer :: el_pbl (:,:) => null() ! real (kind=kind_phys), pointer :: Sh3D (:,:) => null() ! real (kind=kind_phys), pointer :: qke (:,:) => null() ! @@ -1385,16 +1389,20 @@ module GFS_typedefs real (kind=kind_phys), pointer :: totgrpb(:) => null() !< accumulated graupel precipitation in bucket (kg/m2) #ifdef CCPP - !--- MYNN variables + !--- MYNN variables real (kind=kind_phys), pointer :: edmf_a (:,:) => null() ! real (kind=kind_phys), pointer :: edmf_w (:,:) => null() ! real (kind=kind_phys), pointer :: edmf_qt (:,:) => null() ! real (kind=kind_phys), pointer :: edmf_thl (:,:) => null() ! real (kind=kind_phys), pointer :: edmf_ent (:,:) => null() ! real (kind=kind_phys), pointer :: edmf_qc (:,:) => null() ! + real (kind=kind_phys), pointer :: sub_thl (:,:) => null() ! + real (kind=kind_phys), pointer :: sub_sqv (:,:) => null() ! + real (kind=kind_phys), pointer :: det_thl (:,:) => null() ! + real (kind=kind_phys), pointer :: det_sqv (:,:) => null() ! real (kind=kind_phys), pointer :: maxMF (:) => null() ! integer, pointer :: nupdraft (:) => null() ! - integer, pointer :: ktop_shallow (:) => null() ! + integer, pointer :: ktop_plume (:) => null() ! real (kind=kind_phys), pointer :: exch_h (:,:) => null() ! real (kind=kind_phys), pointer :: exch_m (:,:) => null() ! @@ -2734,6 +2742,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & logical :: ldiag3d = .false. !< flag for 3d diagnostic fields logical :: lssav = .false. !< logical flag for storing diagnostics + logical :: cycling = .false. !< flag to activate extra cycling procedures real(kind=kind_phys) :: fhcyc = 0. !< frequency for surface data cycling (hours) integer :: thermodyn_id = 1 !< valid for GFS only for get_prs/phi integer :: sfcpress_id = 1 !< valid for GFS only for get_prs/phi @@ -2962,6 +2971,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & integer :: bl_mynn_edmf_part = 0 integer :: bl_mynn_cloudmix = 1 integer :: bl_mynn_mixqt = 0 + integer :: bl_mynn_output = 0 integer :: icloud_bl = 1 ! *DH logical :: do_myjsfc = .false. !< flag for MYJ surface layer scheme @@ -3160,7 +3170,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & ! DH* TODO - move to MYNN namelist section bl_mynn_cloudpdf, bl_mynn_edmf, bl_mynn_edmf_mom, & bl_mynn_edmf_tke, bl_mynn_edmf_part, bl_mynn_cloudmix, & - bl_mynn_mixqt, icloud_bl, bl_mynn_tkeadvect, gwd_opt, & + bl_mynn_mixqt, bl_mynn_output, icloud_bl, bl_mynn_tkeadvect, & + gwd_opt, & ! *DH do_myjsfc, do_myjpbl, & #endif @@ -3588,6 +3599,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%bl_mynn_edmf_tke = bl_mynn_edmf_tke Model%bl_mynn_cloudmix = bl_mynn_cloudmix Model%bl_mynn_mixqt = bl_mynn_mixqt + Model%bl_mynn_output = bl_mynn_output Model%bl_mynn_edmf_part = bl_mynn_edmf_part Model%bl_mynn_tkeadvect = bl_mynn_tkeadvect Model%grav_settling = grav_settling @@ -3833,6 +3845,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & #ifdef CCPP Model%first_time_step = .true. Model%restart = restart + Model%cycling = cycling Model%hydrostatic = hydrostatic #endif Model%jdat(1:8) = jdat(1:8) @@ -3941,7 +3954,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & ' boundary layer turbulence and shallow convection', & ' bl_mynn_cloudpdf=',Model%bl_mynn_cloudpdf, & ' bl_mynn_mixlength=',Model%bl_mynn_mixlength, & - ' bl_mynn_edmf=',Model%bl_mynn_edmf + ' bl_mynn_edmf=',Model%bl_mynn_edmf, & + ' bl_mynn_output=',Model%bl_mynn_output endif #endif @@ -4749,6 +4763,7 @@ subroutine control_print(Model) print *, ' si : ', Model%si print *, ' first_time_step : ', Model%first_time_step print *, ' restart : ', Model%restart + print *, ' cycling : ', Model%cycling print *, ' hydrostatic : ', Model%hydrostatic #endif endif @@ -4954,6 +4969,7 @@ subroutine tbd_create (Tbd, IM, Model) !print*,"Allocating all MYNN-EDMF variables:" allocate (Tbd%cldfra_bl (IM,Model%levs)) allocate (Tbd%qc_bl (IM,Model%levs)) + allocate (Tbd%qi_bl (IM,Model%levs)) allocate (Tbd%el_pbl (IM,Model%levs)) allocate (Tbd%sh3d (IM,Model%levs)) allocate (Tbd%qke (IM,Model%levs)) @@ -4963,6 +4979,7 @@ subroutine tbd_create (Tbd, IM, Model) !print*,"Allocating all MYNN-EDMF variables:" Tbd%cldfra_bl = clear_val Tbd%qc_bl = clear_val + Tbd%qi_bl = clear_val Tbd%el_pbl = clear_val Tbd%sh3d = clear_val Tbd%qke = zero @@ -5302,28 +5319,40 @@ subroutine diag_create (Diag, IM, Model) #ifdef CCPP !--- MYNN variables: if (Model%do_mynnedmf) then - !print*,"Allocating all MYNN-EDMF variables:" - allocate (Diag%edmf_a (IM,Model%levs)) - allocate (Diag%edmf_w (IM,Model%levs)) - allocate (Diag%edmf_qt (IM,Model%levs)) - allocate (Diag%edmf_thl (IM,Model%levs)) - allocate (Diag%edmf_ent (IM,Model%levs)) - allocate (Diag%edmf_qc (IM,Model%levs)) + if (Model%bl_mynn_output .ne. 0) then + !print*,"Allocating all MYNN-EDMF variables:" + allocate (Diag%edmf_a (IM,Model%levs)) + allocate (Diag%edmf_w (IM,Model%levs)) + allocate (Diag%edmf_qt (IM,Model%levs)) + allocate (Diag%edmf_thl (IM,Model%levs)) + allocate (Diag%edmf_ent (IM,Model%levs)) + allocate (Diag%edmf_qc (IM,Model%levs)) + allocate (Diag%sub_thl (IM,Model%levs)) + allocate (Diag%sub_sqv (IM,Model%levs)) + allocate (Diag%det_thl (IM,Model%levs)) + allocate (Diag%det_sqv (IM,Model%levs)) + endif allocate (Diag%nupdraft (IM)) allocate (Diag%maxmf (IM)) - allocate (Diag%ktop_shallow(IM)) + allocate (Diag%ktop_plume(IM)) allocate (Diag%exch_h (IM,Model%levs)) allocate (Diag%exch_m (IM,Model%levs)) - !print*,"Initializing all MYNN-EDMF variables with ",clear_val - Diag%edmf_a = clear_val - Diag%edmf_w = clear_val - Diag%edmf_qt = clear_val - Diag%edmf_thl = clear_val - Diag%edmf_ent = clear_val - Diag%edmf_qc = clear_val + if (Model%bl_mynn_output .ne. 0) then + !print*,"Initializing all MYNN-EDMF variables with ",clear_val + Diag%edmf_a = clear_val + Diag%edmf_w = clear_val + Diag%edmf_qt = clear_val + Diag%edmf_thl = clear_val + Diag%edmf_ent = clear_val + Diag%edmf_qc = clear_val + Diag%sub_thl = clear_val + Diag%sub_sqv = clear_val + Diag%det_thl = clear_val + Diag%det_sqv = clear_val + endif Diag%nupdraft = 0 Diag%maxmf = clear_val - Diag%ktop_shallow = 0 + Diag%ktop_plume = 0 Diag%exch_h = clear_val Diag%exch_m = clear_val endif diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 1c3011902..3a1571a0d 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -3822,6 +3822,12 @@ units = flag dimensions = () type = logical +[cycling] + standard_name = flag_for_cycling + long_name = flag for cycling or coldstart + units = flag + dimensions = () + type = logical [hydrostatic] standard_name = flag_for_hydrostatic_solver long_name = flag for hydrostatic solver from dynamics @@ -3997,6 +4003,12 @@ units = flag dimensions = () type = integer +[bl_mynn_output] + standard_name = mynn_output_flag + long_name = flag initialize and output extra 3D variables + units = flag + dimensions = () + type = integer [icloud_bl] standard_name = couple_sgs_clouds_to_radiation_flag long_name = flag for coupling sgs clouds to radiation @@ -4410,8 +4422,15 @@ type = real kind = kind_phys [QC_BL] - standard_name = subgrid_cloud_mixing_ratio_pbl - long_name = subgrid cloud cloud mixing ratio from PBL scheme + standard_name = subgrid_cloud_water_mixing_ratio_pbl + long_name = subgrid cloud water mixing ratio from PBL scheme + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[QI_BL] + standard_name = subgrid_cloud_ice_mixing_ratio_pbl + long_name = subgrid cloud ice mixing ratio from PBL scheme units = kg kg-1 dimensions = (horizontal_dimension,vertical_dimension) type = real @@ -5726,6 +5745,34 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[sub_thl] + standard_name = theta_subsidence_tendency + long_name = updraft theta subsidence tendency + units = K s-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[sub_sqv] + standard_name = water_vapor_subsidence_tendency + long_name = updraft water vapor subsidence tendency + units = kg kg-1 s-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[det_thl] + standard_name = theta_detrainment_tendency + long_name = updraft theta detrainment tendency + units = K s-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[det_sqv] + standard_name = water_vapor_detrainment_tendency + long_name = updraft water vapor detrainment tendency + units = kg kg-1 s-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [nupdraft] standard_name = number_of_plumes long_name = number of plumes per grid column @@ -5745,6 +5792,12 @@ units = count dimensions = (horizontal_dimension) type = integer +[ktop_plume] + standard_name = k_level_of_highest_plume + long_name = k-level of highest plume + units = count + dimensions = (horizontal_dimension) + type = integer [exch_h] standard_name = atmosphere_heat_diffusivity_for_mynnpbl long_name = diffusivity for heat for MYNN PBL (defined for all mass levels) From 00953fd92bf8b9a1b02d38abee823c8ddec677eb Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 17 Apr 2020 17:01:06 -0600 Subject: [PATCH 098/206] Calculate non-physics tendencies in atmos_model.F90, configure output of individual physics tendencies, combined physics tendencies and non-physics tendencies --- atmos_model.F90 | 38 ++++++++++++- ccpp/config/ccpp_prebuild_config.py | 1 + ccpp/physics | 2 +- ccpp/suites/suite_FV3_GSD_v0.xml | 1 + gfsphysics/GFS_layer/GFS_diagnostics.F90 | 72 ++++++++---------------- gfsphysics/GFS_layer/GFS_typedefs.F90 | 9 ++- gfsphysics/GFS_layer/GFS_typedefs.meta | 48 ++++++---------- 7 files changed, 85 insertions(+), 86 deletions(-) diff --git a/atmos_model.F90 b/atmos_model.F90 index e8cc8b832..70c27fa83 100644 --- a/atmos_model.F90 +++ b/atmos_model.F90 @@ -278,6 +278,28 @@ subroutine update_atmos_radiation_physics (Atmos) call atmos_phys_driver_statein (IPD_data, Atm_block, flip_vc) call mpp_clock_end(getClock) + ! Calculate total non-physics tendencies by substracting old IPD Stateout + ! variables from new/updated IPD Statein variables (gives the tendencies + ! due to anything else than physics) + if (IPD_Control%ldiag3d) then + do nb = 1,Atm_block%nblks + IPD_Data(nb)%Intdiag%du3dt(:,:,8) = IPD_Data(nb)%Intdiag%du3dt(:,:,8) & + + (IPD_Data(nb)%Statein%ugrs - IPD_Data(nb)%Stateout%gu0) + IPD_Data(nb)%Intdiag%dv3dt(:,:,8) = IPD_Data(nb)%Intdiag%dv3dt(:,:,8) & + + (IPD_Data(nb)%Statein%vgrs - IPD_Data(nb)%Stateout%gv0) + IPD_Data(nb)%Intdiag%dt3dt(:,:,11) = IPD_Data(nb)%Intdiag%dt3dt(:,:,11) & + + (IPD_Data(nb)%Statein%tgrs - IPD_Data(nb)%Stateout%gt0) + enddo + if (IPD_Control%qdiag3d) then + do nb = 1,Atm_block%nblks + IPD_Data(nb)%Intdiag%dq3dt(:,:,12) = IPD_Data(nb)%Intdiag%dq3dt(:,:,12) & + + (IPD_Data(nb)%Statein%qgrs(:,:,IPD_Control%ntqv) - IPD_Data(nb)%Stateout%gq0(:,:,IPD_Control%ntqv)) + IPD_Data(nb)%Intdiag%dq3dt(:,:,13) = IPD_Data(nb)%Intdiag%dq3dt(:,:,13) & + + (IPD_Data(nb)%Statein%qgrs(:,:,IPD_Control%ntoz) - IPD_Data(nb)%Stateout%gq0(:,:,IPD_Control%ntoz)) + enddo + endif + endif + !--- if dycore only run, set up the dummy physics output state as the input state if (dycore_only) then do nb = 1,Atm_block%nblks @@ -461,7 +483,7 @@ subroutine atmos_model_init (Atmos, Time_init, Time, Time_step) integer :: bdat(8), cdat(8) integer :: ntracers, maxhf, maxh character(len=32), allocatable, target :: tracer_names(:) - integer :: nthrds + integer :: nthrds, nb !----------------------------------------------------------------------- @@ -678,10 +700,22 @@ subroutine atmos_model_init (Atmos, Time_init, Time, Time_step) call FV3GFS_restart_read (IPD_Data, IPD_Restart, Atm_block, IPD_Control, Atmos%domain) #endif -#ifdef CCPP ! Populate the IPD_Data%Statein container with the prognostic state ! in Atm_block, which contains the initial conditions/restart data. call atmos_phys_driver_statein (IPD_data, Atm_block, flip_vc) + + ! When asked to calculate 3-dim. tendencies, set Stateout variables to + ! Statein variables here in order to capture the first call to dycore + if (IPD_Control%ldiag3d) then + do nb = 1,Atm_block%nblks + IPD_Data(nb)%Stateout%gu0 = IPD_Data(nb)%Statein%ugrs + IPD_Data(nb)%Stateout%gv0 = IPD_Data(nb)%Statein%vgrs + IPD_Data(nb)%Stateout%gt0 = IPD_Data(nb)%Statein%tgrs + IPD_Data(nb)%Stateout%gq0 = IPD_Data(nb)%Statein%qgrs + enddo + endif + +#ifdef CCPP ! Initialize the CCPP framework call CCPP_step (step="init", nblks=Atm_block%nblks, ierr=ierr) if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP init step failed') diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 46d6872d9..c3402bcdd 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -217,6 +217,7 @@ 'FV3/ccpp/physics/physics/ozphys.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/ozphys_2015.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/precpd.f' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/phys_tend.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/radlw_main.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/radsw_main.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/rayleigh_damp.f' : [ 'slow_physics' ], diff --git a/ccpp/physics b/ccpp/physics index 5e990730c..43f107ca3 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 5e990730cbd83250e5fd6cc1853a38557a18aec7 +Subproject commit 43f107ca315d9c021d2cebdd035e931638a36e53 diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index fb4b13546..9a63c666c 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -83,6 +83,7 @@ GFS_MP_generic_post cu_gf_driver_post maximum_hourly_diagnostics + phys_tend diff --git a/gfsphysics/GFS_layer/GFS_diagnostics.F90 b/gfsphysics/GFS_layer/GFS_diagnostics.F90 index ec0e26591..9733b8b32 100644 --- a/gfsphysics/GFS_layer/GFS_diagnostics.F90 +++ b/gfsphysics/GFS_layer/GFS_diagnostics.F90 @@ -2333,7 +2333,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_physics' + ExtDiag(idx)%name = 'dt3dt_phys' ExtDiag(idx)%desc = 'cumulative change in temperature due to physics' ExtDiag(idx)%unit = 'K' ExtDiag(idx)%mod_name = 'gfs_phys' @@ -2344,8 +2344,8 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_model' - ExtDiag(idx)%desc = 'cumulative change in temperature due to model w/o physics' + ExtDiag(idx)%name = 'dt3dt_nophys' + ExtDiag(idx)%desc = 'cumulative change in temperature due to non-physics processes' ExtDiag(idx)%unit = 'K' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2353,17 +2353,6 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,11) enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_total' - ExtDiag(idx)%desc = 'total cumulative temperature change' - ExtDiag(idx)%unit = 'K' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dt3dt(:,:,12) - enddo - idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_pbl' @@ -2499,7 +2488,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'du3dt_physics' + ExtDiag(idx)%name = 'du3dt_phys' ExtDiag(idx)%desc = 'cumulative change in u momentum due to physics' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' @@ -2510,7 +2499,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dv3dt_physics' + ExtDiag(idx)%name = 'dv3dt_phys' ExtDiag(idx)%desc = 'cumulative change in v momentum due to physics' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' @@ -2521,8 +2510,8 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'du3dt_model' - ExtDiag(idx)%desc = 'cumulative change in u momentum due to model w/o physics' + ExtDiag(idx)%name = 'du3dt_nophys' + ExtDiag(idx)%desc = 'cumulative change in u momentum due to non-physics processes' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2532,8 +2521,8 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dv3dt_model' - ExtDiag(idx)%desc = 'cumulative change in v momentum due to model w/o physics' + ExtDiag(idx)%name = 'dv3dt_nophys' + ExtDiag(idx)%desc = 'cumulative change in v momentum due to non-physics processes' ExtDiag(idx)%unit = 'm/s' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2541,28 +2530,6 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,8) enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'du3dt_total' - ExtDiag(idx)%desc = 'total cumulative u momentum change' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%du3dt(:,:,9) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dv3dt_total' - ExtDiag(idx)%desc = 'total cumulative v momentum change' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dv3dt(:,:,9) - enddo - #ifdef CCPP if_qdiag3d: if(Model%qdiag3d) then idx = idx + 1 @@ -2667,7 +2634,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_physics' + ExtDiag(idx)%name = 'dq3dt_phys' ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to physics' ExtDiag(idx)%unit = 'kg kg-1' ExtDiag(idx)%mod_name = 'gfs_phys' @@ -2678,8 +2645,8 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_model' - ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to model w/o physics' + ExtDiag(idx)%name = 'dq3dt_o3phys' + ExtDiag(idx)%desc = 'cumulative change in ozone concentration due to physics' ExtDiag(idx)%unit = 'kg kg-1' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2689,8 +2656,8 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop idx = idx + 1 ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dq3dt_total' - ExtDiag(idx)%desc = 'total cumulative change in water vapor specific humidity' + ExtDiag(idx)%name = 'dq3dt_nophys' + ExtDiag(idx)%desc = 'cumulative change in water vapor specific humidity due to non-physics processes' ExtDiag(idx)%unit = 'kg kg-1' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) @@ -2698,6 +2665,17 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,12) enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'dq3dt_o3nophys' + ExtDiag(idx)%desc = 'cumulative change in ozone concentration due to non-physics processes' + ExtDiag(idx)%unit = 'kg kg-1' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%dq3dt(:,:,13) + enddo + #endif end if if_ldiag3d diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index ee951fbcf..81c86c838 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -5260,13 +5260,12 @@ subroutine diag_create (Diag, IM, Model) !--- 3D diagnostics if (Model%ldiag3d) then - allocate (Diag%du3dt (IM,Model%levs,9)) - allocate (Diag%dv3dt (IM,Model%levs,9)) - allocate (Diag%dt3dt (IM,Model%levs,12)) + allocate (Diag%du3dt (IM,Model%levs,8)) + allocate (Diag%dv3dt (IM,Model%levs,8)) + allocate (Diag%dt3dt (IM,Model%levs,11)) if (Model%qdiag3d) then - allocate (Diag%dq3dt (IM,Model%levs,12)) + allocate (Diag%dq3dt (IM,Model%levs,13)) endif - Diag%tend_book=0 ! allocate (Diag%dq3dt (IM,Model%levs,oz_coeff+5)) !--- needed to allocate GoCart coupling fields ! allocate (Diag%upd_mf (IM,Model%levs)) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 62c6a3938..4ebf4633b 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -5452,15 +5452,8 @@ type = real kind = kind_phys [du3dt(:,:,8)] - standard_name = cumulative_change_in_x_wind_due_to_model_without_physics - long_name = cumulative change in x wind due to model without physics - units = m s-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys -[du3dt(:,:,9)] - standard_name = cumulative_change_in_x_wind - long_name = cumulative change in x wind + standard_name = cumulative_change_in_x_wind_due_to_non_physics_processes + long_name = cumulative change in x wind due to non-physics processes units = m s-1 dimensions = (horizontal_dimension,vertical_dimension) type = real @@ -5515,15 +5508,8 @@ type = real kind = kind_phys [dv3dt(:,:,8)] - standard_name = cumulative_change_in_y_wind_due_to_model_without_physics - long_name = cumulative change in y wind due to model without physics - units = m s-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys -[dv3dt(:,:,9)] - standard_name = cumulative_change_in_y_wind - long_name = cumulative change in y wind + standard_name = cumulative_change_in_y_wind_due_to_non_physics_processes + long_name = cumulative change in y wind due to non-physics processes units = m s-1 dimensions = (horizontal_dimension,vertical_dimension) type = real @@ -5599,15 +5585,8 @@ type = real kind = kind_phys [dt3dt(:,:,11)] - standard_name = cumulative_change_in_temperature_due_to_model_without_physics - long_name = cumulative change in temperature due to model without physics - units = K - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys -[dt3dt(:,:,12)] - standard_name = cumulative_change_in_temperature - long_name = cumulative change in temperature + standard_name = cumulative_change_in_temperature_due_to_non_physics_processes + long_name = cumulative change in temperature due to non-physics processed units = K dimensions = (horizontal_dimension,vertical_dimension) type = real @@ -5683,15 +5662,22 @@ type = real kind = kind_phys [dq3dt(:,:,11)] - standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_model_without_physics - long_name = cumulative change in water vapor specific humidity due to model without physics + standard_name = cumulative_change_in_ozone_concentration_due_to_physics + long_name = cumulative change in ozone concentration due to physics units = kg kg-1 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys [dq3dt(:,:,12)] - standard_name = cumulative_change_in_water_vapor_specific_humidity - long_name = cumulative change in water vapor specific humidity + standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_non_physics_processes + long_name = cumulative change in water vapor specific humidity due to non-physics processes + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys +[dq3dt(:,:,13)] + standard_name = cumulative_change_in_ozone_concentration_due_to_non_physics_processes + long_name = cumulative change in ozone_concentration due to non-physics processes units = kg kg-1 dimensions = (horizontal_dimension,vertical_dimension) type = real From 2f781453b02a6bec77c67a2eae9dda20e7a62b13 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 17 Apr 2020 17:15:01 -0600 Subject: [PATCH 099/206] gfsphysics/GFS_layer/GFS_typedefs.F90: qdiag3d requires ldiag3d --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 81c86c838..f1d02c8f8 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -3270,6 +3270,10 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%fhzero = fhzero Model%ldiag3d = ldiag3d Model%qdiag3d = qdiag3d + if (Model%qdiag3d .and. .not. Model%ldiag3d) then + write(0,*) 'Logic error in GFS_typedefs.F90: qdiag3d requires ldiag3d' + stop + endif Model%flag_for_gwd_generic_tend = .true. Model%flag_for_pbl_generic_tend = .true. Model%flag_for_scnv_generic_tend = .true. From 9406b7a26fb7d08f07a85c6ea863dde33bb1a103 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 17 Apr 2020 19:43:33 -0600 Subject: [PATCH 100/206] Calculate non-physics tendencies before radiation, and physics tendencies at the end of stochstastic_physics --- atmos_model.F90 | 44 ++++++++++++++++---------------- ccpp/suites/suite_FV3_GSD_v0.xml | 2 +- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/atmos_model.F90 b/atmos_model.F90 index 70c27fa83..d32077bed 100644 --- a/atmos_model.F90 +++ b/atmos_model.F90 @@ -278,28 +278,6 @@ subroutine update_atmos_radiation_physics (Atmos) call atmos_phys_driver_statein (IPD_data, Atm_block, flip_vc) call mpp_clock_end(getClock) - ! Calculate total non-physics tendencies by substracting old IPD Stateout - ! variables from new/updated IPD Statein variables (gives the tendencies - ! due to anything else than physics) - if (IPD_Control%ldiag3d) then - do nb = 1,Atm_block%nblks - IPD_Data(nb)%Intdiag%du3dt(:,:,8) = IPD_Data(nb)%Intdiag%du3dt(:,:,8) & - + (IPD_Data(nb)%Statein%ugrs - IPD_Data(nb)%Stateout%gu0) - IPD_Data(nb)%Intdiag%dv3dt(:,:,8) = IPD_Data(nb)%Intdiag%dv3dt(:,:,8) & - + (IPD_Data(nb)%Statein%vgrs - IPD_Data(nb)%Stateout%gv0) - IPD_Data(nb)%Intdiag%dt3dt(:,:,11) = IPD_Data(nb)%Intdiag%dt3dt(:,:,11) & - + (IPD_Data(nb)%Statein%tgrs - IPD_Data(nb)%Stateout%gt0) - enddo - if (IPD_Control%qdiag3d) then - do nb = 1,Atm_block%nblks - IPD_Data(nb)%Intdiag%dq3dt(:,:,12) = IPD_Data(nb)%Intdiag%dq3dt(:,:,12) & - + (IPD_Data(nb)%Statein%qgrs(:,:,IPD_Control%ntqv) - IPD_Data(nb)%Stateout%gq0(:,:,IPD_Control%ntqv)) - IPD_Data(nb)%Intdiag%dq3dt(:,:,13) = IPD_Data(nb)%Intdiag%dq3dt(:,:,13) & - + (IPD_Data(nb)%Statein%qgrs(:,:,IPD_Control%ntoz) - IPD_Data(nb)%Stateout%gq0(:,:,IPD_Control%ntoz)) - enddo - endif - endif - !--- if dycore only run, set up the dummy physics output state as the input state if (dycore_only) then do nb = 1,Atm_block%nblks @@ -353,6 +331,28 @@ subroutine update_atmos_radiation_physics (Atmos) ! print *,'in atmos_model, after assign_importdata, rc=',rc endif + ! Calculate total non-physics tendencies by substracting old IPD Stateout + ! variables from new/updated IPD Statein variables (gives the tendencies + ! due to anything else than physics) + if (IPD_Control%ldiag3d) then + do nb = 1,Atm_block%nblks + IPD_Data(nb)%Intdiag%du3dt(:,:,8) = IPD_Data(nb)%Intdiag%du3dt(:,:,8) & + + (IPD_Data(nb)%Statein%ugrs - IPD_Data(nb)%Stateout%gu0) + IPD_Data(nb)%Intdiag%dv3dt(:,:,8) = IPD_Data(nb)%Intdiag%dv3dt(:,:,8) & + + (IPD_Data(nb)%Statein%vgrs - IPD_Data(nb)%Stateout%gv0) + IPD_Data(nb)%Intdiag%dt3dt(:,:,11) = IPD_Data(nb)%Intdiag%dt3dt(:,:,11) & + + (IPD_Data(nb)%Statein%tgrs - IPD_Data(nb)%Stateout%gt0) + enddo + if (IPD_Control%qdiag3d) then + do nb = 1,Atm_block%nblks + IPD_Data(nb)%Intdiag%dq3dt(:,:,12) = IPD_Data(nb)%Intdiag%dq3dt(:,:,12) & + + (IPD_Data(nb)%Statein%qgrs(:,:,IPD_Control%ntqv) - IPD_Data(nb)%Stateout%gq0(:,:,IPD_Control%ntqv)) + IPD_Data(nb)%Intdiag%dq3dt(:,:,13) = IPD_Data(nb)%Intdiag%dq3dt(:,:,13) & + + (IPD_Data(nb)%Statein%qgrs(:,:,IPD_Control%ntoz) - IPD_Data(nb)%Stateout%gq0(:,:,IPD_Control%ntoz)) + enddo + endif + endif + call mpp_clock_end(setupClock) if (mpp_pe() == mpp_root_pe() .and. debug) write(6,*) "radiation driver" diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index 9a63c666c..4dc4bd213 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -83,12 +83,12 @@ GFS_MP_generic_post cu_gf_driver_post maximum_hourly_diagnostics - phys_tend GFS_stochastics + phys_tend From ab8d4dd40c8b7034ec17fd7884e21cc546e97a05 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 20 Apr 2020 15:56:56 -0600 Subject: [PATCH 101/206] Add physics tendency summation scheme to FV3_GFS_v15p2 and FV3_GFS_v16beta --- ccpp/suites/suite_FV3_GFS_v15p2.xml | 1 + ccpp/suites/suite_FV3_GFS_v16beta.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/ccpp/suites/suite_FV3_GFS_v15p2.xml b/ccpp/suites/suite_FV3_GFS_v15p2.xml index 1ab234105..96c430e06 100644 --- a/ccpp/suites/suite_FV3_GFS_v15p2.xml +++ b/ccpp/suites/suite_FV3_GFS_v15p2.xml @@ -88,6 +88,7 @@ GFS_stochastics + phys_tend diff --git a/ccpp/suites/suite_FV3_GFS_v16beta.xml b/ccpp/suites/suite_FV3_GFS_v16beta.xml index 8571ec1b4..62e78afe9 100644 --- a/ccpp/suites/suite_FV3_GFS_v16beta.xml +++ b/ccpp/suites/suite_FV3_GFS_v16beta.xml @@ -88,6 +88,7 @@ GFS_stochastics + phys_tend From ab8e41bb4b052ad696e52ca0b8c5e4de17020fa1 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 21 Apr 2020 07:33:24 -0600 Subject: [PATCH 102/206] gfsphysics/GFS_layer/GFS_typedefs.F90: bugfix, neet ntqv index for IPD --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index f1d02c8f8..dc83c03af 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -996,9 +996,9 @@ module GFS_typedefs integer :: ntrac !< number of tracers #ifdef CCPP integer :: ntracp1 !< number of tracers plus one - integer :: ntqv !< tracer index for water vapor (specific humidity) integer :: nqrimef !< tracer index for mass weighted rime factor #endif + integer :: ntqv !< tracer index for water vapor (specific humidity) integer :: ntoz !< tracer index for ozone mixing ratio integer :: ntcw !< tracer index for cloud condensate (or liquid water) integer :: ntiw !< tracer index for ice water @@ -3755,9 +3755,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & #endif allocate (Model%tracer_names(Model%ntrac)) Model%tracer_names(:) = tracer_names(:) -#ifdef CCPP Model%ntqv = 1 -#endif #ifdef MULTI_GASES Model%nto = get_tracer_index(Model%tracer_names, 'spfo', Model%me, Model%master, Model%debug) Model%nto2 = get_tracer_index(Model%tracer_names, 'spfo2', Model%me, Model%master, Model%debug) @@ -4743,9 +4741,9 @@ subroutine control_print(Model) print *, ' tracer_names : ', Model%tracer_names print *, ' ntrac : ', Model%ntrac #ifdef CCPP - print *, ' ntqv : ', Model%ntqv print *, ' nqrimef : ', Model%nqrimef #endif + print *, ' ntqv : ', Model%ntqv print *, ' ntoz : ', Model%ntoz print *, ' ntcw : ', Model%ntcw print *, ' ntiw : ', Model%ntiw From 13928aa7b7f6b92f8e5a297cf8f3447345d71722 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 22 Apr 2020 14:05:21 -0600 Subject: [PATCH 103/206] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index da30da663..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/climbfuji/ccpp-physics - branch = tendencies_sam_with_dom_mods + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index 43f107ca3..314c5f59c 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 43f107ca315d9c021d2cebdd035e931638a36e53 +Subproject commit 314c5f59c81a194e68724d5202c25cd8bf17d1e4 From 893d935472ec82cf5f32461890cbeea4e0719e48 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 24 Apr 2020 14:07:02 -0600 Subject: [PATCH 104/206] Add host model variables and metadata to output auxiliary 2d/3d data from CCPP --- gfsphysics/GFS_layer/GFS_diagnostics.F90 | 34 +++++++++ gfsphysics/GFS_layer/GFS_typedefs.F90 | 96 +++++++++++++++++++++++- gfsphysics/GFS_layer/GFS_typedefs.meta | 26 +++++++ 3 files changed, 155 insertions(+), 1 deletion(-) diff --git a/gfsphysics/GFS_layer/GFS_diagnostics.F90 b/gfsphysics/GFS_layer/GFS_diagnostics.F90 index 9733b8b32..8bcc0248e 100644 --- a/gfsphysics/GFS_layer/GFS_diagnostics.F90 +++ b/gfsphysics/GFS_layer/GFS_diagnostics.F90 @@ -3910,6 +3910,40 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop !rab ExtDiag(idx)%unit = 'kg/kg/s' !rab ExtDiag(idx)%mod_name = 'gfs_phys' + ! Auxiliary 2d arrays to output (for debugging) + do num=1,Model%naux2d + write (xtra,'(I2.2)') num + idx = idx + 1 + ExtDiag(idx)%axes = 2 + ExtDiag(idx)%name = 'aux2d_'//trim(xtra) + ExtDiag(idx)%desc = 'auxiliary 2d array '//trim(xtra) + ExtDiag(idx)%unit = 'unknown' + ExtDiag(idx)%mod_name = 'gfs_phys' + ExtDiag(idx)%intpl_method = 'bilinear' + ExtDiag(idx)%time_avg = Model%aux2d_time_avg(num) + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var2 => IntDiag(nb)%aux2d(:,num) + enddo + enddo + + ! Auxiliary 3d arrays to output (for debugging) + do num=1,Model%naux3d + write (xtra,'(I2.2)') num + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'aux3d_'//trim(xtra) + ExtDiag(idx)%desc = 'auxiliary 3d array '//trim(xtra) + ExtDiag(idx)%unit = 'unknown' + ExtDiag(idx)%mod_name = 'gfs_phys' + ExtDiag(idx)%intpl_method = 'bilinear' + ExtDiag(idx)%time_avg = Model%aux3d_time_avg(num) + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%aux3d(:,:,num) + enddo + enddo + end subroutine GFS_externaldiag_populate #ifdef CCPP diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index dc83c03af..6a2b55173 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -45,6 +45,9 @@ module GFS_typedefs private :: levozp, oz_coeff, levh2o, h2o_coeff, ntrcaer integer :: levozp, oz_coeff, levh2o, h2o_coeff, ntrcaer #endif + ! If these are changed to >99, need to adjust formatting string in GFS_diagnostics.F90 (and names in diag_tables) + integer, parameter :: naux2dmax = 20 !< maximum number of auxiliary 2d arrays in output (for debugging) + integer, parameter :: naux3dmax = 20 !< maximum number of auxiliary 3d arrays in output (for debugging) !> \section arg_table_GFS_typedefs !! \htmlinclude GFS_typedefs.html @@ -555,6 +558,15 @@ module GFS_typedefs logical :: flag_for_scnv_generic_tend !< true if GFS_DCNV_generic should calculate tendencies logical :: flag_for_dcnv_generic_tend !< true if GFS_DCNV_generic should calculate tendencies logical :: lssav !< logical flag for storing diagnostics + integer :: naux2d !< number of auxiliary 2d arrays to output (for debugging) + integer :: naux3d !< number of auxiliary 3d arrays to output (for debugging) + logical, pointer :: aux2d_time_avg(:) !< flags for time averaging of auxiliary 2d arrays + logical, pointer :: aux3d_time_avg(:) !< flags for time averaging of auxiliary 3d arrays + logical, pointer :: aux2d_rad_reset(:) !< flags for resettig auxiliary 2d arrays when radiation diags are reset + logical, pointer :: aux3d_rad_reset(:) !< flags for resettig auxiliary 3d arrays when radiation diags are reset + logical, pointer :: aux2d_phys_reset(:) !< flags for resettig auxiliary 2d arrays when physics diags are reset + logical, pointer :: aux3d_phys_reset(:) !< flags for resettig auxiliary 3d arrays when physics diags are reset + real(kind=kind_phys) :: fhcyc !< frequency for surface data cycling (hours) integer :: thermodyn_id !< valid for GFS only for get_prs/phi integer :: sfcpress_id !< valid for GFS only for get_prs/phi @@ -1581,6 +1593,11 @@ module GFS_typedefs !< for black carbon, organic carbon, and sulfur dioxide ( ug/m**2/s ) real (kind=kind_phys), pointer :: aecm (:,:) => null() !< instantaneous aerosol column mass densities for !< pm2.5, black carbon, organic carbon, sulfate, dust, sea salt ( g/m**2 ) + + ! Auxiliary output arrays for debugging + real (kind=kind_phys), pointer :: aux2d(:,:) => null() !< auxiliary 2d arrays in output (for debugging) + real (kind=kind_phys), pointer :: aux3d(:,:,:)=> null() !< auxiliary 2d arrays in output (for debugging) + contains procedure :: create => diag_create procedure :: rad_zero => diag_rad_zero @@ -2739,6 +2756,14 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & logical :: ldiag3d = .false. !< flag for 3d diagnostic fields logical :: qdiag3d = .false. !< flag for 3d tracer diagnostic fields logical :: lssav = .false. !< logical flag for storing diagnostics + integer :: naux2d = 0 !< number of auxiliary 2d arrays to output (for debugging) + integer :: naux3d = 0 !< number of auxiliary 3d arrays to output (for debugging) + logical :: aux2d_time_avg(1:naux2dmax) = .false. !< flags for time averaging of auxiliary 2d arrays + logical :: aux3d_time_avg(1:naux3dmax) = .false. !< flags for time averaging of auxiliary 3d arrays + logical :: aux2d_rad_reset(1:naux2dmax) = .false. !< flags for resettig auxiliary 2d arrays when radiation diags are reset + logical :: aux3d_rad_reset(1:naux3dmax) = .false. !< flags for resettig auxiliary 3d arrays when radiation diags are reset + logical :: aux2d_phys_reset(1:naux2dmax) = .false. !< flags for resettig auxiliary 2d arrays when physics diags are reset + logical :: aux3d_phys_reset(1:naux3dmax) = .false. !< flags for resettig auxiliary 3d arrays when physics diags are reset real(kind=kind_phys) :: fhcyc = 0. !< frequency for surface data cycling (hours) integer :: thermodyn_id = 1 !< valid for GFS only for get_prs/phi @@ -3119,7 +3144,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & NAMELIST /gfs_physics_nml/ & !--- general parameters - fhzero, ldiag3d, qdiag3d, lssav, fhcyc, & + fhzero, ldiag3d, qdiag3d, lssav, naux2d, naux3d, & + aux2d_time_avg, aux3d_time_avg, aux2d_rad_reset, & + aux3d_rad_reset, aux2d_phys_reset, aux3d_phys_reset, fhcyc, & thermodyn_id, sfcpress_id, & !--- coupling parameters cplflx, cplwav, cplchm, lsidea, & @@ -3329,6 +3356,34 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%do_tofd = do_tofd Model%lssav = lssav + ! + if (naux2d>naux2dmax) then + write(0,*) "Error, number of requested auxiliary 2d arrays exceeds the maximum defined in GFS_typedefs.F90" + stop + endif + if (naux3d>naux3dmax) then + write(0,*) "Error, number of requested auxiliary 3d arrays exceeds the maximum defined in GFS_typedefs.F90" + stop + endif + Model%naux2d = naux2d + Model%naux3d = naux3d + if (Model%naux2d>0) then + allocate(Model%aux2d_time_avg (1:naux2d)) + allocate(Model%aux2d_rad_reset (1:naux2d)) + allocate(Model%aux2d_phys_reset (1:naux2d)) + Model%aux2d_time_avg(1:naux2d) = aux2d_time_avg(1:naux2d) + Model%aux2d_rad_reset(1:naux2d) = aux2d_rad_reset(1:naux2d) + Model%aux2d_phys_reset(1:naux2d) = aux2d_phys_reset(1:naux2d) + end if + if (Model%naux3d>0) then + allocate(Model%aux3d_time_avg (1:naux3d)) + allocate(Model%aux3d_rad_reset (1:naux3d)) + allocate(Model%aux3d_phys_reset (1:naux3d)) + Model%aux3d_time_avg(1:naux3d) = aux3d_time_avg(1:naux3d) + Model%aux3d_rad_reset(1:naux3d) = aux3d_rad_reset(1:naux3d) + Model%aux3d_phys_reset(1:naux3d) = aux3d_phys_reset(1:naux3d) + end if + ! Model%fhcyc = fhcyc Model%thermodyn_id = thermodyn_id Model%sfcpress_id = sfcpress_id @@ -4465,6 +4520,18 @@ subroutine control_print(Model) print *, ' ldiag3d : ', Model%ldiag3d print *, ' qdiag3d : ', Model%qdiag3d print *, ' lssav : ', Model%lssav + print *, ' naux2d : ', Model%naux2d + print *, ' naux3d : ', Model%naux3d + if (Model%naux2d>0) then + print *, ' aux2d_time_avg : ', Model%aux2d_time_avg + print *, ' aux2d_rad_reset : ', Model%aux2d_rad_reset + print *, ' aux2d_phys_reset : ', Model%aux2d_phys_reset + endif + if (Model%naux3d>0) then + print *, ' aux3d_time_avg : ', Model%aux3d_time_avg + print *, ' aux3d_rad_reset : ', Model%aux3d_rad_reset + print *, ' aux3d_phys_reset : ', Model%aux3d_phys_reset + endif print *, ' fhcyc : ', Model%fhcyc print *, ' thermodyn_id : ', Model%thermodyn_id print *, ' sfcpress_id : ', Model%sfcpress_id @@ -5425,6 +5492,16 @@ subroutine diag_create (Diag, IM, Model) endif #endif + ! Auxiliary arrays in output for debugging + if (Model%naux2d>0) then + allocate (Diag%aux2d(IM,Model%naux2d)) + Diag%aux2d = clear_val + endif + if (Model%naux3d>0) then + allocate (Diag%aux3d(IM,Model%levs,Model%naux3d)) + Diag%aux3d = clear_val + endif + !--- diagnostics for coupled chemistry if (Model%cplchm) call Diag%chem_init(IM,Model) @@ -5443,6 +5520,7 @@ end subroutine diag_create subroutine diag_rad_zero(Diag, Model) class(GFS_diag_type) :: Diag type(GFS_control_type), intent(in) :: Model + integer :: i Diag%fluxr = zero Diag%topfsw%upfxc = zero @@ -5454,6 +5532,13 @@ subroutine diag_rad_zero(Diag, Model) Diag%cldcov = zero endif + do i=1,Model%naux2d + if (Model%aux2d_rad_reset(i)) Diag%aux2d(:,i) = clear_val + enddo + do i=1,Model%naux3d + if (Model%aux3d_rad_reset(i)) Diag%aux3d(:,:,i) = clear_val + enddo + end subroutine diag_rad_zero !------------------------ @@ -5465,6 +5550,7 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) logical,optional, intent(in) :: linit, iauwindow_center logical set_totprcp + integer :: i !--- In/Out Diag%srunoff = zero @@ -5664,6 +5750,14 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%totsnw = zero Diag%totgrp = zero endif + + do i=1,Model%naux2d + if (Model%aux2d_phys_reset(i)) Diag%aux2d(:,i) = clear_val + enddo + do i=1,Model%naux3d + if (Model%aux3d_phys_reset(i)) Diag%aux3d(:,:,i) = clear_val + enddo + end subroutine diag_phys_zero !----------------------- diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 4ebf4633b..4bdb25f8f 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1998,6 +1998,18 @@ units = flag dimensions = () type = logical +[naux2d] + standard_name = number_of_2d_auxiliary_arrays + long_name = number of 2d auxiliary arrays to output (for debugging) + units = count + dimensions = () + type = integer +[naux3d] + standard_name = number_of_3d_auxiliary_arrays + long_name = number of 3d auxiliary arrays to output (for debugging) + units = count + dimensions = () + type = integer [levs] standard_name = vertical_dimension long_name = number of vertical levels @@ -5985,6 +5997,20 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[aux2d] + standard_name = auxiliary_2d_arrays + long_name = auxiliary 2d arrays to output (for debugging) + units = none + dimensions = (horizontal_dimension,number_of_3d_auxiliary_arrays) + type = real + kind = kind_phys +[aux3d] + standard_name = auxiliary_3d_arrays + long_name = auxiliary 3d arrays to output (for debugging) + units = none + dimensions = (horizontal_dimension,vertical_dimension,number_of_3d_auxiliary_arrays) + type = real + kind = kind_phys ######################################################################## From c9ec6e9be58b43a98baa2408e76df8f99ab60731 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 24 Apr 2020 15:39:59 -0600 Subject: [PATCH 105/206] gfsphysics/GFS_layer/GFS_typedefs.F90: reset to zero and not clear_val --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 6a2b55173..621ed14ae 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -5533,10 +5533,10 @@ subroutine diag_rad_zero(Diag, Model) endif do i=1,Model%naux2d - if (Model%aux2d_rad_reset(i)) Diag%aux2d(:,i) = clear_val + if (Model%aux2d_rad_reset(i)) Diag%aux2d(:,i) = zero enddo do i=1,Model%naux3d - if (Model%aux3d_rad_reset(i)) Diag%aux3d(:,:,i) = clear_val + if (Model%aux3d_rad_reset(i)) Diag%aux3d(:,:,i) = zero enddo end subroutine diag_rad_zero @@ -5752,10 +5752,10 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) endif do i=1,Model%naux2d - if (Model%aux2d_phys_reset(i)) Diag%aux2d(:,i) = clear_val + if (Model%aux2d_phys_reset(i)) Diag%aux2d(:,i) = zero enddo do i=1,Model%naux3d - if (Model%aux3d_phys_reset(i)) Diag%aux3d(:,:,i) = clear_val + if (Model%aux3d_phys_reset(i)) Diag%aux3d(:,:,i) = zero enddo end subroutine diag_phys_zero From e4d2ba87e68574b8ec2ec424832cc927a6ea8bf3 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 24 Apr 2020 16:37:00 -0600 Subject: [PATCH 106/206] gfsphysics/GFS_layer/GFS_typedefs.F90: remove unnecessary aux2d/3d_rad/phys_reset logic --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 53 +++++---------------------- 1 file changed, 9 insertions(+), 44 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 621ed14ae..e7ae07b3e 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -560,12 +560,8 @@ module GFS_typedefs logical :: lssav !< logical flag for storing diagnostics integer :: naux2d !< number of auxiliary 2d arrays to output (for debugging) integer :: naux3d !< number of auxiliary 3d arrays to output (for debugging) - logical, pointer :: aux2d_time_avg(:) !< flags for time averaging of auxiliary 2d arrays - logical, pointer :: aux3d_time_avg(:) !< flags for time averaging of auxiliary 3d arrays - logical, pointer :: aux2d_rad_reset(:) !< flags for resettig auxiliary 2d arrays when radiation diags are reset - logical, pointer :: aux3d_rad_reset(:) !< flags for resettig auxiliary 3d arrays when radiation diags are reset - logical, pointer :: aux2d_phys_reset(:) !< flags for resettig auxiliary 2d arrays when physics diags are reset - logical, pointer :: aux3d_phys_reset(:) !< flags for resettig auxiliary 3d arrays when physics diags are reset + logical, pointer :: aux2d_time_avg(:) !< flags for time averaging of auxiliary 2d arrays + logical, pointer :: aux3d_time_avg(:) !< flags for time averaging of auxiliary 3d arrays real(kind=kind_phys) :: fhcyc !< frequency for surface data cycling (hours) integer :: thermodyn_id !< valid for GFS only for get_prs/phi @@ -2758,12 +2754,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & logical :: lssav = .false. !< logical flag for storing diagnostics integer :: naux2d = 0 !< number of auxiliary 2d arrays to output (for debugging) integer :: naux3d = 0 !< number of auxiliary 3d arrays to output (for debugging) - logical :: aux2d_time_avg(1:naux2dmax) = .false. !< flags for time averaging of auxiliary 2d arrays - logical :: aux3d_time_avg(1:naux3dmax) = .false. !< flags for time averaging of auxiliary 3d arrays - logical :: aux2d_rad_reset(1:naux2dmax) = .false. !< flags for resettig auxiliary 2d arrays when radiation diags are reset - logical :: aux3d_rad_reset(1:naux3dmax) = .false. !< flags for resettig auxiliary 3d arrays when radiation diags are reset - logical :: aux2d_phys_reset(1:naux2dmax) = .false. !< flags for resettig auxiliary 2d arrays when physics diags are reset - logical :: aux3d_phys_reset(1:naux3dmax) = .false. !< flags for resettig auxiliary 3d arrays when physics diags are reset + logical :: aux2d_time_avg(1:naux2dmax) = .false. !< flags for time averaging of auxiliary 2d arrays + logical :: aux3d_time_avg(1:naux3dmax) = .false. !< flags for time averaging of auxiliary 3d arrays real(kind=kind_phys) :: fhcyc = 0. !< frequency for surface data cycling (hours) integer :: thermodyn_id = 1 !< valid for GFS only for get_prs/phi @@ -3145,8 +3137,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & NAMELIST /gfs_physics_nml/ & !--- general parameters fhzero, ldiag3d, qdiag3d, lssav, naux2d, naux3d, & - aux2d_time_avg, aux3d_time_avg, aux2d_rad_reset, & - aux3d_rad_reset, aux2d_phys_reset, aux3d_phys_reset, fhcyc, & + aux2d_time_avg, aux3d_time_avg, fhcyc, & thermodyn_id, sfcpress_id, & !--- coupling parameters cplflx, cplwav, cplchm, lsidea, & @@ -3368,20 +3359,12 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%naux2d = naux2d Model%naux3d = naux3d if (Model%naux2d>0) then - allocate(Model%aux2d_time_avg (1:naux2d)) - allocate(Model%aux2d_rad_reset (1:naux2d)) - allocate(Model%aux2d_phys_reset (1:naux2d)) - Model%aux2d_time_avg(1:naux2d) = aux2d_time_avg(1:naux2d) - Model%aux2d_rad_reset(1:naux2d) = aux2d_rad_reset(1:naux2d) - Model%aux2d_phys_reset(1:naux2d) = aux2d_phys_reset(1:naux2d) + allocate(Model%aux2d_time_avg(1:naux2d)) + Model%aux2d_time_avg(1:naux2d) = aux2d_time_avg(1:naux2d) end if if (Model%naux3d>0) then - allocate(Model%aux3d_time_avg (1:naux3d)) - allocate(Model%aux3d_rad_reset (1:naux3d)) - allocate(Model%aux3d_phys_reset (1:naux3d)) - Model%aux3d_time_avg(1:naux3d) = aux3d_time_avg(1:naux3d) - Model%aux3d_rad_reset(1:naux3d) = aux3d_rad_reset(1:naux3d) - Model%aux3d_phys_reset(1:naux3d) = aux3d_phys_reset(1:naux3d) + allocate(Model%aux3d_time_avg(1:naux3d)) + Model%aux3d_time_avg(1:naux3d) = aux3d_time_avg(1:naux3d) end if ! Model%fhcyc = fhcyc @@ -4524,13 +4507,9 @@ subroutine control_print(Model) print *, ' naux3d : ', Model%naux3d if (Model%naux2d>0) then print *, ' aux2d_time_avg : ', Model%aux2d_time_avg - print *, ' aux2d_rad_reset : ', Model%aux2d_rad_reset - print *, ' aux2d_phys_reset : ', Model%aux2d_phys_reset endif if (Model%naux3d>0) then print *, ' aux3d_time_avg : ', Model%aux3d_time_avg - print *, ' aux3d_rad_reset : ', Model%aux3d_rad_reset - print *, ' aux3d_phys_reset : ', Model%aux3d_phys_reset endif print *, ' fhcyc : ', Model%fhcyc print *, ' thermodyn_id : ', Model%thermodyn_id @@ -5532,13 +5511,6 @@ subroutine diag_rad_zero(Diag, Model) Diag%cldcov = zero endif - do i=1,Model%naux2d - if (Model%aux2d_rad_reset(i)) Diag%aux2d(:,i) = zero - enddo - do i=1,Model%naux3d - if (Model%aux3d_rad_reset(i)) Diag%aux3d(:,:,i) = zero - enddo - end subroutine diag_rad_zero !------------------------ @@ -5751,13 +5723,6 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%totgrp = zero endif - do i=1,Model%naux2d - if (Model%aux2d_phys_reset(i)) Diag%aux2d(:,i) = zero - enddo - do i=1,Model%naux3d - if (Model%aux3d_phys_reset(i)) Diag%aux3d(:,:,i) = zero - enddo - end subroutine diag_phys_zero !----------------------- From 6b195059a44d1dfa408d1c7a639b3b6c3f005ab7 Mon Sep 17 00:00:00 2001 From: Joseph Olson Date: Tue, 28 Apr 2020 16:33:12 +0000 Subject: [PATCH 107/206] bug fix for restart applications --- gfsphysics/GFS_layer/GFS_restart.F90 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gfsphysics/GFS_layer/GFS_restart.F90 b/gfsphysics/GFS_layer/GFS_restart.F90 index 85de87289..52b3d7b83 100644 --- a/gfsphysics/GFS_layer/GFS_restart.F90 +++ b/gfsphysics/GFS_layer/GFS_restart.F90 @@ -127,7 +127,7 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, & endif ! MYNN PBL if (Model%do_mynnedmf) then - Restart%num3d = Restart%num3d + 8 + Restart%num3d = Restart%num3d + 9 endif #endif @@ -297,6 +297,11 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, & Restart%data(nb,num)%var3p => Tbd(nb)%qc_bl(:,:) enddo num = num + 1 + Restart%name3d(num) = 'mynn_3d_qi_bl' + do nb = 1,nblks + Restart%data(nb,num)%var3p => Tbd(nb)%qi_bl(:,:) + enddo + num = num + 1 Restart%name3d(num) = 'mynn_3d_el_pbl' do nb = 1,nblks Restart%data(nb,num)%var3p => Tbd(nb)%el_pbl(:,:) From f43eb0f520a3e64586689bba3b31107bdb8006fe Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 28 Apr 2020 14:35:07 -0600 Subject: [PATCH 108/206] Update gfsphysics/physics/GFS_debug.F90 with changes from ccpp-physics' GFS_debug.F90 --- ccpp/physics | 2 +- gfsphysics/physics/GFS_debug.F90 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/physics b/ccpp/physics index 314c5f59c..6f6448213 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 314c5f59c81a194e68724d5202c25cd8bf17d1e4 +Subproject commit 6f644821332657b73960b34377296d27c4d04553 diff --git a/gfsphysics/physics/GFS_debug.F90 b/gfsphysics/physics/GFS_debug.F90 index 1f6ae5096..03732a342 100644 --- a/gfsphysics/physics/GFS_debug.F90 +++ b/gfsphysics/physics/GFS_debug.F90 @@ -346,7 +346,7 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling, ! call print_var(mpirank,omprank, blkno, 'Diag%edmf_qc ', Diag%edmf_qc) ! call print_var(mpirank,omprank, blkno, 'Diag%nupdraft ', Diag%nupdraft) ! call print_var(mpirank,omprank, blkno, 'Diag%maxMF ', Diag%maxMF) - ! call print_var(mpirank,omprank, blkno, 'Diag%ktop_shallow', Diag%ktop_shallow) + ! call print_var(mpirank,omprank, blkno, 'Diag%ktop_plume ', Diag%ktop_plume) ! call print_var(mpirank,omprank, blkno, 'Diag%exch_h ', Diag%exch_h) ! call print_var(mpirank,omprank, blkno, 'Diag%exch_m ', Diag%exch_m) !end if From f0e84196768d19c4c51cb2fcb55f3c5c4a4f2a6b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 28 Apr 2020 14:40:29 -0600 Subject: [PATCH 109/206] Update .gitmodules for code review and testing --- .gitmodules | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..e0c8f6f72 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,7 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = joe_mynnpbl_update_based_on_latest_gsd_develop \ No newline at end of file From c18619ce69b22a31ef57b9db6da87a475fdf27e6 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 29 Apr 2020 11:15:16 -0600 Subject: [PATCH 110/206] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 6 ++---- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index e0c8f6f72..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = joe_mynnpbl_update_based_on_latest_gsd_develop \ No newline at end of file + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index 6f6448213..ffee3331b 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 6f644821332657b73960b34377296d27c4d04553 +Subproject commit ffee3331b0a522f7fcad7794b6359d433320e55c From ab95ad83152a6e0550d9abec9f049892a5eeb64b Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Fri, 1 May 2020 22:07:19 +0000 Subject: [PATCH 111/206] Updated GSL orographic drag suite to enable use of custom orographic statistics static files --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 25 +++++- gfsphysics/GFS_layer/GFS_typedefs.meta | 28 ++++++ io/FV3GFS_io.F90 | 119 ++++++++++++++++++++++++- 3 files changed, 168 insertions(+), 4 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index a4704e976..851d9b409 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -857,7 +857,8 @@ module GFS_typedefs integer :: isatmedmf_vdifq = 1 !< flag for updated version of satmedmf (as of May 2019) #endif integer :: nmtvr !< number of topographic variables such as variance etc - !< used in the GWD parameterization + !< used in the GWD parameterization - 10 more added for + !< small-scale GSD orographic drag schemes integer :: jcap !< number of spectral wave trancation used only by sascnv shalcnv real(kind=kind_phys) :: cs_parm(10) !< tunable parameters for Chikira-Sugiyama convection real(kind=kind_phys) :: flgmin(2) !< [in] ice fraction bounds @@ -1934,6 +1935,11 @@ module GFS_typedefs real (kind=kind_phys), pointer :: qs_r(:,:) => null() !< real (kind=kind_phys), pointer :: qg_r(:,:) => null() !< + !-- GSD drag suite + real (kind=kind_phys), pointer :: varss(:) => null() !< + real (kind=kind_phys), pointer :: ocss(:) => null() !< + real (kind=kind_phys), pointer :: oa4ss(:,:) => null() !< + real (kind=kind_phys), pointer :: clxss(:,:) => null() !< !-- Ferrier-Aligo MP scheme real (kind=kind_phys), pointer :: f_rain (:,:) => null() !< @@ -3000,7 +3006,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & logical :: do_myjsfc = .false. !< flag for MYJ surface layer scheme logical :: do_myjpbl = .false. !< flag for MYJ PBL scheme #endif - integer :: nmtvr = 14 !< number of topographic variables such as variance etc + integer :: nmtvr = 24 !< number of topographic variables such as variance etc !< used in the GWD parameterization integer :: jcap = 1 !< number of spectral wave trancation used only by sascnv shalcnv ! real(kind=kind_phys) :: cs_parm(10) = (/5.0,2.5,1.0e3,3.0e3,20.0,-999.,-999.,0.,0.,0./) @@ -6112,6 +6118,11 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%dudt_mtb (IM,Model%levs)) allocate (Interstitial%dudt_ogw (IM,Model%levs)) allocate (Interstitial%dudt_tms (IM,Model%levs)) +!-- GSD drag suite + allocate (Interstitial%varss (IM)) + allocate (Interstitial%ocss (IM)) + allocate (Interstitial%oa4ss (IM,4)) + allocate (Interstitial%clxss (IM,4)) ! ! Allocate arrays that are conditional on physics choices if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson) then @@ -6635,6 +6646,11 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%dudt_mtb = clear_val Interstitial%dudt_ogw = clear_val Interstitial%dudt_tms = clear_val +!-- GSD drag suite + Interstitial%varss = clear_val + Interstitial%ocss = clear_val + Interstitial%oa4ss = clear_val + Interstitial%clxss = clear_val ! ! Reset fields that are conditional on physics choices if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson) then @@ -6971,6 +6987,11 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%dudt_mtb ) = ', sum(Interstitial%dudt_mtb ) write (0,*) 'sum(Interstitial%dudt_ogw ) = ', sum(Interstitial%dudt_ogw ) write (0,*) 'sum(Interstitial%dudt_tms ) = ', sum(Interstitial%dudt_tms ) +!-- GSD drag suite + write (0,*) 'sum(Interstitial%varss ) = ', sum(Interstitial%varss) + write (0,*) 'sum(Interstitial%ocss ) = ', sum(Interstitial%ocss) + write (0,*) 'sum(Interstitial%oa4ss ) = ', sum(Interstitial%oa4ss) + write (0,*) 'sum(Interstitial%clxss ) = ', sum(Interstitial%clxss) ! ! Print arrays that are conditional on physics choices if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson) then diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 608a26207..a9debd2fd 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -6462,6 +6462,13 @@ dimensions = (horizontal_dimension,4) type = real kind = kind_phys +[clxss] + standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height_small_scale + long_name = frac. of grid box with by subgrid orography higher than critical height small scale + units = frac + dimensions = (horizontal_dimension,4) + type = real + kind = kind_phys [cmm_ocean] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_ocean long_name = momentum exchange coefficient over ocean @@ -7620,6 +7627,20 @@ dimensions = (horizontal_dimension,4) type = real kind = kind_phys +[varss] + standard_name = standard_deviation_of_subgrid_orography_small_scale + long_name = standard deviation of subgrid orography small scale + units = m + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[oa4ss] + standard_name = asymmetry_of_subgrid_orography_small_scale + long_name = asymmetry of subgrid orography small scale + units = none + dimensions = (horizontal_dimension,4) + type = real + kind = kind_phys [oc] standard_name = convexity_of_subgrid_orography long_name = convexity of subgrid orography @@ -7627,6 +7648,13 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys +[ocss] + standard_name = convexity_of_subgrid_orography_small_scale + long_name = convexity of subgrid orography small scale + units = none + dimensions = (horizontal_dimension) + type = real + kind = kind_phys [olyr] standard_name = ozone_concentration_at_layer_for_radiation long_name = ozone concentration layer diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90 index 972d43fde..f8a9b6f8b 100644 --- a/io/FV3GFS_io.F90 +++ b/io/FV3GFS_io.F90 @@ -1,3 +1,5 @@ +#define NEW_ORO_STAT +#define NEW_ORO_STAT_INFO module FV3GFS_io_mod !----------------------------------------------------------------------- @@ -70,15 +72,20 @@ module FV3GFS_io_mod !--- GFDL filenames character(len=32) :: fn_oro = 'oro_data.nc' + character(len=32) :: fn_oro_ls = 'oro_data_ls.nc' + character(len=32) :: fn_oro_ss = 'oro_data_ss.nc' character(len=32) :: fn_srf = 'sfc_data.nc' character(len=32) :: fn_phy = 'phy_data.nc' !--- GFDL FMS netcdf restart data types type(restart_file_type) :: Oro_restart, Sfc_restart, Phy_restart + type(restart_file_type) :: Oro_ls_restart, Oro_ss_restart !--- GFDL FMS restart containers character(len=32), allocatable, dimension(:) :: oro_name2, sfc_name2, sfc_name3 real(kind=kind_phys), allocatable, target, dimension(:,:,:) :: oro_var2, sfc_var2, phy_var2 + character(len=32), allocatable, dimension(:) :: oro_ls_ss_name + real(kind=kind_phys), allocatable, target, dimension(:,:,:) :: oro_ls_var, oro_ss_var real(kind=kind_phys), allocatable, target, dimension(:,:,:,:) :: sfc_var3, phy_var3 !--- Noah MP restart containers real(kind=kind_phys), allocatable, target, dimension(:,:,:,:) :: sfc_var3sn,sfc_var3eq,sfc_var3zn @@ -472,10 +479,11 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) logical, intent(in) :: warm_start #endif !--- local variables - integer :: i, j, k, ix, lsoil, num, nb + integer :: i, j, k, ix, lsoil, num, nb, i_start, j_start, i_end, j_end integer :: isc, iec, jsc, jec, npz, nx, ny integer :: id_restart integer :: nvar_o2, nvar_s2m, nvar_s2o, nvar_s3 + integer :: nvar_oro_ls_ss integer :: nvar_s2mp, nvar_s3mp,isnow #ifdef CCPP integer :: nvar_s2r @@ -509,6 +517,7 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) nvar_s2m = 32 endif nvar_o2 = 19 + nvar_oro_ls_ss = 10 nvar_s2o = 18 #ifdef CCPP if (Model%lsm == Model%lsm_ruc .and. warm_start) then @@ -634,7 +643,113 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) !--- deallocate containers and free restart container deallocate(oro_name2, oro_var2) call free_restart_type(Oro_restart) - + +#ifdef NEW_ORO_STAT + if (.not. allocated(oro_ls_ss_name)) then + !--- allocate the various containers needed for orography data + allocate(oro_ls_ss_name(nvar_oro_ls_ss)) + allocate(oro_ls_var(nx,ny,nvar_oro_ls_ss)) + allocate(oro_ss_var(nx,ny,nvar_oro_ls_ss)) + + oro_ls_ss_name(1) = 'stddev' + oro_ls_ss_name(2) = 'convexity' + oro_ls_ss_name(3) = 'oa1' + oro_ls_ss_name(4) = 'oa2' + oro_ls_ss_name(5) = 'oa3' + oro_ls_ss_name(6) = 'oa4' + oro_ls_ss_name(7) = 'ol1' + oro_ls_ss_name(8) = 'ol2' + oro_ls_ss_name(9) = 'ol3' + oro_ls_ss_name(10) = 'ol4' + !--- register the 2D fields + do num = 1,nvar_oro_ls_ss + var2_p => oro_ls_var(:,:,num) + id_restart = register_restart_field(Oro_ls_restart, fn_oro_ls, & + oro_ls_ss_name(num), var2_p, domain=fv_domain) + enddo + nullify(var2_p) + do num = 1,nvar_oro_ls_ss + var2_p => oro_ss_var(:,:,num) + id_restart = register_restart_field(Oro_ss_restart, fn_oro_ss, & + oro_ls_ss_name(num), var2_p, domain=fv_domain) + enddo + nullify(var2_p) + endif + + !--- read new GSD created orography restart/data + call mpp_error(NOTE,'reading topographic/orographic information from & + &INPUT/oro_data_ls.tile*.nc') + call restore_state(Oro_ls_restart) + call mpp_error(NOTE,'reading topographic/orographic information from & + &INPUT/oro_data_ss.tile*.nc') + call restore_state(Oro_ss_restart) + + do nb = 1, Atm_block%nblks + !--- 2D variables + do ix = 1, Atm_block%blksz(nb) + i = Atm_block%index(nb)%ii(ix) - isc + 1 + j = Atm_block%index(nb)%jj(ix) - jsc + 1 + !--- assign hprime(1:10) and hprime(15:24) with new oro stat data + Sfcprop(nb)%hprime(ix,1) = oro_ls_var(i,j,1) + Sfcprop(nb)%hprime(ix,2) = oro_ls_var(i,j,2) + Sfcprop(nb)%hprime(ix,3) = oro_ls_var(i,j,3) + Sfcprop(nb)%hprime(ix,4) = oro_ls_var(i,j,4) + Sfcprop(nb)%hprime(ix,5) = oro_ls_var(i,j,5) + Sfcprop(nb)%hprime(ix,6) = oro_ls_var(i,j,6) + Sfcprop(nb)%hprime(ix,7) = oro_ls_var(i,j,7) + Sfcprop(nb)%hprime(ix,8) = oro_ls_var(i,j,8) + Sfcprop(nb)%hprime(ix,9) = oro_ls_var(i,j,9) + Sfcprop(nb)%hprime(ix,10) = oro_ls_var(i,j,10) + Sfcprop(nb)%hprime(ix,15) = oro_ss_var(i,j,1) + Sfcprop(nb)%hprime(ix,16) = oro_ss_var(i,j,2) + Sfcprop(nb)%hprime(ix,17) = oro_ss_var(i,j,3) + Sfcprop(nb)%hprime(ix,18) = oro_ss_var(i,j,4) + Sfcprop(nb)%hprime(ix,19) = oro_ss_var(i,j,5) + Sfcprop(nb)%hprime(ix,20) = oro_ss_var(i,j,6) + Sfcprop(nb)%hprime(ix,21) = oro_ss_var(i,j,7) + Sfcprop(nb)%hprime(ix,22) = oro_ss_var(i,j,8) + Sfcprop(nb)%hprime(ix,23) = oro_ss_var(i,j,9) + Sfcprop(nb)%hprime(ix,24) = oro_ss_var(i,j,10) + + enddo + enddo + + call free_restart_type(Oro_ls_restart) + call free_restart_type(Oro_ss_restart) +#endif + +#ifdef NEW_ORO_STAT_INFO +! print diag info + if (Model%me == Model%master ) then + print*, 'isc, iec, jsc, jec =', isc, iec, jsc, jec + nb = 1 + print*, 'Atm_block%blksz(1) =', Atm_block%blksz(nb) + i_start=Atm_block%index(nb)%ii(1) - isc + 1 + j_start=Atm_block%index(nb)%jj(1) - jsc + 1 + print*, 'i,j start=',i_start, j_start + num = Atm_block%blksz(nb) + i_end=Atm_block%index(nb)%ii(num) - isc + 1 + j_end=Atm_block%index(nb)%jj(num) - jsc + 1 + print*, 'i,j end=', i_end, j_end + do i = 1, 10 + print*, 'min/max hprime(:,i) =', & + minval(Sfcprop(nb)%hprime(:,i)), maxval(Sfcprop(nb)%hprime(:,i)), i + print*, 'min/max oro_ls(:,:,i)=', & + minval(oro_ls_var(i_start:i_end,j_start:j_end,i)), & + maxval(oro_ls_var(i_start:i_end,j_start:j_end,i)), i + enddo + do i = 15, 24 + print*, 'min/max of hprime(:,i) =', & + minval(Sfcprop(nb)%hprime(:,i)), maxval(Sfcprop(nb)%hprime(:,i)), i + print*, 'min/max of oro_ss(:,:,i) =', & + minval(oro_ss_var(i_start:i_end,j_start:j_end,i-14)), & + maxval(oro_ss_var(i_start:i_end,j_start:j_end,i-14)), i-14 + enddo + endif + + deallocate(oro_ls_ss_name, oro_ls_var, oro_ss_var) +#endif + !--- SURFACE FILE if (.not. allocated(sfc_name2)) then !--- allocate the various containers needed for restarts From 3abf078e1fe7f0e5468207bf9b4a1eaefc0e21b1 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 12 May 2020 14:45:59 -0600 Subject: [PATCH 112/206] Update .gitmodules and submodule pointer for ccpp-physics for code review and testing --- .gitmodules | 4 +++- ccpp/physics | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..3974bb415 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,7 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/hannahcbarnes/ccpp-physics branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index ffee3331b..dc1c3ca92 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit ffee3331b0a522f7fcad7794b6359d433320e55c +Subproject commit dc1c3ca92bd4dd79365b48d9020db6747a0fa587 From e3e84fa381114400dfebad3387ccfe5d61029fd3 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 13 May 2020 07:27:50 -0600 Subject: [PATCH 113/206] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 4 +--- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitmodules b/.gitmodules index 3974bb415..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/hannahcbarnes/ccpp-physics + url = https://github.com/NOAA-GSD/ccpp-physics branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index dc1c3ca92..bbc6f3356 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit dc1c3ca92bd4dd79365b48d9020db6747a0fa587 +Subproject commit bbc6f3356afc33b504811049848af986d07263d9 From bfe13b020d34e1d7a9dcfd416703281bebf542cb Mon Sep 17 00:00:00 2001 From: "Samuel Trahan (NOAA contractor)" <39415369+SamuelTrahanNOAA@users.noreply.github.com> Date: Thu, 14 May 2020 09:04:06 -0400 Subject: [PATCH 114/206] fix bugs found in pbl and ozone 3d diagnostic tendencies (#26) PBL tendencies were missing in two schemes; now fixed. Squashed commit of the following: * fix bugs found in pbl and ozone 3d diagnostic tendencies * remove debugging prints * implied shape arrays for five variables * more block labels in CCPP * make the logging less wordy * point to hash 238c84cb3c789056c701b70d3373e640ed4fa599 of ccpp/physics --- ccpp/physics | 2 +- gfsphysics/GFS_layer/GFS_typedefs.F90 | 30 ++++++++++++++++++--------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/ccpp/physics b/ccpp/physics index bbc6f3356..238c84cb3 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit bbc6f3356afc33b504811049848af986d07263d9 +Subproject commit 238c84cb3c789056c701b70d3373e640ed4fa599 diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index a4704e976..f91af3f62 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -3311,42 +3311,52 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & #ifdef CCPP if(gwd_opt==1) then - write(0,*) 'FLAG: gwd_opt==1 so gwd not generic' + if(me==master) & + write(0,*) 'FLAG: gwd_opt==1 so gwd not generic' Model%flag_for_gwd_generic_tend=.false. - else + elseif(me==master) then write(0,*) 'NO FLAG: gwd is generic' endif if(satmedmf .and. isatmedmf==0) then - write(0,*) 'FLAG: satmedmf and isatedmf=0 so pbl not generic' + if(me==master) & + write(0,*) 'FLAG: satmedmf and isatedmf=0 so pbl not generic' + Model%flag_for_pbl_generic_tend=.false. + elseif(satmedmf .and. isatmedmf==1) then + if(me==master) & + write(0,*) 'FLAG: satmedmf and isatedmf=1 so pbl not generic' Model%flag_for_pbl_generic_tend=.false. else if(hybedmf) then - write(0,*) 'FLAG: hybedmf so pbl not generic' + if(me==master) & + write(0,*) 'FLAG: hybedmf so pbl not generic' Model%flag_for_pbl_generic_tend=.false. else if(do_mynnedmf) then - write(0,*) 'FLAG: do_mynnedmf so pbl not generic' + if(me==master) & + write(0,*) 'FLAG: do_mynnedmf so pbl not generic' Model%flag_for_pbl_generic_tend=.false. - else + elseif(me==master) then write(0,*) 'NO FLAG: pbl is generic' endif if(imfshalcnv == Model%imfshalcnv_gf) then - write(0,*) 'FLAG: imfshalcnv_gf so scnv not generic' + if(me==master) & + write(0,*) 'FLAG: imfshalcnv_gf so scnv not generic' Model%flag_for_scnv_generic_tend=.false. ! else if(imfshalcnv == Model%imfshalcnv_samf) then ! write(0,*) 'FLAG: imfshalcnv_samf so scnv not generic' ! Model%flag_for_scnv_generic_tend=.false. - else + elseif(me==master) then write(0,*) 'NO FLAG: scnv is generic' endif if(imfdeepcnv == Model%imfdeepcnv_gf) then - write(0,*) 'FLAG: imfdeepcnv_gf so dcnv not generic' + if(me==master) & + write(0,*) 'FLAG: imfdeepcnv_gf so dcnv not generic' Model%flag_for_dcnv_generic_tend=.false. ! else if(imfdeepcnv == Model%imfdeepcnv_samf) then ! write(0,*) 'FLAG: imfdeepcnv_samf so dcnv not generic' ! Model%flag_for_dcnv_generic_tend=.false. - else + elseif(me==master) then write(0,*) 'NO FLAG: dcnv is generic' endif #endif From 325ebd2e17d09d5e90ec9e364bc617fa98d49e4d Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 15 May 2020 09:33:59 -0600 Subject: [PATCH 115/206] Update .gitmodules and submodule pointers for GFDL_atmos_cubed_sphere, ccpp-framework and ccpp-physics for code review and testing --- .gitmodules | 18 ++++++++++++------ atmos_cubed_sphere | 2 +- ccpp/framework | 2 +- ccpp/physics | 2 +- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..b8902197c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,18 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - branch = gsd/develop + #url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + #branch = gsd/develop + url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere + branch = update_gsd_develop_from_dev_emc [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/NOAA-GSD/ccpp-framework - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-framework + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-framework + branch = update_gsd_develop_from_master [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = update_gsd_develop_from_master diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index e53a24be1..51fa16684 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit e53a24be1bee834a14f5f85ef5d8d18f431d6b16 +Subproject commit 51fa16684189c08a6bfa460b94b7da50a47283cc diff --git a/ccpp/framework b/ccpp/framework index 463a72cce..64def13f5 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 463a72cce605ae0f8f8725574d5e3b9cf6c9d90c +Subproject commit 64def13f538585592801f090849f3175624f00e7 diff --git a/ccpp/physics b/ccpp/physics index 238c84cb3..9c7fa5874 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 238c84cb3c789056c701b70d3373e640ed4fa599 +Subproject commit 9c7fa58749be39fadb5b7810e0a56c0c9773f100 From f1cfcfd746dd6bac7c9983439b048906d8f82de1 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 15 May 2020 10:43:44 -0600 Subject: [PATCH 116/206] Update submodule pointer for ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 9c7fa5874..187a69c92 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 9c7fa58749be39fadb5b7810e0a56c0c9773f100 +Subproject commit 187a69c92a501b46556815edea439ba43c463168 From f87cbd40924b1f34215eea11df435f08e8c96628 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 15 May 2020 14:25:44 -0600 Subject: [PATCH 117/206] Fix bugs from merge process --- ccpp/physics | 2 +- ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml | 1 - ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/ccpp/physics b/ccpp/physics index 187a69c92..6d2cdfb26 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 187a69c92a501b46556815edea439ba43c463168 +Subproject commit 6d2cdfb267c5c6d066d9f4f3e4df888d3cd18867 diff --git a/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml b/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml index 0f886fb85..72f1b659f 100644 --- a/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml +++ b/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml @@ -51,7 +51,6 @@ GFS_surface_composites_post - dcyc2t3_post sfc_diag sfc_diag_post GFS_surface_generic_post diff --git a/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml b/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml index e71213f35..50680a893 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml @@ -53,7 +53,6 @@ GFS_surface_composites_post - dcyc2t3_post sfc_diag sfc_diag_post GFS_surface_generic_post From dabf9e6bb034334f087ad93c6c171e130934f5dc Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 19 May 2020 07:22:37 -0600 Subject: [PATCH 118/206] Add CCPP annotation to GFS_physics_driver.F90, add new suite suite_FV3_RAPHRRR.xml --- ccpp/physics | 2 +- ccpp/suites/suite_FV3_RAPHRRR.xml | 87 +++++++++++++++++++++ gfsphysics/GFS_layer/GFS_physics_driver.F90 | 2 + 3 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 ccpp/suites/suite_FV3_RAPHRRR.xml diff --git a/ccpp/physics b/ccpp/physics index 6d2cdfb26..6e4c7874d 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 6d2cdfb267c5c6d066d9f4f3e4df888d3cd18867 +Subproject commit 6e4c7874d6685953b8887fd7638fdfb8870c4b2d diff --git a/ccpp/suites/suite_FV3_RAPHRRR.xml b/ccpp/suites/suite_FV3_RAPHRRR.xml new file mode 100644 index 000000000..a6e188fce --- /dev/null +++ b/ccpp/suites/suite_FV3_RAPHRRR.xml @@ -0,0 +1,87 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + mynnsfc_wrapper + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_ruc + lsm_ruc_sfc_sice_pre + sfc_sice + lsm_ruc_sfc_sice_post + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + get_phi_fv3 + + GFS_suite_interstitial_3 + GFS_suite_interstitial_4 + + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + diff --git a/gfsphysics/GFS_layer/GFS_physics_driver.F90 b/gfsphysics/GFS_layer/GFS_physics_driver.F90 index c668ec4df..cd7121fa1 100644 --- a/gfsphysics/GFS_layer/GFS_physics_driver.F90 +++ b/gfsphysics/GFS_layer/GFS_physics_driver.F90 @@ -2284,6 +2284,7 @@ subroutine GFS_physics_driver & ! enddo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!## CCPP ##* GFS_surface_generic.F90/GFS_surface_generic_post_run ! --- ... Boundary Layer and Free atmospheic turbulence parameterization ! ! in order to achieve heat storage within canopy layer, in the canopy heat @@ -2312,6 +2313,7 @@ subroutine GFS_physics_driver & evapq(i) = evap(i) / hefac(i) enddo endif +!*## CCPP ## ! ! if (lprnt) write(0,*)' tsea3=',Sfcprop%tsfc(ipr),' slmsk=',Sfcprop%slmsk(ipr) & ! &, ' kdt=',kdt,' evap=',evapq(ipr) From acbc575664a489d812b83a050394ec8377799673 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Wed, 20 May 2020 01:30:12 +0000 Subject: [PATCH 119/206] Merging with updated version of NOAA-GSD/fv3atm gsd/develop branch --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 40 +++--- io/FV3GFS_io.F90 | 171 +++++++++++--------------- 2 files changed, 95 insertions(+), 116 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 851d9b409..ca05d6150 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -857,8 +857,8 @@ module GFS_typedefs integer :: isatmedmf_vdifq = 1 !< flag for updated version of satmedmf (as of May 2019) #endif integer :: nmtvr !< number of topographic variables such as variance etc - !< used in the GWD parameterization - 10 more added for - !< small-scale GSD orographic drag schemes + !< used in the GWD parameterization - 10 more added if + !< GSD orographic drag scheme is used integer :: jcap !< number of spectral wave trancation used only by sascnv shalcnv real(kind=kind_phys) :: cs_parm(10) !< tunable parameters for Chikira-Sugiyama convection real(kind=kind_phys) :: flgmin(2) !< [in] ice fraction bounds @@ -3006,7 +3006,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & logical :: do_myjsfc = .false. !< flag for MYJ surface layer scheme logical :: do_myjpbl = .false. !< flag for MYJ PBL scheme #endif - integer :: nmtvr = 24 !< number of topographic variables such as variance etc + integer :: nmtvr = 14 !< number of topographic variables such as variance etc !< used in the GWD parameterization integer :: jcap = 1 !< number of spectral wave trancation used only by sascnv shalcnv ! real(kind=kind_phys) :: cs_parm(10) = (/5.0,2.5,1.0e3,3.0e3,20.0,-999.,-999.,0.,0.,0./) @@ -3708,6 +3708,10 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%icloud_bl = icloud_bl ! *DH Model%gwd_opt = gwd_opt + if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then + ! Add 10 more orographic static fields for GSD drag scheme + Model%nmtvr = 24 + end if Model%do_myjsfc = do_myjsfc Model%do_myjpbl = do_myjpbl #endif @@ -6119,10 +6123,12 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%dudt_ogw (IM,Model%levs)) allocate (Interstitial%dudt_tms (IM,Model%levs)) !-- GSD drag suite - allocate (Interstitial%varss (IM)) - allocate (Interstitial%ocss (IM)) - allocate (Interstitial%oa4ss (IM,4)) - allocate (Interstitial%clxss (IM,4)) + if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then + allocate (Interstitial%varss (IM)) + allocate (Interstitial%ocss (IM)) + allocate (Interstitial%oa4ss (IM,4)) + allocate (Interstitial%clxss (IM,4)) + end if ! ! Allocate arrays that are conditional on physics choices if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson) then @@ -6647,10 +6653,12 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%dudt_ogw = clear_val Interstitial%dudt_tms = clear_val !-- GSD drag suite - Interstitial%varss = clear_val - Interstitial%ocss = clear_val - Interstitial%oa4ss = clear_val - Interstitial%clxss = clear_val + if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then + Interstitial%varss = clear_val + Interstitial%ocss = clear_val + Interstitial%oa4ss = clear_val + Interstitial%clxss = clear_val + end if ! ! Reset fields that are conditional on physics choices if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson) then @@ -6988,10 +6996,12 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%dudt_ogw ) = ', sum(Interstitial%dudt_ogw ) write (0,*) 'sum(Interstitial%dudt_tms ) = ', sum(Interstitial%dudt_tms ) !-- GSD drag suite - write (0,*) 'sum(Interstitial%varss ) = ', sum(Interstitial%varss) - write (0,*) 'sum(Interstitial%ocss ) = ', sum(Interstitial%ocss) - write (0,*) 'sum(Interstitial%oa4ss ) = ', sum(Interstitial%oa4ss) - write (0,*) 'sum(Interstitial%clxss ) = ', sum(Interstitial%clxss) + if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then + write (0,*) 'sum(Interstitial%varss ) = ', sum(Interstitial%varss) + write (0,*) 'sum(Interstitial%ocss ) = ', sum(Interstitial%ocss) + write (0,*) 'sum(Interstitial%oa4ss ) = ', sum(Interstitial%oa4ss) + write (0,*) 'sum(Interstitial%clxss ) = ', sum(Interstitial%clxss) + end if ! ! Print arrays that are conditional on physics choices if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson) then diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90 index f8a9b6f8b..5e7ea8d81 100644 --- a/io/FV3GFS_io.F90 +++ b/io/FV3GFS_io.F90 @@ -1,5 +1,3 @@ -#define NEW_ORO_STAT -#define NEW_ORO_STAT_INFO module FV3GFS_io_mod !----------------------------------------------------------------------- @@ -644,111 +642,82 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) deallocate(oro_name2, oro_var2) call free_restart_type(Oro_restart) -#ifdef NEW_ORO_STAT - if (.not. allocated(oro_ls_ss_name)) then - !--- allocate the various containers needed for orography data - allocate(oro_ls_ss_name(nvar_oro_ls_ss)) - allocate(oro_ls_var(nx,ny,nvar_oro_ls_ss)) - allocate(oro_ss_var(nx,ny,nvar_oro_ls_ss)) - - oro_ls_ss_name(1) = 'stddev' - oro_ls_ss_name(2) = 'convexity' - oro_ls_ss_name(3) = 'oa1' - oro_ls_ss_name(4) = 'oa2' - oro_ls_ss_name(5) = 'oa3' - oro_ls_ss_name(6) = 'oa4' - oro_ls_ss_name(7) = 'ol1' - oro_ls_ss_name(8) = 'ol2' - oro_ls_ss_name(9) = 'ol3' - oro_ls_ss_name(10) = 'ol4' - !--- register the 2D fields - do num = 1,nvar_oro_ls_ss - var2_p => oro_ls_var(:,:,num) - id_restart = register_restart_field(Oro_ls_restart, fn_oro_ls, & - oro_ls_ss_name(num), var2_p, domain=fv_domain) - enddo - nullify(var2_p) - do num = 1,nvar_oro_ls_ss - var2_p => oro_ss_var(:,:,num) - id_restart = register_restart_field(Oro_ss_restart, fn_oro_ss, & - oro_ls_ss_name(num), var2_p, domain=fv_domain) - enddo - nullify(var2_p) - endif - - !--- read new GSD created orography restart/data - call mpp_error(NOTE,'reading topographic/orographic information from & - &INPUT/oro_data_ls.tile*.nc') - call restore_state(Oro_ls_restart) - call mpp_error(NOTE,'reading topographic/orographic information from & - &INPUT/oro_data_ss.tile*.nc') - call restore_state(Oro_ss_restart) - do nb = 1, Atm_block%nblks - !--- 2D variables - do ix = 1, Atm_block%blksz(nb) - i = Atm_block%index(nb)%ii(ix) - isc + 1 - j = Atm_block%index(nb)%jj(ix) - jsc + 1 - !--- assign hprime(1:10) and hprime(15:24) with new oro stat data - Sfcprop(nb)%hprime(ix,1) = oro_ls_var(i,j,1) - Sfcprop(nb)%hprime(ix,2) = oro_ls_var(i,j,2) - Sfcprop(nb)%hprime(ix,3) = oro_ls_var(i,j,3) - Sfcprop(nb)%hprime(ix,4) = oro_ls_var(i,j,4) - Sfcprop(nb)%hprime(ix,5) = oro_ls_var(i,j,5) - Sfcprop(nb)%hprime(ix,6) = oro_ls_var(i,j,6) - Sfcprop(nb)%hprime(ix,7) = oro_ls_var(i,j,7) - Sfcprop(nb)%hprime(ix,8) = oro_ls_var(i,j,8) - Sfcprop(nb)%hprime(ix,9) = oro_ls_var(i,j,9) - Sfcprop(nb)%hprime(ix,10) = oro_ls_var(i,j,10) - Sfcprop(nb)%hprime(ix,15) = oro_ss_var(i,j,1) - Sfcprop(nb)%hprime(ix,16) = oro_ss_var(i,j,2) - Sfcprop(nb)%hprime(ix,17) = oro_ss_var(i,j,3) - Sfcprop(nb)%hprime(ix,18) = oro_ss_var(i,j,4) - Sfcprop(nb)%hprime(ix,19) = oro_ss_var(i,j,5) - Sfcprop(nb)%hprime(ix,20) = oro_ss_var(i,j,6) - Sfcprop(nb)%hprime(ix,21) = oro_ss_var(i,j,7) - Sfcprop(nb)%hprime(ix,22) = oro_ss_var(i,j,8) - Sfcprop(nb)%hprime(ix,23) = oro_ss_var(i,j,9) - Sfcprop(nb)%hprime(ix,24) = oro_ss_var(i,j,10) + !--- Modify/read-in additional orographic static fields for GSL drag suite + if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then + if (.not. allocated(oro_ls_ss_name)) then + !--- allocate the various containers needed for orography data + allocate(oro_ls_ss_name(nvar_oro_ls_ss)) + allocate(oro_ls_var(nx,ny,nvar_oro_ls_ss)) + allocate(oro_ss_var(nx,ny,nvar_oro_ls_ss)) + + oro_ls_ss_name(1) = 'stddev' + oro_ls_ss_name(2) = 'convexity' + oro_ls_ss_name(3) = 'oa1' + oro_ls_ss_name(4) = 'oa2' + oro_ls_ss_name(5) = 'oa3' + oro_ls_ss_name(6) = 'oa4' + oro_ls_ss_name(7) = 'ol1' + oro_ls_ss_name(8) = 'ol2' + oro_ls_ss_name(9) = 'ol3' + oro_ls_ss_name(10) = 'ol4' + !--- register the 2D fields + do num = 1,nvar_oro_ls_ss + var2_p => oro_ls_var(:,:,num) + id_restart = register_restart_field(Oro_ls_restart, fn_oro_ls, & + oro_ls_ss_name(num), var2_p, domain=fv_domain) + enddo + nullify(var2_p) + do num = 1,nvar_oro_ls_ss + var2_p => oro_ss_var(:,:,num) + id_restart = register_restart_field(Oro_ss_restart, fn_oro_ss, & + oro_ls_ss_name(num), var2_p, domain=fv_domain) + enddo + nullify(var2_p) + endif - enddo - enddo + !--- read new GSL created orography restart/data + call mpp_error(NOTE,'reading topographic/orographic information from & + &INPUT/oro_data_ls.tile*.nc') + call restore_state(Oro_ls_restart) + call mpp_error(NOTE,'reading topographic/orographic information from & + &INPUT/oro_data_ss.tile*.nc') + call restore_state(Oro_ss_restart) - call free_restart_type(Oro_ls_restart) - call free_restart_type(Oro_ss_restart) -#endif + do nb = 1, Atm_block%nblks + !--- 2D variables + do ix = 1, Atm_block%blksz(nb) + i = Atm_block%index(nb)%ii(ix) - isc + 1 + j = Atm_block%index(nb)%jj(ix) - jsc + 1 + !--- assign hprime(1:10) and hprime(15:24) with new oro stat data + Sfcprop(nb)%hprime(ix,1) = oro_ls_var(i,j,1) + Sfcprop(nb)%hprime(ix,2) = oro_ls_var(i,j,2) + Sfcprop(nb)%hprime(ix,3) = oro_ls_var(i,j,3) + Sfcprop(nb)%hprime(ix,4) = oro_ls_var(i,j,4) + Sfcprop(nb)%hprime(ix,5) = oro_ls_var(i,j,5) + Sfcprop(nb)%hprime(ix,6) = oro_ls_var(i,j,6) + Sfcprop(nb)%hprime(ix,7) = oro_ls_var(i,j,7) + Sfcprop(nb)%hprime(ix,8) = oro_ls_var(i,j,8) + Sfcprop(nb)%hprime(ix,9) = oro_ls_var(i,j,9) + Sfcprop(nb)%hprime(ix,10) = oro_ls_var(i,j,10) + Sfcprop(nb)%hprime(ix,15) = oro_ss_var(i,j,1) + Sfcprop(nb)%hprime(ix,16) = oro_ss_var(i,j,2) + Sfcprop(nb)%hprime(ix,17) = oro_ss_var(i,j,3) + Sfcprop(nb)%hprime(ix,18) = oro_ss_var(i,j,4) + Sfcprop(nb)%hprime(ix,19) = oro_ss_var(i,j,5) + Sfcprop(nb)%hprime(ix,20) = oro_ss_var(i,j,6) + Sfcprop(nb)%hprime(ix,21) = oro_ss_var(i,j,7) + Sfcprop(nb)%hprime(ix,22) = oro_ss_var(i,j,8) + Sfcprop(nb)%hprime(ix,23) = oro_ss_var(i,j,9) + Sfcprop(nb)%hprime(ix,24) = oro_ss_var(i,j,10) -#ifdef NEW_ORO_STAT_INFO -! print diag info - if (Model%me == Model%master ) then - print*, 'isc, iec, jsc, jec =', isc, iec, jsc, jec - nb = 1 - print*, 'Atm_block%blksz(1) =', Atm_block%blksz(nb) - i_start=Atm_block%index(nb)%ii(1) - isc + 1 - j_start=Atm_block%index(nb)%jj(1) - jsc + 1 - print*, 'i,j start=',i_start, j_start - num = Atm_block%blksz(nb) - i_end=Atm_block%index(nb)%ii(num) - isc + 1 - j_end=Atm_block%index(nb)%jj(num) - jsc + 1 - print*, 'i,j end=', i_end, j_end - do i = 1, 10 - print*, 'min/max hprime(:,i) =', & - minval(Sfcprop(nb)%hprime(:,i)), maxval(Sfcprop(nb)%hprime(:,i)), i - print*, 'min/max oro_ls(:,:,i)=', & - minval(oro_ls_var(i_start:i_end,j_start:j_end,i)), & - maxval(oro_ls_var(i_start:i_end,j_start:j_end,i)), i - enddo - do i = 15, 24 - print*, 'min/max of hprime(:,i) =', & - minval(Sfcprop(nb)%hprime(:,i)), maxval(Sfcprop(nb)%hprime(:,i)), i - print*, 'min/max of oro_ss(:,:,i) =', & - minval(oro_ss_var(i_start:i_end,j_start:j_end,i-14)), & - maxval(oro_ss_var(i_start:i_end,j_start:j_end,i-14)), i-14 + enddo enddo - endif - deallocate(oro_ls_ss_name, oro_ls_var, oro_ss_var) -#endif + call free_restart_type(Oro_ls_restart) + call free_restart_type(Oro_ss_restart) + end if + !--- SURFACE FILE if (.not. allocated(sfc_name2)) then From 94b3ee0b1d465aa8fd4b06d89ee700ee839113cc Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 19 May 2020 20:59:32 -0600 Subject: [PATCH 120/206] ccpp/config/ccpp_prebuild_config.py: remove pset logic and unused GFS_suite_init_finalize_test scheme --- ccpp/config/ccpp_prebuild_config.py | 216 ++++++++++++++-------------- 1 file changed, 107 insertions(+), 109 deletions(-) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 0e2f44572..ed316818b 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -204,119 +204,117 @@ ] # Add all physics scheme files relative to basedir -SCHEME_FILES = { +SCHEME_FILES = [ # Relative path to source (from where ccpp_prebuild.py is called) : [ list of physics sets in which scheme may be called ]; # current restrictions are that each scheme can only belong to one physics set, and all schemes within one group in the # suite definition file have to belong to the same physics set - 'FV3/ccpp/physics/physics/GFS_DCNV_generic.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_GWD_generic.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_MP_generic.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_PBL_generic.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_SCNV_generic.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_debug.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_phys_time_vary.fv3.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_rad_time_vary.fv3.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_rrtmg_post.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_rrtmg_pre.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_rrtmg_setup.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_stochastics.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_suite_interstitial.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_surface_generic.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_surface_composites.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_surface_loop_control.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_time_vary_pre.fv3.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/cires_ugwp.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/cires_ugwp_post.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/cnvc90.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/cs_conv.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/cs_conv_aw_adj.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/cu_ntiedtke_pre.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/cu_ntiedtke.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/cu_ntiedtke_post.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/dcyc2.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/drag_suite.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/gcm_shoc.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/get_prs_fv3.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/gfdl_cloud_microphys.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/gfdl_fv_sat_adj.F90' : [ 'fast_physics' ], - 'FV3/ccpp/physics/physics/gscond.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/gwdc.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/gwdps.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/h2ophys.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/samfdeepcnv.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/samfshalcnv.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/sascnvn.F' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/shalcnv.F' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/maximum_hourly_diagnostics.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/m_micro.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/m_micro_interstitial.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/cu_gf_driver_pre.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/cu_gf_driver.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/cu_gf_driver_post.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/moninedmf.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/moninedmf_hafs.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/moninshoc.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/satmedmfvdif.F' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/satmedmfvdifq.F' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/shinhongvdif.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/ysuvdif.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/module_MYNNPBL_wrapper.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/module_MYNNSFC_wrapper.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/module_SGSCloud_RadPre.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/module_SGSCloud_RadPost.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/module_MYJSFC_wrapper.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/module_MYJPBL_wrapper.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/mp_thompson_pre.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/mp_thompson.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/mp_thompson_post.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/ozphys.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/ozphys_2015.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/precpd.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/phys_tend.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/radlw_main.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/radsw_main.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rascnv.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rayleigh_damp.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmg_lw_post.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmg_lw_pre.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmg_sw_post.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmg_sw_pre.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/sfc_diag.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/sfc_diag_post.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/sfc_drv_ruc.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/lsm_ruc_sfc_sice_interstitial.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/sfc_cice.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/sfc_diff.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/sfc_drv.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/sfc_noahmp_drv.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/sfc_nst.f' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/sfc_ocean.F' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/sfc_sice.f' : [ 'slow_physics' ], - # HAFS FER_HIRES - 'FV3/ccpp/physics/physics/mp_fer_hires.F90' : [ 'slow_physics' ], - # for testing the and sections - 'FV3/ccpp/physics/physics/GFS_suite_init_finalize_test.F90' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/GFS_DCNV_generic.F90', + 'FV3/ccpp/physics/physics/GFS_GWD_generic.F90', + 'FV3/ccpp/physics/physics/GFS_MP_generic.F90', + 'FV3/ccpp/physics/physics/GFS_PBL_generic.F90', + 'FV3/ccpp/physics/physics/GFS_SCNV_generic.F90', + 'FV3/ccpp/physics/physics/GFS_debug.F90', + 'FV3/ccpp/physics/physics/GFS_phys_time_vary.fv3.F90', + 'FV3/ccpp/physics/physics/GFS_rad_time_vary.fv3.F90', + 'FV3/ccpp/physics/physics/GFS_rrtmg_post.F90', + 'FV3/ccpp/physics/physics/GFS_rrtmg_pre.F90', + 'FV3/ccpp/physics/physics/GFS_rrtmg_setup.F90', + 'FV3/ccpp/physics/physics/GFS_stochastics.F90', + 'FV3/ccpp/physics/physics/GFS_suite_interstitial.F90', + 'FV3/ccpp/physics/physics/GFS_surface_generic.F90', + 'FV3/ccpp/physics/physics/GFS_surface_composites.F90', + 'FV3/ccpp/physics/physics/GFS_surface_loop_control.F90', + 'FV3/ccpp/physics/physics/GFS_time_vary_pre.fv3.F90', + 'FV3/ccpp/physics/physics/cires_ugwp.F90', + 'FV3/ccpp/physics/physics/cires_ugwp_post.F90', + 'FV3/ccpp/physics/physics/cnvc90.f', + 'FV3/ccpp/physics/physics/cs_conv.F90', + 'FV3/ccpp/physics/physics/cs_conv_aw_adj.F90', + 'FV3/ccpp/physics/physics/cu_ntiedtke_pre.F90', + 'FV3/ccpp/physics/physics/cu_ntiedtke.F90', + 'FV3/ccpp/physics/physics/cu_ntiedtke_post.F90', + 'FV3/ccpp/physics/physics/dcyc2.f', + 'FV3/ccpp/physics/physics/drag_suite.F90', + 'FV3/ccpp/physics/physics/gcm_shoc.F90', + 'FV3/ccpp/physics/physics/get_prs_fv3.F90', + 'FV3/ccpp/physics/physics/gfdl_cloud_microphys.F90', + 'FV3/ccpp/physics/physics/gfdl_fv_sat_adj.F90', + 'FV3/ccpp/physics/physics/gscond.f', + 'FV3/ccpp/physics/physics/gwdc.f', + 'FV3/ccpp/physics/physics/gwdps.f', + 'FV3/ccpp/physics/physics/h2ophys.f', + 'FV3/ccpp/physics/physics/samfdeepcnv.f', + 'FV3/ccpp/physics/physics/samfshalcnv.f', + 'FV3/ccpp/physics/physics/sascnvn.F', + 'FV3/ccpp/physics/physics/shalcnv.F', + 'FV3/ccpp/physics/physics/maximum_hourly_diagnostics.F90', + 'FV3/ccpp/physics/physics/m_micro.F90', + 'FV3/ccpp/physics/physics/m_micro_interstitial.F90', + 'FV3/ccpp/physics/physics/cu_gf_driver_pre.F90', + 'FV3/ccpp/physics/physics/cu_gf_driver.F90', + 'FV3/ccpp/physics/physics/cu_gf_driver_post.F90', + 'FV3/ccpp/physics/physics/moninedmf.f', + 'FV3/ccpp/physics/physics/moninedmf_hafs.f', + 'FV3/ccpp/physics/physics/moninshoc.f', + 'FV3/ccpp/physics/physics/satmedmfvdif.F', + 'FV3/ccpp/physics/physics/satmedmfvdifq.F', + 'FV3/ccpp/physics/physics/shinhongvdif.F90', + 'FV3/ccpp/physics/physics/ysuvdif.F90', + 'FV3/ccpp/physics/physics/module_MYNNPBL_wrapper.F90', + 'FV3/ccpp/physics/physics/module_MYNNSFC_wrapper.F90', + 'FV3/ccpp/physics/physics/module_SGSCloud_RadPre.F90', + 'FV3/ccpp/physics/physics/module_SGSCloud_RadPost.F90', + 'FV3/ccpp/physics/physics/module_MYJSFC_wrapper.F90', + 'FV3/ccpp/physics/physics/module_MYJPBL_wrapper.F90', + 'FV3/ccpp/physics/physics/mp_thompson_pre.F90', + 'FV3/ccpp/physics/physics/mp_thompson.F90', + 'FV3/ccpp/physics/physics/mp_thompson_post.F90', + 'FV3/ccpp/physics/physics/ozphys.f', + 'FV3/ccpp/physics/physics/ozphys_2015.f', + 'FV3/ccpp/physics/physics/precpd.f', + 'FV3/ccpp/physics/physics/phys_tend.F90', + 'FV3/ccpp/physics/physics/radlw_main.f', + 'FV3/ccpp/physics/physics/radsw_main.f', + 'FV3/ccpp/physics/physics/rascnv.F90', + 'FV3/ccpp/physics/physics/rayleigh_damp.f', + 'FV3/ccpp/physics/physics/rrtmg_lw_post.F90', + 'FV3/ccpp/physics/physics/rrtmg_lw_pre.F90', + 'FV3/ccpp/physics/physics/rrtmg_sw_post.F90', + 'FV3/ccpp/physics/physics/rrtmg_sw_pre.F90', + 'FV3/ccpp/physics/physics/sfc_diag.f', + 'FV3/ccpp/physics/physics/sfc_diag_post.F90', + 'FV3/ccpp/physics/physics/sfc_drv_ruc.F90', + 'FV3/ccpp/physics/physics/lsm_ruc_sfc_sice_interstitial.F90', + 'FV3/ccpp/physics/physics/sfc_cice.f', + 'FV3/ccpp/physics/physics/sfc_diff.f', + 'FV3/ccpp/physics/physics/sfc_drv.f', + 'FV3/ccpp/physics/physics/sfc_noahmp_drv.f', + 'FV3/ccpp/physics/physics/sfc_nst.f', + 'FV3/ccpp/physics/physics/sfc_ocean.F', + 'FV3/ccpp/physics/physics/sfc_sice.f', + # HAFSFER_HIRES + 'FV3/ccpp/physics/physics/mp_fer_hires.F90', # RRTMGP - 'FV3/ccpp/physics/physics/rrtmg_lw_cloud_optics.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmg_sw_cloud_optics.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmgp_aux.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmgp_lw_gas_optics.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmgp_lw_cloud_optics.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmgp_sw_gas_optics.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmgp_sw_cloud_optics.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmgp_sw_aerosol_optics.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmgp_lw_rte.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmgp_lw_cloud_sampling.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmgp_sw_rte.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmgp_sw_cloud_sampling.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmgp_lw_aerosol_optics.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_rrtmgp_setup.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_rrtmgp_pre.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/rrtmgp_lw_pre.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_rrtmgp_sw_pre.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_rrtmgp_lw_post.F90' : [ 'slow_physics' ], - 'FV3/ccpp/physics/physics/GFS_rrtmgp_sw_post.F90' : [ 'slow_physics' ], - } + 'FV3/ccpp/physics/physics/rrtmg_lw_cloud_optics.F90', + 'FV3/ccpp/physics/physics/rrtmg_sw_cloud_optics.F90', + 'FV3/ccpp/physics/physics/rrtmgp_aux.F90', + 'FV3/ccpp/physics/physics/rrtmgp_lw_gas_optics.F90', + 'FV3/ccpp/physics/physics/rrtmgp_lw_cloud_optics.F90', + 'FV3/ccpp/physics/physics/rrtmgp_sw_gas_optics.F90', + 'FV3/ccpp/physics/physics/rrtmgp_sw_cloud_optics.F90', + 'FV3/ccpp/physics/physics/rrtmgp_sw_aerosol_optics.F90', + 'FV3/ccpp/physics/physics/rrtmgp_lw_rte.F90', + 'FV3/ccpp/physics/physics/rrtmgp_lw_cloud_sampling.F90', + 'FV3/ccpp/physics/physics/rrtmgp_sw_rte.F90', + 'FV3/ccpp/physics/physics/rrtmgp_sw_cloud_sampling.F90', + 'FV3/ccpp/physics/physics/rrtmgp_lw_aerosol_optics.F90', + 'FV3/ccpp/physics/physics/GFS_rrtmgp_setup.F90', + 'FV3/ccpp/physics/physics/GFS_rrtmgp_pre.F90', + 'FV3/ccpp/physics/physics/rrtmgp_lw_pre.F90', + 'FV3/ccpp/physics/physics/GFS_rrtmgp_sw_pre.F90', + 'FV3/ccpp/physics/physics/GFS_rrtmgp_lw_post.F90', + 'FV3/ccpp/physics/physics/GFS_rrtmgp_sw_post.F90', + ] # Default build dir, relative to current working directory, # if not specified as command-line argument From 7af8c0a9d92b4f7aac94f00b2f32aa3c284249e5 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 20 May 2020 07:15:35 -0600 Subject: [PATCH 121/206] Revert change to .gitmodules and update submodule pointers for GFDL_atmos_cubed_sphere, ccpp-framework, ccpp-physics --- .gitmodules | 18 ++++++------------ atmos_cubed_sphere | 2 +- ccpp/framework | 2 +- ccpp/physics | 2 +- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/.gitmodules b/.gitmodules index b8902197c..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,18 +1,12 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - #url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - #branch = gsd/develop - url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere - branch = update_gsd_develop_from_dev_emc + url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - #url = https://github.com/NOAA-GSD/ccpp-framework - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-framework - branch = update_gsd_develop_from_master + url = https://github.com/NOAA-GSD/ccpp-framework + branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = update_gsd_develop_from_master + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 51fa16684..042143177 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 51fa16684189c08a6bfa460b94b7da50a47283cc +Subproject commit 0421431778c48913eeb82d3f14d61092a867f0f5 diff --git a/ccpp/framework b/ccpp/framework index 64def13f5..d5ddd17c6 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 64def13f538585592801f090849f3175624f00e7 +Subproject commit d5ddd17c6bb5ef568265eae73db63f3f5f54f3d4 diff --git a/ccpp/physics b/ccpp/physics index 6e4c7874d..06473f6b0 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 6e4c7874d6685953b8887fd7638fdfb8870c4b2d +Subproject commit 06473f6b017301985db40b7584e37eb0ebef8024 From 499accf3e66f0ab56c1bbdcb58c94c0c3a69a58e Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 27 May 2020 11:50:39 -0600 Subject: [PATCH 122/206] ccpp/config/ccpp_prebuild_config.py: fix incorrect optional arguments --- ccpp/config/ccpp_prebuild_config.py | 35 ++++++++--------------------- 1 file changed, 9 insertions(+), 26 deletions(-) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index ed316818b..6a3f54a27 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -357,33 +357,16 @@ 'rrtmgp_sw_rte' : { 'rrtmgp_sw_rte_run' : [ 'components_of_surface_downward_shortwave_fluxes', - 'sw_fluxes_sfc', - 'sw_fluxes_toa', ], }, 'GFS_rrtmgp_sw_post' : { - 'GFS_rrtmgp_sw_post_run' : [ - 'components_of_surface_downward_shortwave_fluxes', - 'sw_fluxes_sfc', - 'sw_fluxes_toa', - ], + 'GFS_rrtmgp_sw_post_run' : 'none', }, 'rrtmgp_lw_rte' : { - 'rrtmgp_lw_rte_run' : [ - 'lw_fluxes_sfc', - 'lw_fluxes_toa', - ], + 'rrtmgp_lw_rte_run' : 'none', }, 'GFS_rrtmgp_lw_post' : { - 'GFS_rrtmgp_lw_post_run' : [ - 'lw_fluxes_sfc', - 'lw_fluxes_toa', - ], - }, - 'GFS_rrtmgp_post' : { - 'GFS_rrtmgp_post_run' : [ - 'components_of_surface_downward_shortwave_fluxes', - ], + 'GFS_rrtmgp_lw_post_run' : 'none', }, 'rrtmg_sw' : { 'rrtmg_sw_run' : [ @@ -419,9 +402,9 @@ 'ice_friendly_aerosol_number_concentration', 'tendency_of_water_friendly_aerosols_at_surface', 'tendency_of_ice_friendly_aerosols_at_surface', - 'mean_effective_radius_for_liquid_cloud', - 'mean_effective_radius_for_ice_cloud', - 'mean_effective_radius_for_snow_flake', + 'effective_radius_of_stratiform_cloud_liquid_water_particle_in_um', + 'effective_radius_of_stratiform_cloud_ice_particle_in_um', + 'effective_radius_of_stratiform_cloud_snow_particle_in_um', ], 'mp_thompson_run' : [ 'cloud_droplet_number_concentration_updated_by_physics', @@ -429,9 +412,9 @@ 'ice_friendly_aerosol_number_concentration_updated_by_physics', 'tendency_of_water_friendly_aerosols_at_surface', 'tendency_of_ice_friendly_aerosols_at_surface', - 'mean_effective_radius_for_liquid_cloud', - 'mean_effective_radius_for_ice_cloud', - 'mean_effective_radius_for_snow_flake', + 'effective_radius_of_stratiform_cloud_liquid_water_particle_in_um', + 'effective_radius_of_stratiform_cloud_ice_particle_in_um', + 'effective_radius_of_stratiform_cloud_snow_particle_in_um', ], }, 'mp_fer_hires' : { From dec6867c40c8ae6020b117a2211671d8ad01a537 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 27 May 2020 11:51:23 -0600 Subject: [PATCH 123/206] gfsphysics/CCPP_layer/CCPP_data.meta: fix incorrect dimensions used --- gfsphysics/CCPP_layer/CCPP_data.meta | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gfsphysics/CCPP_layer/CCPP_data.meta b/gfsphysics/CCPP_layer/CCPP_data.meta index 6cc38da06..e3f1249e5 100644 --- a/gfsphysics/CCPP_layer/CCPP_data.meta +++ b/gfsphysics/CCPP_layer/CCPP_data.meta @@ -35,11 +35,11 @@ standard_name = GFS_data_type_instance_all_blocks long_name = instance of derived type GFS_data_type units = DDT - dimensions = (ccpp_block_number) + dimensions = (ccpp_block_count) type = GFS_data_type [GFS_Interstitial] standard_name = GFS_interstitial_type_instance_all_threads long_name = instance of derived type GFS_interstitial_type units = DDT - dimensions = (ccpp_thread_number) + dimensions = (omp_threads) type = GFS_interstitial_type From b6411ba4afd82392ff1290a7b17dc0856c05742b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 27 May 2020 11:52:55 -0600 Subject: [PATCH 124/206] gfsphysics/GFS_layer/GFS_typedefs.{F90,meta}: replace Model%blksz2 with Model%ncols, correct errors in metadata --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 10 +++++----- gfsphysics/GFS_layer/GFS_typedefs.meta | 10 ++++++---- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index dcbd41ff2..8ebc4f914 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -596,7 +596,7 @@ module GFS_typedefs integer :: nblks !< for explicit data blocking: number of blocks integer, pointer :: blksz(:) !< for explicit data blocking: block sizes of all blocks #ifdef CCPP - integer, pointer :: blksz2(:) !< for explicit data blocking: block sizes of all blocks (duplicate) + integer :: ncols !< total number of columns for all blocks #endif !--- coupling parameters @@ -3576,8 +3576,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & allocate(Model%blksz(1:Model%nblks)) Model%blksz = blksz #ifdef CCPP - allocate(Model%blksz2(1:Model%nblks)) - Model%blksz2 = blksz + Model%ncols = sum(Model%blksz) #endif !--- coupling parameters @@ -4740,6 +4739,9 @@ subroutine control_print(Model) print *, ' latr : ', Model%latr print *, ' blksz(1) : ', Model%blksz(1) print *, ' blksz(nblks) : ', Model%blksz(Model%nblks) +#ifdef CCPP + print *, ' Model%ncols : ', Model%ncols +#endif print *, ' ' print *, 'coupling parameters' print *, ' cplflx : ', Model%cplflx @@ -5651,7 +5653,6 @@ subroutine diag_create (Diag, IM, Model) !--- MYNN variables: if (Model%do_mynnedmf) then if (Model%bl_mynn_output .ne. 0) then - !print*,"Allocating all MYNN-EDMF variables:" allocate (Diag%edmf_a (IM,Model%levs)) allocate (Diag%edmf_w (IM,Model%levs)) allocate (Diag%edmf_qt (IM,Model%levs)) @@ -5669,7 +5670,6 @@ subroutine diag_create (Diag, IM, Model) allocate (Diag%exch_h (IM,Model%levs)) allocate (Diag%exch_m (IM,Model%levs)) if (Model%bl_mynn_output .ne. 0) then - !print*,"Initializing all MYNN-EDMF variables with ",clear_val Diag%edmf_a = clear_val Diag%edmf_w = clear_val Diag%edmf_qt = clear_val diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 7de8c364b..d61d40407 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1876,6 +1876,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys + active = (flag_for_microphysics_scheme == flag_for_thompson_microphysics_scheme .and. flag_for_aerosol_physics) [nifa2d] standard_name = tendency_of_ice_friendly_aerosols_at_surface long_name = instantaneous ice-friendly sfc aerosol source @@ -1883,6 +1884,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys + active = (flag_for_microphysics_scheme == flag_for_thompson_microphysics_scheme .and. flag_for_aerosol_physics) [ushfsfci] standard_name = instantaneous_surface_upward_sensible_heat_flux_for_chemistry_coupling long_name = instantaneous upward sensible heat flux for chemistry coupling @@ -2067,16 +2069,16 @@ dimensions = () type = integer [nblks] - standard_name = number_of_blocks + standard_name = ccpp_block_count long_name = for explicit data blocking: number of blocks units = count dimensions = () type = integer [blksz] - standard_name = horizontal_block_size + standard_name = ccpp_block_sizes long_name = for explicit data blocking: block sizes of all blocks units = count - dimensions = (number_of_blocks) + dimensions = (ccpp_block_count) type = integer [blksz(ccpp_block_number)] standard_name = horizontal_loop_extent @@ -2084,7 +2086,7 @@ units = count dimensions = () type = integer -[blksz2(ccpp_block_number)] +[ncols] standard_name = horizontal_dimension long_name = horizontal dimension units = count From 45337f787101509636cd5fc5159b2f68fc7fe3aa Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 27 May 2020 11:53:23 -0600 Subject: [PATCH 125/206] Update .gitmodules and submodule pointers for ccpp-physics and ccpp-framework for code review and testing --- .gitmodules | 12 ++++++++---- ccpp/framework | 2 +- ccpp/physics | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..b27bbc67f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,9 +4,13 @@ branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/NOAA-GSD/ccpp-framework - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-framework + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-framework + branch = gsd_develop_blocked_data_structures [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = gsd_develop_blocked_data_structures diff --git a/ccpp/framework b/ccpp/framework index d5ddd17c6..197504183 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit d5ddd17c6bb5ef568265eae73db63f3f5f54f3d4 +Subproject commit 1975041837fb34774690212e57b41c3d79026d1f diff --git a/ccpp/physics b/ccpp/physics index 06473f6b0..6d6dd49ea 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 06473f6b017301985db40b7584e37eb0ebef8024 +Subproject commit 6d6dd49eafeb687ea23b23790937a8f2e21a898e From 289edfc507af77eef5735ebec66853bcabce868a Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 27 May 2020 20:14:31 -0600 Subject: [PATCH 126/206] Minor bugfixes for handling conditionally allocated variables --- ccpp/framework | 2 +- ccpp/physics | 2 +- gfsphysics/GFS_layer/GFS_typedefs.meta | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ccpp/framework b/ccpp/framework index 197504183..6fec655d6 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 1975041837fb34774690212e57b41c3d79026d1f +Subproject commit 6fec655d6eb713d1f56c7772b3d1d03b46d35dbc diff --git a/ccpp/physics b/ccpp/physics index 6d6dd49ea..ecd677797 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 6d6dd49eafeb687ea23b23790937a8f2e21a898e +Subproject commit ecd67779749491ca6d0e0ec6f71ab5e8535f8a7f diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index d61d40407..8e26aec7c 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -200,6 +200,7 @@ long_name = number concentration of water-friendly aerosols units = kg-1 dimensions = (horizontal_dimension,vertical_dimension) + active = (index_for_water_friendly_aerosols > 0) type = real kind = kind_phys [qgrs(:,:,index_for_ice_friendly_aerosols)] @@ -207,6 +208,7 @@ long_name = number concentration of ice-friendly aerosols units = kg-1 dimensions = (horizontal_dimension,vertical_dimension) + active = (index_for_ice_friendly_aerosols > 0) type = real kind = kind_phys [qgrs(:,:,index_for_liquid_cloud_number_concentration)] @@ -216,6 +218,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (index_for_liquid_cloud_number_concentration > 0) [qgrs(:,:,index_for_ice_cloud_number_concentration)] standard_name = ice_number_concentration long_name = number concentration of ice @@ -382,6 +385,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (index_for_water_friendly_aerosols > 0) [gq0(:,:,index_for_ice_friendly_aerosols)] standard_name = ice_friendly_aerosol_number_concentration_updated_by_physics long_name = number concentration of ice-friendly aerosols updated by physics @@ -389,6 +393,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (index_for_ice_friendly_aerosols > 0) [gq0(:,:,index_for_liquid_cloud_number_concentration)] standard_name = cloud_droplet_number_concentration_updated_by_physics long_name = number concentration of cloud droplets updated by physics @@ -396,6 +401,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (index_for_liquid_cloud_number_concentration > 0) [gq0(:,:,index_for_ice_cloud_number_concentration)] standard_name = ice_number_concentration_updated_by_physics long_name = number concentration of ice updated by physics @@ -6802,6 +6808,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (index_for_liquid_cloud_number_concentration > 0) [dqdt(:,:,index_for_ice_cloud_number_concentration)] standard_name = tendency_of_ice_number_concentration_due_to_model_physics long_name = number concentration of ice tendency due to model physics @@ -6816,6 +6823,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (index_for_water_friendly_aerosols > 0) [dqdt(:,:,index_for_ice_friendly_aerosols)] standard_name = tendency_of_ice_friendly_aerosol_number_concentration_due_to_model_physics long_name = number concentration of ice-friendly aerosols tendency due to model physics @@ -6823,6 +6831,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (index_for_ice_friendly_aerosols > 0) [dqdt(:,:,index_for_rain_water)] standard_name = tendency_of_rain_water_mixing_ratio_due_to_model_physics long_name = ratio of mass of rain water tendency to mass of dry air plus vapor (without condensates) due to model physics From 7ef68276ce7b4d8ef8efa038826ce8cdedefb29a Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 1 Jun 2020 15:34:08 -0600 Subject: [PATCH 127/206] Revert change to .gitmodules and update submodule pointers for ccpp-framework and ccpp-physics --- .gitmodules | 12 ++++-------- ccpp/framework | 2 +- ccpp/physics | 2 +- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/.gitmodules b/.gitmodules index b27bbc67f..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,13 +4,9 @@ branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - #url = https://github.com/NOAA-GSD/ccpp-framework - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-framework - branch = gsd_develop_blocked_data_structures + url = https://github.com/NOAA-GSD/ccpp-framework + branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = gsd_develop_blocked_data_structures + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/framework b/ccpp/framework index 6fec655d6..e883bb0f0 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 6fec655d6eb713d1f56c7772b3d1d03b46d35dbc +Subproject commit e883bb0f0245af4cf37084ceb2d692fb90f3ef43 diff --git a/ccpp/physics b/ccpp/physics index ecd677797..64e8ff620 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit ecd67779749491ca6d0e0ec6f71ab5e8535f8a7f +Subproject commit 64e8ff620f969e864dd8390d85ba0e287427d8bb From 92005bd48dd87577a48e7a7e62ecae4ddff1d0f6 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 2 Jun 2020 08:24:37 -0600 Subject: [PATCH 128/206] ccpp/config/ccpp_prebuild_config.py: turn off calculation of cloud effective radii in mp_thompson_init and mp_thompson_run, this is done in GFS_rrtmg_pre_run --- ccpp/config/ccpp_prebuild_config.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 6a3f54a27..cb9a0ade4 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -402,9 +402,11 @@ 'ice_friendly_aerosol_number_concentration', 'tendency_of_water_friendly_aerosols_at_surface', 'tendency_of_ice_friendly_aerosols_at_surface', - 'effective_radius_of_stratiform_cloud_liquid_water_particle_in_um', - 'effective_radius_of_stratiform_cloud_ice_particle_in_um', - 'effective_radius_of_stratiform_cloud_snow_particle_in_um', + # DH* 2020-06-01: turn off calculation of effective radii, now done in GFS_rrtmg_pre + #'effective_radius_of_stratiform_cloud_liquid_water_particle_in_um', + #'effective_radius_of_stratiform_cloud_ice_particle_in_um', + #'effective_radius_of_stratiform_cloud_snow_particle_in_um', + # *DH 2020-06-01 ], 'mp_thompson_run' : [ 'cloud_droplet_number_concentration_updated_by_physics', @@ -412,9 +414,11 @@ 'ice_friendly_aerosol_number_concentration_updated_by_physics', 'tendency_of_water_friendly_aerosols_at_surface', 'tendency_of_ice_friendly_aerosols_at_surface', - 'effective_radius_of_stratiform_cloud_liquid_water_particle_in_um', - 'effective_radius_of_stratiform_cloud_ice_particle_in_um', - 'effective_radius_of_stratiform_cloud_snow_particle_in_um', + # DH* 2020-06-01: turn off calculation of effective radii, now done in GFS_rrtmg_pre + #'effective_radius_of_stratiform_cloud_liquid_water_particle_in_um', + #'effective_radius_of_stratiform_cloud_ice_particle_in_um', + #'effective_radius_of_stratiform_cloud_snow_particle_in_um', + # *DH 2020-06-01 ], }, 'mp_fer_hires' : { From df3378e256e099cf0860798e52d9615ca518071c Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 2 Jun 2020 08:25:05 -0600 Subject: [PATCH 129/206] Update .gitmodules and submodule pointer for ccpp-physics for code review and testing --- .gitmodules | 6 ++++-- ccpp/physics | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..53f19eadd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,7 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = thompson_mp_cloud_effective_radii_cleanup diff --git a/ccpp/physics b/ccpp/physics index 64e8ff620..2aa91ae97 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 64e8ff620f969e864dd8390d85ba0e287427d8bb +Subproject commit 2aa91ae97ef29195995317ee2285972c0abc1afb From f9b4dcc895328493e5d4dec5b30a35e0a4aff083 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 3 Jun 2020 16:26:33 -0600 Subject: [PATCH 130/206] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 6 ++---- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index 53f19eadd..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = thompson_mp_cloud_effective_radii_cleanup + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index 2aa91ae97..02bdecf8f 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 2aa91ae97ef29195995317ee2285972c0abc1afb +Subproject commit 02bdecf8fa1395016775ee2ac1d3f9ae113e8ed0 From 358697c1b80916a26f00b0ae2b4ed818ac76fc45 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 3 Jun 2020 17:42:15 -0600 Subject: [PATCH 131/206] Change suite FV3_RAPHRRR to FV3_HRRR --- ccpp/suites/{suite_FV3_RAPHRRR.xml => suite_FV3_HRRR.xml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename ccpp/suites/{suite_FV3_RAPHRRR.xml => suite_FV3_HRRR.xml} (98%) diff --git a/ccpp/suites/suite_FV3_RAPHRRR.xml b/ccpp/suites/suite_FV3_HRRR.xml similarity index 98% rename from ccpp/suites/suite_FV3_RAPHRRR.xml rename to ccpp/suites/suite_FV3_HRRR.xml index a6e188fce..8f57ea4ed 100644 --- a/ccpp/suites/suite_FV3_RAPHRRR.xml +++ b/ccpp/suites/suite_FV3_HRRR.xml @@ -1,6 +1,6 @@ - + From 739da03e3dcc68a8ca99f2e92b742b1626bee6ec Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 3 Jun 2020 20:41:23 -0600 Subject: [PATCH 132/206] Update .gitmodules and submodule pointer for ccpp-physics --- .gitmodules | 6 ++++-- ccpp/physics | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..ecbc29331 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,7 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = add_drag_suite_and_other_updates diff --git a/ccpp/physics b/ccpp/physics index 02bdecf8f..b271cf7e9 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 02bdecf8fa1395016775ee2ac1d3f9ae113e8ed0 +Subproject commit b271cf7e974a1b10c60593555e615635de98a836 From 27eaec12e3863d8c4179ac82109ccd9ea250d6b6 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 4 Jun 2020 11:04:16 -0600 Subject: [PATCH 133/206] Use GSL drag suite instead of CIRES UGWP in suite_FV3_HRRR.xml, add suite_FV3_RAP.xml --- ccpp/suites/suite_FV3_HRRR.xml | 3 +- ccpp/suites/suite_FV3_RAP.xml | 92 ++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 ccpp/suites/suite_FV3_RAP.xml diff --git a/ccpp/suites/suite_FV3_HRRR.xml b/ccpp/suites/suite_FV3_HRRR.xml index 8f57ea4ed..24f57b8ec 100644 --- a/ccpp/suites/suite_FV3_HRRR.xml +++ b/ccpp/suites/suite_FV3_HRRR.xml @@ -58,8 +58,7 @@ GFS_surface_generic_post mynnedmf_wrapper GFS_GWD_generic_pre - cires_ugwp - cires_ugwp_post + drag_suite GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update diff --git a/ccpp/suites/suite_FV3_RAP.xml b/ccpp/suites/suite_FV3_RAP.xml new file mode 100644 index 000000000..3f145c144 --- /dev/null +++ b/ccpp/suites/suite_FV3_RAP.xml @@ -0,0 +1,92 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + mynnsfc_wrapper + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_ruc + lsm_ruc_sfc_sice_pre + sfc_sice + lsm_ruc_sfc_sice_post + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + GFS_GWD_generic_pre + drag_suite + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + cu_gf_driver_pre + cu_gf_driver + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + cu_gf_driver_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + From c996a9a3836013fd9aed8cfd9fd095ab73372122 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 4 Jun 2020 20:23:31 -0600 Subject: [PATCH 134/206] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 6 ++---- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index ecbc29331..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = add_drag_suite_and_other_updates + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index b271cf7e9..3a48b23a2 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit b271cf7e974a1b10c60593555e615635de98a836 +Subproject commit 3a48b23a225d0ce57688bb79088929614d94d6f6 From 1d72809bd3058082680910e510a75ada5e4edb28 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 4 Jun 2020 21:17:26 -0600 Subject: [PATCH 135/206] Update .gitmodules and submodule pointer for ccpp-physics for code review and testing --- .gitmodules | 6 ++++-- ccpp/physics | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..bd0308647 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,7 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = radcloud_cleanup diff --git a/ccpp/physics b/ccpp/physics index 3a48b23a2..fc9a06dda 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 3a48b23a225d0ce57688bb79088929614d94d6f6 +Subproject commit fc9a06dda429f9908e5a136e703a75e3b5b867d7 From 392a0b006ed2d19aa612665d613906f855e1d2de Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 5 Jun 2020 13:52:14 -0600 Subject: [PATCH 136/206] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 6 ++---- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index bd0308647..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = radcloud_cleanup + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index fc9a06dda..3b0f7c227 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit fc9a06dda429f9908e5a136e703a75e3b5b867d7 +Subproject commit 3b0f7c22709f05bfc31e1838a8c76d2fdaa4f45b From 9795ea78606f7a481dd4fc44d5d2750b07da5fc4 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 8 Jun 2020 14:41:49 -0600 Subject: [PATCH 137/206] Update .gitmodules and submodule pointer for ccpp-physics for code review and testing --- .gitmodules | 4 +++- ccpp/physics | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..39ea71811 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,7 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics + #url = https://github.com/NOAA-GSD/ccpp-physics + url = https://github.com/joeolson42/ccpp-physics branch = gsd/develop + diff --git a/ccpp/physics b/ccpp/physics index 3b0f7c227..43821e3e4 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 3b0f7c22709f05bfc31e1838a8c76d2fdaa4f45b +Subproject commit 43821e3e426bc12950c91e370add48743bb7e901 From 0883e97d97be4dd9f065ca7cc3061fab4b0aad16 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 9 Jun 2020 07:15:43 -0600 Subject: [PATCH 138/206] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 3 +-- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 39ea71811..c67c61fa3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,6 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - url = https://github.com/joeolson42/ccpp-physics + url = https://github.com/NOAA-GSD/ccpp-physics branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index 43821e3e4..84047fea1 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 43821e3e426bc12950c91e370add48743bb7e901 +Subproject commit 84047fea16d37d9b07ae0b560d0bd6fe45652e09 From ac8f47ad342dfdda9cc66ac8b1fd8af0130b1b3d Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 9 Jun 2020 13:30:32 -0600 Subject: [PATCH 139/206] Update .gitmodules and submodule pointer for ccpp-physics for code review and testing --- .gitmodules | 7 ++++--- ccpp/physics | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitmodules b/.gitmodules index c67c61fa3..dd1cee527 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,6 +8,7 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop - + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = rollback_thompson diff --git a/ccpp/physics b/ccpp/physics index 84047fea1..4619424a2 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 84047fea16d37d9b07ae0b560d0bd6fe45652e09 +Subproject commit 4619424a2040d51cf63d2b92dde10c3a42cb02fe From 4dfe7375f237270131685afaf236d255261f2508 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 12 Jun 2020 14:51:38 -0600 Subject: [PATCH 140/206] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 6 ++---- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index dd1cee527..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = rollback_thompson + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index 4619424a2..783ccf99a 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 4619424a2040d51cf63d2b92dde10c3a42cb02fe +Subproject commit 783ccf99af3c0cb79d45935f917b239216873352 From a249ccb6d95288546d5c43f87513f99cc950cded Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 17 Jun 2020 09:58:40 -0600 Subject: [PATCH 141/206] Update .gitmodules and submodule pointers for atmos_cubed_sphere, ccpp/framework, ccpp/physics --- .gitmodules | 18 ++++++++++++------ atmos_cubed_sphere | 2 +- ccpp/framework | 2 +- ccpp/physics | 2 +- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..9baedd2dd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,18 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - branch = gsd/develop + #url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + #branch = gsd/develop + url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere + branch = update_gsd_develop_from_dev_emc_20200616 [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/NOAA-GSD/ccpp-framework - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-framework + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-framework + branch = update_gsd_develop_from_master_20200616 [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = update_gsd_develop_from_master_20200616 diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 042143177..59f58826b 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 0421431778c48913eeb82d3f14d61092a867f0f5 +Subproject commit 59f58826b5598bb126483ab6d7f9eda73d646217 diff --git a/ccpp/framework b/ccpp/framework index e883bb0f0..ee3b2abd2 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit e883bb0f0245af4cf37084ceb2d692fb90f3ef43 +Subproject commit ee3b2abd248e168b5375503914707bbcdeabcc96 diff --git a/ccpp/physics b/ccpp/physics index 783ccf99a..785cc52de 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 783ccf99af3c0cb79d45935f917b239216873352 +Subproject commit 785cc52def93aa99d091498145e7556621ac0cb9 From dc22afe564d2ad8f5e884982a926a1f6fd48541c Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 17 Jun 2020 12:33:15 -0600 Subject: [PATCH 142/206] io/FV3GFS_io.F90: wrap new orographic data in #ifdef CCPP --- io/FV3GFS_io.F90 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90 index 7bc5edbc3..4b2738b23 100644 --- a/io/FV3GFS_io.F90 +++ b/io/FV3GFS_io.F90 @@ -647,7 +647,7 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) deallocate(oro_name2, oro_var2) call free_restart_type(Oro_restart) - +#ifdef CCPP !--- Modify/read-in additional orographic static fields for GSL drag suite if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then if (.not. allocated(oro_ls_ss_name)) then @@ -722,6 +722,7 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) call free_restart_type(Oro_ls_restart) call free_restart_type(Oro_ss_restart) end if +#endif !--- SURFACE FILE if (.not. allocated(sfc_name2)) then From 2ea9d393a520b4678d6f89a15479d5862fcdb112 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 18 Jun 2020 15:55:30 -0600 Subject: [PATCH 143/206] Update submodule pointer for ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 785cc52de..cb28c67e5 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 785cc52def93aa99d091498145e7556621ac0cb9 +Subproject commit cb28c67e517cb98e187442b18e6dd4465359be09 From 06d596efff252fd7d3b4c46c99d1391e2eb283fd Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 18 Jun 2020 20:47:14 -0600 Subject: [PATCH 144/206] Revert change to .gitmodules and update submodule pointers for GFDL_atmos_cubed_sphere, ccpp-framework, ccpp-physics --- .gitmodules | 18 ++++++------------ atmos_cubed_sphere | 2 +- ccpp/framework | 2 +- ccpp/physics | 2 +- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/.gitmodules b/.gitmodules index 9baedd2dd..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,18 +1,12 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - #url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - #branch = gsd/develop - url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere - branch = update_gsd_develop_from_dev_emc_20200616 + url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - #url = https://github.com/NOAA-GSD/ccpp-framework - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-framework - branch = update_gsd_develop_from_master_20200616 + url = https://github.com/NOAA-GSD/ccpp-framework + branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = update_gsd_develop_from_master_20200616 + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 59f58826b..9e1c85631 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 59f58826b5598bb126483ab6d7f9eda73d646217 +Subproject commit 9e1c856314356366bc41a86231575de04c4f8b47 diff --git a/ccpp/framework b/ccpp/framework index ee3b2abd2..9578bf9b3 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit ee3b2abd248e168b5375503914707bbcdeabcc96 +Subproject commit 9578bf9b34ee92dfcbba69fac283195264211efb diff --git a/ccpp/physics b/ccpp/physics index cb28c67e5..10eaa1afb 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit cb28c67e517cb98e187442b18e6dd4465359be09 +Subproject commit 10eaa1afb58fc28b6d72da57b93225e95e0b1eb2 From c73d3847b6a9fb4580039bc995aa17a53a29b145 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 25 Jun 2020 07:46:06 -0600 Subject: [PATCH 145/206] Update .gitmodules and submodule pointer for GFDL_atmos_cubed_sphere and ccpp-physics for code review and testing --- .gitmodules | 10 +++++++--- atmos_cubed_sphere | 2 +- ccpp/physics | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..5aae3af21 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,9 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - branch = gsd/develop + #url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + #branch = gsd/develop + url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere + branch = update_gsd_develop_from_dev_emc_20200625 [submodule "ccpp/framework"] path = ccpp/framework url = https://github.com/NOAA-GSD/ccpp-framework @@ -9,4 +11,6 @@ [submodule "ccpp/physics"] path = ccpp/physics url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #branch = gsd/develop + url = https://github.com/benwgreen/ccpp-physics + branch = bwg_mod_for_frac diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 9e1c85631..d1620e2cf 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 9e1c856314356366bc41a86231575de04c4f8b47 +Subproject commit d1620e2cf263ab9d59b8e485c24622a0b8412b08 diff --git a/ccpp/physics b/ccpp/physics index 10eaa1afb..37719daee 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 10eaa1afb58fc28b6d72da57b93225e95e0b1eb2 +Subproject commit 37719daee48f16e7be2c510ab0a3425e856c1eef From fb31f767ec2448b244df148bc5d430d1f6badac2 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 25 Jun 2020 07:58:19 -0600 Subject: [PATCH 146/206] Update .gitmodules and submodule pointer for ccpp-physics --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 5aae3af21..114a7e883 100644 --- a/.gitmodules +++ b/.gitmodules @@ -12,5 +12,5 @@ path = ccpp/physics url = https://github.com/NOAA-GSD/ccpp-physics #branch = gsd/develop - url = https://github.com/benwgreen/ccpp-physics - branch = bwg_mod_for_frac + url = https://github.com/climbfuji/ccpp-physics + branch = ben_bwg_mod_for_frac diff --git a/ccpp/physics b/ccpp/physics index 37719daee..728c076a6 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 37719daee48f16e7be2c510ab0a3425e856c1eef +Subproject commit 728c076a64f921670e8be18d1b0c0d79de6e3254 From ff91cff2d60d4097b9cd9cf78d94504222db6be3 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 25 Jun 2020 11:41:54 -0600 Subject: [PATCH 147/206] Revert change to .gitmodules and update submodule pointer for GFDL_atmos_cubed_sphere and ccpp-physics --- .gitmodules | 10 +++------- atmos_cubed_sphere | 2 +- ccpp/physics | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.gitmodules b/.gitmodules index 114a7e883..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,7 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - #url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - #branch = gsd/develop - url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere - branch = update_gsd_develop_from_dev_emc_20200625 + url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework url = https://github.com/NOAA-GSD/ccpp-framework @@ -11,6 +9,4 @@ [submodule "ccpp/physics"] path = ccpp/physics url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = ben_bwg_mod_for_frac + branch = gsd/develop diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index d1620e2cf..658b1395e 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit d1620e2cf263ab9d59b8e485c24622a0b8412b08 +Subproject commit 658b1395e315446cc15cc494b310f831e793ce73 diff --git a/ccpp/physics b/ccpp/physics index 728c076a6..022ae370b 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 728c076a64f921670e8be18d1b0c0d79de6e3254 +Subproject commit 022ae370bcfe95689cb0935fb6da8f6e24b6bb7f From 80732faae3d98278371f97c4331990b44653c2d2 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 29 Jun 2020 08:25:00 -0600 Subject: [PATCH 148/206] Update .gitmodules and submodule pointers for GFDL_atmos_cubed_sphere and ccpp-physics for code review and testing --- .gitmodules | 9 ++++++--- atmos_cubed_sphere | 2 +- ccpp/physics | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..ee4437efa 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,15 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - branch = gsd/develop + #url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + #branch = gsd/develop + url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere + branch = dycore_bugfixes_for_gsd_develop_20200629 [submodule "ccpp/framework"] path = ccpp/framework url = https://github.com/NOAA-GSD/ccpp-framework branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics + #url = https://github.com/NOAA-GSD/ccpp-physics + url = https://github.com/joeolson42/ccpp-physics branch = gsd/develop diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 658b1395e..e26f1a013 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 658b1395e315446cc15cc494b310f831e793ce73 +Subproject commit e26f1a013aa293ddf71843100ce5d689da5ee665 diff --git a/ccpp/physics b/ccpp/physics index 022ae370b..3e214f7bf 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 022ae370bcfe95689cb0935fb6da8f6e24b6bb7f +Subproject commit 3e214f7bffb840235b88a2d164963397ef3ba165 From 1074e938d4fe48a88651c9afc828f86c064577df Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 29 Jun 2020 13:31:55 -0600 Subject: [PATCH 149/206] Revert change to .gitmodules and update submodule pointers for GFDL_atmos_cubed_sphere and ccpp-physics --- .gitmodules | 9 +++------ atmos_cubed_sphere | 2 +- ccpp/physics | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/.gitmodules b/.gitmodules index ee4437efa..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,15 +1,12 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - #url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - #branch = gsd/develop - url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere - branch = dycore_bugfixes_for_gsd_develop_20200629 + url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework url = https://github.com/NOAA-GSD/ccpp-framework branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - url = https://github.com/joeolson42/ccpp-physics + url = https://github.com/NOAA-GSD/ccpp-physics branch = gsd/develop diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 33049d841..3c8a27dd5 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 33049d841d039cb23e0cc8005f12337ce81f57d8 +Subproject commit 3c8a27dd53a3b9860a4ae22843656ca17d8077b6 diff --git a/ccpp/physics b/ccpp/physics index 3e214f7bf..37e799eec 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 3e214f7bffb840235b88a2d164963397ef3ba165 +Subproject commit 37e799eecbe5f1d1ea4ad4d41de1481b322e8a7d From 026b0aa8ed751c4a081b49195f6c8e3b9f0d540e Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 7 Jul 2020 11:15:24 -0600 Subject: [PATCH 150/206] Update .gitmodules and submodule pointers for GFDL_atmos_cubed_sphere, ccpp-framework and ccpp-physics for code review and testing --- .gitmodules | 19 +++++++++++++------ atmos_cubed_sphere | 2 +- ccpp/framework | 2 +- ccpp/physics | 2 +- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..f490c99f5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,19 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - branch = gsd/develop + #url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + #branch = gsd/develop + url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere + branch = update_gsd_develop_from_emc_dev_emc_20200707 [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/NOAA-GSD/ccpp-framework - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-framework + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-framework + branch = update_gsd_develop_from_ncar_master_20200707 [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-framework + branch = update_gsd_develop_from_ncar_master_20200707 + diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 3c8a27dd5..0362ed1de 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 3c8a27dd53a3b9860a4ae22843656ca17d8077b6 +Subproject commit 0362ed1decf9eed9ff4f2857807c7f16618e5234 diff --git a/ccpp/framework b/ccpp/framework index b14e3e041..c1c6a2a10 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit b14e3e0415205ea4d3004bfb5241cc34da702db8 +Subproject commit c1c6a2a103798730c32e7ab4b3080087cedb8695 diff --git a/ccpp/physics b/ccpp/physics index 01c2257ab..e9ca9086f 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 01c2257ab1538b3e9a51fed5a5b10f4dda5bfddf +Subproject commit e9ca9086f9d556652c5965a3cc402a473de2c149 From 9f191aee8859551767ef531e74c2e2bea9d2d0f4 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 8 Jul 2020 09:14:19 -0600 Subject: [PATCH 151/206] Revert change to .gitmodules and update submodule pointers for GFDL_atmos_cubed_sphere, ccpp-framework, ccpp-physics --- .gitmodules | 19 ++++++------------- atmos_cubed_sphere | 2 +- ccpp/framework | 2 +- ccpp/physics | 2 +- 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/.gitmodules b/.gitmodules index f490c99f5..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,19 +1,12 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - #url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - #branch = gsd/develop - url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere - branch = update_gsd_develop_from_emc_dev_emc_20200707 + url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - #url = https://github.com/NOAA-GSD/ccpp-framework - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-framework - branch = update_gsd_develop_from_ncar_master_20200707 + url = https://github.com/NOAA-GSD/ccpp-framework + branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-framework - branch = update_gsd_develop_from_ncar_master_20200707 - + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 0362ed1de..664d0dc29 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 0362ed1decf9eed9ff4f2857807c7f16618e5234 +Subproject commit 664d0dc291e880043ff0415b5a8acabe1ade52fc diff --git a/ccpp/framework b/ccpp/framework index c1c6a2a10..c5ede565f 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit c1c6a2a103798730c32e7ab4b3080087cedb8695 +Subproject commit c5ede565f5e9ff434619498bfea77c19cbb21a20 diff --git a/ccpp/physics b/ccpp/physics index e9ca9086f..eab936e42 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit e9ca9086f9d556652c5965a3cc402a473de2c149 +Subproject commit eab936e42875d35b4e38b3cfe6cb2e099fd9c88d From 8ad85d3c206aeb5c544b8b8a76d7e978039e5b3c Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 7 Aug 2020 09:11:24 -0600 Subject: [PATCH 152/206] Revert change to .gitmodules and update submodule pointers for GFDL_atmos_cubed_sphere, ccpp-framework, ccpp-physics --- .gitmodules | 18 ++++++------------ atmos_cubed_sphere | 2 +- ccpp/framework | 2 +- ccpp/physics | 2 +- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/.gitmodules b/.gitmodules index a7a480045..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,18 +1,12 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - #url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - #branch = gsd/develop - url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere - branch = update_gsd_develop_from_dev_emc + url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - #url = https://github.com/NOAA-GSD/ccpp-framework - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-framework - branch = update_gsd_develop_from_ncar_master + url = https://github.com/NOAA-GSD/ccpp-framework + branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = update_gsd_develop_from_ncar_master + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 33442244a..e8896bc0f 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 33442244a7f11b40645a7c39af7530127f1b1819 +Subproject commit e8896bc0f582c7c825eaa198cbbb83c206a29d43 diff --git a/ccpp/framework b/ccpp/framework index fa73899a7..0b84becf3 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit fa73899a7cf7c7302e338cc8da74f39ebe81f3e4 +Subproject commit 0b84becf3ca7f541b37fc9cf8d11a45aa2b14407 diff --git a/ccpp/physics b/ccpp/physics index c341e564c..273557081 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit c341e564c7a58dcf30de1530ee1e25a6407e93bd +Subproject commit 2735570811a9d91fd7909e785735e4ea4349dd4e From 85f55c239671ad6234ec46aaa4bb74181fdb23bb Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 10 Aug 2020 10:03:30 -0600 Subject: [PATCH 153/206] Add tracer sanitizer to list of CCPP schemes and to two suite definition files --- ccpp/config/ccpp_prebuild_config.py | 1 + ccpp/suites/suite_FV3_GSD_noah.xml | 1 + ccpp/suites/suite_FV3_GSD_v0.xml | 1 + 3 files changed, 3 insertions(+) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index a1aa5cd16..47fe35327 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -294,6 +294,7 @@ 'FV3/ccpp/physics/physics/sfc_nst.f', 'FV3/ccpp/physics/physics/sfc_ocean.F', 'FV3/ccpp/physics/physics/sfc_sice.f', + 'FV3/ccpp/physics/physics/tracer_sanitizer.F90', # HAFSFER_HIRES 'FV3/ccpp/physics/physics/mp_fer_hires.F90', # RRTMGP diff --git a/ccpp/suites/suite_FV3_GSD_noah.xml b/ccpp/suites/suite_FV3_GSD_noah.xml index d8821ed66..5e270a94a 100644 --- a/ccpp/suites/suite_FV3_GSD_noah.xml +++ b/ccpp/suites/suite_FV3_GSD_noah.xml @@ -79,6 +79,7 @@ mp_thompson_post GFS_MP_generic_post cu_gf_driver_post + tracer_sanitizer maximum_hourly_diagnostics diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index d3a23a30c..ce1dce539 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -81,6 +81,7 @@ mp_thompson_post GFS_MP_generic_post cu_gf_driver_post + tracer_sanitizer maximum_hourly_diagnostics From f3ed818fb8e12beef2ab65b5496bea66c4e596f0 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 10 Aug 2020 10:03:47 -0600 Subject: [PATCH 154/206] Update .gitmodules and submodule pointer for ccpp-physics for code review and testing --- .gitmodules | 6 ++++-- ccpp/physics | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..604dfa9e3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,7 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = tracer_sanitizer diff --git a/ccpp/physics b/ccpp/physics index 273557081..2235fb5ec 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 2735570811a9d91fd7909e785735e4ea4349dd4e +Subproject commit 2235fb5ec61cb1af47879acd3db6c665c57604af From 9d2fb58e2cc4a9a840601ae0eb70f09bb684e576 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 11 Aug 2020 07:21:11 -0600 Subject: [PATCH 155/206] Fix linker problem in gfsphysics/CMakeLists.txt by removing physics/physparam.f from IPD sources --- gfsphysics/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/gfsphysics/CMakeLists.txt b/gfsphysics/CMakeLists.txt index 34faf6f4c..2c5040588 100644 --- a/gfsphysics/CMakeLists.txt +++ b/gfsphysics/CMakeLists.txt @@ -17,7 +17,6 @@ endif() set(CCPP_SOURCES physics/mersenne_twister.f physics/namelist_soilveg.f - physics/physparam.f physics/set_soilveg.f physics/noahmp_tables.f90 From 9bd419cd45dd46f469b510d7e380c77633f37efa Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 11 Aug 2020 07:21:25 -0600 Subject: [PATCH 156/206] Comment out tracer_sanitizer scheme --- ccpp/suites/suite_FV3_GSD_v0.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index ce1dce539..98bd9c8c1 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -81,7 +81,7 @@ mp_thompson_post GFS_MP_generic_post cu_gf_driver_post - tracer_sanitizer + maximum_hourly_diagnostics From 30f40e82bfb865aeccfa23cef12e149099736802 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 11 Aug 2020 07:21:57 -0600 Subject: [PATCH 157/206] Update submodule pointer for ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 2ac976607..408d078d6 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 2ac97660731aefd6da2739249c41167750aca3e0 +Subproject commit 408d078d6bfa0d34b180ac321de1685d5e49c771 From 5811a05606747f6d2b41e85290d5c2b67b2a5d65 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 11 Aug 2020 08:45:00 -0600 Subject: [PATCH 158/206] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 6 ++---- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index 604dfa9e3..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = tracer_sanitizer + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index 408d078d6..f7cd37518 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 408d078d6bfa0d34b180ac321de1685d5e49c771 +Subproject commit f7cd37518e40d19fc4e046ed88ae6e24b6e2a717 From 2b61cd4d75e7f23406609d065511f829964ee769 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 13 Aug 2020 14:57:16 -0600 Subject: [PATCH 159/206] Update .gitmodules and submodule pointer for ccpp-physics --- .gitmodules | 6 ++++-- ccpp/physics | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..737bc028f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,7 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/hannahcbarnes/ccpp-physics + branch = HFIP_GFchanges \ No newline at end of file diff --git a/ccpp/physics b/ccpp/physics index f7cd37518..1c7b52ab8 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit f7cd37518e40d19fc4e046ed88ae6e24b6e2a717 +Subproject commit 1c7b52ab85ecaf370e56f0b5f3e7e4a351c4170f From 6e824a0f35064642d89d73f3fba5a0786143b80a Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 13 Aug 2020 18:16:37 -0600 Subject: [PATCH 160/206] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 6 ++---- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index 737bc028f..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/hannahcbarnes/ccpp-physics - branch = HFIP_GFchanges \ No newline at end of file + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index 1c7b52ab8..ae9e0e293 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 1c7b52ab85ecaf370e56f0b5f3e7e4a351c4170f +Subproject commit ae9e0e293ae5e450de4dcb94f62cde7c7f29c161 From 36d546f0a2273604491e6a31f17dc43d318f803c Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 28 Aug 2020 17:24:20 -0600 Subject: [PATCH 161/206] Update submodule pointer for ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index ae9e0e293..cf4b7784c 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit ae9e0e293ae5e450de4dcb94f62cde7c7f29c161 +Subproject commit cf4b7784ce6153471b3d54409ebadbf39591870b From bd32c9edfc64516e6c68600bef51c1206f7c7978 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 2 Sep 2020 13:59:52 -0600 Subject: [PATCH 162/206] Update .gitmodules and ccpp/physics for code review and testing --- .gitmodules | 6 ++++-- ccpp/physics | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..ed207d362 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,7 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/tanyasmirnova/ccpp-physics + branch = gcycle_ruc diff --git a/ccpp/physics b/ccpp/physics index cf4b7784c..766991423 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit cf4b7784ce6153471b3d54409ebadbf39591870b +Subproject commit 766991423c7be6d16459a2d653e60cf43b0d7e1b From b51c4fc5f53275f90a3b455c87c5baffc32a4857 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 2 Sep 2020 14:06:55 -0600 Subject: [PATCH 163/206] gfsphysics/GFS_layer/GFS_typedefs.F90: remove guard that prevents using RUC LSM with fhcyc>0 --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 5 ----- 1 file changed, 5 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 84e345633..0924b2589 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -3787,11 +3787,6 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%lsm = lsm Model%lsoil = lsoil #ifdef CCPP - ! Consistency check for RUC LSM - if (Model%lsm == Model%lsm_ruc .and. Model%nscyc>0) then - write(0,*) 'Logic error: RUC LSM cannot be used with surface data cycling at this point (fhcyc>0)' - stop - end if ! Flag to read leaf area index from input files (initial conditions) Model%rdlai = rdlai if (Model%rdlai .and. .not. Model%lsm == Model%lsm_ruc) then From a5a066a913791104656edeb26081b2d167cdc211 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Wed, 2 Sep 2020 22:39:48 +0000 Subject: [PATCH 164/206] 1st attempt - Sept. 2 --- ccpp/config/ccpp_prebuild_config.py | 6 ++ .../suite_FV3_GSD_v0_unified_ugwp_suite.xml | 93 +++++++++++++++++++ gfsphysics/GFS_layer/GFS_typedefs.F90 | 64 +++++++++---- gfsphysics/GFS_layer/GFS_typedefs.meta | 63 +++++++++++++ io/FV3GFS_io.F90 | 32 ++++--- 5 files changed, 228 insertions(+), 30 deletions(-) create mode 100644 ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 2c0da61da..369f11cc7 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -137,6 +137,10 @@ 'FV3/ccpp/physics/physics/cires_vert_lsatdis.F90', 'FV3/ccpp/physics/physics/cires_vert_orodis.F90', 'FV3/ccpp/physics/physics/cires_vert_wmsdis.F90', + 'FV3/ccpp/physics/physics/cires_ugwp_module_v1.F90', + 'FV3/ccpp/physics/physics/cires_ugwp_triggers_v1.F90', + 'FV3/ccpp/physics/physics/cires_ugwp_solv2_v1_mod.F90', + 'FV3/ccpp/physics/physics/cires_ugwp_orolm97_v1.F90', 'FV3/ccpp/physics/physics/namelist_soilveg.f', 'FV3/ccpp/physics/physics/mfpblt.f', 'FV3/ccpp/physics/physics/mfpbltq.f', @@ -231,6 +235,8 @@ 'FV3/ccpp/physics/physics/GFS_time_vary_pre.fv3.F90', 'FV3/ccpp/physics/physics/cires_ugwp.F90', 'FV3/ccpp/physics/physics/cires_ugwp_post.F90', + 'FV3/ccpp/physics/physics/unified_ugwp.F90', + 'FV3/ccpp/physics/physics/unified_ugwp_post.F90', 'FV3/ccpp/physics/physics/cnvc90.f', 'FV3/ccpp/physics/physics/cs_conv.F90', 'FV3/ccpp/physics/physics/cs_conv_aw_adj.F90', diff --git a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml new file mode 100644 index 000000000..4b35d952f --- /dev/null +++ b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml @@ -0,0 +1,93 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_ruc + lsm_ruc_sfc_sice_pre + sfc_sice + lsm_ruc_sfc_sice_post + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + GFS_GWD_generic_pre + unified_ugwp + unified_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + cu_gf_driver_pre + cu_gf_driver + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + cu_gf_driver_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 84e345633..0b1a97358 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -815,9 +815,17 @@ module GFS_typedefs logical :: cnvgwd !< flag for conv gravity wave drag #ifdef CCPP integer :: gwd_opt !< gwd_opt = 1 => original GFS gwd (gwdps.f) - !< gwd_opt = 2 => unified GWD (placeholder) - !< gwd_opt = 3 => GSD drag suite - !< gwd_opt = 33 => GSD drag suite with extra output + !< gwd_opt = 2 => unified ugwp GWD + !< gwd_opt = 22 => unified ugwp GWD with extra output + !< gwd_opt = 3 => GSL drag suite + !< gwd_opt = 33 => GSL drag suite with extra output + logical :: do_ugwp_v0 !< flag for version 0 ugwp GWD + logical :: do_ugwp_v0_orog_only !< flag for version 0 ugwp GWD (orographic drag only) + logical :: do_gsl_drag_ls_bl !< flag for GSL drag (large-scale GWD and blocking only) + logical :: do_gsl_drag_ss !< flag for GSL drag (small-scale GWD only) + logical :: do_gsl_drag_tofd !< flag for GSL drag (turbulent orog form drag only) + logical :: do_ugwp_v1 !< flag for version 1 ugwp GWD + logical :: do_ugwp_v1_orog_only !< flag for version 1 ugwp GWD (orographic drag only) #endif logical :: mstrat !< flag for moorthi approach for stratus logical :: moist_adj !< flag for moist convective adjustment @@ -891,7 +899,7 @@ module GFS_typedefs #endif integer :: nmtvr !< number of topographic variables such as variance etc !< used in the GWD parameterization - 10 more added if - !< GSD orographic drag scheme is used + !< GSL orographic drag scheme is used integer :: jcap !< number of spectral wave trancation used only by sascnv shalcnv real(kind=kind_phys) :: cs_parm(10) !< tunable parameters for Chikira-Sugiyama convection real(kind=kind_phys) :: flgmin(2) !< [in] ice fraction bounds @@ -2057,7 +2065,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: qs_r(:,:) => null() !< real (kind=kind_phys), pointer :: qg_r(:,:) => null() !< - !-- GSD drag suite + !-- GSL drag suite real (kind=kind_phys), pointer :: varss(:) => null() !< real (kind=kind_phys), pointer :: ocss(:) => null() !< real (kind=kind_phys), pointer :: oa4ss(:,:) => null() !< @@ -3080,8 +3088,17 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & logical :: old_monin = .false. !< flag for diff monin schemes logical :: cnvgwd = .false. !< flag for conv gravity wave drag integer :: gwd_opt = 1 !< flag for configuring gwd scheme - !< gwd_opt = 3 : GSDdrag suite - !< gwd_opt = 33: GSDdrag suite with extra output + !< gwd_opt = 2 => unified ugwp GWD + !< gwd_opt = 22 => unified ugwp GWD with extra output + !< gwd_opt = 3 : GSLdrag suite + !< gwd_opt = 33: GSLdrag suite with extra output + logical :: do_ugwp_v0 = .true. !< flag for version 0 ugwp GWD + logical :: do_ugwp_v0_orog_only = .false. !< flag for version 0 ugwp GWD (orographic drag only) + logical :: do_gsl_drag_ls_bl = .false. !< flag for GSL drag (large-scale GWD and blocking only) + logical :: do_gsl_drag_ss = .false. !< flag for GSL drag (small-scale GWD only) + logical :: do_gsl_drag_tofd = .false. !< flag for GSL drag (turbulent orog form drag only) + logical :: do_ugwp_v1 = .false. !< flag for version 1 ugwp GWD + logical :: do_ugwp_v1_orog_only = .false. !< flag for version 1 ugwp GWD (orographic drag only) !--- vay-2018 logical :: ldiag_ugwp = .false. !< flag for UGWP diag fields logical :: do_ugwp = .false. !< flag do UGWP+RF @@ -3380,7 +3397,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & bl_mynn_cloudpdf, bl_mynn_edmf, bl_mynn_edmf_mom, & bl_mynn_edmf_tke, bl_mynn_edmf_part, bl_mynn_cloudmix, & bl_mynn_mixqt, bl_mynn_output, icloud_bl, bl_mynn_tkeadvect, & - gwd_opt, & + gwd_opt, do_ugwp_v0, do_ugwp_v0_orog_only, & + do_gsl_drag_ls_bl, do_gsl_drag_ss, do_gsl_drag_tofd, & + do_ugwp_v1, do_ugwp_v1_orog_only, & ! *DH do_myjsfc, do_myjpbl, & hwrf_samfdeep, hwrf_samfshal, & @@ -3937,8 +3956,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%icloud_bl = icloud_bl ! *DH Model%gwd_opt = gwd_opt - if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then - ! Add 10 more orographic static fields for GSD drag scheme + if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & + Model%gwd_opt==2 .or. Model%gwd_opt==22) then + ! Add 10 more orographic static fields for GSL drag scheme Model%nmtvr = 24 end if Model%do_myjsfc = do_myjsfc @@ -5013,6 +5033,13 @@ subroutine control_print(Model) print *, ' do_myjsfc : ', Model%do_myjsfc print *, ' do_myjpbl : ', Model%do_myjpbl print *, ' gwd_opt : ', Model%gwd_opt + print *, ' do_ugwp_v0 : ', Model%do_ugwp_v0 + print *, ' do_ugwp_v0_orog_only : ', Model%do_ugwp_v0_orog_only + print *, ' do_gsl_drag_ls_bl : ', Model%do_gsl_drag_ls_bl + print *, ' do_gsl_drag_ss : ', Model%do_gsl_drag_ss + print *, ' do_gsl_drag_tofd : ', Model%do_gsl_drag_tofd + print *, ' do_ugwp_v1 : ', Model%do_ugwp_v1 + print *, ' do_ugwp_v1_orog_only : ', Model%do_ugwp_v1_orog_only #endif print *, ' ' print *, 'Rayleigh friction' @@ -5750,7 +5777,7 @@ subroutine diag_create (Diag, IM, Model) endif !--- Drag Suite variables: - if (Model%gwd_opt == 33) then + if (Model%gwd_opt == 33 .or. Model%gwd_opt == 22) then !print*,"Allocating all Drag Suite variables:" allocate (Diag%dtaux2d_ls (IM,Model%levs)) allocate (Diag%dtauy2d_ls (IM,Model%levs)) @@ -6454,8 +6481,9 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%dudt_mtb (IM,Model%levs)) allocate (Interstitial%dudt_ogw (IM,Model%levs)) allocate (Interstitial%dudt_tms (IM,Model%levs)) -!-- GSD drag suite - if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then +!-- GSL drag suite + if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & + Model%gwd_opt==2 .or. Model%gwd_opt==22 ) then allocate (Interstitial%varss (IM)) allocate (Interstitial%ocss (IM)) allocate (Interstitial%oa4ss (IM,4)) @@ -7031,8 +7059,9 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%dudt_mtb = clear_val Interstitial%dudt_ogw = clear_val Interstitial%dudt_tms = clear_val -!-- GSD drag suite - if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then +!-- GSL drag suite + if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & + Model%gwd_opt==2 .or. Model%gwd_opt==22) then Interstitial%varss = clear_val Interstitial%ocss = clear_val Interstitial%oa4ss = clear_val @@ -7384,8 +7413,9 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%dudt_mtb ) = ', sum(Interstitial%dudt_mtb ) write (0,*) 'sum(Interstitial%dudt_ogw ) = ', sum(Interstitial%dudt_ogw ) write (0,*) 'sum(Interstitial%dudt_tms ) = ', sum(Interstitial%dudt_tms ) -!-- GSD drag suite - if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then +!-- GSL drag suite + if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & + Model%gwd_opt==2 .or. Model%gwd_opt==22) then write (0,*) 'sum(Interstitial%varss ) = ', sum(Interstitial%varss) write (0,*) 'sum(Interstitial%ocss ) = ', sum(Interstitial%ocss) write (0,*) 'sum(Interstitial%oa4ss ) = ', sum(Interstitial%oa4ss) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 1c1ecc0c7..f4ec1ae30 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1966,6 +1966,13 @@ units = none dimensions = () type = integer +[fhzero] + standard_name = hours_between_clearing_of_diagnostic_buckets + long_name = hours between clearing of diagnostic buckets + units = h + dimensions = () + type = real + kind = kind_phys [fn_nml] standard_name = namelist_filename long_name = namelist filename @@ -4334,6 +4341,62 @@ units = flag dimensions = () type = logical +[do_ugwp_v0] + standard_name = do_ugwp_v0 + long_name = flag to activate ver 0 CIRES UGWP + units = flag + dimensions = () + type = logical + intent = in + optional = F +[do_ugwp_v0_orog_only] + standard_name = do_ugwp_v0_orog_only + long_name = flag to activate ver 0 CIRES UGWP - orographic GWD only + units = flag + dimensions = () + type = logical + intent = in + optional = F +[do_gsl_drag_ls_bl] + standard_name = do_gsl_drag_ls_bl + long_name = flag to activate GSL drag suite - large-scale GWD and blocking + units = flag + dimensions = () + type = logical + intent = in + optional = F +[do_gsl_drag_ss] + standard_name = do_gsl_drag_ss + long_name = flag to activate GSL drag suite - small-scale GWD + units = flag + dimensions = () + type = logical + intent = in + optional = F +[do_gsl_drag_tofd] + standard_name = do_gsl_drag_tofd + long_name = flag to activate GSL drag suite - turb orog form drag + units = flag + dimensions = () + type = logical + intent = in + optional = F +[do_ugwp_v1] + standard_name = do_ugwp_v1 + long_name = flag to activate ver 1 CIRES UGWP + units = flag + dimensions = () + type = logical + intent = in + optional = F +[do_ugwp_v1_orog_only] + standard_name = do_ugwp_v1_orog_only + long_name = flag to activate ver 1 CIRES UGWP - orographic GWD only + units = flag + dimensions = () + type = logical + intent = in + optional = F ######################################################################## [ccpp-arg-table] diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90 index b86cd0295..8a625607f 100644 --- a/io/FV3GFS_io.F90 +++ b/io/FV3GFS_io.F90 @@ -652,7 +652,8 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) #ifdef CCPP !--- Modify/read-in additional orographic static fields for GSL drag suite - if (Model%gwd_opt==3 .or. Model%gwd_opt==33) then + if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & + Model%gwd_opt==2 .or. Model%gwd_opt==22 ) then if (.not. allocated(oro_ls_ss_name)) then !--- allocate the various containers needed for orography data allocate(oro_ls_ss_name(nvar_oro_ls_ss)) @@ -697,17 +698,23 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) do ix = 1, Atm_block%blksz(nb) i = Atm_block%index(nb)%ii(ix) - isc + 1 j = Atm_block%index(nb)%jj(ix) - jsc + 1 - !--- assign hprime(1:10) and hprime(15:24) with new oro stat data - Sfcprop(nb)%hprime(ix,1) = oro_ls_var(i,j,1) - Sfcprop(nb)%hprime(ix,2) = oro_ls_var(i,j,2) - Sfcprop(nb)%hprime(ix,3) = oro_ls_var(i,j,3) - Sfcprop(nb)%hprime(ix,4) = oro_ls_var(i,j,4) - Sfcprop(nb)%hprime(ix,5) = oro_ls_var(i,j,5) - Sfcprop(nb)%hprime(ix,6) = oro_ls_var(i,j,6) - Sfcprop(nb)%hprime(ix,7) = oro_ls_var(i,j,7) - Sfcprop(nb)%hprime(ix,8) = oro_ls_var(i,j,8) - Sfcprop(nb)%hprime(ix,9) = oro_ls_var(i,j,9) - Sfcprop(nb)%hprime(ix,10) = oro_ls_var(i,j,10) + ! Replace hprime(1:10) with GSL oro stat data only when using GSL + ! drag suite with large scale GWD and blocking as part of unified drag + ! suite. Otherwise, original oro stat data is used. + if ( (Model%gwd_opt==2 .or. Model%gwd_opt==22) .and. & + Model%do_gsl_drag_ls_bl ) then + !--- assign hprime(1:10) and hprime(15:24) with new oro stat data + Sfcprop(nb)%hprime(ix,1) = oro_ls_var(i,j,1) + Sfcprop(nb)%hprime(ix,2) = oro_ls_var(i,j,2) + Sfcprop(nb)%hprime(ix,3) = oro_ls_var(i,j,3) + Sfcprop(nb)%hprime(ix,4) = oro_ls_var(i,j,4) + Sfcprop(nb)%hprime(ix,5) = oro_ls_var(i,j,5) + Sfcprop(nb)%hprime(ix,6) = oro_ls_var(i,j,6) + Sfcprop(nb)%hprime(ix,7) = oro_ls_var(i,j,7) + Sfcprop(nb)%hprime(ix,8) = oro_ls_var(i,j,8) + Sfcprop(nb)%hprime(ix,9) = oro_ls_var(i,j,9) + Sfcprop(nb)%hprime(ix,10) = oro_ls_var(i,j,10) + end if Sfcprop(nb)%hprime(ix,15) = oro_ss_var(i,j,1) Sfcprop(nb)%hprime(ix,16) = oro_ss_var(i,j,2) Sfcprop(nb)%hprime(ix,17) = oro_ss_var(i,j,3) @@ -718,7 +725,6 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) Sfcprop(nb)%hprime(ix,22) = oro_ss_var(i,j,8) Sfcprop(nb)%hprime(ix,23) = oro_ss_var(i,j,9) Sfcprop(nb)%hprime(ix,24) = oro_ss_var(i,j,10) - enddo enddo From 1d8b25871a3795aacc4002061cabcce831ab24db Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 3 Sep 2020 09:37:54 -0600 Subject: [PATCH 165/206] Update submodule pointer for ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 766991423..32ffcfb15 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 766991423c7be6d16459a2d653e60cf43b0d7e1b +Subproject commit 32ffcfb151b74a4cdfd3cfa33536c14415560aa2 From 0776fc67a1de5facbe907eab6b2518d5e32ab7ee Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 3 Sep 2020 10:04:03 -0600 Subject: [PATCH 166/206] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 6 ++---- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index ed207d362..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/tanyasmirnova/ccpp-physics - branch = gcycle_ruc + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index 32ffcfb15..65bc08407 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 32ffcfb151b74a4cdfd3cfa33536c14415560aa2 +Subproject commit 65bc08407d6a4bf4aeb1a91d0e78d25f6bc7b9f1 From 968ad2e7da2ff6e754709a3fd5c977923723777b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 3 Sep 2020 15:12:30 -0600 Subject: [PATCH 167/206] Update .gitmodules and submodule pointer for ccpp-physics for code review and testing --- .gitmodules | 6 ++++-- ccpp/physics | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..c3270dc41 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,7 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = pretty_print_sfcsub \ No newline at end of file diff --git a/ccpp/physics b/ccpp/physics index 65bc08407..317c5cd46 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 65bc08407d6a4bf4aeb1a91d0e78d25f6bc7b9f1 +Subproject commit 317c5cd465bedbba939295d59e0503eea8d057c1 From 23b87700ea7345326e84e4a8ced849e5fbb7ff67 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 3 Sep 2020 15:44:18 -0600 Subject: [PATCH 168/206] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 6 ++---- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index c3270dc41..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = pretty_print_sfcsub \ No newline at end of file + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index 317c5cd46..e424f0ac6 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 317c5cd465bedbba939295d59e0503eea8d057c1 +Subproject commit e424f0ac6e480c08d72653c6f5bfa0063f41b4f0 From 4ff714c906ac69e953299ae00b6cbc926f15c5f3 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Fri, 4 Sep 2020 03:02:47 +0000 Subject: [PATCH 169/206] 2nd try -- Sept. 3 -- two scheme test --- ccpp/config/ccpp_prebuild_config.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 369f11cc7..cda2ba95a 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -139,8 +139,11 @@ 'FV3/ccpp/physics/physics/cires_vert_wmsdis.F90', 'FV3/ccpp/physics/physics/cires_ugwp_module_v1.F90', 'FV3/ccpp/physics/physics/cires_ugwp_triggers_v1.F90', + 'FV3/ccpp/physics/physics/cires_ugwp_initialize_v1.F90', 'FV3/ccpp/physics/physics/cires_ugwp_solv2_v1_mod.F90', 'FV3/ccpp/physics/physics/cires_ugwp_orolm97_v1.F90', + 'FV3/ccpp/physics/physics/cires_orowam2017.F90', + 'FV3/ccpp/physics/physics/cires_vert_orodis_v1.F90', 'FV3/ccpp/physics/physics/namelist_soilveg.f', 'FV3/ccpp/physics/physics/mfpblt.f', 'FV3/ccpp/physics/physics/mfpbltq.f', From 034d8f27fe5486babef746a24236feb93e04d1f4 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 4 Sep 2020 07:16:41 -0600 Subject: [PATCH 170/206] Update .gitmodules for code review and testing --- .gitmodules | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..179e9fc05 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,9 +4,13 @@ branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/NOAA-GSD/ccpp-framework - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-framework + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-framework + branch = update_gsd_develop_from_master_20200903 [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = update_gsd_develop_from_master_20200903 \ No newline at end of file From 9b224af504352282857c5531b134d3bba81a164b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 4 Sep 2020 08:53:29 -0600 Subject: [PATCH 171/206] Update submodule pointer for ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 5e8635f54..8f8dd2e8e 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 5e8635f54f480568694867683fa57dee32777c5f +Subproject commit 8f8dd2e8e00145027568e3e34b8bd5dc2fe680ec From 345fd935fa76115c558890604d7d2204ea7ea2e4 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Thu, 10 Sep 2020 21:38:52 +0000 Subject: [PATCH 172/206] Bug fix -- Sept. 10 --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 0b1a97358..618a10aac 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -3961,6 +3961,13 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & ! Add 10 more orographic static fields for GSL drag scheme Model%nmtvr = 24 end if + Model%do_ugwp_v0 = do_ugwp_v0 + Model%do_ugwp_v0_orog_only = do_ugwp_v0_orog_only + Model%do_gsl_drag_ls_bl = do_gsl_drag_ls_bl + Model%do_gsl_drag_ss = do_gsl_drag_ss + Model%do_gsl_drag_tofd = do_gsl_drag_tofd + Model%do_ugwp_v1 = do_ugwp_v1 + Model%do_ugwp_v1_orog_only = do_ugwp_v1_orog_only Model%do_myjsfc = do_myjsfc Model%do_myjpbl = do_myjpbl #endif From 936da62af7b6188272e4497d33999fde20d1bfbf Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Sun, 13 Sep 2020 00:50:55 +0000 Subject: [PATCH 173/206] Sept. 12 edition --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 618a10aac..fb95c2845 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -5039,6 +5039,7 @@ subroutine control_print(Model) print *, ' do_mynnsfclay : ', Model%do_mynnsfclay print *, ' do_myjsfc : ', Model%do_myjsfc print *, ' do_myjpbl : ', Model%do_myjpbl + print *, ' do_ugwp : ', Model%do_ugwp print *, ' gwd_opt : ', Model%gwd_opt print *, ' do_ugwp_v0 : ', Model%do_ugwp_v0 print *, ' do_ugwp_v0_orog_only : ', Model%do_ugwp_v0_orog_only From 9784248a0a43394b643830159b4aeb9cdcc09d0b Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Sun, 13 Sep 2020 02:50:26 +0000 Subject: [PATCH 174/206] Sept. 12 bug fix --- io/FV3GFS_io.F90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90 index 8a625607f..efaf26be0 100644 --- a/io/FV3GFS_io.F90 +++ b/io/FV3GFS_io.F90 @@ -701,8 +701,9 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) ! Replace hprime(1:10) with GSL oro stat data only when using GSL ! drag suite with large scale GWD and blocking as part of unified drag ! suite. Otherwise, original oro stat data is used. - if ( (Model%gwd_opt==2 .or. Model%gwd_opt==22) .and. & - Model%do_gsl_drag_ls_bl ) then + if ( (Model%gwd_opt==3 .or. Model%gwd_opt==33) .or. & + ( (Model%gwd_opt==2 .or. Model%gwd_opt==22) .and. & + Model%do_gsl_drag_ls_bl ) ) then !--- assign hprime(1:10) and hprime(15:24) with new oro stat data Sfcprop(nb)%hprime(ix,1) = oro_ls_var(i,j,1) Sfcprop(nb)%hprime(ix,2) = oro_ls_var(i,j,2) From dc619e5b3aca37c430d6d1892e56b8eb68d0da1c Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 14 Sep 2020 15:33:18 -0600 Subject: [PATCH 175/206] Update .gitmodules and submodule pointer for ccpp-physics for code review and testing --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..79cbd6410 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + url = https://github.com/tanyasmirnova/ccpp-physics + branch = ruclsm_rucinit_in_lsm_ruc_init diff --git a/ccpp/physics b/ccpp/physics index e424f0ac6..6e33a5761 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit e424f0ac6e480c08d72653c6f5bfa0063f41b4f0 +Subproject commit 6e33a576148174ac89559bbc0d44a3a32cc26f1e From 14f852f0673d807a02aa2a2683c3fd0efa2a3bd0 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Thu, 17 Sep 2020 23:20:46 +0000 Subject: [PATCH 176/206] Sept. 17 -- debugging --- io/FV3GFS_io.F90 | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90 index efaf26be0..865eaea3e 100644 --- a/io/FV3GFS_io.F90 +++ b/io/FV3GFS_io.F90 @@ -650,6 +650,16 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) deallocate(oro_name2, oro_var2) call free_restart_type(Oro_restart) + + ! Temporary line + if (Model%me==0) then + do nb = 1, ATM_block%nblks + write (71,*) Sfcprop(nb)%hprime(:,14) + write (73,*) Sfcprop(nb)%hprime(:,13) + end do + end if + + #ifdef CCPP !--- Modify/read-in additional orographic static fields for GSL drag suite if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & @@ -734,6 +744,16 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) end if #endif + ! Temporary line + if (Model%me==0) then + do nb = 1, ATM_block%nblks + write (72,*) Sfcprop(nb)%hprime(:,14) + write (74,*) Sfcprop(nb)%hprime(:,13) + end do + end if + + + !--- SURFACE FILE if (.not. allocated(sfc_name2)) then !--- allocate the various containers needed for restarts From 0e07005df31a04ed83ac96628b5d43b4dbdb9f2f Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Fri, 18 Sep 2020 17:20:23 +0000 Subject: [PATCH 177/206] Bug fixes -- Sept. 18 --- io/FV3GFS_io.F90 | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90 index 865eaea3e..efaf26be0 100644 --- a/io/FV3GFS_io.F90 +++ b/io/FV3GFS_io.F90 @@ -650,16 +650,6 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) deallocate(oro_name2, oro_var2) call free_restart_type(Oro_restart) - - ! Temporary line - if (Model%me==0) then - do nb = 1, ATM_block%nblks - write (71,*) Sfcprop(nb)%hprime(:,14) - write (73,*) Sfcprop(nb)%hprime(:,13) - end do - end if - - #ifdef CCPP !--- Modify/read-in additional orographic static fields for GSL drag suite if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & @@ -744,16 +734,6 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain) end if #endif - ! Temporary line - if (Model%me==0) then - do nb = 1, ATM_block%nblks - write (72,*) Sfcprop(nb)%hprime(:,14) - write (74,*) Sfcprop(nb)%hprime(:,13) - end do - end if - - - !--- SURFACE FILE if (.not. allocated(sfc_name2)) then !--- allocate the various containers needed for restarts From 39fcfe1bbbe1ac4a3162107cbafcea62433a8102 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 2 Oct 2020 08:45:21 -0600 Subject: [PATCH 178/206] Revert changes to .gitmodules and update submodule pointer for GFDL_atmos_cubed_sphere, ccpp-framework and ccpp-physics --- .gitmodules | 18 ++++++------------ atmos_cubed_sphere | 2 +- ccpp/framework | 2 +- ccpp/physics | 2 +- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/.gitmodules b/.gitmodules index 73d426c1c..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,18 +1,12 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - #url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - #branch = gsd/develop - url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere - branch = update_gsd_develop_from_master_20201001 + url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - #url = https://github.com/NOAA-GSD/ccpp-framework - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-framework - branch = update_gsd_develop_from_master_20200903 + url = https://github.com/NOAA-GSD/ccpp-framework + branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = update_gsd_develop_from_master_20200903 \ No newline at end of file + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 7d52492c7..b446f3252 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 7d52492c7ea94d50afd9746a054b4ac608fedb54 +Subproject commit b446f3252c29e502fcb8090f57d844e329a31818 diff --git a/ccpp/framework b/ccpp/framework index e2b612a24..7b8df4baf 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit e2b612a240ac9914ebbf66413796275e22d562ec +Subproject commit 7b8df4bafd592006f8445377ea9599e526714df4 diff --git a/ccpp/physics b/ccpp/physics index 27b1d58dd..9fae6f3ed 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 27b1d58dd692482b5895b418c6b4f9133a5aed4b +Subproject commit 9fae6f3eda610f085f5dcebf657d20f73c9efb56 From 5c424d07e5fb126f97a96ed03039fd5baf0d7e0b Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Mon, 5 Oct 2020 21:57:42 +0000 Subject: [PATCH 179/206] Updated .gitmodules for ccpp/physics --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..7038f324b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + url = https://github.com/mdtoy/ccpp-physics + branch = unified_ugwp diff --git a/ccpp/physics b/ccpp/physics index 9fae6f3ed..007de081d 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 9fae6f3eda610f085f5dcebf657d20f73c9efb56 +Subproject commit 007de081d13ed2b609ffbddad5f8edf49d8f2275 From ebaef7e920f33edfd618c5e15e3434bad723a0ad Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Wed, 7 Oct 2020 18:45:33 +0000 Subject: [PATCH 180/206] Oct. 7 update --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 007de081d..94aa9b1ce 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 007de081d13ed2b609ffbddad5f8edf49d8f2275 +Subproject commit 94aa9b1ce6b11e01ff526db070c5493ddc71ec4f From 0ffbb3c27d022772b7828f8039149d31f2d9948c Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Thu, 8 Oct 2020 03:37:12 +0000 Subject: [PATCH 181/206] updated submodule for ccpp-physics and added suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml SDF --- ccpp/physics | 2 +- ...ite_FV3_GSD_v0_unified_ugwp_suite_noah.xml | 91 +++++++++++++++++++ 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml diff --git a/ccpp/physics b/ccpp/physics index 94aa9b1ce..d6cd89caf 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 94aa9b1ce6b11e01ff526db070c5493ddc71ec4f +Subproject commit d6cd89caf61195be12d480ef0c1b6c03ea48cadc diff --git a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml new file mode 100644 index 000000000..0fb4e9a5a --- /dev/null +++ b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml @@ -0,0 +1,91 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_noah + sfc_sice + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + GFS_GWD_generic_pre + unified_ugwp + unified_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + cu_gf_driver_pre + cu_gf_driver + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + cu_gf_driver_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + From 42bebfcad0d42c41ca0273698d3244d8a9797d00 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Tue, 13 Oct 2020 15:32:10 +0000 Subject: [PATCH 182/206] Updated unified_ugwp documentation. --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index d6cd89caf..b018da098 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit d6cd89caf61195be12d480ef0c1b6c03ea48cadc +Subproject commit b018da0982bd92bc2880eda43c861566e6631957 From 6b1efbc0d5e1d07398d3346c417b39d9169fab20 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 14 Oct 2020 09:27:21 -0600 Subject: [PATCH 183/206] Add MYNNEDMF diagnostic variables to Diag%phys_zero routine --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 7b8e90240..cefcb92cf 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -5934,6 +5934,29 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%toticeb = zero Diag%totsnwb = zero Diag%totgrpb = zero +! +#ifdef CCPP + !--- MYNN variables: + if (Model%do_mynnedmf) then + if (Model%bl_mynn_output .ne. 0) then + Diag%edmf_a = clear_val + Diag%edmf_w = clear_val + Diag%edmf_qt = clear_val + Diag%edmf_thl = clear_val + Diag%edmf_ent = clear_val + Diag%edmf_qc = clear_val + Diag%sub_thl = clear_val + Diag%sub_sqv = clear_val + Diag%det_thl = clear_val + Diag%det_sqv = clear_val + endif + Diag%nupdraft = 0 + Diag%maxmf = clear_val + Diag%ktop_plume = 0 + Diag%exch_h = clear_val + Diag%exch_m = clear_val + endif +#endif ! if (Model%do_ca) then Diag%ca1 = zero From d7906d882736baf4351a88a551f7cc645987296b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 14 Oct 2020 09:28:00 -0600 Subject: [PATCH 184/206] Update .gitmodules and submodule pointers for ccpp-framework and ccpp-physics for code review and testing --- .gitmodules | 10 ++++++---- ccpp/framework | 2 +- ccpp/physics | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.gitmodules b/.gitmodules index 79cbd6410..c1e85d47f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,9 +4,11 @@ branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/NOAA-GSD/ccpp-framework - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-framework + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-framework + branch = support_unblocked_variables-in_init_and_finalize [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/tanyasmirnova/ccpp-physics - branch = ruclsm_rucinit_in_lsm_ruc_init + url = https://github.com/climbfuji/ccpp-physics + branch = tanya_ruc_init_updated diff --git a/ccpp/framework b/ccpp/framework index 7b8df4baf..d6cbf7da5 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 7b8df4bafd592006f8445377ea9599e526714df4 +Subproject commit d6cbf7da54f4ef0181f14b40c1b8830390664cae diff --git a/ccpp/physics b/ccpp/physics index bf9ff7168..05b9aba6c 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit bf9ff71689ab89fe7a132235a1131e2eb491f0f4 +Subproject commit 05b9aba6cad4760c5f5fdd9e55e8485a88c28674 From 48f348ec340863c7c84ccf7113e82b741d7d70d7 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 14 Oct 2020 11:51:33 -0600 Subject: [PATCH 185/206] Move RUC LSM variable zs (depth of soil layers) from block-dependent Sfcprop to Model --- ccpp/framework | 2 +- gfsphysics/GFS_layer/GFS_typedefs.F90 | 10 +++++++--- gfsphysics/GFS_layer/GFS_typedefs.meta | 16 ++++++++-------- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/ccpp/framework b/ccpp/framework index d6cbf7da5..c171472b6 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit d6cbf7da54f4ef0181f14b40c1b8830390664cae +Subproject commit c171472b6e122bffe9b5d7774a03a536d4928f07 diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index cefcb92cf..ce8eaef7a 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -368,7 +368,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: tslb(:,:) => null() !< soil temperature for land surface model real (kind=kind_phys), pointer :: flag_frsoil(:,:) => null() !< RUC LSM: flag for frozen soil physics ! - real (kind=kind_phys), pointer :: zs(:) => null() !< depth of soil levels for land surface model real (kind=kind_phys), pointer :: clw_surf(:) => null() !< RUC LSM: moist cloud water mixing ratio at surface real (kind=kind_phys), pointer :: qwv_surf(:) => null() !< RUC LSM: water vapor mixing ratio at surface real (kind=kind_phys), pointer :: cndm_surf(:) => null() !< RUC LSM: surface condensation mass @@ -781,6 +780,7 @@ module GFS_typedefs integer :: lsoil_lsm !< number of soil layers internal to land surface model integer :: lsnow_lsm !< maximum number of snow layers internal to land surface model integer :: lsnow_lsm_lbound!< lower bound for snow arrays, depending on lsnow_lsm + real(kind=kind_phys), pointer :: zs(:) => null() !< depth of soil levels for land surface model logical :: rdlai #endif integer :: ivegsrc !< ivegsrc = 0 => USGS, @@ -2508,7 +2508,6 @@ subroutine sfcprop_create (Sfcprop, IM, Model) allocate (Sfcprop%smois (IM,Model%lsoil_lsm)) allocate (Sfcprop%tslb (IM,Model%lsoil_lsm)) allocate (Sfcprop%flag_frsoil (IM,Model%lsoil_lsm)) - allocate (Sfcprop%zs (Model%lsoil_lsm)) allocate (Sfcprop%clw_surf (IM)) allocate (Sfcprop%qwv_surf (IM)) allocate (Sfcprop%cndm_surf (IM)) @@ -2522,7 +2521,6 @@ subroutine sfcprop_create (Sfcprop, IM, Model) Sfcprop%keepsmfr = clear_val Sfcprop%smois = clear_val Sfcprop%tslb = clear_val - Sfcprop%zs = clear_val Sfcprop%clw_surf = clear_val Sfcprop%qwv_surf = clear_val Sfcprop%cndm_surf = clear_val @@ -3805,6 +3803,12 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & else Model%lsoil_lsm = lsoil_lsm end if + ! Allocate variable to store depth of soil layers + if (Model%lsm==Model%lsm_ruc) then + allocate (Model%zs(Model%lsoil_lsm)) + Model%zs = clear_val + end if + ! if (lsnow_lsm /= 3) then write(0,*) 'Logic error: NoahMP expects the maximum number of snow layers to be exactly 3 (see sfc_noahmp_drv.f)' stop diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 24bd57de7..b895e779c 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -1245,14 +1245,6 @@ type = real kind = kind_phys active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme) -[zs] - standard_name = depth_of_soil_levels_for_land_surface_model - long_name = depth of soil levels for land surface model - units = m - dimensions = (soil_vertical_dimension_for_land_surface_model) - type = real - kind = kind_phys - active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme) [clw_surf] standard_name = cloud_condensed_water_mixing_ratio_at_surface long_name = moist cloud water mixing ratio at surface @@ -3087,6 +3079,14 @@ units = count dimensions = () type = integer +[zs] + standard_name = depth_of_soil_levels_for_land_surface_model + long_name = depth of soil levels for land surface model + units = m + dimensions = (soil_vertical_dimension_for_land_surface_model) + type = real + kind = kind_phys + active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme) [rdlai] standard_name = flag_for_reading_leaf_area_index_from_input long_name = flag for reading leaf area index from initial conditions for RUC LSM From e3919c23d52d397eddfc8da47b33ab379303016b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 15 Oct 2020 11:20:37 -0600 Subject: [PATCH 186/206] Revert change to .gitmodules and update submodule pointers for ccpp-framework and ccpp-physics --- .gitmodules | 10 ++++------ ccpp/framework | 2 +- ccpp/physics | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.gitmodules b/.gitmodules index c1e85d47f..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,11 +4,9 @@ branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - #url = https://github.com/NOAA-GSD/ccpp-framework - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-framework - branch = support_unblocked_variables-in_init_and_finalize + url = https://github.com/NOAA-GSD/ccpp-framework + branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/climbfuji/ccpp-physics - branch = tanya_ruc_init_updated + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/framework b/ccpp/framework index c171472b6..bede54470 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit c171472b6e122bffe9b5d7774a03a536d4928f07 +Subproject commit bede544708a2d8b48d2e31cd028a3780db417cbe diff --git a/ccpp/physics b/ccpp/physics index 05b9aba6c..2caf57905 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 05b9aba6cad4760c5f5fdd9e55e8485a88c28674 +Subproject commit 2caf57905c7405eea65281be55103901ef6eb5a4 From c71cab0394e3ecaf90e36d97bf020955e567d4a8 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Thu, 22 Oct 2020 02:49:57 +0000 Subject: [PATCH 187/206] Modified code per PR recommendations --- ccpp/physics | 2 +- gfsphysics/GFS_layer/GFS_typedefs.F90 | 2 +- gfsphysics/GFS_layer/GFS_typedefs.meta | 14 ++++++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ccpp/physics b/ccpp/physics index b018da098..748b0bc50 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit b018da0982bd92bc2880eda43c861566e6631957 +Subproject commit 748b0bc508af21d175aebc997179c497894a97ca diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 6dd48efef..ee920be1f 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -9,7 +9,7 @@ module GFS_typedefs con_t0c, con_cvap, con_cliq, con_eps, con_epsq, & con_epsm1, con_ttp, rlapse, con_jcal, con_rhw0, & con_sbc, con_tice, cimin, con_p0, rhowater, & - con_csol, con_epsqs + con_csol, con_epsqs, con_omega, con_rerth use module_radsw_parameters, only: topfsw_type, sfcfsw_type, profsw_type, cmpfsw_type, NBDSW use module_radlw_parameters, only: topflw_type, sfcflw_type, proflw_type, NBDLW diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 712634ee1..02bab4c9d 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -9866,6 +9866,20 @@ dimensions = () type = real kind = kind_phys +[con_omega] + standard_name = angular_velocity_of_earth + long_name = angular velocity of earth + units = s-1 + dimensions = () + type = real + kind = kind_phys +[con_rerth] + standard_name = radius_of_earth + long_name = radius of earth + units = m + dimensions = () + type = real + kind = kind_phys [con_epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 From 5cdb6221bc16cdc42a19d1f93be0fa5c2bbf12dc Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Mon, 26 Oct 2020 23:16:10 +0000 Subject: [PATCH 188/206] Modified code per G. Firl's PR recommendations --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 748b0bc50..73f06a327 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 748b0bc508af21d175aebc997179c497894a97ca +Subproject commit 73f06a3273f13077d73673eeb180e51c2ea90911 From 4f638e2b9a3e11741242f27ee736f32c02a731ae Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Tue, 27 Oct 2020 19:53:33 +0000 Subject: [PATCH 189/206] cires_vert_orodis_v1.F90 bug fix --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 73f06a327..2cf01d008 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 73f06a3273f13077d73673eeb180e51c2ea90911 +Subproject commit 2cf01d008e8f26e858cdb520226b8e5b8be50375 From 2371123d91ada471f618ded675b57f561037d0df Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Thu, 29 Oct 2020 15:04:26 +0000 Subject: [PATCH 190/206] Added FV3_GSD_v0_no_drag suite for testing purposes only --- ccpp/suites/suite_FV3_GSD_v0_no_drag.xml | 91 ++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 ccpp/suites/suite_FV3_GSD_v0_no_drag.xml diff --git a/ccpp/suites/suite_FV3_GSD_v0_no_drag.xml b/ccpp/suites/suite_FV3_GSD_v0_no_drag.xml new file mode 100644 index 000000000..569c4ec3d --- /dev/null +++ b/ccpp/suites/suite_FV3_GSD_v0_no_drag.xml @@ -0,0 +1,91 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_ruc + lsm_ruc_sfc_sice_pre + sfc_sice + lsm_ruc_sfc_sice_post + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + cu_gf_driver_pre + cu_gf_driver + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + cu_gf_driver_post + + maximum_hourly_diagnostics + + + + + GFS_stochastics + phys_tend + + + + From da639d07d4a707925767b7f6e18c7289d31507a4 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Thu, 5 Nov 2020 18:37:49 +0000 Subject: [PATCH 191/206] Deleted no_drag SDF and added version=1 designation to unified_ugwp SDFs --- ccpp/suites/suite_FV3_GSD_v0_no_drag.xml | 91 ------------------- .../suite_FV3_GSD_v0_unified_ugwp_suite.xml | 2 +- ...ite_FV3_GSD_v0_unified_ugwp_suite_noah.xml | 2 +- 3 files changed, 2 insertions(+), 93 deletions(-) delete mode 100644 ccpp/suites/suite_FV3_GSD_v0_no_drag.xml diff --git a/ccpp/suites/suite_FV3_GSD_v0_no_drag.xml b/ccpp/suites/suite_FV3_GSD_v0_no_drag.xml deleted file mode 100644 index 569c4ec3d..000000000 --- a/ccpp/suites/suite_FV3_GSD_v0_no_drag.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - GFS_time_vary_pre - GFS_rrtmg_setup - GFS_rad_time_vary - GFS_phys_time_vary - - - - - GFS_suite_interstitial_rad_reset - sgscloud_radpre - GFS_rrtmg_pre - rrtmg_sw_pre - rrtmg_sw - rrtmg_sw_post - rrtmg_lw_pre - rrtmg_lw - sgscloud_radpost - rrtmg_lw_post - GFS_rrtmg_post - - - - - GFS_suite_interstitial_phys_reset - GFS_suite_stateout_reset - get_prs_fv3 - GFS_suite_interstitial_1 - GFS_surface_generic_pre - GFS_surface_composites_pre - dcyc2t3 - GFS_surface_composites_inter - GFS_suite_interstitial_2 - - - - sfc_diff - GFS_surface_loop_control_part1 - sfc_nst_pre - sfc_nst - sfc_nst_post - lsm_ruc - lsm_ruc_sfc_sice_pre - sfc_sice - lsm_ruc_sfc_sice_post - GFS_surface_loop_control_part2 - - - - GFS_surface_composites_post - sfc_diag - sfc_diag_post - GFS_surface_generic_post - mynnedmf_wrapper - rayleigh_damp - GFS_suite_stateout_update - ozphys_2015 - h2ophys - get_phi_fv3 - GFS_suite_interstitial_3 - GFS_DCNV_generic_pre - cu_gf_driver_pre - cu_gf_driver - GFS_DCNV_generic_post - GFS_SCNV_generic_pre - GFS_SCNV_generic_post - GFS_suite_interstitial_4 - cnvc90 - GFS_MP_generic_pre - mp_thompson_pre - mp_thompson - mp_thompson_post - GFS_MP_generic_post - cu_gf_driver_post - - maximum_hourly_diagnostics - - - - - GFS_stochastics - phys_tend - - - - diff --git a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml index 4b35d952f..8a717abc3 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml index 0fb4e9a5a..a97b03ec7 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml @@ -1,6 +1,6 @@ - + From 0ac7e4f32c9a155a7c26e142e3a1131b837699a6 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Thu, 5 Nov 2020 23:13:55 +0000 Subject: [PATCH 192/206] Update submodule pointer for ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 2cf01d008..52ec16847 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 2cf01d008e8f26e858cdb520226b8e5b8be50375 +Subproject commit 52ec16847a58df2eac29d29b5d7886d3410fe872 From daced911d280cd9150ccbf8b4e100eb7b39d9cef Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 16 Nov 2020 15:13:13 -0700 Subject: [PATCH 193/206] Update .gitmodules and submodule pointer for ccpp-physics --- .gitmodules | 6 ++++-- ccpp/physics | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 7038f324b..612e807d6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,7 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/mdtoy/ccpp-physics - branch = unified_ugwp + #url = https://github.com/mdtoy/ccpp-physics + #branch = unified_ugwp + url = https://github.com/climbfuji/ccpp-physics + branch = mike_unified_ugwp_with_dom_mods diff --git a/ccpp/physics b/ccpp/physics index 52ec16847..5964c9811 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 52ec16847a58df2eac29d29b5d7886d3410fe872 +Subproject commit 5964c9811e5452699717ae008487e21772f08083 From 8061355d8e4b61d60cedfd3869b0936eed3b8b5d Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 17 Nov 2020 09:21:13 -0700 Subject: [PATCH 194/206] Revert change to .gitmodules and update submodule pointer for ccpp-physics --- .gitmodules | 6 ++---- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index 612e807d6..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,5 @@ branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/mdtoy/ccpp-physics - #branch = unified_ugwp - url = https://github.com/climbfuji/ccpp-physics - branch = mike_unified_ugwp_with_dom_mods + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/ccpp/physics b/ccpp/physics index 5964c9811..c3bb4d0d1 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 5964c9811e5452699717ae008487e21772f08083 +Subproject commit c3bb4d0d1cc5e65d6888ccbba622420bc30a2c6e From f5dcd1f64f8f4ad1e418d927ce2367970a52e2d0 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 18 Nov 2020 14:38:08 -0700 Subject: [PATCH 195/206] Update .gitmodules for code review and testing --- .gitmodules | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/.gitmodules b/.gitmodules index bdc0ffbf1..51b1088c5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,18 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - branch = gsd/develop + #url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + #branch = gsd/develop + url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere + branch = update_gsd_develop_from_dev_emc_20201118 [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/NOAA-GSD/ccpp-framework - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-framework + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-framework + branch = update_gsd_develop_from_master_20201118 [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NOAA-GSD/ccpp-physics - branch = gsd/develop + #url = https://github.com/NOAA-GSD/ccpp-physics + #branch = gsd/develop + url = https://github.com/climbfuji/ccpp-physics + branch = update_gsd_develop_from_master_20201118 From 9b8458c9f21b6fcf13ef2692cbcb741a3230552f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 19 Nov 2020 08:29:32 -0700 Subject: [PATCH 196/206] ccpp/config/ccpp_prebuild_config.py: add tracer_sanitizer.F90 back in, was deleted during merge --- ccpp/config/ccpp_prebuild_config.py | 1 + 1 file changed, 1 insertion(+) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 9bcd504ea..20b7f4a36 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -160,6 +160,7 @@ 'ccpp/physics/physics/ozphys_2015.f', 'ccpp/physics/physics/precpd.f', 'ccpp/physics/physics/phys_tend.F90', + 'ccpp/physics/physics/tracer_sanitizer.F90', 'ccpp/physics/physics/radlw_main.F90', 'ccpp/physics/physics/radsw_main.F90', 'ccpp/physics/physics/rascnv.F90', From cc2df7402bfd7b9c4ad40f46acd3f9ecb8cfac69 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 19 Nov 2020 10:39:21 -0700 Subject: [PATCH 197/206] Fix conflict from merge in gfsphysics/GFS_layer/GFS_typedefs.F90: RUC LSM runs with gcycle --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index ddf75e7e7..7508a6d45 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -3946,9 +3946,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%lsm = lsm Model%lsoil = lsoil #ifdef CCPP - ! Consistency check for RUC LSM - if ((Model%lsm == Model%lsm_ruc .or. Model%lsm == Model%lsm_noah_wrfv4) .and. Model%nscyc>0) then - write(0,*) 'Logic error: RUC LSM and NOAH WRFv4 LSM cannot be used with surface data cycling at this point (fhcyc>0)' + ! Consistency check for HWRF Noah LSM + if (Model%lsm == Model%lsm_noah_wrfv4 .and. Model%nscyc>0) then + write(0,*) 'Logic error: NOAH WRFv4 LSM cannot be used with surface data cycling at this point (fhcyc>0)' stop end if ! Flag to read leaf area index from input files (initial conditions) From 3919ec5e72055c07f02946421cb3413de2400efb Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 19 Nov 2020 11:29:57 -0700 Subject: [PATCH 198/206] Update submodule pointer for ccpp-physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index af316340e..551be294e 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit af316340e3337e45cde702929388d3b005c75c31 +Subproject commit 551be294e2487d44731f38cf22814934a4d8967a From 84b00df122e02c693f7c9a581984f48033f6b4fe Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 20 Nov 2020 09:36:32 -0700 Subject: [PATCH 199/206] Revert change to .gitmodules and update submodule pointers for GFDL_atmos_cubed_sphere, ccpp-framework and ccpp-physics --- .gitmodules | 18 ++++++------------ atmos_cubed_sphere | 2 +- ccpp/framework | 2 +- ccpp/physics | 2 +- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/.gitmodules b/.gitmodules index 51b1088c5..bdc0ffbf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,18 +1,12 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - #url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - #branch = gsd/develop - url = https://github.com/climbfuji/GFDL_atmos_cubed_sphere - branch = update_gsd_develop_from_dev_emc_20201118 + url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere + branch = gsd/develop [submodule "ccpp/framework"] path = ccpp/framework - #url = https://github.com/NOAA-GSD/ccpp-framework - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-framework - branch = update_gsd_develop_from_master_20201118 + url = https://github.com/NOAA-GSD/ccpp-framework + branch = gsd/develop [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NOAA-GSD/ccpp-physics - #branch = gsd/develop - url = https://github.com/climbfuji/ccpp-physics - branch = update_gsd_develop_from_master_20201118 + url = https://github.com/NOAA-GSD/ccpp-physics + branch = gsd/develop diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index c2f23ff2a..5a246b486 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit c2f23ff2a2819ca7b191fa695653b9941bd12a60 +Subproject commit 5a246b48607d6032d95ea06747bc293fc2b75081 diff --git a/ccpp/framework b/ccpp/framework index 51b910f7a..752ac0e74 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 51b910f7a155b4e5b580d9fc09a82552feb8fea1 +Subproject commit 752ac0e74af977239fa3eae98364b5987dea970d diff --git a/ccpp/physics b/ccpp/physics index 551be294e..7fa0ec8f5 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 551be294e2487d44731f38cf22814934a4d8967a +Subproject commit 7fa0ec8f53a83c665fb1e8a079bea33bea0c8061 From 5e95e5623c9f385fbb2c7082efd151d568597cae Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 20 Nov 2020 17:14:22 -0700 Subject: [PATCH 200/206] Update .gitmodules and submodule pointers for ccpp-framework and ccpp-physics for code review and testing --- .gitmodules | 12 ++++++++---- ccpp/framework | 2 +- ccpp/physics | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitmodules b/.gitmodules index d253f6966..fd8a68350 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,9 +4,13 @@ branch = dev/emc [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/NCAR/ccpp-framework - branch = master + #url = https://github.com/NCAR/ccpp-framework + #branch = master + url = https://github.com/climbfuji/ccpp-framework + branch = update_master_from_gsd_develop_20201120 [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NCAR/ccpp-physics - branch = master + #url = https://github.com/NCAR/ccpp-physics + #branch = master + url = https://github.com/climbfuji/ccpp-physics + branch = update_master_from_gsd_develop_20201120 diff --git a/ccpp/framework b/ccpp/framework index dca1240e6..e8c40fb29 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit dca1240e6f19a5bbcfa0b14aa8526f36e99ed135 +Subproject commit e8c40fb2994c6671a11189a2b6946be46b6e322b diff --git a/ccpp/physics b/ccpp/physics index 8ef88ca46..03942e105 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 8ef88ca46c11535fc7984d39ec38d1582f9db5ff +Subproject commit 03942e105ffe54038c0abedd3b4b4ce196c2de82 From cdd6897cea732a261e2debc0bf4ea3c9343107da Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Sat, 21 Nov 2020 19:57:47 -0700 Subject: [PATCH 201/206] ccpp/suites/suite_FV3_GSD_noah.xml: comment out tracer_sanitizer scheme --- ccpp/suites/suite_FV3_GSD_noah.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/suites/suite_FV3_GSD_noah.xml b/ccpp/suites/suite_FV3_GSD_noah.xml index ccc6b0416..4d7d4e00f 100644 --- a/ccpp/suites/suite_FV3_GSD_noah.xml +++ b/ccpp/suites/suite_FV3_GSD_noah.xml @@ -79,7 +79,7 @@ mp_thompson_post GFS_MP_generic_post cu_gf_driver_post - tracer_sanitizer + maximum_hourly_diagnostics From 34a93370f0436805d738a08c6475f12fd6f99954 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Sat, 21 Nov 2020 20:00:57 -0700 Subject: [PATCH 202/206] Add --debug to ccpp_prebuild.py call in DEBUG mode, pretty-print of ccpp_prebuild call --- CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 37285a443..3f005989a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,14 @@ if(CCPP) + if(DEBUG) + set(_ccpp_debug_arg "--debug") + endif() if(DEFINED CCPP_SUITES) set(_ccpp_suites_arg "--suites=${CCPP_SUITES}") + message("Calling CCPP code generator (ccpp_prebuild.py) for suites ${_ccpp_suites_arg} ...") + else() + message("Calling CCPP code generator (ccpp_prebuild.py) for all available suites ...") endif() - message("Calling CCPP code generator (ccpp_prebuild.py) ... ${_ccpp_suites_arg}") execute_process(COMMAND ${Python_EXECUTABLE} "ccpp/framework/scripts/ccpp_prebuild.py" "--config=ccpp/config/ccpp_prebuild_config.py" From c2890282d88fc65e81ff41efb03fe7e660c93d8f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Sat, 21 Nov 2020 20:02:38 -0700 Subject: [PATCH 203/206] Add CCPP suite ccpp/suites/suite_FV3_GFS_v16beta_coupled.xml --- ccpp/suites/suite_FV3_GFS_v16beta_coupled.xml | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 ccpp/suites/suite_FV3_GFS_v16beta_coupled.xml diff --git a/ccpp/suites/suite_FV3_GFS_v16beta_coupled.xml b/ccpp/suites/suite_FV3_GFS_v16beta_coupled.xml new file mode 100644 index 000000000..a131fb380 --- /dev/null +++ b/ccpp/suites/suite_FV3_GFS_v16beta_coupled.xml @@ -0,0 +1,93 @@ + + + + + + + fv_sat_adj + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_ocean + lsm_noah + sfc_cice + sfc_sice + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + GFS_PBL_generic_pre + satmedmfvdifq + GFS_PBL_generic_post + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + samfdeepcnv + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + samfshalcnv + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + gfdl_cloud_microphys + GFS_MP_generic_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + phys_tend + + + + From 64da3d85aae24021e59c07b81e429d4c80652735 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 23 Nov 2020 09:11:58 -0700 Subject: [PATCH 204/206] Revert unintended change of GFDL_atmos_cubed_sphere info in .gitmodules --- .gitmodules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 97aa9fc69..fd8a68350 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,7 @@ [submodule "atmos_cubed_sphere"] path = atmos_cubed_sphere - url = https://github.com/NOAA-GSD/GFDL_atmos_cubed_sphere - branch = gsd/develop + url = https://github.com/NOAA-EMC/GFDL_atmos_cubed_sphere + branch = dev/emc [submodule "ccpp/framework"] path = ccpp/framework #url = https://github.com/NCAR/ccpp-framework From 8d1cd72ff39f7826a7ac389736b3008aef43be98 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 23 Nov 2020 09:22:59 -0700 Subject: [PATCH 205/206] Bugfix in CMakeLists.txt, pass _ccpp_debug_arg to ccpp_prebuild.py call --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f005989a..d5013e53e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ if(CCPP) execute_process(COMMAND ${Python_EXECUTABLE} "ccpp/framework/scripts/ccpp_prebuild.py" "--config=ccpp/config/ccpp_prebuild_config.py" - "--builddir=${CMAKE_CURRENT_BINARY_DIR}" ${_ccpp_suites_arg} + "--builddir=${CMAKE_CURRENT_BINARY_DIR}" ${_ccpp_suites_arg} ${_ccpp_debug_arg} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/ccpp_prebuild.out ERROR_FILE ${CMAKE_CURRENT_BINARY_DIR}/ccpp_prebuild.err From 23423c6b3464e603215926736d0beb30c52826a6 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 24 Nov 2020 14:32:50 -0700 Subject: [PATCH 206/206] Revert change to .gitmodules and update submodule pointers for ccpp-framework and ccpp-physics --- .gitmodules | 12 ++++-------- ccpp/framework | 2 +- ccpp/physics | 2 +- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/.gitmodules b/.gitmodules index fd8a68350..d253f6966 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,13 +4,9 @@ branch = dev/emc [submodule "ccpp/framework"] path = ccpp/framework - #url = https://github.com/NCAR/ccpp-framework - #branch = master - url = https://github.com/climbfuji/ccpp-framework - branch = update_master_from_gsd_develop_20201120 + url = https://github.com/NCAR/ccpp-framework + branch = master [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NCAR/ccpp-physics - #branch = master - url = https://github.com/climbfuji/ccpp-physics - branch = update_master_from_gsd_develop_20201120 + url = https://github.com/NCAR/ccpp-physics + branch = master diff --git a/ccpp/framework b/ccpp/framework index e8c40fb29..f1dc8d6f0 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit e8c40fb2994c6671a11189a2b6946be46b6e322b +Subproject commit f1dc8d6f038e590508c272070f673d1fd7ea566f diff --git a/ccpp/physics b/ccpp/physics index 03942e105..4e39b50a2 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 03942e105ffe54038c0abedd3b4b4ce196c2de82 +Subproject commit 4e39b50a248fc093c055fc6a8ae245065da7c730