diff --git a/ccpp/build_ccpp.sh b/ccpp/build_ccpp.sh index f6bec6ff9..357d885c4 100755 --- a/ccpp/build_ccpp.sh +++ b/ccpp/build_ccpp.sh @@ -5,7 +5,7 @@ set -eu # List of valid/tested machines VALID_MACHINES=( wcoss_cray wcoss_dell_p3 gaea.intel jet.intel \ - hera.intel \ + hera.intel orion.intel \ cheyenne.intel cheyenne.intel-impi cheyenne.gnu cheyenne.pgi endeavor.intel \ stampede.intel supermuc_phase2.intel macosx.gnu \ linux.intel linux.gnu linux.pgi ) diff --git a/ccpp/set_compilers.sh b/ccpp/set_compilers.sh index 0f591d6c0..26f8ffaa5 100755 --- a/ccpp/set_compilers.sh +++ b/ccpp/set_compilers.sh @@ -39,6 +39,13 @@ case "$MACHINE_ID" in export F77=mpiifort export F90=mpiifort ;; + orion.intel) + export CC=mpiicc + export CXX=mpiicpc + export FC=mpiifort + export F77=mpiifort + export F90=mpiifort + ;; cheyenne.intel) export CC=mpicc export CXX=mpicxx diff --git a/gfsphysics/GFS_layer/GFS_driver.F90 b/gfsphysics/GFS_layer/GFS_driver.F90 index 28695eb5e..c27e7b7f3 100644 --- a/gfsphysics/GFS_layer/GFS_driver.F90 +++ b/gfsphysics/GFS_layer/GFS_driver.F90 @@ -696,16 +696,6 @@ subroutine GFS_stochastic_driver (Model, Statein, Stateout, Sfcprop, Coupling, & implicit none !--- interface variables -! DH* gfortran correctly throws an error if the intent() declarations -! for arguments differ between the actual routine (here) and the dummy -! interface routine (IPD_func0d_proc in IPD_typedefs.F90): -! -! Error: Interface mismatch in procedure pointer assignment at (1): INTENT mismatch in argument 'control' -! -! Since IPD_func0d_proc declares all arguments as intent(inout), we -! need to do the same here - however, this way we are loosing the -! valuable information on the actual intent to this routine. *DH -#ifdef __GFORTRAN__ type(GFS_control_type), intent(inout) :: Model type(GFS_statein_type), intent(inout) :: Statein type(GFS_stateout_type), intent(inout) :: Stateout @@ -716,18 +706,7 @@ subroutine GFS_stochastic_driver (Model, Statein, Stateout, Sfcprop, Coupling, & type(GFS_cldprop_type), intent(inout) :: Cldprop type(GFS_radtend_type), intent(inout) :: Radtend type(GFS_diag_type), intent(inout) :: Diag -#else - type(GFS_control_type), intent(in ) :: Model - type(GFS_statein_type), intent(in ) :: Statein - type(GFS_stateout_type), intent(in ) :: Stateout - type(GFS_sfcprop_type), intent(in ) :: Sfcprop - type(GFS_coupling_type), intent(inout) :: Coupling - type(GFS_grid_type), intent(in ) :: Grid - type(GFS_tbd_type), intent(in ) :: Tbd - type(GFS_cldprop_type), intent(in ) :: Cldprop - type(GFS_radtend_type), intent(in ) :: Radtend - type(GFS_diag_type), intent(inout) :: Diag -#endif + !--- local variables integer :: k, i real(kind=kind_phys) :: upert, vpert, tpert, qpert, qnew,sppt_vwt diff --git a/gfsphysics/GFS_layer/GFS_physics_driver.F90 b/gfsphysics/GFS_layer/GFS_physics_driver.F90 index 06c710f64..2bacf0edf 100644 --- a/gfsphysics/GFS_layer/GFS_physics_driver.F90 +++ b/gfsphysics/GFS_layer/GFS_physics_driver.F90 @@ -441,16 +441,6 @@ subroutine GFS_physics_driver & implicit none ! ! --- interface variables -! DH* gfortran correctly throws an error if the intent() declarations -! for arguments differ between the actual routine (here) and the dummy -! interface routine (IPD_func0d_proc in IPD_typedefs.F90): -! -! Error: Interface mismatch in procedure pointer assignment at (1): INTENT mismatch in argument 'control' -! -! Since IPD_func0d_proc declares all arguments as intent(inout), we -! need to do the same here - however, this way we are loosing the -! valuable information on the actual intent to this routine. *DH -#ifdef __GFORTRAN__ type(GFS_control_type), intent(inout) :: Model type(GFS_statein_type), intent(inout) :: Statein type(GFS_stateout_type), intent(inout) :: Stateout @@ -461,18 +451,6 @@ subroutine GFS_physics_driver & type(GFS_cldprop_type), intent(inout) :: Cldprop type(GFS_radtend_type), intent(inout) :: Radtend type(GFS_diag_type), intent(inout) :: Diag -#else - type(GFS_control_type), intent(in) :: Model - type(GFS_statein_type), intent(inout) :: Statein - type(GFS_stateout_type), intent(inout) :: Stateout - type(GFS_sfcprop_type), intent(inout) :: Sfcprop - type(GFS_coupling_type), intent(inout) :: Coupling - type(GFS_grid_type), intent(in) :: Grid - type(GFS_tbd_type), intent(inout) :: Tbd - type(GFS_cldprop_type), intent(inout) :: Cldprop - type(GFS_radtend_type), intent(inout) :: Radtend - type(GFS_diag_type), intent(inout) :: Diag -#endif ! !## CCPP ## Note: Variables defined locally in this file for temporary calculations ! or transfer of data between schemes are defined in gfsphysics/GFS_layer/GFS_typedefs.F90 diff --git a/gfsphysics/GFS_layer/GFS_radiation_driver.F90 b/gfsphysics/GFS_layer/GFS_radiation_driver.F90 index 8df014231..626346e7c 100644 --- a/gfsphysics/GFS_layer/GFS_radiation_driver.F90 +++ b/gfsphysics/GFS_layer/GFS_radiation_driver.F90 @@ -1024,16 +1024,6 @@ subroutine GFS_radiation_driver & implicit none -! DH* gfortran correctly throws an error if the intent() declarations -! for arguments differ between the actual routine (here) and the dummy -! interface routine (IPD_func0d_proc in IPD_typedefs.F90): -! -! Error: Interface mismatch in procedure pointer assignment at (1): INTENT mismatch in argument 'control' -! -! Since IPD_func0d_proc declares all arguments as intent(inout), we -! need to do the same here - however, this way we are loosing the -! valuable information on the actual intent to this routine. *DH -#ifdef __GFORTRAN__ type(GFS_control_type), intent(inout) :: Model type(GFS_statein_type), intent(inout) :: Statein type(GFS_stateout_type), intent(inout) :: Stateout @@ -1044,18 +1034,6 @@ subroutine GFS_radiation_driver & type(GFS_cldprop_type), intent(inout) :: Cldprop type(GFS_radtend_type), intent(inout) :: Radtend type(GFS_diag_type), intent(inout) :: Diag -#else - type(GFS_control_type), intent(in) :: Model - type(GFS_statein_type), intent(in) :: Statein - type(GFS_stateout_type), intent(inout) :: Stateout - type(GFS_sfcprop_type), intent(in) :: Sfcprop - type(GFS_coupling_type), intent(inout) :: Coupling - type(GFS_grid_type), intent(in) :: Grid - type(GFS_tbd_type), intent(in) :: Tbd - type(GFS_cldprop_type), intent(in) :: Cldprop - type(GFS_radtend_type), intent(inout) :: Radtend - type(GFS_diag_type), intent(inout) :: Diag -#endif ! ================= subprogram documentation block ================ ! ! !