Skip to content

Commit

Permalink
Merging branch 'release-v4.0.3' onto master
Browse files Browse the repository at this point in the history
Finalizing WRFV4.0.3 by merging bug fixes from release-v4.0.3 branch onto master.
See the annotation of the v4.0.3 tag for full release notes (git show v4.0.3).
  • Loading branch information
kkeene44 committed Dec 18, 2018
2 parents 9dcf0b8 + b9575a3 commit 9527846
Show file tree
Hide file tree
Showing 13 changed files with 135 additions and 44 deletions.
2 changes: 1 addition & 1 deletion README
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
WRF Model Version 4.0.2 (November 9, 2018)
WRF Model Version 4.0.3 (December 18, 2018)

http://www2.mmm.ucar.edu/wrf/users/

Expand Down
8 changes: 4 additions & 4 deletions Registry/Registry.EM_COMMON
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ state real prho_gc igj dyn_em 1 Z i1 "PRHO" "f
state real xlat_gc ij dyn_em 1 - i1 "XLAT_M" "latitude, positive north" "degrees"
state real xlong_gc ij dyn_em 1 - i1 "XLONG_M" "longitude, positive east" "degrees"
state real ht_gc ij dyn_em 1 - i1 "HGT_M" "topography elevation" "m"
state real var_sso ij dyn_em 1 - i01hr "var_sso" "variance of subgrid-scale orography" "m2"
state real var_sso ij dyn_em 1 - i012hrd "var_sso" "variance of subgrid-scale orography" "m2"
state real lap_hgt ij dyn_em 1 - r "lap_hgt" "Laplacian of orography" "m"
state real tsk_gc ij dyn_em 1 - i1 "SKINTEMP" "skin temperature" "K"
state real tavgsfc ij dyn_em 1 - i1 "TAVGSFC" "daily mean of surface air temperature" "K"
Expand Down Expand Up @@ -172,7 +172,7 @@ state real umaxw ij dyn_em 1 X i1 "UMAXW"
state real utrop ij dyn_em 1 X i1 "UTROP" "U-component of the tropopause wind" "m s-1"
state real vmaxw ij dyn_em 1 Y i1 "VMAXW" "V-component of the max wind speed" "m s-1"
state real vtrop ij dyn_em 1 Y i1 "VTROP" "V-component of the tropopause wind" "m s-1"
state real erod ij. misc 1 - i012r "EROD" "fraction of erodible surface in each grid cell (0-1)" "none"
state real erod ij. misc 1 - i012rd "EROD" "fraction of erodible surface in each grid cell (0-1)" "none"

