From de354355e71674cb2e87469f5115ad25f50b86b3 Mon Sep 17 00:00:00 2001 From: Edward Hartnett Date: Tue, 16 Jan 2024 05:15:14 -0700 Subject: [PATCH 1/4] doxygen changes --- io/module_fv3_io_def.F90 | 146 +++++++++++++++++++++++++++++++-------- module_fv3_config.F90 | 51 ++++++++++---- 2 files changed, 154 insertions(+), 43 deletions(-) diff --git a/io/module_fv3_io_def.F90 b/io/module_fv3_io_def.F90 index dfef37500..610b25e0b 100644 --- a/io/module_fv3_io_def.F90 +++ b/io/module_fv3_io_def.F90 @@ -1,36 +1,126 @@ +!> @file +!> @brief fv3 I/O related configration variables. +!> @author Jun Wang @date 01/2017 + +!> fv3 I/O related configration variables. +!> +!> @author Jun Wang @date 01/2017 module module_fv3_io_def -! -!*** fv3 io related configration variables -! -! revision history -! 01/2017 Jun Wang Initial code -! -!------------------------------------------------------------------------ -! use esmf, only : esmf_maxstr implicit none + !> Number of processors used in forecast run. integer :: num_pes_fcst - integer :: wrttasks_per_group, write_groups - integer :: n_group - integer :: num_files - integer :: nbdlphys - integer :: iau_offset - logical :: lflname_fulltime - logical :: time_unlimited - - character(len=esmf_maxstr),dimension(:),allocatable :: filename_base - character(len=esmf_maxstr),dimension(:),allocatable :: output_file - - integer,dimension(:),allocatable :: lead_wrttask, last_wrttask - - character(len=esmf_maxstr),dimension(:),allocatable :: output_grid - integer,dimension(:),allocatable :: imo,jmo - real,dimension(:),allocatable :: cen_lon, cen_lat - real,dimension(:),allocatable :: lon1, lat1, lon2, lat2, dlon, dlat - real,dimension(:),allocatable :: stdlat1, stdlat2, dx, dy - integer,dimension(:),allocatable :: ideflate, quantize_nsd, zstandard_level + + !> Number of write tasks per group. + integer :: wrttasks_per_group + + !> ??? + integer :: write_groups + + !> ??? + integer :: n_group + + !> ??? + integer :: num_files + + !> ??? + integer :: nbdlphys + + !> ??? + integer :: iau_offset + + !> ??? + logical :: lflname_fulltime + + !> ??? + logical :: time_unlimited + + + !> ??? + character(len=esmf_maxstr),dimension(:),allocatable :: filename_base + + !> ??? + character(len=esmf_maxstr),dimension(:),allocatable :: output_file + + + !> ??? + integer,dimension(:),allocatable :: lead_wrttask + + !> ??? + integer,dimension(:),allocatable :: last_wrttask + + + !> ??? + character(len=esmf_maxstr),dimension(:),allocatable :: output_grid + + !> ??? + integer,dimension(:),allocatable :: imo + + !> ??? + integer,dimension(:),allocatable :: jmo + + !> ??? + real,dimension(:),allocatable :: cen_lon + + !> ??? + real,dimension(:),allocatable :: cen_lat + + !> ??? + real,dimension(:),allocatable :: lon1 + + !> ??? + real,dimension(:),allocatable :: lat1 + + !> ??? + real,dimension(:),allocatable :: lon2 + + !> ??? + real,dimension(:),allocatable :: lat2 + + !> ??? + real,dimension(:),allocatable :: dlon + + !> ??? + real,dimension(:),allocatable :: dlat + + !> ??? + real,dimension(:),allocatable :: stdlat1 + + !> ??? + real,dimension(:),allocatable :: stdlat2 + + !> ??? + real,dimension(:),allocatable :: dx + + !> ??? + real,dimension(:),allocatable :: dy + + !> Deflate level to use, 0 means no deflate. + integer,dimension(:),allocatable :: ideflate + + !> Number of significant digits for lossy compression. + integer,dimension(:),allocatable :: quantize_nsd + + !> Zstandard compression level, 0 means no zstandard compression. + integer,dimension(:),allocatable :: zstandard_level + + !> Quantize mode to use for lossy compression. character(len=esmf_maxstr),dimension(:),allocatable :: quantize_mode - integer,dimension(:),allocatable :: ichunk2d, jchunk2d, ichunk3d, jchunk3d, kchunk3d + + !> Chunk size in i dimension for 2D data. + integer,dimension(:),allocatable :: ichunk2d + + !> Chunk size in j dimension for 2D data. + integer,dimension(:),allocatable :: jchunk2d + + !> Chunk size in i dimension for 3D data. + integer,dimension(:),allocatable :: ichunk3d + + !> Chunk size in j dimension for 3D data. + integer,dimension(:),allocatable :: jchunk3d + + !> Chunk size in k dimension for 3D data. + integer,dimension(:),allocatable :: kchunk3d end module module_fv3_io_def diff --git a/module_fv3_config.F90 b/module_fv3_config.F90 index 7e82c8e24..fc60a74de 100644 --- a/module_fv3_config.F90 +++ b/module_fv3_config.F90 @@ -1,28 +1,49 @@ +!> @file +!> @brief fv3 configure variables from model_configure. +!> @author Jun Wang @date 01/2017 +!> fv3 configure variables from model_configure. +!> +!> @author Jun Wang @date 01/2017 module module_fv3_config -!------------------------------------------------------------------------ -! -!*** fv3 configure variables from model_configure -! -! revision history -! 01/2017 Jun Wang Initial code -! -!------------------------------------------------------------------------ -! use esmf implicit none -! + + + !> ??? integer :: dt_atmos + + !> ??? integer :: first_kdt - integer :: fcst_mpi_comm, fcst_ntasks -! + + !> ??? + integer :: fcst_mpi_comm + + !> ??? + integer :: fcst_ntasks + + + !> ??? integer :: cpl_grid_id + + !> ??? logical :: cplprint_flag - logical :: quilting, quilting_restart -! + + !> ??? + logical :: quilting + + !> ??? + logical :: quilting_restart + + + !> ??? real,dimension(:),allocatable :: output_fh + + !> ??? character(esmf_maxstr),dimension(:),allocatable :: filename_base + + !> ??? character(17) :: calendar=' ' -! + end module module_fv3_config From d57d808c7b90346c4c788136ec3c5466e3d173ac Mon Sep 17 00:00:00 2001 From: Edward Hartnett Date: Tue, 16 Jan 2024 08:42:37 -0700 Subject: [PATCH 2/4] fixed brief tags --- io/module_fv3_io_def.F90 | 2 +- module_fv3_config.F90 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/io/module_fv3_io_def.F90 b/io/module_fv3_io_def.F90 index 610b25e0b..f9f5d7529 100644 --- a/io/module_fv3_io_def.F90 +++ b/io/module_fv3_io_def.F90 @@ -2,7 +2,7 @@ !> @brief fv3 I/O related configration variables. !> @author Jun Wang @date 01/2017 -!> fv3 I/O related configration variables. +!> @brief fv3 I/O related configration variables. !> !> @author Jun Wang @date 01/2017 module module_fv3_io_def diff --git a/module_fv3_config.F90 b/module_fv3_config.F90 index fc60a74de..99a8e233e 100644 --- a/module_fv3_config.F90 +++ b/module_fv3_config.F90 @@ -2,7 +2,7 @@ !> @brief fv3 configure variables from model_configure. !> @author Jun Wang @date 01/2017 -!> fv3 configure variables from model_configure. +!> @brief fv3 configure variables from model_configure. !> !> @author Jun Wang @date 01/2017 module module_fv3_config From eee0d110ee4b55349a6028e5338a40dba1a1f1f9 Mon Sep 17 00:00:00 2001 From: Jun Wang Date: Wed, 17 Jan 2024 09:45:14 -0600 Subject: [PATCH 3/4] update documentation --- io/module_fv3_io_def.F90 | 58 ++++++++++++++++++++-------------------- module_fv3_config.F90 | 25 +++++++++-------- 2 files changed, 41 insertions(+), 42 deletions(-) diff --git a/io/module_fv3_io_def.F90 b/io/module_fv3_io_def.F90 index f9f5d7529..04fb46797 100644 --- a/io/module_fv3_io_def.F90 +++ b/io/module_fv3_io_def.F90 @@ -9,91 +9,91 @@ module module_fv3_io_def use esmf, only : esmf_maxstr implicit none - !> Number of processors used in forecast run. + !> Number of processors used inr the forecast grid component integer :: num_pes_fcst - !> Number of write tasks per group. + !> Number of write tasks per write group. integer :: wrttasks_per_group - !> ??? + !> Number of the write groups integer :: write_groups - !> ??? + !> Current write group integer :: n_group - !> ??? + !> Number of history files integer :: num_files - !> ??? + !> Number of the ESMF field bundles for physics fields integer :: nbdlphys - !> ??? + !> IAU running window length integer :: iau_offset - !> ??? + !> Logical variable to decide if full time (HH.MM.SS) is used in the history + !! file names logical :: lflname_fulltime - !> ??? + !> Logical variable to decide if unlimited time dimension is used logical :: time_unlimited - !> ??? + !> Base names for model history output files character(len=esmf_maxstr),dimension(:),allocatable :: filename_base - !> ??? + !> Output file format character(len=esmf_maxstr),dimension(:),allocatable :: output_file - !> ??? + !> The first write task in a write group integer,dimension(:),allocatable :: lead_wrttask - !> ??? + !> The last write task in a write group integer,dimension(:),allocatable :: last_wrttask - - !> ??? + !> Output grid type, e.g. "gaussian_grid" character(len=esmf_maxstr),dimension(:),allocatable :: output_grid - !> ??? + !> The i-dimension in the output grid integer,dimension(:),allocatable :: imo - !> ??? + !> The j-dimension in the output grid integer,dimension(:),allocatable :: jmo - !> ??? + !> Longitude of the center point in the output grid real,dimension(:),allocatable :: cen_lon - !> ??? + !> Latitude of the center pointer in the output grid real,dimension(:),allocatable :: cen_lat - !> ??? + !> Longitude of the first grid point in the output grid real,dimension(:),allocatable :: lon1 - !> ??? + !> Latitude of the first pointer in the output grid real,dimension(:),allocatable :: lat1 - !> ??? + !> Longitude of the last grid point in the output grid real,dimension(:),allocatable :: lon2 - !> ??? + !> Latitude of the last pointer in the output grid real,dimension(:),allocatable :: lat2 - !> ??? + !> Longitude increment real,dimension(:),allocatable :: dlon - !> ??? + !> Latitude increment real,dimension(:),allocatable :: dlat - !> ??? + !> The first latitude from the pole at which the secant cone cuts the sphere real,dimension(:),allocatable :: stdlat1 - !> ??? + !> The second latitude from the pole at which the secant cone cuts the sphere real,dimension(:),allocatable :: stdlat2 - !> ??? + !> x-direction grid length real,dimension(:),allocatable :: dx - !> ??? + !> y-direction grid length real,dimension(:),allocatable :: dy !> Deflate level to use, 0 means no deflate. diff --git a/module_fv3_config.F90 b/module_fv3_config.F90 index 99a8e233e..9733fa8fc 100644 --- a/module_fv3_config.F90 +++ b/module_fv3_config.F90 @@ -11,39 +11,38 @@ module module_fv3_config implicit none - !> ??? + !> Atmosphere time step in seconds integer :: dt_atmos - !> ??? + !> The first integration step integer :: first_kdt - !> ??? + !> MPI communicator for the forecast grid component integer :: fcst_mpi_comm - !> ??? + !> Total number of mpi tasks for the forecast grid components integer :: fcst_ntasks - !> ??? + !> ID number for the coupled grids integer :: cpl_grid_id - !> ??? + !> Flag to decide if model writes out coupled diagnostic fields logical :: cplprint_flag - !> ??? + !> Flag to decide if write grid components is used logical :: quilting - !> ??? + !> Flag to decide if write grid component writes out restart files logical :: quilting_restart - !> ??? + !> Output frequency if this array has only two elements and the value of + !! the second eletment is -1. Otherwise, it is the specific output forecast + !! hours real,dimension(:),allocatable :: output_fh - !> ??? - character(esmf_maxstr),dimension(:),allocatable :: filename_base - - !> ??? + !> Calendar type character(17) :: calendar=' ' end module module_fv3_config From b5ee06034be128d5f95e47f75afe5b7bc0c18d14 Mon Sep 17 00:00:00 2001 From: Jun Wang Date: Wed, 17 Jan 2024 09:47:49 -0600 Subject: [PATCH 4/4] fix typo --- io/module_fv3_io_def.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/io/module_fv3_io_def.F90 b/io/module_fv3_io_def.F90 index 04fb46797..ce600d8e1 100644 --- a/io/module_fv3_io_def.F90 +++ b/io/module_fv3_io_def.F90 @@ -9,7 +9,7 @@ module module_fv3_io_def use esmf, only : esmf_maxstr implicit none - !> Number of processors used inr the forecast grid component + !> Number of processors used in the forecast grid component integer :: num_pes_fcst !> Number of write tasks per write group.