Browse Source

Fixes cape crashes when more than 150 levels used.

Fixes #86.

Modified build scripts to unset conda environment flags for compiling and linking.
lon0
Bill Ladwig 6 years ago
parent
commit
19cf6488c3
  1. 7
      build_scripts/gnu_no_omp.sh
  2. 9
      build_scripts/gnu_omp.sh
  3. 2
      build_scripts/win_msvc_mingw_no_omp.bat
  4. 2
      build_scripts/win_msvc_mingw_omp.bat
  5. 8
      fortran/rip_cape.f90
  6. 4
      test/utests.py

7
build_scripts/gnu_no_omp.sh

@ -1,8 +1,11 @@
#!/bin/bash #!/bin/bash
unset LDFLAGS
unset FFLAGS
unset CFLAGS
cd ../fortran cd ../fortran
gfortran -E ompgen.F90 -cpp -o omp.f90 $FC -E ompgen.F90 -cpp -o omp.f90
#f2py *.f90 -m _wrffortran -h wrffortran.pyf --overwrite-signature
cd .. cd ..
python setup.py clean --all python setup.py clean --all

9
build_scripts/gnu_omp.sh

@ -1,12 +1,15 @@
#!/bin/bash #!/bin/bash
unset LDFLAGS
unset FFLAGS
unset CFLAGS
cd ../fortran/build_help cd ../fortran/build_help
gfortran -o sizes -fopenmp omp_sizes.f90 $FC -o sizes -fopenmp omp_sizes.f90
python sub_sizes.py python sub_sizes.py
cd .. cd ..
gfortran -E ompgen.F90 -fopenmp -cpp -o omp.f90 $FC -E ompgen.F90 -fopenmp -cpp -o omp.f90
#f2py *.f90 -m _wrffortran -h wrffortran.pyf --overwrite-signature
cd .. cd ..
python setup.py clean --all python setup.py clean --all

2
build_scripts/win_msvc_mingw_no_omp.bat

@ -1,7 +1,5 @@
cd ../fortran cd ../fortran
CALL gfortran -E ompgen.F90 -cpp -o omp.f90 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 .. cd ..
CALL python setup.py clean --all CALL python setup.py clean --all

2
build_scripts/win_msvc_mingw_omp.bat

@ -4,8 +4,6 @@ CALL python sub_sizes.py
cd .. cd ..
CALL gfortran -E ompgen.F90 -cpp -fopenmp -o omp.f90 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 .. cd ..
CALL python setup.py clean --all CALL python setup.py clean --all

8
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) :: facden, qvplift, tmklift, tvenv, tvlift, ghtlift
REAL(KIND=8) :: eslift, tmkenv, qvpenv, tonpsadiabat REAL(KIND=8) :: eslift, tmkenv, qvpenv, tonpsadiabat
REAL(KIND=8) :: benamin, dz 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) :: psadithte, psadiprs
REAL(KIND=8), DIMENSION(150,150) :: psaditmk REAL(KIND=8), DIMENSION(150,150) :: psaditmk
LOGICAL :: elfound 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) :: facden, qvplift, tmklift, tvenv, tvlift, ghtlift
REAL(KIND=8) :: eslift, tmkenv, qvpenv, tonpsadiabat REAL(KIND=8) :: eslift, tmkenv, qvpenv, tonpsadiabat
REAL(KIND=8) :: benamin, dz, pup, pdn 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) :: psadithte, psadiprs
REAL(KIND=8), DIMENSION(150,150) :: psaditmk REAL(KIND=8), DIMENSION(150,150) :: psaditmk
LOGICAL :: elfound LOGICAL :: elfound

4
test/utests.py

@ -13,8 +13,8 @@ from wrf import (getvar, interplevel, interpline, vertcross, vinterp,
extract_global_attrs, viewitems, CoordPair, ll_points) extract_global_attrs, viewitems, CoordPair, ll_points)
from wrf.util import is_multi_file from wrf.util import is_multi_file
NCL_EXE = "/Users/ladwig/miniconda2/envs/ncl_build/bin/ncl" NCL_EXE = "/Users/ladwig/miniconda3/envs/ncl_build/bin/ncl"
NCARG_ROOT = "/Users/ladwig/miniconda2/envs/ncl_build" NCARG_ROOT = "/Users/ladwig/miniconda3/envs/ncl_build"
DIRS = ["/Users/ladwig/Documents/wrf_files/wrf_vortex_multi/moving_nest", DIRS = ["/Users/ladwig/Documents/wrf_files/wrf_vortex_multi/moving_nest",
"/Users/ladwig/Documents/wrf_files/wrf_vortex_multi/static_nest"] "/Users/ladwig/Documents/wrf_files/wrf_vortex_multi/static_nest"]
PATTERN = "wrfout_d02_*" PATTERN = "wrfout_d02_*"

Loading…
Cancel
Save