#-----------------------------------------------------------------------------------------------------------------------------------------------------------------
#
Expand Down Expand Up @@ -657,7 +657,7 @@ state real slope ij misc 1 - rdu "SLOP
state real slp_azi ij misc 1 - rdu "SLP_AZI" "ELEVATION SLOPE AZIMUTH" "rad"
state real shdmax ij misc 1 - i012rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "SHDMAX" "ANNUAL MAX VEG FRACTION" ""
state real shdmin ij misc 1 - i012rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "SHDMIN" "ANNUAL MIN VEG FRACTION" ""
state real snoalb ij misc 1 - i012rh "SNOALB" "ANNUAL MAX SNOW ALBEDO IN FRACTION" ""
state real snoalb ij misc 1 - i012rhd "SNOALB" "ANNUAL MAX SNOW ALBEDO IN FRACTION" ""
state real toposoil ij misc 1 - i12 "SOILHGT" "ELEVATION OF LSM DATA" "m"
state real landusef iuj misc 1 Z i012rdu "LANDUSEF" "LANDUSE FRACTION BY CATEGORY" ""
state real soilctop isj misc 1 Z i012rdu "SOILCTOP" "SOIL CAT FRACTION (TOP)" ""
Expand Down Expand Up @@ -830,7 +830,7 @@ state real LH_URB2D ij misc 1 - rd=(interp_f
state real G_URB2D ij misc 1 - rd=(interp_fcnm)u=(copy_fcnm) "G_URB" "GROUND HEAT FLUX INTO URBAN" "W m{-2}"
state real RN_URB2D ij misc 1 - rd=(interp_fcnm)u=(copy_fcnm) "RN_URB" "NET RADIATION ON URBAN SFC" "W m{-2}"
state real TS_URB2D ij misc 1 - rd=(interp_fcnm)u=(copy_fcnm) "TS_URB" "SKIN TEMPERATURE" "K"
state real FRC_URB2D ij misc 1 - i10rd=(interp_fcnm)u=(copy_fcnm) "FRC_URB2D" "URBAN FRACTION" "dimensionless"
state real FRC_URB2D ij misc 1 - i012rd=(interp_fcnm)u=(copy_fcnm) "FRC_URB2D" "URBAN FRACTION" "dimensionless"
state integer UTYPE_URB2D ij misc 1 - rd=(interp_fcnm)u=(copy_fcnm) "UTYPE_URB" "URBAN TYPE" "dimensionless"
state real TRB_URB4D i{ulay}j misc 1 Z r "TRB_URB4D" "ROOF LAYER TEMPERATURE" "K"
state real TW1_URB4D i{ulay}j misc 1 Z r "TW1_URB4D" "WALL LAYER TEMPERATURE" "K"
Expand Down
54 changes: 27 additions & 27 deletions arch/configure.defaults
Original file line number Diff line number Diff line change
Expand Up @@ -296,8 +296,8 @@ CC_TOOLS = $(SCC)
DESCRIPTION = INTEL ($SFC/$SCC)
DMPARALLEL = # 1
OMPCPP = # -D_OPENMP
OMP = # -openmp -fpp -auto
OMPCC = # -openmp -fpp -auto
OMP = # -qopenmp -fpp -auto
OMPCC = # -qopenmp -fpp -auto
SFC = ifort
SCC = icc
CCOMP = icc
Expand Down Expand Up @@ -341,8 +341,8 @@ CC_TOOLS = $(SCC)
DESCRIPTION = INTEL ($SFC/$SCC): Xeon Phi (MIC architecture)
DMPARALLEL = 1
OMPCPP = -D_OPENMP
OMP = -openmp -fpp -auto
OMPCC = -openmp -fpp -auto
OMP = -qopenmp -fpp -auto
OMPCC = -qopenmp -fpp -auto
SFC = ifort -mmic
SCC = icc -mmic
CCOMP = icc -mmic
Expand All @@ -369,7 +369,7 @@ FORMAT_FREE = -FR
FCSUFFIX =
BYTESWAPIO = -convert big_endian
RECORDLENGTH = -assume byterecl
FCBASEOPTS_NO_G = -w -openmp -auto -ftz -fno-alias -fp-model fast=1 -no-prec-div -no-prec-sqrt $(FORMAT_FREE) $(BYTESWAPIO) -auto -align array64byte #-vec-report6
FCBASEOPTS_NO_G = -w -qopenmp -auto -ftz -fno-alias -fp-model fast=1 -no-prec-div -no-prec-sqrt $(FORMAT_FREE) $(BYTESWAPIO) -auto -align array64byte #-vec-report6
FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
MODULE_SRCH_FLAG =
TRADFLAG = CONFIGURE_TRADFLAG
Expand All @@ -388,8 +388,8 @@ CC_TOOLS = gcc
DESCRIPTION = INTEL ($SFC/$SCC): Xeon (SNB with AVX mods)
DMPARALLEL = # 1
OMPCPP = # -D_OPENMP
OMP = # -openmp -fpp -auto
OMPCC = # -openmp -fpp -auto
OMP = # -qopenmp -fpp -auto
OMPCC = # -qopenmp -fpp -auto
SFC = ifort
SCC = icc
CCOMP = icc
Expand Down Expand Up @@ -461,8 +461,8 @@ CC_TOOLS = gcc
DESCRIPTION = INTEL ($SFC/$SCC): SGI MPT
DMPARALLEL = # 1
OMPCPP = # -D_OPENMP
OMP = # -openmp -fpp -auto
OMPCC = # -openmp -fpp -auto
OMP = # -qopenmp -fpp -auto
OMPCC = # -qopenmp -fpp -auto
SFC = ifort
SCC = icc
CCOMP = icc
Expand Down Expand Up @@ -510,8 +510,8 @@ CC_TOOLS = $(SCC)
DESCRIPTION = INTEL ($SFC/$SCC): IBM POE
DMPARALLEL = # 1
OMPCPP = # -D_OPENMP
OMP = # -openmp -fpp -auto
OMPCC = # -openmp -fpp -auto
OMP = # -qopenmp -fpp -auto
OMPCC = # -qopenmp -fpp -auto
SFC = ifort
SCC = icc
CCOMP = icc
Expand Down Expand Up @@ -589,8 +589,8 @@ CC_TOOLS = $(SCC)
DESCRIPTION = INTEL ($SFC/$SCC): ia64
DMPARALLEL = # 1
OMPCPP = # -D_OPENMP
OMP = # -openmp -fpp -auto
OMPCC = # -openmp -fpp -auto
OMP = # -qopenmp -fpp -auto
OMPCC = # -qopenmp -fpp -auto
SFC = ifort
SCC = icc
CCOMP = icc
Expand Down Expand Up @@ -672,8 +672,8 @@ CC_TOOLS = $(SCC)
DESCRIPTION = INTEL ($SFC/$SCC): SGI Altix
DMPARALLEL = # 1
OMPCPP = # -D_OPENMP
OMP = # -openmp -fpp -auto
OMPCC = # -openmp -fpp -auto
OMP = # -qopenmp -fpp -auto
OMPCC = # -qopenmp -fpp -auto
SFC = ifort
SCC = icc
CCOMP = icc
Expand Down Expand Up @@ -847,8 +847,8 @@ CC_TOOLS = cc
DESCRIPTION = INTEL ($SFC/$SCC)
DMPARALLEL = # 1
OMPCPP = # -D_OPENMP
OMP = # -openmp -fpp -auto
OMPCC = # -openmp -fpp -auto
OMP = # -qopenmp -fpp -auto
OMPCC = # -qopenmp -fpp -auto
SFC = ifort
SCC = icc
CCOMP = icc
Expand Down Expand Up @@ -893,8 +893,8 @@ CC_TOOLS = cc
DESCRIPTION = INTEL ($SFC/$SCC)
DMPARALLEL = # 1
OMPCPP = # -D_OPENMP
OMP = # -openmp -fpp -auto
OMPCC = # -openmp
OMP = # -qopenmp -fpp -auto
OMPCC = # -qopenmp
SFC = ifort
SCC = clang
CCOMP = clang
Expand Down Expand Up @@ -1325,8 +1325,8 @@ CC_TOOLS = gcc
DESCRIPTION = INTEL ($SFC/$SCC): Cray XC
DMPARALLEL = # 1
OMPCPP = # -D_OPENMP
OMP = # -openmp -fpp -auto
OMPCC = # -openmp -fpp -auto
OMP = # -qopenmp -fpp -auto
OMPCC = # -qopenmp -fpp -auto
SFC = ftn
SCC = icc
CCOMP = icc
Expand Down Expand Up @@ -1702,8 +1702,8 @@ CC_TOOLS = cc
DESCRIPTION = INTEL ($SFC/$SCC): Open MPI
DMPARALLEL = # 1
OMPCPP = # -D_OPENMP
OMP = # -openmp -fpp -auto
OMPCC = # -openmp -fpp -auto
OMP = # -qopenmp -fpp -auto
OMPCC = # -qopenmp -fpp -auto
SFC = ifort
SCC = icc
CCOMP = icc
Expand Down Expand Up @@ -1834,8 +1834,8 @@ CC_TOOLS = $(SCC)
DESCRIPTION = INTEL ($SFC/$SCC): HSW/BDW
DMPARALLEL = # 1
OMPCPP = # -D_OPENMP
OMP = # -openmp -fpp -auto
OMPCC = # -openmp -fpp -auto
OMP = # -qopenmp -fpp -auto
OMPCC = # -qopenmp -fpp -auto
SFC = ifort
SCC = icc
CCOMP = icc
Expand Down Expand Up @@ -1878,8 +1878,8 @@ CC_TOOLS = $(SCC)
DESCRIPTION = INTEL ($SFC/$SCC): KNL MIC
DMPARALLEL = # 1
OMPCPP = # -D_OPENMP
OMP = # -openmp -fpp -auto
OMPCC = # -openmp -fpp -auto
OMP = # -qopenmp -fpp -auto
OMPCC = # -qopenmp -fpp -auto
SFC = ifort
SCC = icc
CCOMP = icc
Expand Down
77 changes: 75 additions & 2 deletions dyn_em/module_big_step_utilities_em.F
Original file line number Diff line number Diff line change
Expand Up @@ -6301,8 +6301,9 @@ SUBROUTINE sixth_order_diffusion( name, field, tendency, MUT, dt, &
!------------------------------------------------------------------------------
! Begin: Assign limits of spatial loops depending on variable to be diffused.
! The halo regions are already filled with values by the time this subroutine
! is called, which allows the stencil to extend beyond the domains' edges.
! The halo regions outside the physical domain are not defined, hence the loop
! indices should start 3 rows and columns in for specified boundary conditions.
! Also modified to work with idealized boundary conditions.
ktf = MIN( kte, kde-1 )
Expand All @@ -6312,6 +6313,24 @@ SUBROUTINE sixth_order_diffusion( name, field, tendency, MUT, dt, &
i_end = ite
j_start = jts
j_end = MIN(jde-1,jte)
IF ( config_flags%open_xs ) THEN
i_start = MAX(its,ids+3)
END IF
IF ( config_flags%open_ys ) THEN
j_start = MAX(jts,jds+3)
END IF
IF ( config_flags%open_xe ) THEN
i_end = MIN(ite,ide-3)
END IF
IF ( config_flags%open_ye ) THEN
j_end = MIN(jte,jde-4)
END IF
IF ( specified ) THEN
i_start = MAX(its,ids+3)
i_end = MIN(ite,ide-3)
j_start = MAX(jts,jds+3)
j_end = MIN(jte,jde-4)
END IF
k_start = kts
k_end = ktf
Expand All @@ -6321,6 +6340,24 @@ SUBROUTINE sixth_order_diffusion( name, field, tendency, MUT, dt, &
i_end = MIN(ide-1,ite)
j_start = jts
j_end = jte
IF ( config_flags%open_xs ) THEN
i_start = MAX(its,ids+3)
END IF
IF ( config_flags%open_ys ) THEN
j_start = MAX(jts,jds+3)
END IF
IF ( config_flags%open_xe ) THEN
i_end = MIN(ite,ide-4)
END IF
IF ( config_flags%open_ye ) THEN
j_end = MIN(jte,jde-3)
END IF
IF ( config_flags%open_xs .or. specified ) THEN
i_start = MAX(its,ids+3)
i_end = MIN(ite,ide-4)
j_start = MAX(jts,jds+3)
j_end = MIN(jte,jde-3)
END IF
k_start = kts
k_end = ktf
Expand All @@ -6330,6 +6367,24 @@ SUBROUTINE sixth_order_diffusion( name, field, tendency, MUT, dt, &
i_end = MIN(ide-1,ite)
j_start = jts
j_end = MIN(jde-1,jte)
IF ( config_flags%open_xs ) THEN
i_start = MAX(its,ids+3)
END IF
IF ( config_flags%open_ys ) THEN
j_start = MAX(jts,jds+3)
END IF
IF ( config_flags%open_xe ) THEN
i_end = MIN(ite,ide-4)
END IF
IF ( config_flags%open_ye ) THEN
j_end = MIN(jte,jde-4)
END IF
IF ( specified ) THEN
i_start = MAX(its,ids+3)
i_end = MIN(ide-4,ite)
j_start = MAX(jts,jds+3)
j_end = MIN(jde-4,jte)
END IF
k_start = kts+1
k_end = ktf
Expand All @@ -6339,6 +6394,24 @@ SUBROUTINE sixth_order_diffusion( name, field, tendency, MUT, dt, &
i_end = MIN(ide-1,ite)
j_start = jts
j_end = MIN(jde-1,jte)
IF ( config_flags%open_xs ) THEN
i_start = MAX(its,ids+3)
END IF
IF ( config_flags%open_ys ) THEN
j_start = MAX(jts,jds+3)
END IF
IF ( config_flags%open_xe ) THEN
i_end = MIN(ite,ide-4)
END IF
IF ( config_flags%open_ye ) THEN
j_end = MIN(jte,jde-4)
END IF
IF ( specified ) THEN
i_start = MAX(its,ids+3)
i_end = MIN(ide-4,ite)
j_start = MAX(jts,jds+3)
j_end = MIN(jde-4,jte)
END IF
k_start = kts
k_end = ktf
Expand Down
10 changes: 10 additions & 0 deletions dyn_em/module_diffusion_em.F
Original file line number Diff line number Diff line change
Expand Up @@ -3418,6 +3418,7 @@ SUBROUTINE vertical_diffusion_2 ( ru_tendf, rv_tendf, rw_tendf, rt_tendf, &
tracer_tendf, n_tracer, &
u_2, v_2, &
thp,u_base,v_base,t_base,qv_base,tke, &
theta, &
config_flags,defor13,defor23,defor33, &
nba_mij, n_nba_mij, &
div, &
Expand Down Expand Up @@ -3488,6 +3489,7 @@ SUBROUTINE vertical_diffusion_2 ( ru_tendf, rv_tendf, rw_tendf, rt_tendf, &
xkhv, &
xkmh, &
tke, &
theta, &
rdz, &
u_2, &
v_2, &
Expand Down Expand Up @@ -3701,6 +3703,10 @@ SUBROUTINE vertical_diffusion_2 ( ru_tendf, rv_tendf, rw_tendf, rt_tendf, &
hfx(i,j)=heat_flux*cpm*rho(i,kts,j) ! provided for output only
rt_tendf(i,kts,j)=rt_tendf(i,kts,j) &
-g*heat_flux*rho(i,kts,j)/dnw(kts)
if(config_flags%use_theta_m == 1)THEN
rt_tendf(i,kts,j)=rt_tendf(i,kts,j) &
-g*1.61*theta(i,kts,j)*qfx(i,j)/dnw(kts)
ENDIF
ENDDO
ENDDO
Expand All @@ -3712,6 +3718,10 @@ SUBROUTINE vertical_diffusion_2 ( ru_tendf, rv_tendf, rw_tendf, rt_tendf, &
heat_flux = hfx(i,j)/cpm
rt_tendf(i,kts,j)=rt_tendf(i,kts,j) &
-g*heat_flux/dnw(kts)
if(config_flags%use_theta_m == 1)THEN
rt_tendf(i,kts,j)=rt_tendf(i,kts,j) &
-g*1.61*theta(i,kts,j)*qfx(i,j)/dnw(kts)
ENDIF
ENDDO
ENDDO
Expand Down
2 changes: 1 addition & 1 deletion dyn_em/module_first_rk_step_part2.F
Original file line number Diff line number Diff line change
Expand Up @@ -911,7 +911,7 @@ SUBROUTINE first_rk_step_part2 ( grid , config_flags &
tracer_tend, num_tracer, &
grid%u_2, grid%v_2, &
grid%t_2,grid%u_base,grid%v_base,grid%t_base,grid%qv_base, &
grid%tke_2, config_flags, &
grid%tke_2, th_phy, config_flags, &
grid%defor13,grid%defor23,grid%defor33, &
nba_mij, num_nba_mij, & !JDM
grid%div, moist, chem, scalar,tracer, &
Expand Down
2 changes: 1 addition & 1 deletion dyn_em/module_initialize_real.F
Original file line number Diff line number Diff line change
Expand Up @@ -3003,7 +3003,7 @@ SUBROUTINE init_domain_rk ( grid &
DO i = its , MIN(ide-1,ite)
IF ( MMINLU == 'NLCD40' .OR. MMINLU == 'MODIFIED_IGBP_MODIS_NOAH') THEN
IF ( grid%FRC_URB2D(i,j) .GE. 0.5 .AND. &
(grid%ivgtyp(i,j).NE.13 .OR. grid%ivgtyp(i,j).NE.24 .OR. grid%ivgtyp(i,j).NE.25 .OR. grid%ivgtyp(i,j).NE.26)) grid%ivgtyp(i,j)=13
(grid%ivgtyp(i,j).NE.13 .AND. grid%ivgtyp(i,j).NE.24 .AND. grid%ivgtyp(i,j).NE.25 .AND. grid%ivgtyp(i,j).NE.26)) grid%ivgtyp(i,j)=13
ELSE IF ( MMINLU == "USGS" ) THEN
IF ( grid%FRC_URB2D(i,j) .GE. 0.5 .AND. &
grid%ivgtyp(i,j).NE.1 ) grid%ivgtyp(i,j)=1
Expand Down
8 changes: 6 additions & 2 deletions external/RSL_LITE/module_dm.F
Original file line number Diff line number Diff line change
Expand Up @@ -2213,8 +2213,8 @@ SUBROUTINE get_full_obs_vector( nsta, nerrf, niobf, &
INTEGER N_BUFFER(NIOBF)
REAL FULL_BUFFER(NIOBF)
INTEGER IFULL_BUFFER(NIOBF)
INTEGER IDISPLACEMENT(1024) ! HARD CODED MAX NUMBER OF PROCESSORS
INTEGER ICOUNT(1024) ! HARD CODED MAX NUMBER OF PROCESSORS
INTEGER, ALLOCATABLE , DIMENSION(:) :: IDISPLACEMENT
INTEGER, ALLOCATABLE , DIMENSION(:) :: ICOUNT
INTEGER :: MPI_COMM_COMP ! MPI group communicator
INTEGER :: NPROCS ! Number of processors
Expand All @@ -2225,6 +2225,8 @@ SUBROUTINE get_full_obs_vector( nsta, nerrf, niobf, &
! Get rank of monitor processor and broadcast to others.
CALL MPI_COMM_SIZE( MPI_COMM_COMP, NPROCS, IERR )
ALLOCATE (IDISPLACEMENT(NPROCS))
ALLOCATE (ICOUNT(NPROCS))
! DO THE U FIELD
NLOCAL_DOT = 0
Expand Down Expand Up @@ -2369,6 +2371,8 @@ SUBROUTINE get_full_obs_vector( nsta, nerrf, niobf, &
ERRF(10,IFULL_BUFFER(N)) = FULL_BUFFER(N)
END DO
DEALLOCATE (IDISPLACEMENT)
DEALLOCATE (ICOUNT)
#endif
END SUBROUTINE get_full_obs_vector
Expand Down
2 changes: 1 addition & 1 deletion inc/version_decl
Original file line number Diff line number Diff line change
@@ -1 +1 @@
CHARACTER (LEN=10) :: release_version = 'V4.0.2 '
CHARACTER (LEN=10) :: release_version = 'V4.0.3 '
Loading

0 comments on commit 9527846

Please sign in to comment.