Skip to content

Commit

Permalink
add parallel-netcdf capability to speed up writing out FV3LAM final a…
Browse files Browse the repository at this point in the history
…nalysis (#4)
  • Loading branch information
guoqing-noaa committed Sep 20, 2021
1 parent fb2c427 commit e3f8883
Show file tree
Hide file tree
Showing 3 changed files with 339 additions and 86 deletions.
12 changes: 11 additions & 1 deletion src/gsi/gridmod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ module gridmod
! 2019-09-04 martin - add write_fv3_incr to write netCDF increment rather than analysis in NEMSIO format
! 2019-09-23 martin - add use_gfs_ncio to read global first guess from netCDF file
! 2020-12-18 Hu - add grid_type_fv3_regional
! 2021-09-08 Guoqing - add npePgrp_rfv3,rfv3_pe_T,rfv3_pe_v,rfv3_pe_q,rfv3_pe_ps,rfv3_pe_dz
!
!
!
Expand Down Expand Up @@ -162,6 +163,7 @@ module gridmod
public :: use_sp_eqspace,jcap_cut
public :: wrf_mass_hybridcord
public :: write_fv3_incr
public :: npePgrp_rfv3,rfv3_pe_T,rfv3_pe_v,rfv3_pe_q,rfv3_pe_ps,rfv3_pe_dz

interface strip
module procedure strip_single_rank33_
Expand Down Expand Up @@ -264,7 +266,9 @@ module gridmod
integer(i_kind) jcap ! spectral triangular truncation of ncep global analysis
integer(i_kind) jcap_b ! spectral triangular truncation of ncep global background
integer(i_kind) nthreads ! number of threads used (currently only used in calctends routines)

integer(i_kind) npePgrp_rfv3,rfv3_pe_T,rfv3_pe_v,rfv3_pe_q,rfv3_pe_ps,rfv3_pe_dz
! npePgrp_rfv3 - The number of PEs in each write group for regional fv3
! rfv3_pe_T,rfv3_pe_v,rfv3_pe_q,rfv3_pe_ps,rfv3_pe_dz - specify starting pe for T,U/V,Q,PS,DZ write groups

logical periodic ! logical flag for periodic e/w domains
logical,allocatable,dimension(:):: periodic_s ! logical flag for periodic e/w subdomain (all tasks)
Expand Down Expand Up @@ -472,6 +476,12 @@ subroutine init_grid
lon1 = nlon
lat2 = lat1+2
lon2 = lon1+2
npePgrp_rfv3=2
rfv3_pe_T=0
rfv3_pe_v=2
rfv3_pe_q=4
rfv3_pe_ps=6
rfv3_pe_dz=8

diagnostic_reg = .false.
if(verbose)diagnostic_reg = .true.
Expand Down
Loading

0 comments on commit e3f8883

Please sign in to comment.