Browse Source

Cleaned up the default implementation of omp.f90 and the pyf file.

lon0
Bill Ladwig 7 years ago
parent
commit
78f34b4e69
  1. 232
      fortran/omp.f90
  2. 11
      fortran/wrffortran.pyf

232
fortran/omp.f90

@ -1,9 +1,5 @@
# 1 "ompgen.F90"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "ompgen.F90"
MODULE omp_constants MODULE omp_constants
# 52 "ompgen.F90"
INTEGER, PARAMETER :: fomp_sched_kind = 4 INTEGER, PARAMETER :: fomp_sched_kind = 4
INTEGER, PARAMETER :: fomp_lock_kind = 4 INTEGER, PARAMETER :: fomp_lock_kind = 4
INTEGER, PARAMETER :: fomp_nest_lock_kind = 8 INTEGER, PARAMETER :: fomp_nest_lock_kind = 8
@ -11,209 +7,135 @@ MODULE omp_constants
INTEGER(KIND=fomp_sched_kind), PARAMETER :: fomp_sched_dynamic = 2 INTEGER(KIND=fomp_sched_kind), PARAMETER :: fomp_sched_dynamic = 2
INTEGER(KIND=fomp_sched_kind), PARAMETER :: fomp_sched_guided = 3 INTEGER(KIND=fomp_sched_kind), PARAMETER :: fomp_sched_guided = 3
INTEGER(KIND=fomp_sched_kind), PARAMETER :: fomp_sched_auto = 4 INTEGER(KIND=fomp_sched_kind), PARAMETER :: fomp_sched_auto = 4
END MODULE omp_constants END MODULE omp_constants
SUBROUTINE fomp_set_num_threads(num_threads) SUBROUTINE fomp_set_num_threads(num_threads)
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
INTEGER, INTENT(IN) :: num_threads INTEGER, INTENT(IN) :: num_threads
END SUBROUTINE fomp_set_num_threads END SUBROUTINE fomp_set_num_threads
FUNCTION fomp_get_num_threads() FUNCTION fomp_get_num_threads()
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
INTEGER :: fomp_get_num_threads INTEGER :: fomp_get_num_threads
fomp_get_num_threads = -1 fomp_get_num_threads = -1
END FUNCTION fomp_get_num_threads END FUNCTION fomp_get_num_threads
FUNCTION fomp_get_max_threads() FUNCTION fomp_get_max_threads()
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
INTEGER :: fomp_get_max_threads INTEGER :: fomp_get_max_threads
fomp_get_max_threads = -1 fomp_get_max_threads = -1
END FUNCTION fomp_get_max_threads END FUNCTION fomp_get_max_threads
FUNCTION fomp_get_thread_num() FUNCTION fomp_get_thread_num()
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
INTEGER :: fomp_get_thread_num INTEGER :: fomp_get_thread_num
fomp_get_thread_num = -1 fomp_get_thread_num = -1
END FUNCTION fomp_get_thread_num END FUNCTION fomp_get_thread_num
FUNCTION fomp_get_num_procs() FUNCTION fomp_get_num_procs()
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
INTEGER :: fomp_get_num_procs INTEGER :: fomp_get_num_procs
fomp_get_num_procs = -1 fomp_get_num_procs = -1
END FUNCTION fomp_get_num_procs END FUNCTION fomp_get_num_procs
FUNCTION fomp_in_parallel() FUNCTION fomp_in_parallel()
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
LOGICAL :: fomp_in_parallel LOGICAL :: fomp_in_parallel
fomp_in_parallel = .FALSE. fomp_in_parallel = .FALSE.
END FUNCTION fomp_in_parallel END FUNCTION fomp_in_parallel
SUBROUTINE fomp_set_dynamic(dynamic_threads) SUBROUTINE fomp_set_dynamic(dynamic_threads)
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
LOGICAL, INTENT(IN) :: dynamic_threads LOGICAL, INTENT(IN) :: dynamic_threads
END SUBROUTINE fomp_set_dynamic END SUBROUTINE fomp_set_dynamic
FUNCTION fomp_get_dynamic() FUNCTION fomp_get_dynamic()
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
LOGICAL :: fomp_get_dynamic LOGICAL :: fomp_get_dynamic
fomp_get_dynamic = .FALSE. fomp_get_dynamic = .FALSE.
END FUNCTION fomp_get_dynamic END FUNCTION fomp_get_dynamic
SUBROUTINE fomp_set_nested(nested) SUBROUTINE fomp_set_nested(nested)
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
LOGICAL, INTENT(IN) :: nested LOGICAL, INTENT(IN) :: nested
END SUBROUTINE fomp_set_nested END SUBROUTINE fomp_set_nested
FUNCTION fomp_get_nested() FUNCTION fomp_get_nested()
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
LOGICAL :: fomp_get_nested LOGICAL :: fomp_get_nested
fomp_get_nested = .FALSE. fomp_get_nested = .FALSE.
END FUNCTION fomp_get_nested END FUNCTION fomp_get_nested
SUBROUTINE fomp_set_schedule(kind, modifier) SUBROUTINE fomp_set_schedule(kind, modifier)
USE omp_constants, ONLY : fomp_sched_kind USE omp_constants, ONLY : fomp_sched_kind
IMPLICIT NONE IMPLICIT NONE
@ -223,17 +145,11 @@ SUBROUTINE fomp_set_schedule(kind, modifier)
INTEGER(KIND=fomp_sched_kind), INTENT(IN) :: kind INTEGER(KIND=fomp_sched_kind), INTENT(IN) :: kind
INTEGER, INTENT(IN) :: modifier INTEGER, INTENT(IN) :: modifier
END SUBROUTINE fomp_set_schedule END SUBROUTINE fomp_set_schedule
SUBROUTINE fomp_get_schedule(kind, modifier) SUBROUTINE fomp_get_schedule(kind, modifier)
USE omp_constants, ONLY : fomp_sched_kind USE omp_constants, ONLY : fomp_sched_kind
IMPLICIT NONE IMPLICIT NONE
@ -243,103 +159,64 @@ SUBROUTINE fomp_get_schedule(kind, modifier)
INTEGER(KIND=fomp_sched_kind), INTENT(OUT) :: kind INTEGER(KIND=fomp_sched_kind), INTENT(OUT) :: kind
INTEGER, INTENT(OUT) :: modifier INTEGER, INTENT(OUT) :: modifier
kind = -1 kind = -1
modifier = -1 modifier = -1
END SUBROUTINE fomp_get_schedule END SUBROUTINE fomp_get_schedule
FUNCTION fomp_get_thread_limit() FUNCTION fomp_get_thread_limit()
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
INTEGER :: fomp_get_thread_limit INTEGER :: fomp_get_thread_limit
fomp_get_thread_limit = -1 fomp_get_thread_limit = -1
END FUNCTION fomp_get_thread_limit END FUNCTION fomp_get_thread_limit
SUBROUTINE fomp_set_max_active_levels(max_levels) SUBROUTINE fomp_set_max_active_levels(max_levels)
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
INTEGER, INTENT(IN) :: max_levels INTEGER, INTENT(IN) :: max_levels
END SUBROUTINE fomp_set_max_active_levels END SUBROUTINE fomp_set_max_active_levels
FUNCTION fomp_get_max_active_levels() FUNCTION fomp_get_max_active_levels()
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
INTEGER :: fomp_get_max_active_levels INTEGER :: fomp_get_max_active_levels
fomp_get_max_active_levels = -1 fomp_get_max_active_levels = -1
END FUNCTION fomp_get_max_active_levels END FUNCTION fomp_get_max_active_levels
FUNCTION fomp_get_level() FUNCTION fomp_get_level()
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
INTEGER :: fomp_get_level INTEGER :: fomp_get_level
fomp_get_level = -1 fomp_get_level = -1
END FUNCTION fomp_get_level END FUNCTION fomp_get_level
FUNCTION fomp_get_ancestor_thread_num(level) FUNCTION fomp_get_ancestor_thread_num(level)
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
@ -347,20 +224,13 @@ FUNCTION fomp_get_ancestor_thread_num(level)
INTEGER, INTENT(IN) :: level INTEGER, INTENT(IN) :: level
INTEGER :: fomp_get_ancestor_thread_num INTEGER :: fomp_get_ancestor_thread_num
fomp_get_ancestor_thread_num = -1 fomp_get_ancestor_thread_num = -1
END FUNCTION fomp_get_ancestor_thread_num END FUNCTION fomp_get_ancestor_thread_num
FUNCTION fomp_get_team_size(level) FUNCTION fomp_get_team_size(level)
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
@ -368,59 +238,39 @@ FUNCTION fomp_get_team_size(level)
INTEGER, INTENT(IN) :: level INTEGER, INTENT(IN) :: level
INTEGER :: fomp_get_team_size INTEGER :: fomp_get_team_size
fomp_get_team_size = -1 fomp_get_team_size = -1
END FUNCTION fomp_get_team_size END FUNCTION fomp_get_team_size
FUNCTION fomp_get_active_level() FUNCTION fomp_get_active_level()
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
INTEGER :: fomp_get_active_level INTEGER :: fomp_get_active_level
fomp_get_active_level = -1 fomp_get_active_level = -1
END FUNCTION fomp_get_active_level END FUNCTION fomp_get_active_level
FUNCTION fomp_in_final() FUNCTION fomp_in_final()
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
LOGICAL :: fomp_in_final LOGICAL :: fomp_in_final
fomp_in_final = .FALSE. fomp_in_final = .FALSE.
END FUNCTION fomp_in_final END FUNCTION fomp_in_final
SUBROUTINE fomp_init_lock(svar) SUBROUTINE fomp_init_lock(svar)
USE omp_constants, ONLY : fomp_lock_kind USE omp_constants, ONLY : fomp_lock_kind
IMPLICIT NONE IMPLICIT NONE
@ -429,19 +279,13 @@ SUBROUTINE fomp_init_lock(svar)
INTEGER(KIND=fomp_lock_kind), INTENT(OUT) :: svar INTEGER(KIND=fomp_lock_kind), INTENT(OUT) :: svar
svar = -1 svar = -1
END SUBROUTINE fomp_init_lock END SUBROUTINE fomp_init_lock
SUBROUTINE fomp_init_nest_lock(nvar) SUBROUTINE fomp_init_nest_lock(nvar)
USE omp_constants, ONLY : fomp_nest_lock_kind USE omp_constants, ONLY : fomp_nest_lock_kind
IMPLICIT NONE IMPLICIT NONE
@ -450,19 +294,13 @@ SUBROUTINE fomp_init_nest_lock(nvar)
INTEGER(KIND=fomp_nest_lock_kind), INTENT(OUT) :: nvar INTEGER(KIND=fomp_nest_lock_kind), INTENT(OUT) :: nvar
nvar = -1 nvar = -1
END SUBROUTINE fomp_init_nest_lock END SUBROUTINE fomp_init_nest_lock
SUBROUTINE fomp_destroy_lock(svar) SUBROUTINE fomp_destroy_lock(svar)
USE omp_constants, ONLY : fomp_lock_kind USE omp_constants, ONLY : fomp_lock_kind
IMPLICIT NONE IMPLICIT NONE
@ -471,17 +309,11 @@ SUBROUTINE fomp_destroy_lock(svar)
INTEGER(KIND=fomp_lock_kind), INTENT(INOUT) :: svar INTEGER(KIND=fomp_lock_kind), INTENT(INOUT) :: svar
END SUBROUTINE fomp_destroy_lock END SUBROUTINE fomp_destroy_lock
SUBROUTINE fomp_destroy_nest_lock(nvar) SUBROUTINE fomp_destroy_nest_lock(nvar)
USE omp_constants, ONLY : fomp_nest_lock_kind USE omp_constants, ONLY : fomp_nest_lock_kind
IMPLICIT NONE IMPLICIT NONE
@ -490,17 +322,11 @@ SUBROUTINE fomp_destroy_nest_lock(nvar)
INTEGER(KIND=fomp_nest_lock_kind), INTENT(INOUT) :: nvar INTEGER(KIND=fomp_nest_lock_kind), INTENT(INOUT) :: nvar
END SUBROUTINE fomp_destroy_nest_lock END SUBROUTINE fomp_destroy_nest_lock
SUBROUTINE fomp_set_lock(svar) SUBROUTINE fomp_set_lock(svar)
USE omp_constants, ONLY : fomp_lock_kind USE omp_constants, ONLY : fomp_lock_kind
IMPLICIT NONE IMPLICIT NONE
@ -509,17 +335,11 @@ SUBROUTINE fomp_set_lock(svar)
INTEGER(KIND=fomp_lock_kind), INTENT(INOUT) :: svar INTEGER(KIND=fomp_lock_kind), INTENT(INOUT) :: svar
END SUBROUTINE fomp_set_lock END SUBROUTINE fomp_set_lock
SUBROUTINE fomp_set_nest_lock(nvar) SUBROUTINE fomp_set_nest_lock(nvar)
USE omp_constants, ONLY : fomp_nest_lock_kind USE omp_constants, ONLY : fomp_nest_lock_kind
IMPLICIT NONE IMPLICIT NONE
@ -528,17 +348,11 @@ SUBROUTINE fomp_set_nest_lock(nvar)
INTEGER(KIND=fomp_nest_lock_kind), INTENT(INOUT) :: nvar INTEGER(KIND=fomp_nest_lock_kind), INTENT(INOUT) :: nvar
END SUBROUTINE fomp_set_nest_lock END SUBROUTINE fomp_set_nest_lock
SUBROUTINE fomp_unset_lock(svar) SUBROUTINE fomp_unset_lock(svar)
USE omp_constants, ONLY : fomp_lock_kind USE omp_constants, ONLY : fomp_lock_kind
IMPLICIT NONE IMPLICIT NONE
@ -547,17 +361,11 @@ SUBROUTINE fomp_unset_lock(svar)
INTEGER(KIND=fomp_lock_kind), INTENT(INOUT) :: svar INTEGER(KIND=fomp_lock_kind), INTENT(INOUT) :: svar
END SUBROUTINE fomp_unset_lock END SUBROUTINE fomp_unset_lock
SUBROUTINE fomp_unset_nest_lock(nvar) SUBROUTINE fomp_unset_nest_lock(nvar)
USE omp_constants, ONLY : fomp_nest_lock_kind USE omp_constants, ONLY : fomp_nest_lock_kind
IMPLICIT NONE IMPLICIT NONE
@ -566,17 +374,11 @@ SUBROUTINE fomp_unset_nest_lock(nvar)
INTEGER(KIND=fomp_nest_lock_kind), INTENT(INOUT) :: nvar INTEGER(KIND=fomp_nest_lock_kind), INTENT(INOUT) :: nvar
END SUBROUTINE fomp_unset_nest_lock END SUBROUTINE fomp_unset_nest_lock
FUNCTION fomp_test_lock(svar) FUNCTION fomp_test_lock(svar)
USE omp_constants, ONLY : fomp_lock_kind USE omp_constants, ONLY : fomp_lock_kind
IMPLICIT NONE IMPLICIT NONE
@ -586,21 +388,13 @@ FUNCTION fomp_test_lock(svar)
INTEGER(KIND=fomp_lock_kind), INTENT(INOUT) :: svar INTEGER(KIND=fomp_lock_kind), INTENT(INOUT) :: svar
LOGICAL :: fomp_test_lock LOGICAL :: fomp_test_lock
fomp_test_lock = .FALSE. fomp_test_lock = .FALSE.
END FUNCTION fomp_test_lock END FUNCTION fomp_test_lock
FUNCTION fomp_test_nest_lock(nvar) FUNCTION fomp_test_nest_lock(nvar)
USE omp_constants, ONLY : fomp_nest_lock_kind USE omp_constants, ONLY : fomp_nest_lock_kind
IMPLICIT NONE IMPLICIT NONE
@ -610,58 +404,34 @@ FUNCTION fomp_test_nest_lock(nvar)
INTEGER(KIND=fomp_nest_lock_kind), INTENT(INOUT) :: nvar INTEGER(KIND=fomp_nest_lock_kind), INTENT(INOUT) :: nvar
INTEGER :: fomp_test_nest_lock INTEGER :: fomp_test_nest_lock
fomp_test_nest_lock = -1 fomp_test_nest_lock = -1
END FUNCTION fomp_test_nest_lock END FUNCTION fomp_test_nest_lock
FUNCTION fomp_get_wtime() FUNCTION fomp_get_wtime()
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
REAL (KIND=8) :: fomp_get_wtime REAL (KIND=8) :: fomp_get_wtime
fomp_get_wtime = -1 fomp_get_wtime = -1
END FUNCTION fomp_get_wtime END FUNCTION fomp_get_wtime
FUNCTION fomp_get_wtick() FUNCTION fomp_get_wtick()
IMPLICIT NONE IMPLICIT NONE
!f2py threadsafe !f2py threadsafe
REAL (KIND=8) :: fomp_get_wtick REAL (KIND=8) :: fomp_get_wtick
fomp_get_wtick = -1 fomp_get_wtick = -1
END FUNCTION fomp_get_wtick END FUNCTION fomp_get_wtick

