Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
message("setting intel true")
set(IntelComp true )
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU*")
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU*" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang*")
set(GNUComp true )
elseif(CMAKE_CXX_COMPILER_ID MATCHES "pgc*")
set(PGIComp true )
Expand Down
5 changes: 4 additions & 1 deletion sorc/cnvgrib.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@ if( (BUILD_RELEASE) OR (BUILD_PRODUCTION) )
if(IntelComp)
message("setting intel flags")
set(CMAKE_Fortran_8_FLAGS "-O3 -g " CACHE INTERNAL "" )
elseif(GNUComp)
message("setting gnu flags")
set(CMAKE_Fortran_8_FLAGS "-O3 -g " CACHE INTERNAL "" )
else()
message("unkown compiler!")
message("unknown compiler!")
exit()
endif()
endif()
Expand Down
7 changes: 5 additions & 2 deletions sorc/copygb.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ file(GLOB EXE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f ${CMAKE_CURRENT_SOURCE_DIR}/*.
#file(GLOB EXE_C_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.c)
if(IntelComp)
message("setting intel flags")
set(CMAKE_Fortran_8_FLAGS "-g -O3 -r8 -auto -qopenmp " CACHE INTERNAL "" )
set(CMAKE_Fortran_8_FLAGS "-g -O3 -r8 -auto ${OpenMP_Fortran_FLAGS} " CACHE INTERNAL "" )
elseif(GNUComp)
message("setting gnu flags")
set(CMAKE_Fortran_8_FLAGS "-g -O3 -fdefault-real-8 ${OpenMP_Fortran_FLAGS} " CACHE INTERNAL "" )
else()
message("unkown compiler!")
message("unknown compiler!")
exit()
endif()

Expand Down
16 changes: 13 additions & 3 deletions sorc/copygb2.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ file(GLOB EXE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f ${CMAKE_CURRENT_SOURCE_DIR}/*.
#file(GLOB EXE_C_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.c)
if(IntelComp)
message("setting intel flags")
set(CMAKE_Fortran_8_FLAGS "-g -O3 -r8 -convert big_endian -auto ${OpenMP_Fortran_FLAGS} " CACHE INTERNAL "" )
set(CMAKE_Fortran_8_FLAGS "-g -O3 -r8 -convert big_endian -auto -fpp ${OpenMP_Fortran_FLAGS} " CACHE INTERNAL "" )
elseif(GNUComp)
message("setting gnu flags")
set(CMAKE_Fortran_8_FLAGS "-g -O3 -fdefault-real-8 -fconvert=big-endian -cpp ${OpenMP_Fortran_FLAGS} " CACHE INTERNAL "" )
else()
message("unkown compiler!")
message("unknown compiler!")
exit()
endif()

Expand All @@ -20,7 +23,14 @@ include_directories( ${G2_INCd} ${SP_INCd} ${IP_INCd} )
set(CMAKE_INCLUDE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include_8")
set_target_properties(${EXENAME} PROPERTIES Fortran_MODULE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include_8")
target_include_directories(${EXENAME} PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/include_8")
target_link_libraries(${EXENAME} ${G2_LIBd} ${PNG_LIBRARIES} ${JASPER_LIBRARIES} ${BACIO_LIB4} ${W3NCO_LIBd} ${IP_LIBd} ${SP_LIBd} ${OpenMP_Fortran_FLAGS} ${LAPACK_LINKER_FLAGS} -static-intel)
if(IntelComp)
target_link_libraries(${EXENAME} ${G2_LIBd} ${PNG_LIBRARIES} ${JASPER_LIBRARIES} ${BACIO_LIB4} ${W3NCO_LIBd} ${IP_LIBd} ${SP_LIBd} ${OpenMP_Fortran_FLAGS} ${LAPACK_LINKER_FLAGS} -static-intel)
elseif(GNUComp)
target_link_libraries(${EXENAME} ${G2_LIBd} ${PNG_LIBRARIES} ${JASPER_LIBRARIES} ${BACIO_LIB4} ${W3NCO_LIBd} ${IP_LIBd} ${SP_LIBd} ${OpenMP_Fortran_FLAGS} ${LAPACK_LINKER_FLAGS} -static-libgfortran)
else()
message("unknown compiler!")
exit()
endif()

file(MAKE_DIRECTORY ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})

Expand Down
14 changes: 11 additions & 3 deletions sorc/copygb2.fd/copygb2.f
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,11 @@ PROGRAM COPYGB2
CALL W3TAGE('COPYGB2 ')
ENDIF
C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#ifdef __GFORTRAN__
CONTAINS
#else
END
#endif
C-----------------------------------------------------------------------
SUBROUTINE EUSAGE
C$$$ SUBPROGRAM DOCUMENTATION BLOCK
Expand Down Expand Up @@ -942,6 +946,7 @@ SUBROUTINE CPGB1(LG1,LX1,M1,
REAL,ALLOCATABLE,TARGET :: G1I(:)
REAL,POINTER :: FBI(:),GBI(:)
TYPE( GRIBFIELD ) :: GFLD1,GFLDV,GFLDM,GFLDMV
INTEGER ISDUMMY,IADUMMY(200)
C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C GET FIELD FROM FILE 1
JDISC=-1
Expand Down Expand Up @@ -1069,9 +1074,9 @@ SUBROUTINE CPGB1(LG1,LX1,M1,
C INTERPOLATE MAP FIELD
IF(IRET.EQ.0) THEN
IBB=MOD(KPDSB(4)/64,2)
CALL INTGRIB2(0,IP,IPOPT,d,nopt,opt,KGDSB,
& KB,IBB,LR,FR,GR,d,KGDTI,MI,
& IBBI,LBI,FBI,GBI,IRET)
CALL INTGRIB2(0,IP,IPOPT,ISDUMMY,IADUMMY,SIZE(KGDSB),KGDSB,
& KB,IBB,LR,FR,GR,ISDUMMY,KGDTI,MI,
& IBBI,LBI,FBI,GBI,IRET)
IF(LXX.GT.0) THEN
IF(IRET.EQ.0) THEN
PRINT *,' interpolated to grid template 3.',IGDTN
Expand Down Expand Up @@ -1681,3 +1686,6 @@ FUNCTION NUMPTS(IGDTN,KGDT)
END SELECT
C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
END
#ifdef __GFORTRAN__
END PROGRAM
#endif
5 changes: 4 additions & 1 deletion sorc/degrib2.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@ file(GLOB EXE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f ${CMAKE_CURRENT_SOURCE_DIR}/*.
if(IntelComp)
message("setting intel flags")
set(CMAKE_Fortran_4_FLAGS " -g -O3 -convert big_endian -axCORE-AVX2" CACHE INTERNAL "" )
elseif(GNUComp)
message("setting gnu flags")
set(CMAKE_Fortran_4_FLAGS " -g -O3 -fconvert=big-endian" CACHE INTERNAL "" )
else()
message("unkown compiler!")
message("unknown compiler!")
exit()
endif()

Expand Down
7 changes: 5 additions & 2 deletions sorc/grb2index.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ file(GLOB EXE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f ${CMAKE_CURRENT_SOURCE_DIR}/*.
#file(GLOB EXE_C_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.c)
if(IntelComp)
message("setting intel flags")
set(CMAKE_Fortran_4_FLAGS " -g -O3 -convert big_endian -axCORE-AVX2" CACHE INTERNAL "" )
set(CMAKE_Fortran_4_FLAGS " -g -O3 -convert big_endian -axCORE-AVX2 -fpp" CACHE INTERNAL "" )
elseif(GNUComp)
message("setting gnu flags")
set(CMAKE_Fortran_4_FLAGS " -g -O3 -fconvert=big-endian -cpp" CACHE INTERNAL "" )
else()
message("unkown compiler!")
message("unknown compiler!")
exit()
endif()

Expand Down
14 changes: 14 additions & 0 deletions sorc/grb2index.fd/grb2index.f
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,12 @@ SUBROUTINE WRGI1H(LUGI,NLEN,NNUM,CGB)
C
C$$$
CHARACTER CGB*(*)
#ifdef __GFORTRAN__
CHARACTER CD8*8,CT10*10,HOSTNAME*15
INTEGER ISTAT
#else
CHARACTER CD8*8,CT10*10,HOSTNAM*15
#endif
CHARACTER CHEAD(2)*81
C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C FILL FIRST 81-BYTE HEADER
Expand All @@ -197,7 +202,16 @@ SUBROUTINE WRGI1H(LUGI,NLEN,NNUM,CGB)
CHEAD(1)(42:47)='GB2IX1'
!CHEAD(1)(49:54)=CGB(NCGB2:NCGB1-2)
CHEAD(1)(49:54)=' '
#ifdef __GFORTRAN__
ISTAT=HOSTNM(HOSTNAME)
IF(ISTAT.eq.0) THEN
CHEAD(1)(56:70)='0000'
ELSE
CHEAD(1)(56:70)='0001'
ENDIF
#else
CHEAD(1)(56:70)=HOSTNAM(HOSTNAME)
#endif
CHEAD(1)(72:80)='grb2index'
CHEAD(1)(81:81)=CHAR(10)
C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Expand Down
7 changes: 5 additions & 2 deletions sorc/grbindex.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ file(GLOB EXE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f ${CMAKE_CURRENT_SOURCE_DIR}/*.
#file(GLOB EXE_C_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.c)
if(IntelComp)
message("setting intel flags")
set(CMAKE_Fortran_4_FLAGS " -g -O3 -assume noold_ldout_format -convert big_endian -axCORE-AVX2" CACHE INTERNAL "" )
set(CMAKE_Fortran_4_FLAGS " -g -O3 -assume noold_ldout_format -convert big_endian -axCORE-AVX2 -fpp" CACHE INTERNAL "" )
elseif(GNUComp)
message("setting gnu flags")
set(CMAKE_Fortran_4_FLAGS " -g -O3 -fconvert=big-endian -cpp" CACHE INTERNAL "" )
else()
message("unkown compiler!")
message("unknown compiler!")
exit()
endif()

Expand Down
14 changes: 14 additions & 0 deletions sorc/grbindex.fd/grbindex.f
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,12 @@ SUBROUTINE WRGI1H(LUGI,NLEN,NNUM,CGB)
C
C$$$
CHARACTER CGB*(*)
#ifdef __GFORTRAN__
CHARACTER CD8*8,CT10*10,HOSTNAME*15
INTEGER ISTAT
#else
CHARACTER CD8*8,CT10*10,HOSTNAM*15
#endif
CHARACTER CHEAD(2)*81
C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C FILL FIRST 81-BYTE HEADER
Expand All @@ -188,7 +193,16 @@ SUBROUTINE WRGI1H(LUGI,NLEN,NNUM,CGB)
CHEAD(1)(33:40)=CT10(1:2)//':'//CT10(3:4)//':'//CT10(5:6)
CHEAD(1)(42:47)='GB1IX1'
CHEAD(1)(49:54)=CGB(NCGB2:NCGB1-2)
#ifdef __GFORTRAN__
ISTAT=HOSTNM(HOSTNAME)
IF(ISTAT.eq.0) THEN
CHEAD(1)(56:70)='0000'
ELSE
CHEAD(1)(56:70)='0001'
ENDIF
#else
CHEAD(1)(56:70)=HOSTNAM(hostname)
#endif
C print*,' CHEAD(1)(56:70) = ', CHEAD(1)(56:70)
CHEAD(1)(72:80)='grbindex '
CHEAD(1)(81:81)=CHAR(10)
Expand Down
7 changes: 5 additions & 2 deletions sorc/grib2grib.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ file(GLOB EXE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f ${CMAKE_CURRENT_SOURCE_DIR}/*.
#file(GLOB EXE_C_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.c)
if(IntelComp)
message("setting intel flags")
set(CMAKE_Fortran_8_FLAGS " -g -O3 -r8 -i8 -assume noold_ldout_format -axCORE-AVX2 " CACHE INTERNAL "" )
set(CMAKE_Fortran_8_FLAGS " -g -O3 -r8 -i8 -assume noold_ldout_format -axCORE-AVX2 -fpp" CACHE INTERNAL "" )
elseif(GNUComp)
message("setting gnu flags")
set(CMAKE_Fortran_8_FLAGS " -g -O3 -fdefault-real-8 -fdefault-integer-8 -cpp" CACHE INTERNAL "" )
else()
message("unkown compiler!")
message("unknown compiler!")
exit()
endif()

Expand Down
6 changes: 6 additions & 0 deletions sorc/grib2grib.fd/grib2grib.f
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,9 @@ PROGRAM GRIB2GRIB
C
C$$$
C
#ifdef __INTEL__
USE IFPORT
#endif
PARAMETER (MXSIZE=300000)
PARAMETER (MSIZE=MXSIZE*3)
PARAMETER (IBUFSIZE=35000000)
Expand All @@ -134,7 +136,11 @@ PROGRAM GRIB2GRIB
INTEGER RCBYTE(900)
INTEGER ISTART(900)
INTEGER IUNPK(900)
#ifdef __GFORTRAN__
INTEGER*8 JSTAT(13)
#else
INTEGER*4 JSTAT(12)
#endif
INTEGER TYPEGRID
C
LOGICAL IW3PDS
Expand Down
5 changes: 4 additions & 1 deletion sorc/tocgrib.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@ file(GLOB EXE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f ${CMAKE_CURRENT_SOURCE_DIR}/*.
if(IntelComp)
message("setting intel flags")
set(CMAKE_Fortran_4_FLAGS " -g -O2 -assume noold_ldout_format -axCORE-AVX2" CACHE INTERNAL "" )
elseif(GNUComp)
message("setting gnu flags")
set(CMAKE_Fortran_4_FLAGS " -g -O2" CACHE INTERNAL "" )
else()
message("unkown compiler!")
message("unknown compiler!")
exit()
endif()

Expand Down
5 changes: 4 additions & 1 deletion sorc/tocgrib2.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@ file(GLOB EXE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f ${CMAKE_CURRENT_SOURCE_DIR}/*.
if(IntelComp)
message("setting intel flags")
set(CMAKE_Fortran_4_FLAGS " -g -O3 -axCORE-AVX2" CACHE INTERNAL "" )
elseif(GNUComp)
message("setting gnu flags")
set(CMAKE_Fortran_4_FLAGS " -g -O3" CACHE INTERNAL "" )
else()
message("unkown compiler!")
message("unknown compiler!")
exit()
endif()

Expand Down
6 changes: 3 additions & 3 deletions sorc/tocgrib2.fd/tocgrib2.f
Original file line number Diff line number Diff line change
Expand Up @@ -168,14 +168,14 @@ END SUBROUTINE GETGB2P
write(6,'(11A)') ' WMOHEAD=',WMOHEAD(1:11)
write(6,'(A,I0)') ' GRIB2 DISCIPLINE= ',DSCPL
write(6,'(A,20(1x,I0))')' Section 1=',
& (IDS(J),j=1,13)
& (IDS(j2),j2=1,13)
if ( GDTN .ne. -1 ) then
write(6,'(A,I0,A,100(1x,I0))') ' GDT 3. ',GDTN,' =',
& (GDT(j),j=1,getgdtlen(GDTN))
& (GDT(j2),j2=1,getgdtlen(GDTN))
endif
if ( PDTN .ne. -1 ) then
write(6,'(A,I0,A,100(1x,I0))') ' PDT 4. ',PDTN,' =',
& (PDT(j),j=1,getpdtlen(PDTN))
& (PDT(j2),j2=1,getpdtlen(PDTN))
endif
C
C Read and return packed GRIB field
Expand Down
7 changes: 5 additions & 2 deletions sorc/tocgrib2super.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ file(GLOB EXE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f ${CMAKE_CURRENT_SOURCE_DIR}/*.
#file(GLOB EXE_C_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.c)
if(IntelComp)
message("setting intel flags")
set(CMAKE_Fortran_4_FLAGS " -g -O2 -assume noold_ldout_format -axCORE-AVX2" CACHE INTERNAL "" )
set(CMAKE_Fortran_4_FLAGS " -g -O2 -assume noold_ldout_format -axCORE-AVX2" CACHE INTERNAL "" )
elseif(GNUComp)
message("setting gnu flags")
set(CMAKE_Fortran_4_FLAGS " -g -O2" CACHE INTERNAL "" )
else()
message("unkown compiler!")
message("unknown compiler!")
exit()
endif()

Expand Down
6 changes: 3 additions & 3 deletions sorc/tocgrib2super.fd/tocgrib2super.f
Original file line number Diff line number Diff line change
Expand Up @@ -232,14 +232,14 @@ END SUBROUTINE GETGB2P
write(6,'(11A)') ' WMOHEAD=',WMOHEAD(1:11)
write(6,'(A,I0)') ' GRIB2 DISCIPLINE= ',DSCPL
write(6,'(A,20(1x,I0))')' Section 1=',
& (IDS(J),j=1,13)
& (IDS(j2),j2=1,13)
if ( GDTN .ne. -1 ) then
write(6,'(A,I0,A,100(1x,I0))') ' GDT 3. ',GDTN,' =',
& (GDT(j),j=1,getgdtlen(GDTN))
& (GDT(j2),j2=1,getgdtlen(GDTN))
endif
if ( PDTN .ne. -1 ) then
write(6,'(A,I0,A,100(1x,I0))') ' PDT 4. ',PDTN,' =',
& (PDT(j),j=1,getpdtlen(PDTN))
& (PDT(j2),j2=1,getpdtlen(PDTN))
endif
C
C Read and return packed GRIB field
Expand Down
5 changes: 4 additions & 1 deletion sorc/wgrib.cd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@ file(GLOB EXE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.c)
if(IntelComp)
message("setting intel flags")
set(CMAKE_C_FLAGS "-O3 -m64 -DDEF_T62_NCEP_TABLE=opn -DFAST_GRIBTAB -DP_TABLE_FIRST" CACHE INTERNAL "" )
elseif(GNUComp)
message("setting gnu flags")
set(CMAKE_C_FLAGS "-O3 -m64 -DDEF_T62_NCEP_TABLE=opn -DFAST_GRIBTAB -DP_TABLE_FIRST" CACHE INTERNAL "" )
else()
message("unkown compiler!")
message("unknown compiler!")
exit()
endif()

Expand Down