From c02403abbcf63c66a30d209a9107615f126bd34b Mon Sep 17 00:00:00 2001 From: "denise.worthen" Date: Wed, 22 Sep 2021 08:40:03 -0400 Subject: [PATCH 1/8] remove unused coupled suites --- ccpp/suites/suite_FV3_GFS_2017_coupled.xml | 88 ------------------ .../suites/suite_FV3_GFS_2017_couplednsst.xml | 90 ------------------- .../suite_FV3_GFS_2017_satmedmf_coupled.xml | 88 ------------------ 3 files changed, 266 deletions(-) delete mode 100644 ccpp/suites/suite_FV3_GFS_2017_coupled.xml delete mode 100644 ccpp/suites/suite_FV3_GFS_2017_couplednsst.xml delete mode 100644 ccpp/suites/suite_FV3_GFS_2017_satmedmf_coupled.xml diff --git a/ccpp/suites/suite_FV3_GFS_2017_coupled.xml b/ccpp/suites/suite_FV3_GFS_2017_coupled.xml deleted file mode 100644 index 55e20f8e3..000000000 --- a/ccpp/suites/suite_FV3_GFS_2017_coupled.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - GFS_time_vary_pre - GFS_rrtmg_setup - GFS_rad_time_vary - GFS_phys_time_vary - - - - - GFS_suite_interstitial_rad_reset - GFS_rrtmg_pre - GFS_radiation_surface - 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 - hedmf - GFS_PBL_generic_post - GFS_GWD_generic_pre - cires_ugwp - cires_ugwp_post - GFS_GWD_generic_post - GFS_suite_stateout_update - ozphys - 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 - zhaocarr_gscond - zhaocarr_precpd - GFS_MP_generic_post - maximum_hourly_diagnostics - phys_tend - - - - - GFS_stochastics - - - - diff --git a/ccpp/suites/suite_FV3_GFS_2017_couplednsst.xml b/ccpp/suites/suite_FV3_GFS_2017_couplednsst.xml deleted file mode 100644 index 3c45e5b0e..000000000 --- a/ccpp/suites/suite_FV3_GFS_2017_couplednsst.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - GFS_time_vary_pre - GFS_rrtmg_setup - GFS_rad_time_vary - GFS_phys_time_vary - - - - - GFS_suite_interstitial_rad_reset - GFS_rrtmg_pre - GFS_radiation_surface - 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 - lsm_noah - sfc_nst_pre - sfc_nst - sfc_nst_post - 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 - hedmf - GFS_PBL_generic_post - GFS_GWD_generic_pre - cires_ugwp - cires_ugwp_post - GFS_GWD_generic_post - GFS_suite_stateout_update - ozphys - 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 - zhaocarr_gscond - zhaocarr_precpd - GFS_MP_generic_post - maximum_hourly_diagnostics - phys_tend - - - - - GFS_stochastics - - - - diff --git a/ccpp/suites/suite_FV3_GFS_2017_satmedmf_coupled.xml b/ccpp/suites/suite_FV3_GFS_2017_satmedmf_coupled.xml deleted file mode 100644 index bf53393e0..000000000 --- a/ccpp/suites/suite_FV3_GFS_2017_satmedmf_coupled.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - GFS_time_vary_pre - GFS_rrtmg_setup - GFS_rad_time_vary - GFS_phys_time_vary - - - - - GFS_suite_interstitial_rad_reset - GFS_rrtmg_pre - GFS_radiation_surface - 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 - satmedmfvdif - GFS_PBL_generic_post - GFS_GWD_generic_pre - cires_ugwp - cires_ugwp_post - GFS_GWD_generic_post - GFS_suite_stateout_update - ozphys - 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 - zhaocarr_gscond - zhaocarr_precpd - GFS_MP_generic_post - maximum_hourly_diagnostics - phys_tend - - - - - GFS_stochastics - - - - From d4b14b374c1e6aa69c457c8c095e196d799ce634 Mon Sep 17 00:00:00 2001 From: "denise.worthen" Date: Thu, 23 Sep 2021 05:24:39 -0400 Subject: [PATCH 2/8] delete v15p2 coupled suites --- ccpp/suites/suite_FV3_GFS_v15p2_coupled.xml | 93 ------------------ .../suite_FV3_GFS_v15p2_couplednsst.xml | 95 ------------------- 2 files changed, 188 deletions(-) delete mode 100644 ccpp/suites/suite_FV3_GFS_v15p2_coupled.xml delete mode 100644 ccpp/suites/suite_FV3_GFS_v15p2_couplednsst.xml diff --git a/ccpp/suites/suite_FV3_GFS_v15p2_coupled.xml b/ccpp/suites/suite_FV3_GFS_v15p2_coupled.xml deleted file mode 100644 index 727f85120..000000000 --- a/ccpp/suites/suite_FV3_GFS_v15p2_coupled.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - 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 - GFS_radiation_surface - 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 - hedmf - GFS_PBL_generic_post - GFS_GWD_generic_pre - cires_ugwp - cires_ugwp_post - GFS_GWD_generic_post - 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 - phys_tend - - - - - GFS_stochastics - - - - diff --git a/ccpp/suites/suite_FV3_GFS_v15p2_couplednsst.xml b/ccpp/suites/suite_FV3_GFS_v15p2_couplednsst.xml deleted file mode 100644 index 55f7e31f2..000000000 --- a/ccpp/suites/suite_FV3_GFS_v15p2_couplednsst.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - 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 - GFS_radiation_surface - 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_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 - hedmf - GFS_PBL_generic_post - GFS_GWD_generic_pre - cires_ugwp - cires_ugwp_post - GFS_GWD_generic_post - 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 - phys_tend - - - - - GFS_stochastics - - - - From cd81b81af80bc174056e4411137732ae808bff2d Mon Sep 17 00:00:00 2001 From: "Jun.Wang" Date: Tue, 28 Sep 2021 14:42:19 +0000 Subject: [PATCH 3/8] update filename when the output time is not integer hours --- fv3_cap.F90 | 13 ++++++++++--- io/module_fv3_io_def.F90 | 1 + io/module_wrt_grid_comp.F90 | 5 ++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/fv3_cap.F90 b/fv3_cap.F90 index eca8cf686..a86e5b292 100644 --- a/fv3_cap.F90 +++ b/fv3_cap.F90 @@ -39,7 +39,7 @@ module fv3gfs_cap_mod wrttasks_per_group, n_group, & lead_wrttask, last_wrttask, & output_grid, output_file, & - nsout_io, iau_offset + nsout_io, iau_offset, lflname_fulltime ! use module_fcst_grid_comp, only: fcstSS => SetServices, & fcstGrid, numLevels, numSoilLayers, & @@ -688,7 +688,7 @@ subroutine InitializeAdvertise(gcomp, rc) output_fh(i) = (i-1)*nfhout_hf + output_startfh enddo do i=1,nfh2 - output_fh(nfh+i) = nfhmax_hf + i*nfhout + output_fh(nfh+i) = nfhmax_hf + i*nfhout enddo endif elseif (nfhout > 0 ) then @@ -721,6 +721,7 @@ subroutine InitializeAdvertise(gcomp, rc) if (noutput_fh > 0 ) then !--- use output_fh to sepcify output forecast time loutput_fh = .true. + lflname_fulltime = .false. if(noutput_fh == 1) then call ESMF_ConfigGetAttribute(CF,value=outputfh,label='output_fh:', rc=rc) if(outputfh == -1) loutput_fh = .false. @@ -745,6 +746,9 @@ subroutine InitializeAdvertise(gcomp, rc) endif do i=2,nfh output_fh(i) = (i-1)*outputfh2(1) + output_startfh + if(.not.lflname_fulltime) then + if(mode(nint(output_fh(i)*3600),3600) /= 0) lflname_fulltime = .true. + endif enddo endif endif @@ -760,12 +764,15 @@ subroutine InitializeAdvertise(gcomp, rc) else do i=1,noutput_fh output_fh(i) = output_startfh + output_fh(i) + if(.not.lflname_fulltime) then + if(mode(nint(output_fh(i)*3600),3600) /= 0) lflname_fulltime = .true. + endif enddo endif endif endif ! end loutput_fh endif - if(mype==0) print *,'output_fh=',output_fh(1:size(output_fh)) + if(mype==0) print *,'output_fh=',output_fh(1:size(output_fh)),'lflname_fulltime=',lflname_fulltime ! ! --- advertise Fields in importState and exportState ------------------- diff --git a/io/module_fv3_io_def.F90 b/io/module_fv3_io_def.F90 index 253d922fe..65d2b926b 100644 --- a/io/module_fv3_io_def.F90 +++ b/io/module_fv3_io_def.F90 @@ -20,6 +20,7 @@ module module_fv3_io_def integer :: ichunk2d,jchunk2d,ichunk3d,jchunk3d,kchunk3d integer :: nbdlphys integer :: nsout_io, iau_offset, ideflate, nbits + logical :: lflname_fulltime real :: cen_lon, cen_lat, lon1, lat1, lon2, lat2, dlon, dlat real :: stdlat1, stdlat2, dx, dy character(len=esmf_maxstr),dimension(:),allocatable :: filename_base diff --git a/io/module_wrt_grid_comp.F90 b/io/module_wrt_grid_comp.F90 index 7fa3f8037..e7469813f 100644 --- a/io/module_wrt_grid_comp.F90 +++ b/io/module_wrt_grid_comp.F90 @@ -39,7 +39,7 @@ module module_wrt_grid_comp cen_lon, cen_lat, & lon1, lat1, lon2, lat2, dlon, dlat, & stdlat1, stdlat2, dx, dy, iau_offset, & - ideflate + ideflate, lflname_fulltime use module_write_netcdf, only : write_netcdf use physcons, only : pi => con_pi use inline_post, only : inline_post_run, inline_post_getattr @@ -1408,8 +1408,7 @@ subroutine wrt_run(wrt_comp, imp_state_write, exp_state_write,clock,rc) nf_minutes = int((nf_seconds-nf_hours*3600.)/60.) nseconds = int(nf_seconds-nf_hours*3600.-nf_minutes*60.) -! if (nf_seconds-nf_hours*3600 > 0 .and. nsout > 0) then - if (nsout > 0) then + if (nsout > 0 .or. lflname_fulltime) then ndig = max(log10(nf_hours+0.5)+1., 3.) write(cform, '("(I",I1,".",I1,",A1,I2.2,A1,I2.2)")') ndig, ndig write(cfhour, cform) nf_hours,'-',nf_minutes,'-',nseconds From d2c8b71d89164576aa33416926785388e1d3f5c0 Mon Sep 17 00:00:00 2001 From: "Jun.Wang" Date: Wed, 29 Sep 2021 02:41:04 +0000 Subject: [PATCH 4/8] fix the diag time issue with output_fh --- atmos_model.F90 | 13 +++++++------ fv3_cap.F90 | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/atmos_model.F90 b/atmos_model.F90 index 1bec14f0b..c38718026 100644 --- a/atmos_model.F90 +++ b/atmos_model.F90 @@ -913,13 +913,14 @@ subroutine update_atmos_model_state (Atmos, rc) call FV3GFS_diag_output(Atmos%Time, GFS_Diag, Atm_block, GFS_control%nx, GFS_control%ny, & GFS_control%levs, 1, 1, 1.0_GFS_kind_phys, time_int, time_intfull, & GFS_control%fhswr, GFS_control%fhlwr) - if (nint(GFS_control%fhzero) > 0) then - if (mod(isec,3600*nint(GFS_control%fhzero)) == 0) diag_time = Atmos%Time - else - if (mod(isec,nint(3600*GFS_control%fhzero)) == 0) diag_time = Atmos%Time - endif - call diag_send_complete_instant (Atmos%Time) endif + if (nint(GFS_control%fhzero) > 0) then + if (mod(isec,3600*nint(GFS_control%fhzero)) == 0) diag_time = Atmos%Time + else + if (mod(isec,nint(3600*GFS_control%fhzero)) == 0) diag_time = Atmos%Time + endif + call diag_send_complete_instant (Atmos%Time) + !--- this may not be necessary once write_component is fully implemented !!!call diag_send_complete_extra (Atmos%Time) diff --git a/fv3_cap.F90 b/fv3_cap.F90 index a86e5b292..122a9d21c 100644 --- a/fv3_cap.F90 +++ b/fv3_cap.F90 @@ -747,7 +747,7 @@ subroutine InitializeAdvertise(gcomp, rc) do i=2,nfh output_fh(i) = (i-1)*outputfh2(1) + output_startfh if(.not.lflname_fulltime) then - if(mode(nint(output_fh(i)*3600),3600) /= 0) lflname_fulltime = .true. + if(mod(nint(output_fh(i)*3600),3600) /= 0) lflname_fulltime = .true. endif enddo endif @@ -765,7 +765,7 @@ subroutine InitializeAdvertise(gcomp, rc) do i=1,noutput_fh output_fh(i) = output_startfh + output_fh(i) if(.not.lflname_fulltime) then - if(mode(nint(output_fh(i)*3600),3600) /= 0) lflname_fulltime = .true. + if(mod(nint(output_fh(i)*3600),3600) /= 0) lflname_fulltime = .true. endif enddo endif From c69f676c2d182df44f59c910d4d8a75ee92a0e55 Mon Sep 17 00:00:00 2001 From: "Jun.Wang" Date: Wed, 29 Sep 2021 17:58:50 +0000 Subject: [PATCH 5/8] fix lflname_fulltime --- fv3_cap.F90 | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/fv3_cap.F90 b/fv3_cap.F90 index 122a9d21c..d0b05fc4e 100644 --- a/fv3_cap.F90 +++ b/fv3_cap.F90 @@ -747,7 +747,7 @@ subroutine InitializeAdvertise(gcomp, rc) do i=2,nfh output_fh(i) = (i-1)*outputfh2(1) + output_startfh if(.not.lflname_fulltime) then - if(mod(nint(output_fh(i)*3600),3600) /= 0) lflname_fulltime = .true. + if(mod(nint(output_fh(i)*3600.),3600) /= 0) lflname_fulltime = .true. endif enddo endif @@ -761,11 +761,16 @@ subroutine InitializeAdvertise(gcomp, rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return if( output_startfh == 0) then if(output_fh(1)==0) output_fh(1) = dt_atmos/3600. + do i=1,noutput_fh + if(.not.lflname_fulltime) then + if(mod(nint(output_fh(i)*3600.),3600) /= 0) lflname_fulltime = .true. + endif + enddo else do i=1,noutput_fh output_fh(i) = output_startfh + output_fh(i) if(.not.lflname_fulltime) then - if(mod(nint(output_fh(i)*3600),3600) /= 0) lflname_fulltime = .true. + if(mod(nint(output_fh(i)*3600.),3600) /= 0) lflname_fulltime = .true. endif enddo endif From 036e27060a620f8ff5d0c3a939351415f7a1e43f Mon Sep 17 00:00:00 2001 From: "Jun.Wang" Date: Wed, 29 Sep 2021 19:05:11 +0000 Subject: [PATCH 6/8] fix lflname_fulltime for output time starting with 0 --- fv3_cap.F90 | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/fv3_cap.F90 b/fv3_cap.F90 index d0b05fc4e..84dfe48af 100644 --- a/fv3_cap.F90 +++ b/fv3_cap.F90 @@ -181,7 +181,7 @@ subroutine InitializeAdvertise(gcomp, rc) integer(ESMF_KIND_I4) :: nhf, nrg integer,dimension(6) :: date, date_init - integer :: i, j, k, io_unit, urc, ierr + integer :: i, j, k, io_unit, urc, ierr, ist integer :: noutput_fh, nfh, nfh2 integer :: petcount integer :: num_output_file @@ -760,8 +760,12 @@ subroutine InitializeAdvertise(gcomp, rc) count=noutput_fh, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return if( output_startfh == 0) then - if(output_fh(1)==0) output_fh(1) = dt_atmos/3600. - do i=1,noutput_fh + ist = 1 + if(output_fh(1)==0) then + output_fh(1) = dt_atmos/3600. + ist= 2 + endif + do i=ist,noutput_fh if(.not.lflname_fulltime) then if(mod(nint(output_fh(i)*3600.),3600) /= 0) lflname_fulltime = .true. endif From 439f4854d3ed5976737329c6f88a3c7a76dbd40a Mon Sep 17 00:00:00 2001 From: "Jun.Wang" Date: Thu, 30 Sep 2021 17:28:43 +0000 Subject: [PATCH 7/8] add doc for lflname_fulltime --- fv3_cap.F90 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/fv3_cap.F90 b/fv3_cap.F90 index 84dfe48af..5ba3b5068 100644 --- a/fv3_cap.F90 +++ b/fv3_cap.F90 @@ -746,6 +746,9 @@ subroutine InitializeAdvertise(gcomp, rc) endif do i=2,nfh output_fh(i) = (i-1)*outputfh2(1) + output_startfh + ! Except fh000, which is the first time output, if any other of the + ! output time is not integer hour, set lflname_fulltime to be ture, so the + ! history file names will contain the full time stamp (HHH-MM-SS). if(.not.lflname_fulltime) then if(mod(nint(output_fh(i)*3600.),3600) /= 0) lflname_fulltime = .true. endif @@ -760,6 +763,10 @@ subroutine InitializeAdvertise(gcomp, rc) count=noutput_fh, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return if( output_startfh == 0) then + ! if the output time in output_fh array contains first time stamp output, + ! check the rest of output time, otherwise, check all the output time. + ! if any of them is not integer hour, the history file names will + ! contain the full time stamp (HHH-MM-SS) ist = 1 if(output_fh(1)==0) then output_fh(1) = dt_atmos/3600. @@ -773,6 +780,9 @@ subroutine InitializeAdvertise(gcomp, rc) else do i=1,noutput_fh output_fh(i) = output_startfh + output_fh(i) + ! when output_startfh >0, check all the output time, if any of + ! them is not integer hour, set lflname_fulltime to be ture. The + ! history file names will contain the full time stamp (HHH-MM-SS). if(.not.lflname_fulltime) then if(mod(nint(output_fh(i)*3600.),3600) /= 0) lflname_fulltime = .true. endif From 8fe3d7a956d47489674d48cfd1f48af9c8cab322 Mon Sep 17 00:00:00 2001 From: "Jun.Wang" Date: Thu, 30 Sep 2021 17:58:33 +0000 Subject: [PATCH 8/8] fix typo --- fv3_cap.F90 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fv3_cap.F90 b/fv3_cap.F90 index 5ba3b5068..f37ef7109 100644 --- a/fv3_cap.F90 +++ b/fv3_cap.F90 @@ -747,7 +747,7 @@ subroutine InitializeAdvertise(gcomp, rc) do i=2,nfh output_fh(i) = (i-1)*outputfh2(1) + output_startfh ! Except fh000, which is the first time output, if any other of the - ! output time is not integer hour, set lflname_fulltime to be ture, so the + ! output time is not integer hour, set lflname_fulltime to be true, so the ! history file names will contain the full time stamp (HHH-MM-SS). if(.not.lflname_fulltime) then if(mod(nint(output_fh(i)*3600.),3600) /= 0) lflname_fulltime = .true. @@ -763,9 +763,9 @@ subroutine InitializeAdvertise(gcomp, rc) count=noutput_fh, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return if( output_startfh == 0) then - ! if the output time in output_fh array contains first time stamp output, + ! If the output time in output_fh array contains first time stamp output, ! check the rest of output time, otherwise, check all the output time. - ! if any of them is not integer hour, the history file names will + ! If any of them is not integer hour, the history file names will ! contain the full time stamp (HHH-MM-SS) ist = 1 if(output_fh(1)==0) then @@ -780,8 +780,8 @@ subroutine InitializeAdvertise(gcomp, rc) else do i=1,noutput_fh output_fh(i) = output_startfh + output_fh(i) - ! when output_startfh >0, check all the output time, if any of - ! them is not integer hour, set lflname_fulltime to be ture. The + ! When output_startfh >0, check all the output time, if any of + ! them is not integer hour, set lflname_fulltime to be true. The ! history file names will contain the full time stamp (HHH-MM-SS). if(.not.lflname_fulltime) then if(mod(nint(output_fh(i)*3600.),3600) /= 0) lflname_fulltime = .true.