11
fortran/wrffortran.pyf

@ -295,7 +295,10 @@ python module _wrffortran ! in
integer, optional,check(shape(vert,0)==ew),depend(vert) :: ew=shape(vert,0) integer, optional,check(shape(vert,0)==ew),depend(vert) :: ew=shape(vert,0)
end subroutine dcloudfrac2 end subroutine dcloudfrac2
module wrf_constants ! in :_wrffortran:wrf_constants.f90 module wrf_constants ! in :_wrffortran:wrf_constants.f90
real(kind=4), parameter,optional :: default_fill_float=9.96920996839e+36
integer(kind=8), parameter,optional :: default_fill_int64=int(-9223372036854775806d0, kind=8)
real(kind=8), parameter,optional :: wrf_earth_radius=6370000.d0 real(kind=8), parameter,optional :: wrf_earth_radius=6370000.d0
character(len=1), parameter,optional :: default_fill_char=achar(0)
real(kind=8), parameter,optional :: rhowat=1000.d0 real(kind=8), parameter,optional :: rhowat=1000.d0
real(kind=8), parameter,optional :: t_base=300.0d0 real(kind=8), parameter,optional :: t_base=300.0d0
real(kind=8), parameter,optional :: cp=1004.5d0 real(kind=8), parameter,optional :: cp=1004.5d0
@ -305,6 +308,7 @@ python module _wrffortran ! in
real(kind=8), parameter,optional :: p1000mb=100000.d0 real(kind=8), parameter,optional :: p1000mb=100000.d0
real(kind=8), parameter,optional :: rv=461.6d0 real(kind=8), parameter,optional :: rv=461.6d0
real(kind=8), parameter,optional,depend(pi) :: rad_per_deg=pi/180.d0 real(kind=8), parameter,optional,depend(pi) :: rad_per_deg=pi/180.d0
real(kind=8), parameter,optional :: default_fill_double=9.96920996839e+36
real(kind=8), parameter,optional :: rd=287.d0 real(kind=8), parameter,optional :: rd=287.d0
real(kind=8), parameter,optional :: abscoef=.145d0 real(kind=8), parameter,optional :: abscoef=.145d0
real(kind=8), parameter,optional :: celkel=273.15d0 real(kind=8), parameter,optional :: celkel=273.15d0
@ -312,16 +316,18 @@ python module _wrffortran ! in
real(kind=8), parameter,optional :: eslcon2=29.65d0 real(kind=8), parameter,optional :: eslcon2=29.65d0
real(kind=8), parameter,optional :: eslcon1=17.67d0 real(kind=8), parameter,optional :: eslcon1=17.67d0
real(kind=8), parameter,optional :: pi=3.1415926535897932384626433d0 real(kind=8), parameter,optional :: pi=3.1415926535897932384626433d0
integer(kind=1), parameter,optional :: default_fill_int8=-127
real(kind=8), parameter,optional :: tlclc2=3.5d0 real(kind=8), parameter,optional :: tlclc2=3.5d0
real(kind=8), parameter,optional :: tlclc3=4.805d0 real(kind=8), parameter,optional :: tlclc3=4.805d0
real(kind=8), parameter,optional :: rho_g=400.d0 real(kind=8), parameter,optional :: rho_g=400.d0
real(kind=8), parameter,optional :: tlclc1=2840.d0 real(kind=8), parameter,optional :: tlclc1=2840.d0
real(kind=8), parameter,optional :: tlclc4=55.d0 real(kind=8), parameter,optional :: tlclc4=55.d0
integer(kind=2), parameter,optional :: default_fill_int16=-32767
real(kind=8), parameter,optional,depend(pi) :: deg_per_rad=180.d0/pi real(kind=8), parameter,optional,depend(pi) :: deg_per_rad=180.d0/pi
real(kind=8), parameter,optional :: cpmd=.887d0 real(kind=8), parameter,optional :: cpmd=.887d0
real(kind=8), parameter,optional,depend(rd,g) :: sclht=rd*256.d0/g real(kind=8), parameter,optional,depend(rd,g) :: sclht=rd*256.d0/g
real(kind=8), parameter,optional :: ussalr=0.0065d0 real(kind=8), parameter,optional :: ussalr=0.0065d0
real(kind=8), parameter,optional :: default_fill=9.9692099683868690d36 real(kind=8), parameter,optional :: default_fill=9.96920996839e+36
real(kind=8), parameter,optional :: rho_s=100.d0 real(kind=8), parameter,optional :: rho_s=100.d0
real(kind=8), parameter,optional,depend(rhowat) :: rho_r=1000.0 real(kind=8), parameter,optional,depend(rhowat) :: rho_r=1000.0
real(kind=8), parameter,optional :: alpha=0.224d0 real(kind=8), parameter,optional :: alpha=0.224d0
@ -331,9 +337,10 @@ python module _wrffortran ! in
real(kind=8), parameter,optional :: rgasmd=.608d0 real(kind=8), parameter,optional :: rgasmd=.608d0
real(kind=8), parameter,optional :: g=9.81d0 real(kind=8), parameter,optional :: g=9.81d0
integer, optional :: errlen=512 integer, optional :: errlen=512
real(kind=8), parameter,optional :: eps=0.622d0 integer(kind=4), parameter,optional :: default_fill_int32=-2147483647
real(kind=8), parameter,optional :: gamma_seven=720.d0 real(kind=8), parameter,optional :: gamma_seven=720.d0
real(kind=8), parameter,optional,depend(cpmd,rgasmd) :: gammamd=-0.279 real(kind=8), parameter,optional,depend(cpmd,rgasmd) :: gammamd=-0.279
real(kind=8), parameter,optional :: eps=0.622d0
integer, optional :: algerr=64 integer, optional :: algerr=64
real(kind=8), parameter,optional,depend(cp,rd) :: gamma=0.285714285714 real(kind=8), parameter,optional,depend(cp,rd) :: gamma=0.285714285714
real(kind=8), parameter,optional,depend(expon,rd,ussalr,g) :: exponi=5.25864379523 real(kind=8), parameter,optional,depend(expon,rd,ussalr,g) :: exponi=5.25864379523

Loading…
Cancel
Save