Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 6 commits into from
Jan 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
edwardhartnett marked this conversation as resolved.
Show resolved Hide resolved
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