Skip to content

Commit

Permalink
doxygen changes for io/module_fv3_io_def.F90 and module_fv3_config.F90 (
Browse files Browse the repository at this point in the history
#757)

doxygen changes for io/module_fv3_io_def.F90 and module_fv3_config.F90

---------

Co-authored-by: Jun Wang <[email protected]>
  • Loading branch information
edwardhartnett and junwang-noaa authored Jan 19, 2024
1 parent 53a3c52 commit 9a8f8b4
Show file tree
Hide file tree
Showing 2 changed files with 154 additions and 44 deletions.
146 changes: 118 additions & 28 deletions io/module_fv3_io_def.F90
Original file line number Diff line number Diff line change
@@ -1,36 +1,126 @@
!> @file
!> @brief fv3 I/O related configration variables.
!> @author Jun Wang @date 01/2017

!> @brief 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 the forecast grid component
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 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.
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
52 changes: 36 additions & 16 deletions module_fv3_config.F90
Original file line number Diff line number Diff line change
@@ -1,28 +1,48 @@
!> @file
!> @brief fv3 configure variables from model_configure.
!> @author Jun Wang @date 01/2017

!> @brief 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
!


!> Atmosphere time step in seconds
integer :: dt_atmos

!> The first integration step
integer :: first_kdt
integer :: fcst_mpi_comm, fcst_ntasks
!

!> 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
logical :: quilting, quilting_restart
!

!> 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

0 comments on commit 9a8f8b4

Please sign in to comment.