From 4f4b7cb0e1a44d9929a9bf8b619bf270fd5da43a Mon Sep 17 00:00:00 2001 From: Mehdi Chinoune Date: Thu, 11 Apr 2019 12:48:06 +0100 Subject: [PATCH] Prepare to release slatec 4.2 --- CMakeLists.txt | 12 +- src/CMakeLists.txt | 38 +----- src/aaaaaa.f90 | 2 +- src/approximation/CMakeLists.txt | 6 - src/data_handling/CMakeLists.txt | 6 - src/diff_integ/CMakeLists.txt | 6 - src/diff_integ_eq/CMakeLists.txt | 6 - src/integ_trans/CMakeLists.txt | 4 - src/interpolation/CMakeLists.txt | 6 - src/linear/CMakeLists.txt | 6 - src/nonlin_eq/CMakeLists.txt | 6 - src/optimization/CMakeLists.txt | 6 - src/service/CMakeLists.txt | 4 - src/special_functions/CMakeLists.txt | 6 - test/CMakeLists.txt | 169 +++++++++------------------ test/test_aaaaaa.f90 | 2 +- 16 files changed, 73 insertions(+), 212 deletions(-) delete mode 100644 src/approximation/CMakeLists.txt delete mode 100644 src/data_handling/CMakeLists.txt delete mode 100644 src/diff_integ/CMakeLists.txt delete mode 100644 src/diff_integ_eq/CMakeLists.txt delete mode 100644 src/integ_trans/CMakeLists.txt delete mode 100644 src/interpolation/CMakeLists.txt delete mode 100644 src/linear/CMakeLists.txt delete mode 100644 src/nonlin_eq/CMakeLists.txt delete mode 100644 src/optimization/CMakeLists.txt delete mode 100644 src/service/CMakeLists.txt delete mode 100644 src/special_functions/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index ba4729f0..9a38a15c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,10 @@ cmake_minimum_required(VERSION 3.7) project(slatec Fortran) +set( slatec_MAJOR_VERSION 4 ) +set( slatec_MINOR_VERSION 2 ) +set( slatec_VERSION ${slatec_MAJOR_VERSION}.${slatec_MINOR_VERSION} ) + set ( CMAKE_CONFIGURATION_TYPES "Debug" "Release" "CodeCoverage" ) enable_testing() @@ -15,14 +19,16 @@ endif() if ( "${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU" ) - set( CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS} -O3 -std=f2003 -fimplicit-none" ) - set( CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS} -Wall -Wno-unused-dummy-argument -fcheck=all -g -O0 -std=f2018" ) + set( CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS} -O3" ) + set( CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS} -Wall -Wno-unused-dummy-argument \ + -fcheck=all -ffpe-trap=zero,overflow,invalid -fbacktrace -g -O0 -std=f2018" ) set ( CMAKE_Fortran_FLAGS_CODECOVERAGE "--coverage -g -O0" ) elseif ( "${CMAKE_Fortran_COMPILER_ID}" MATCHES "Intel" ) set( CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS} -O3" ) - set( CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS} -warn all -check all -stand f18 -g" ) + set( CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS} -warn all -traceback \ + -fpe0 -g -check all -stand f18" ) set ( CMAKE_Fortran_FLAGS_CODECOVERAGE "-prof-gen:srcpos -prof-dir=${CMAKE_BINARY_DIR}/prof/ -g -O0" ) elseif ( "${CMAKE_Fortran_COMPILER_ID}" MATCHES "Flang" ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3f9a51f4..20dee516 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,37 +1,9 @@ -add_library(slatec SHARED "aaaaaa.f90" ) +file(GLOB_RECURSE srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS ./*.f90 ) -add_subdirectory( approximation ) -target_link_libraries(slatec approximation ) +set( CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/modules ) -add_subdirectory( data_handling ) -target_link_libraries(slatec data_handling ) +add_library(slatec SHARED ${srcs} ) -add_subdirectory( diff_integ ) -target_link_libraries(slatec diff_integ ) - -add_subdirectory( diff_integ_eq ) -target_link_libraries(slatec diff_integ_eq ) - -add_subdirectory( integ_trans ) -target_link_libraries(slatec integ_trans ) - -add_subdirectory( interpolation ) -target_link_libraries(slatec interpolation ) - -add_subdirectory( linear ) -target_link_libraries(slatec linear ) - -add_subdirectory( nonlin_eq ) -target_link_libraries(slatec nonlin_eq ) - -add_subdirectory( service ) -target_link_libraries(slatec service ) - -add_subdirectory( special_functions ) -target_link_libraries(slatec special_functions ) - -add_subdirectory( optimization ) -target_link_libraries(slatec optimization ) - -install(TARGETS slatec LIBRARY DESTINATION lib RUNTIME DESTINATION bin) \ No newline at end of file +install(TARGETS slatec LIBRARY DESTINATION lib RUNTIME DESTINATION bin) +install(DIRECTORY ${CMAKE_BINARY_DIR}/modules DESTINATION include PATTERN "*_genmod*" EXCLUDE ) \ No newline at end of file diff --git a/src/aaaaaa.f90 b/src/aaaaaa.f90 index 3848d198..473f5f28 100644 --- a/src/aaaaaa.f90 +++ b/src/aaaaaa.f90 @@ -77,5 +77,5 @@ SUBROUTINE AAAAAA(Ver) CHARACTER*(*) Ver !* FIRST EXECUTABLE STATEMENT AAAAAA - Ver = ' 4.1' + Ver = ' 4.2' END SUBROUTINE AAAAAA diff --git a/src/approximation/CMakeLists.txt b/src/approximation/CMakeLists.txt deleted file mode 100644 index bab06e9a..00000000 --- a/src/approximation/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ - -file(GLOB srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *.f90 minpack/*.f90 ) - -add_library(approximation SHARED ${srcs}) - -target_link_libraries(approximation optimization data_handling linear service ) \ No newline at end of file diff --git a/src/data_handling/CMakeLists.txt b/src/data_handling/CMakeLists.txt deleted file mode 100644 index 6b5086c8..00000000 --- a/src/data_handling/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ - -file(GLOB srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *.f90 ) - -add_library(data_handling SHARED ${srcs}) - -target_link_libraries(data_handling linear service) diff --git a/src/diff_integ/CMakeLists.txt b/src/diff_integ/CMakeLists.txt deleted file mode 100644 index e3420854..00000000 --- a/src/diff_integ/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ - -file(GLOB srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *.f90 quadpack/*.f90 ) - -add_library(diff_integ SHARED ${srcs}) - -target_link_libraries(diff_integ interpolation linear service) \ No newline at end of file diff --git a/src/diff_integ_eq/CMakeLists.txt b/src/diff_integ_eq/CMakeLists.txt deleted file mode 100644 index 5af66a2e..00000000 --- a/src/diff_integ_eq/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ - -file(GLOB srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *.f90 bvsup/*.f90 dassl/*.f90 depac/*.f90 fishpack/*.f90 sdrive/*.f90 ) - -add_library(diff_integ_eq SHARED ${srcs}) - -target_link_libraries(diff_integ_eq linear data_handling integ_trans service) \ No newline at end of file diff --git a/src/integ_trans/CMakeLists.txt b/src/integ_trans/CMakeLists.txt deleted file mode 100644 index 64bfa229..00000000 --- a/src/integ_trans/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ - -file(GLOB srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS fftpack/*.f90 ) - -add_library(integ_trans SHARED ${srcs}) \ No newline at end of file diff --git a/src/interpolation/CMakeLists.txt b/src/interpolation/CMakeLists.txt deleted file mode 100644 index 94a79f56..00000000 --- a/src/interpolation/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ - -file(GLOB srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *.f90 bspline/*.f90 pchip/*.f90 ) - -add_library(interpolation SHARED ${srcs}) - -target_link_libraries(interpolation service) \ No newline at end of file diff --git a/src/linear/CMakeLists.txt b/src/linear/CMakeLists.txt deleted file mode 100644 index e21fe44b..00000000 --- a/src/linear/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ - -file(GLOB srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *.f90 blas/*.f90 dqdot/*.f90 eispack/*.f90 linpack/*.f90 slap/*.f90 ) - -add_library(linear SHARED ${srcs}) - -target_link_libraries(linear service ) \ No newline at end of file diff --git a/src/nonlin_eq/CMakeLists.txt b/src/nonlin_eq/CMakeLists.txt deleted file mode 100644 index 255eb112..00000000 --- a/src/nonlin_eq/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ - -file(GLOB srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *.f90 ) - -add_library(nonlin_eq SHARED ${srcs}) - -target_link_libraries(nonlin_eq linear service) \ No newline at end of file diff --git a/src/optimization/CMakeLists.txt b/src/optimization/CMakeLists.txt deleted file mode 100644 index 137a0c3a..00000000 --- a/src/optimization/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ - -file(GLOB srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS splp/*.f90 ) - -add_library(optimization SHARED ${srcs}) - -target_link_libraries(optimization linear service ) \ No newline at end of file diff --git a/src/service/CMakeLists.txt b/src/service/CMakeLists.txt deleted file mode 100644 index a14dd9a6..00000000 --- a/src/service/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ - -file(GLOB srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *.f90 ) - -add_library(service SHARED ${srcs}) \ No newline at end of file diff --git a/src/special_functions/CMakeLists.txt b/src/special_functions/CMakeLists.txt deleted file mode 100644 index f738da2f..00000000 --- a/src/special_functions/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ - -file(GLOB srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *.f90 ) - -add_library(special_functions SHARED ${srcs}) - -target_link_libraries(special_functions service) \ No newline at end of file diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 8a9f52f2..d88b5f89 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,175 +1,120 @@ -FILE(GLOB tests RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} test*.f90) +FILE(GLOB tests RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} test*.f90 ) -add_executable(test_aaaaaa test_aaaaaa.f90) -target_link_libraries(test_aaaaaa slatec ) +INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/modules ) -add_executable(test_arrays_01 test_arrays_01.f90) -target_link_libraries(test_arrays_01 data_handling ) +add_executable(test_aaaaaa test_aaaaaa.f90 ) -add_executable(test_blas_01 test_blas_01.f90) -target_link_libraries(test_blas_01 linear ) +add_executable(test_arrays_01 test_arrays_01.f90 ) + +add_executable(test_blas_01 test_blas_01.f90 ) add_executable(test_blas_02 test_blas_02.f90 chkxer.f90 ) -target_link_libraries(test_blas_02 linear ) -add_executable(test_blas_03 test_blas_03.f90 chkxer.f90) -target_link_libraries(test_blas_03 linear ) +add_executable(test_blas_03 test_blas_03.f90 chkxer.f90 ) -add_executable(test_blas_04 test_blas_04.f90 chkxer.f90) -target_link_libraries(test_blas_04 linear ) +add_executable(test_blas_04 test_blas_04.f90 chkxer.f90 ) -add_executable(test_bspline_01 test_bspline_01.f90) -target_link_libraries(test_bspline_01 interpolation diff_integ ) +add_executable(test_bspline_01 test_bspline_01.f90 ) -add_executable(test_bspline_02 test_bspline_02.f90) -target_link_libraries(test_bspline_02 interpolation diff_integ ) +add_executable(test_bspline_02 test_bspline_02.f90 ) -add_executable(test_dassl_01 test_dassl_01.f90) -target_link_libraries(test_dassl_01 diff_integ_eq ) +add_executable(test_dassl_01 test_dassl_01.f90 ) -add_executable(test_dassl_02 test_dassl_02.f90) -target_link_libraries(test_dassl_02 diff_integ_eq ) +add_executable(test_dassl_02 test_dassl_02.f90 ) -add_executable(test_depac_01 test_depac_01.f90 pass.f90) -target_link_libraries(test_depac_01 diff_integ_eq ) -target_include_directories(test_depac_01 PRIVATE ${CMAKE_BINARY_DIR}/src/diff_integ_eq/ ) +add_executable(test_depac_01 test_depac_01.f90 pass.f90 ) -add_executable(test_depac_02 test_depac_02.f90 pass.f90) -target_link_libraries(test_depac_02 diff_integ_eq ) -target_include_directories(test_depac_02 PRIVATE ${CMAKE_BINARY_DIR}/src/diff_integ_eq/ ) +add_executable(test_depac_02 test_depac_02.f90 pass.f90 ) -add_executable(test_eispack_01 test_eispack_01.f90) -target_link_libraries(test_eispack_01 linear ) +add_executable(test_eispack_01 test_eispack_01.f90 ) -add_executable(test_fishpack_01 test_fishpack_01.f90) -target_link_libraries(test_fishpack_01 diff_integ_eq ) +add_executable(test_fishpack_01 test_fishpack_01.f90 ) -add_executable(test_fishpack_02 test_fishpack_02.f90) -target_link_libraries(test_fishpack_02 diff_integ_eq ) +add_executable(test_fishpack_02 test_fishpack_02.f90 ) -add_executable(test_fitting_01 test_fitting_01.f90) -target_link_libraries(test_fitting_01 approximation ) +add_executable(test_fitting_01 test_fitting_01.f90 ) -add_executable(test_fitting_02 test_fitting_02.f90) -target_link_libraries(test_fitting_02 approximation ) +add_executable(test_fitting_02 test_fitting_02.f90 ) -add_executable(test_integration_01 test_integration_01.f90) -target_link_libraries(test_integration_01 diff_integ ) +add_executable(test_integration_01 test_integration_01.f90 ) -add_executable(test_integration_02 test_integration_02.f90) -target_link_libraries(test_integration_02 diff_integ ) +add_executable(test_integration_02 test_integration_02.f90 ) -add_executable(test_interpolation_01 test_interpolation_01.f90) -target_link_libraries(test_interpolation_01 interpolation ) +add_executable(test_interpolation_01 test_interpolation_01.f90 ) -add_executable(test_lineq_01 test_lineq_01.f90) -target_link_libraries(test_lineq_01 linear ) +add_executable(test_lineq_01 test_lineq_01.f90 ) -add_executable(test_lineq_02 test_lineq_02.f90) -target_link_libraries(test_lineq_02 linear ) +add_executable(test_lineq_02 test_lineq_02.f90 ) -add_executable(test_linpack_01 test_linpack_01.f90) -target_link_libraries(test_linpack_01 linear ) +add_executable(test_linpack_01 test_linpack_01.f90 ) -add_executable(test_minpack_01 test_minpack_01.f90 pass.f90) -target_link_libraries(test_minpack_01 approximation nonlin_eq ) +add_executable(test_minpack_01 test_minpack_01.f90 pass.f90 ) -add_executable(test_minpack_02 test_minpack_02.f90 pass.f90) -target_link_libraries(test_minpack_02 approximation nonlin_eq ) +add_executable(test_minpack_02 test_minpack_02.f90 pass.f90 ) -add_executable(test_minpack_03 test_minpack_03.f90 pass.f90) -target_link_libraries(test_minpack_03 approximation interpolation ) +add_executable(test_minpack_03 test_minpack_03.f90 pass.f90 ) -add_executable(test_minpack_04 test_minpack_04.f90 pass.f90) -target_link_libraries(test_minpack_04 approximation interpolation ) +add_executable(test_minpack_04 test_minpack_04.f90 pass.f90 ) -add_executable(test_pchip_01 test_pchip_01.f90 comp.f90) -target_link_libraries(test_pchip_01 interpolation special_functions ) +add_executable(test_pchip_01 test_pchip_01.f90 comp.f90 ) -add_executable(test_pchip_02 test_pchip_02.f90 comp.f90) -target_link_libraries(test_pchip_02 interpolation special_functions ) +add_executable(test_pchip_02 test_pchip_02.f90 comp.f90 ) -add_executable(test_quadpack_01 test_quadpack_01.f90) -target_link_libraries(test_quadpack_01 diff_integ ) +add_executable(test_quadpack_01 test_quadpack_01.f90 ) -add_executable(test_quadpack_02 test_quadpack_02.f90) -target_link_libraries(test_quadpack_02 diff_integ ) +add_executable(test_quadpack_02 test_quadpack_02.f90 ) -add_executable(test_roots_01 test_roots_01.f90 pass.f90) -target_link_libraries(test_roots_01 nonlin_eq ) +add_executable(test_roots_01 test_roots_01.f90 pass.f90 ) -add_executable(test_sdrive_01 test_sdrive_01.f90) -target_link_libraries(test_sdrive_01 diff_integ_eq ) +add_executable(test_sdrive_01 test_sdrive_01.f90 ) -add_executable(test_sdrive_02 test_sdrive_02.f90) -target_link_libraries(test_sdrive_02 diff_integ_eq ) +add_executable(test_sdrive_02 test_sdrive_02.f90 ) -add_executable(test_sdrive_03 test_sdrive_03.f90) -target_link_libraries(test_sdrive_03 diff_integ_eq ) +add_executable(test_sdrive_03 test_sdrive_03.f90 ) -add_executable(test_slap_01 test_slap_01.f90 ismpl.f90) -target_link_libraries(test_slap_01 linear special_functions ) -target_include_directories(test_slap_01 PRIVATE ${CMAKE_BINARY_DIR}/src/linear/ ) +add_executable(test_slap_01 test_slap_01.f90 ismpl.f90 ) -add_executable(test_slap_02 test_slap_02.f90 ismpl.f90) -target_link_libraries(test_slap_02 linear special_functions ) -target_include_directories(test_slap_02 PRIVATE ${CMAKE_BINARY_DIR}/src/linear/ ) +add_executable(test_slap_02 test_slap_02.f90 ismpl.f90 ) -add_executable(test_specfun_01 test_specfun_01.f90) -target_link_libraries(test_specfun_01 special_functions ) +add_executable(test_specfun_01 test_specfun_01.f90 ) -add_executable(test_specfun_02 test_specfun_02.f90) -target_link_libraries(test_specfun_02 special_functions ) +add_executable(test_specfun_02 test_specfun_02.f90 ) -add_executable(test_specfun_03 test_specfun_03.f90) -target_link_libraries(test_specfun_03 special_functions ) +add_executable(test_specfun_03 test_specfun_03.f90 ) -add_executable(test_specfun_04 test_specfun_04.f90) -target_link_libraries(test_specfun_04 special_functions diff_integ ) +add_executable(test_specfun_04 test_specfun_04.f90 ) -add_executable(test_specfun_05 test_specfun_05.f90) -target_link_libraries(test_specfun_05 special_functions diff_integ ) +add_executable(test_specfun_05 test_specfun_05.f90 ) -add_executable(test_specfun_06 test_specfun_06.f90) -target_link_libraries(test_specfun_06 special_functions ) +add_executable(test_specfun_06 test_specfun_06.f90 ) -add_executable(test_specfun_07 test_specfun_07.f90) -target_link_libraries(test_specfun_07 special_functions ) +add_executable(test_specfun_07 test_specfun_07.f90 ) -add_executable(test_specfun_08 test_specfun_08.f90) -target_link_libraries(test_specfun_08 special_functions ) +add_executable(test_specfun_08 test_specfun_08.f90 ) -add_executable(test_specfun_09 test_specfun_09.f90) -target_link_libraries(test_specfun_09 special_functions ) +add_executable(test_specfun_09 test_specfun_09.f90 ) -add_executable(test_specfun_10 test_specfun_10.f90) -target_link_libraries(test_specfun_10 special_functions ) +add_executable(test_specfun_10 test_specfun_10.f90 ) -add_executable(test_specfun_11 test_specfun_11.f90) -target_link_libraries(test_specfun_11 special_functions ) +add_executable(test_specfun_11 test_specfun_11.f90 ) -add_executable(test_specfun_12 test_specfun_12.f90) -target_link_libraries(test_specfun_12 special_functions ) +add_executable(test_specfun_12 test_specfun_12.f90 ) -add_executable(test_specfun_13 test_specfun_13.f90) -target_link_libraries(test_specfun_13 special_functions ) +add_executable(test_specfun_13 test_specfun_13.f90 ) -add_executable(test_splp_01 test_splp_01.f90 pass.f90) -target_link_libraries(test_splp_01 optimization approximation ) +add_executable(test_splp_01 test_splp_01.f90 pass.f90 ) -add_executable(test_splp_02 test_splp_02.f90 pass.f90) -target_link_libraries(test_splp_02 optimization approximation ) +add_executable(test_splp_02 test_splp_02.f90 pass.f90 ) -add_executable(test_wigner_01 test_wigner_01.f90) -target_link_libraries(test_wigner_01 special_functions ) +add_executable(test_wigner_01 test_wigner_01.f90 ) -add_executable(test_wigner_02 test_wigner_02.f90) -target_link_libraries(test_wigner_02 special_functions ) +add_executable(test_wigner_02 test_wigner_02.f90 ) add_library(get_argument OBJECT get_argument.f90) foreach( tst ${tests} ) STRING(REPLACE ".f90" "" exe ${tst}) + target_link_libraries(${exe} slatec ) target_link_libraries(${exe} $) add_test(NAME ${exe} COMMAND ./${exe} 2 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) set_tests_properties(${exe} PROPERTIES FAIL_REGULAR_EXPRESSION "[^a-z]Failed;FAILED") diff --git a/test/test_aaaaaa.f90 b/test/test_aaaaaa.f90 index 691de6e5..f26a574d 100644 --- a/test/test_aaaaaa.f90 +++ b/test/test_aaaaaa.f90 @@ -61,7 +61,7 @@ SUBROUTINE QC6A(Lun,Kprint,Ipass) ! DECLARE VARIABLES. ! CHARACTER(16) :: ver - CHARACTER(16), PARAMETER :: VERSN = ' 4.1' + CHARACTER(16), PARAMETER :: VERSN = ' 4.2' ! !* FIRST EXECUTABLE STATEMENT QC6A IF ( Kprint>=3 ) WRITE (Lun,99001)