From 19cf6488c39eb2f06193a3aa343f55915e624552 Mon Sep 17 00:00:00 2001 From: Bill Ladwig Date: Wed, 27 Feb 2019 15:19:45 -0700 Subject: [PATCH] Fixes cape crashes when more than 150 levels used. Fixes #86. Modified build scripts to unset conda environment flags for compiling and linking. --- build_scripts/gnu_no_omp.sh | 7 +++++-- build_scripts/gnu_omp.sh | 9 ++++++--- build_scripts/win_msvc_mingw_no_omp.bat | 2 -- build_scripts/win_msvc_mingw_omp.bat | 2 -- fortran/rip_cape.f90 | 8 ++++++-- test/utests.py | 4 ++-- 6 files changed, 19 insertions(+), 13 deletions(-) diff --git a/build_scripts/gnu_no_omp.sh b/build_scripts/gnu_no_omp.sh index 917c2da..e964c09 100755 --- a/build_scripts/gnu_no_omp.sh +++ b/build_scripts/gnu_no_omp.sh @@ -1,8 +1,11 @@ #!/bin/bash +unset LDFLAGS +unset FFLAGS +unset CFLAGS + cd ../fortran -gfortran -E ompgen.F90 -cpp -o omp.f90 -#f2py *.f90 -m _wrffortran -h wrffortran.pyf --overwrite-signature +$FC -E ompgen.F90 -cpp -o omp.f90 cd .. python setup.py clean --all diff --git a/build_scripts/gnu_omp.sh b/build_scripts/gnu_omp.sh index 3f97567..ae9c2f4 100755 --- a/build_scripts/gnu_omp.sh +++ b/build_scripts/gnu_omp.sh @@ -1,12 +1,15 @@ #!/bin/bash +unset LDFLAGS +unset FFLAGS +unset CFLAGS + cd ../fortran/build_help -gfortran -o sizes -fopenmp omp_sizes.f90 +$FC -o sizes -fopenmp omp_sizes.f90 python sub_sizes.py cd .. -gfortran -E ompgen.F90 -fopenmp -cpp -o omp.f90 -#f2py *.f90 -m _wrffortran -h wrffortran.pyf --overwrite-signature +$FC -E ompgen.F90 -fopenmp -cpp -o omp.f90 cd .. python setup.py clean --all diff --git a/build_scripts/win_msvc_mingw_no_omp.bat b/build_scripts/win_msvc_mingw_no_omp.bat index b789008..64aa550 100644 --- a/build_scripts/win_msvc_mingw_no_omp.bat +++ b/build_scripts/win_msvc_mingw_no_omp.bat @@ -1,7 +1,5 @@ cd ../fortran CALL gfortran -E ompgen.F90 -cpp -o omp.f90 -REM Wildcards not working on Windows for some reason -REM CALL f2py -m _wrffortran -h wrffortran.pyf --overwrite-signature wrf_constants.f90 wrf_testfunc.f90 wrf_user.f90 rip_cape.f90 wrf_cloud_fracf.f90 wrf_fctt.f90 wrf_user_dbz.f90 wrf_relhl.f90 calc_uh.f90 wrf_user_latlon_routines.f90 wrf_pvo.f90 eqthecalc.f90 wrf_rip_phys_routines.f90 wrf_pw.f90 wrf_vinterp.f90 wrf_wind.f90 omp.f90 cd .. CALL python setup.py clean --all diff --git a/build_scripts/win_msvc_mingw_omp.bat b/build_scripts/win_msvc_mingw_omp.bat index 2582a22..f027dc4 100644 --- a/build_scripts/win_msvc_mingw_omp.bat +++ b/build_scripts/win_msvc_mingw_omp.bat @@ -4,8 +4,6 @@ CALL python sub_sizes.py cd .. CALL gfortran -E ompgen.F90 -cpp -fopenmp -o omp.f90 -REM Wildcards not working on Windows for some reason -REM CALL f2py -m _wrffortran -h wrffortran.pyf --overwrite-signature wrf_constants.f90 wrf_testfunc.f90 wrf_user.f90 rip_cape.f90 wrf_cloud_fracf.f90 wrf_fctt.f90 wrf_user_dbz.f90 wrf_relhl.f90 calc_uh.f90 wrf_user_latlon_routines.f90 wrf_pvo.f90 eqthecalc.f90 wrf_rip_phys_routines.f90 wrf_pw.f90 wrf_vinterp.f90 wrf_wind.f90 omp.f90 cd .. CALL python setup.py clean --all diff --git a/fortran/rip_cape.f90 b/fortran/rip_cape.f90 index 1fc3b23..b946af8 100644 --- a/fortran/rip_cape.f90 +++ b/fortran/rip_cape.f90 @@ -316,7 +316,9 @@ SUBROUTINE DCAPECALC3D(prs,tmk,qvp,ght,ter,sfp,cape,cin,& REAL(KIND=8) :: facden, qvplift, tmklift, tvenv, tvlift, ghtlift REAL(KIND=8) :: eslift, tmkenv, qvpenv, tonpsadiabat REAL(KIND=8) :: benamin, dz - REAL(KIND=8), DIMENSION(150) :: buoy, zrel, benaccum + ! Set a safety factor of 2*mkzh + 1 instead of previously chosen + ! 150 levels + REAL(KIND=8), DIMENSION(2*mkzh + 1) :: buoy, zrel, benaccum REAL(KIND=8), DIMENSION(150) :: psadithte, psadiprs REAL(KIND=8), DIMENSION(150,150) :: psaditmk LOGICAL :: elfound @@ -646,7 +648,9 @@ SUBROUTINE DCAPECALC2D(prs,tmk,qvp,ght,ter,sfp,cape,cin,& REAL(KIND=8) :: facden, qvplift, tmklift, tvenv, tvlift, ghtlift REAL(KIND=8) :: eslift, tmkenv, qvpenv, tonpsadiabat REAL(KIND=8) :: benamin, dz, pup, pdn - REAL(KIND=8), DIMENSION(150) :: buoy, zrel, benaccum + ! Set a safety factor of 2*mkzh + 1 instead of previously chosen + ! 150 levels + REAL(KIND=8), DIMENSION(2*mkzh + 1) :: buoy, zrel, benaccum REAL(KIND=8), DIMENSION(150) :: psadithte, psadiprs REAL(KIND=8), DIMENSION(150,150) :: psaditmk LOGICAL :: elfound diff --git a/test/utests.py b/test/utests.py index eb95167..8946740 100644 --- a/test/utests.py +++ b/test/utests.py @@ -13,8 +13,8 @@ from wrf import (getvar, interplevel, interpline, vertcross, vinterp, extract_global_attrs, viewitems, CoordPair, ll_points) from wrf.util import is_multi_file -NCL_EXE = "/Users/ladwig/miniconda2/envs/ncl_build/bin/ncl" -NCARG_ROOT = "/Users/ladwig/miniconda2/envs/ncl_build" +NCL_EXE = "/Users/ladwig/miniconda3/envs/ncl_build/bin/ncl" +NCARG_ROOT = "/Users/ladwig/miniconda3/envs/ncl_build" DIRS = ["/Users/ladwig/Documents/wrf_files/wrf_vortex_multi/moving_nest", "/Users/ladwig/Documents/wrf_files/wrf_vortex_multi/static_nest"] PATTERN = "wrfout_d02_*"