Commit de89d3bc26ed4c38ede739bc49b741816a76e354

Authored by dmayerich
0 parents

Initial commit.

CMakeLists.txt 0 → 100644
  1 +++ a/CMakeLists.txt
  1 +# CMake project file for our t-matrix framework
  2 +cmake_minimum_required (VERSION 2.8)
  3 +project (ms-tmatrix)
  4 +enable_language(Fortran)
  5 +
  6 +find_package(PythonInterp REQUIRED)
  7 +
  8 +#find any non-standard modules
  9 +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}")
  10 +find_package(Matplotlib REQUIRED)
  11 +find_package(PyQt4)
  12 +
  13 +#copy all of the front-end scripts to the binary directory
  14 +file(GLOB PY_SCRIPTS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/*.py")
  15 +add_custom_target( frontend-scripts ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${PY_SCRIPTS})
  16 +foreach(PY_SCRIPT ${PY_SCRIPTS})
  17 + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PY_SCRIPT}
  18 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${PY_SCRIPT} ${CMAKE_CURRENT_BINARY_DIR}/${PY_SCRIPT}
  19 + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${PY_SCRIPTS}
  20 + )
  21 +endforeach(PY_SCRIPT)
  22 +
  23 +#copy default input data
  24 +configure_file(msinput.inp ${CMAKE_CURRENT_BINARY_DIR}/msinput.inp @ONLY)
  25 +configure_file(cube27.pos ${CMAKE_CURRENT_BINARY_DIR}/cube27.pos @ONLY)
  26 +configure_file(cyl3000fvp5.pos ${CMAKE_CURRENT_BINARY_DIR}/cyl3000fvp5.pos @ONLY)
  27 +configure_file(cylslab3000.pos ${CMAKE_CURRENT_BINARY_DIR}/cylslab3000.pos @ONLY)
  28 +configure_file(etaGold.txt ${CMAKE_CURRENT_BINARY_DIR}/etaGold.txt @ONLY)
  29 +configure_file(etaSilver.txt ${CMAKE_CURRENT_BINARY_DIR}/etaSilver.txt @ONLY)
  30 +configure_file(mstm_guiwindow.ui ${CMAKE_CURRENT_BINARY_DIR}/mstm_guiwindow.ui @ONLY)
  31 +
  32 +
  33 +#compile the FORTRAN code
  34 +file(GLOB SRC "mpidefs-serial.f90" "mstm-intrinsics.f90" "mstm-modules-v2.2.f90" "mstm-main-v2.2.f90")
  35 +add_executable(ms-tmatrix ${SRC})
0 36 \ No newline at end of file
... ...
FindMatplotlib.cmake 0 → 100644
  1 +++ a/FindMatplotlib.cmake
  1 +# - Find the matplotlib libraries
  2 +# This module finds IF matplotlib is installed, and sets the following variables
  3 +# indicating where it is.
  4 +#
  5 +# MATPLOTLIB_FOUND - was matplotlib found
  6 +# MATPLOTLIB_VERSION - the version of matplotlib found as a string
  7 +# MATPLOTLIB_VERSION_MAJOR - the major version number of matplotlib
  8 +# MATPLOTLIB_VERSION_MINOR - the minor version number of matplotlib
  9 +# MATPLOTLIB_VERSION_PATCH - the patch version number of matplotlib
  10 +# MATPLOTLIB_PATH_DIRS - path to the matplotlib include files
  11 +
  12 +IF(PYTHONINTERP_FOUND)
  13 + # Try to import matplotlib into Python interpreter. Python
  14 + # interpreter was found previously as required package, so
  15 + # don't take care about this.
  16 + execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c"
  17 + "import matplotlib as m; print(m.__version__); print(m.__path__[0]);"
  18 + RESULT_VARIABLE _MATPLOTLIB_SEARCH_SUCCESS
  19 + OUTPUT_VARIABLE _MATPLOTLIB_VALUES
  20 + ERROR_VARIABLE _MATPLOTLIB_ERROR_VALUE
  21 + OUTPUT_STRIP_TRAILING_WHITESPACE)
  22 +
  23 + IF(_MATPLOTLIB_SEARCH_SUCCESS MATCHES 0)
  24 + set(MATPLOTLIB_FOUND TRUE)
  25 +
  26 + # Convert the process output into a list
  27 + string(REGEX REPLACE ";" "\\\\;" _MATPLOTLIB_VALUES ${_MATPLOTLIB_VALUES})
  28 + string(REGEX REPLACE "\n" ";" _MATPLOTLIB_VALUES ${_MATPLOTLIB_VALUES})
  29 + list(GET _MATPLOTLIB_VALUES 0 MATPLOTLIB_VERSION)
  30 + list(GET _MATPLOTLIB_VALUES 1 MATPLOTLIB_PATH_DIRS)
  31 +
  32 + # Make sure all directory separators are '/'
  33 + string(REGEX REPLACE "\\\\" "/" MATPLOTLIB_PATH_DIRS ${MATPLOTLIB_PATH_DIRS})
  34 +
  35 + # Get the major and minor version numbers
  36 + string(REGEX REPLACE "\\." ";" _MATPLOTLIB_VERSION_LIST ${MATPLOTLIB_VERSION})
  37 + list(GET _MATPLOTLIB_VERSION_LIST 0 MATPLOTLIB_VERSION_MAJOR)
  38 + list(GET _MATPLOTLIB_VERSION_LIST 1 MATPLOTLIB_VERSION_MINOR)
  39 + list(GET _MATPLOTLIB_VERSION_LIST 2 MATPLOTLIB_VERSION_PATCH)
  40 + ELSE()
  41 + set(MATPLOTLIB_FOUND FALSE)
  42 + ENDIF()
  43 +ELSE()
  44 + set(MATPLOTLIB_FOUND FALSE)
  45 +ENDIF()
0 46 \ No newline at end of file
... ...
FindPyQt4.cmake 0 → 100644
  1 +++ a/FindPyQt4.cmake
  1 +# Find PyQt4
  2 +# ~~~~~~~~~~
  3 +# Copyright (c) 2007-2008, Simon Edwards <simon@simonzone.com>
  4 +# Redistribution and use is allowed according to the terms of the BSD license.
  5 +# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
  6 +#
  7 +# PyQt4 website: http://www.riverbankcomputing.co.uk/pyqt/index.php
  8 +#
  9 +# Find the installed version of PyQt4. FindPyQt4 should only be called after
  10 +# Python has been found.
  11 +#
  12 +# This file defines the following variables:
  13 +#
  14 +# PYQT4_VERSION - The version of PyQt4 found expressed as a 6 digit hex number
  15 +# suitable for comparision as a string
  16 +#
  17 +# PYQT4_VERSION_STR - The version of PyQt4 as a human readable string.
  18 +#
  19 +# PYQT4_VERSION_TAG - The PyQt version tag using by PyQt's sip files.
  20 +#
  21 +# PYQT4_SIP_DIR - The directory holding the PyQt4 .sip files.
  22 +#
  23 +# PYQT4_SIP_FLAGS - The SIP flags used to build PyQt.
  24 +
  25 +IF(EXISTS PYQT4_VERSION)
  26 + # Already in cache, be silent
  27 + SET(PYQT4_FOUND TRUE)
  28 +ELSE(EXISTS PYQT4_VERSION)
  29 +
  30 + FIND_FILE(_find_pyqt_py FindPyQt.py PATHS ${CMAKE_MODULE_PATH})
  31 +
  32 + EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${_find_pyqt_py} OUTPUT_VARIABLE pyqt_config)
  33 + IF(pyqt_config)
  34 + STRING(REGEX REPLACE "^pyqt_version:([^\n]+).*$" "\\1" PYQT4_VERSION ${pyqt_config})
  35 + STRING(REGEX REPLACE ".*\npyqt_version_str:([^\n]+).*$" "\\1" PYQT4_VERSION_STR ${pyqt_config})
  36 + STRING(REGEX REPLACE ".*\npyqt_version_tag:([^\n]+).*$" "\\1" PYQT4_VERSION_TAG ${pyqt_config})
  37 + STRING(REGEX REPLACE ".*\npyqt_sip_dir:([^\n]+).*$" "\\1" PYQT4_SIP_DIR ${pyqt_config})
  38 + STRING(REGEX REPLACE ".*\npyqt_sip_flags:([^\n]+).*$" "\\1" PYQT4_SIP_FLAGS ${pyqt_config})
  39 +
  40 + SET(PYQT4_FOUND TRUE)
  41 + ENDIF(pyqt_config)
  42 +
  43 + IF(PYQT4_FOUND)
  44 + IF(NOT PYQT4_FIND_QUIETLY)
  45 + MESSAGE(STATUS "Found PyQt4 version: ${PYQT4_VERSION_STR}")
  46 + ENDIF(NOT PYQT4_FIND_QUIETLY)
  47 + ELSE(PYQT4_FOUND)
  48 + IF(PYQT4_FIND_REQUIRED)
  49 + MESSAGE(FATAL_ERROR "Could not find Python")
  50 + ENDIF(PYQT4_FIND_REQUIRED)
  51 + ENDIF(PYQT4_FOUND)
  52 +
  53 +ENDIF(EXISTS PYQT4_VERSION)
... ...
README.md 0 → 100644
  1 +++ a/README.md
  1 +This software is designed to be used with CMake, so we recommend using it to build the application.
  2 +
  3 +The MSTM application requires a Fortran compiler and OpenMP.
  4 +
  5 +In addition, the GUI requires:
  6 +
  7 +Python -- http://www.python.org/
  8 +Qt4 (user interface library) -- http://qt-project.org/
  9 +PyQt4 (Python library for Qt4) -- http://wiki.python.org/moin/PyQt4
  10 +matlibplot (Plotting library for Python) -- http://matplotlib.org/
  11 +
  12 +These should be available easily through most Linux package managers and can be downloaded individually for Windows systems. If they are installed through Linux, CMake should be able to find them without any problems. Windows users may have to point CMake to the installed locations.
0 13 \ No newline at end of file
... ...
cube27.pos 0 → 100644
  1 +++ a/cube27.pos
  1 +1. -2. -2. -2. 1. 1.
  2 +1. -2. -2. 0 1. 1.
  3 +1. -2. -2. 2. 1. 1.
  4 +1. -2. 0 -2. 1. 1.
  5 +1. -2. 0 0 1. 1.
  6 +1. -2. 0 2. 1. 1.
  7 +1. -2. 2. -2. 1. 1.
  8 +1. -2. 2. 0 1. 1.
  9 +1. -2. 2. 2. 1. 1.
  10 +1. 0 -2. -2. 1. 1.
  11 +1. 0 -2. 0 1. 1.
  12 +1. 0 -2. 2. 1. 1.
  13 +1. 0 0 -2. 1. 1.
  14 +1. 0 0 0 1. 1.
  15 +1. 0 0 2. 1. 1.
  16 +1. 0 2. -2. 1. 1.
  17 +1. 0 2. 0 1. 1.
  18 +1. 0 2. 2. 1. 1.
  19 +1. 2. -2. -2. 1. 1.
  20 +1. 2. -2. 0 1. 1.
  21 +1. 2. -2. 2. 1. 1.
  22 +1. 2. 0 -2. 1. 1.
  23 +1. 2. 0 0 1. 1.
  24 +1. 2. 0 2. 1. 1.
  25 +1. 2. 2. -2. 1. 1.
  26 +1. 2. 2. 0 1. 1.
  27 +1. 2. 2. 2. 1. 1.
... ...
cyl3000fvp5.pos 0 → 100644
  1 +++ a/cyl3000fvp5.pos
  1 + 1. -0.12965E+02 -0.93624E+01 -0.99941E+01
  2 + 1. 0.85070E+01 0.16922E+02 -0.99904E+01
  3 + 1. 0.35559E+01 0.13697E+02 -0.99814E+01
  4 + 1. -0.21028E+01 -0.40664E+01 -0.99752E+01
  5 + 1. 0.16388E+02 0.24331E+01 -0.99732E+01
  6 + 1. 0.12191E+02 -0.53233E+01 -0.99640E+01
  7 + 1. -0.63155E+01 0.54762E+00 -0.99566E+01
  8 + 1. -0.16808E+02 -0.66680E+01 -0.99510E+01
  9 + 1. -0.38971E+01 0.16950E+02 -0.99405E+01
  10 + 1. 0.14536E+02 -0.75087E+00 -0.99361E+01
  11 + 1. 0.10011E+02 0.12734E+02 -0.99304E+01
  12 + 1. 0.19577E+02 0.19602E+01 -0.99235E+01
  13 + 1. -0.38874E+01 0.66963E+01 -0.99166E+01
  14 + 1. -0.16619E+02 0.77769E+01 -0.99108E+01
  15 + 1. -0.19262E+01 0.29369E+00 -0.99008E+01
  16 + 1. -0.45367E+01 -0.14913E+02 -0.98994E+01
  17 + 1. -0.76987E+01 -0.63255E+01 -0.98870E+01
  18 + 1. -0.69447E+00 -0.74946E+01 -0.98822E+01
  19 + 1. -0.19576E+02 0.63091E+00 -0.98789E+01
  20 + 1. 0.12397E+02 0.15573E+02 -0.98702E+01
  21 + 1. -0.15526E+02 0.44510E+01 -0.98611E+01
  22 + 1. 0.43635E+01 0.11015E+02 -0.98534E+01
  23 + 1. -0.88401E+01 0.44805E+01 -0.98514E+01
  24 + 1. 0.11902E+02 -0.15124E+02 -0.98434E+01
  25 + 1. 0.14525E+02 0.12588E+02 -0.98395E+01
  26 + 1. -0.11177E+02 0.13433E+02 -0.98273E+01
  27 + 1. -0.12716E+00 0.15386E+02 -0.98207E+01
  28 + 1. 0.67438E+01 -0.67611E+01 -0.98138E+01
  29 + 1. -0.96134E+01 0.15372E+02 -0.98114E+01
  30 + 1. -0.12177E+02 -0.24229E+01 -0.98009E+01
  31 + 1. -0.12666E+02 -0.48327E+01 -0.97974E+01
  32 + 1. 0.58753E+01 -0.27347E+01 -0.97919E+01
  33 + 1. -0.15659E+02 -0.21863E+01 -0.97862E+01
  34 + 1. 0.71397E+01 -0.10003E+02 -0.97758E+01
  35 + 1. -0.13601E+00 0.55659E+01 -0.97677E+01
  36 + 1. -0.77498E+01 0.85131E+01 -0.97647E+01
  37 + 1. -0.98243E+01 0.10896E+02 -0.97566E+01
  38 + 1. 0.70499E+01 -0.15910E+02 -0.97477E+01
  39 + 1. -0.15316E+01 -0.12234E+02 -0.97461E+01
  40 + 1. 0.16559E+02 0.87679E+01 -0.97363E+01
  41 + 1. 0.13209E+02 0.39911E+01 -0.97309E+01
  42 + 1. 0.46898E+01 -0.15977E+02 -0.97266E+01
  43 + 1. -0.11894E+02 0.63805E+00 -0.97197E+01
  44 + 1. -0.10899E+02 -0.10216E+02 -0.97107E+01
  45 + 1. 0.15537E+01 -0.12742E+02 -0.97040E+01
  46 + 1. 0.95296E+01 -0.13359E+02 -0.96995E+01
  47 + 1. 0.14894E+02 -0.46716E+01 -0.96904E+01
  48 + 1. 0.41886E+01 -0.98142E+01 -0.96866E+01
  49 + 1. 0.15893E+02 -0.93592E+01 -0.96734E+01
  50 + 1. 0.13701E+02 -0.72705E+01 -0.96695E+01
  51 + 1. -0.84370E+01 -0.16242E+02 -0.96618E+01
  52 + 1. -0.57945E+01 0.16151E+02 -0.96545E+01
  53 + 1. 0.53057E+01 -0.13966E+02 -0.96501E+01
  54 + 1. 0.12104E+02 0.12289E+02 -0.96464E+01
  55 + 1. 0.90752E+01 0.14213E+01 -0.96377E+01
  56 + 1. 0.41127E+00 -0.18735E+02 -0.96332E+01
  57 + 1. -0.62457E+01 0.58332E+01 -0.96266E+01
  58 + 1. -0.78919E+01 0.24838E+01 -0.96148E+01
  59 + 1. 0.53353E+01 0.19207E+02 -0.96111E+01
  60 + 1. 0.26592E+00 -0.66718E+00 -0.96051E+01
  61 + 1. -0.42934E+01 0.95216E+01 -0.95991E+01
  62 + 1. -0.21728E+01 0.53178E+01 -0.95897E+01
  63 + 1. -0.19033E+02 0.60782E+01 -0.95817E+01
  64 + 1. -0.56455E+01 -0.60247E+01 -0.95739E+01
  65 + 1. 0.37324E+01 0.72618E+00 -0.95696E+01
  66 + 1. -0.70891E+01 -0.17799E+02 -0.95655E+01
  67 + 1. 0.15303E+02 -0.12749E+02 -0.95552E+01
  68 + 1. -0.68308E+01 0.14032E+02 -0.95518E+01
  69 + 1. -0.17202E+01 0.84350E+01 -0.95446E+01
  70 + 1. 0.23021E+01 -0.47083E+01 -0.95348E+01
  71 + 1. -0.61204E+00 0.12671E+02 -0.95307E+01
  72 + 1. 0.36889E+01 0.48344E+01 -0.95215E+01
  73 + 1. 0.14339E+02 0.70811E+01 -0.95167E+01
  74 + 1. -0.55337E+01 -0.21995E+01 -0.95100E+01
  75 + 1. 0.16382E+02 -0.32772E+01 -0.95061E+01
  76 + 1. -0.17172E+01 -0.17904E+02 -0.94970E+01
  77 + 1. -0.17184E+02 -0.42935E+01 -0.94907E+01
  78 + 1. 0.45522E+01 -0.45899E+01 -0.94828E+01
  79 + 1. 0.12125E+02 -0.10435E+02 -0.94743E+01
  80 + 1. 0.15970E+02 0.10790E+02 -0.94729E+01
  81 + 1. 0.16473E+02 0.17185E+00 -0.94630E+01
  82 + 1. 0.12650E+02 -0.18238E+01 -0.94545E+01
  83 + 1. -0.15189E+02 -0.81921E+01 -0.94471E+01
  84 + 1. -0.17909E+02 -0.85967E+01 -0.94443E+01
  85 + 1. 0.94085E+01 -0.17749E+01 -0.94379E+01
  86 + 1. 0.86253E+01 -0.61852E+01 -0.94295E+01
  87 + 1. 0.18235E+02 0.75681E+01 -0.94237E+01
  88 + 1. -0.12852E+02 -0.74127E+01 -0.94154E+01
  89 + 1. -0.12068E+02 0.72710E+01 -0.94098E+01
  90 + 1. -0.82542E+01 -0.10638E+02 -0.94066E+01
  91 + 1. 0.10740E+02 0.25815E+01 -0.93953E+01
  92 + 1. 0.58269E+01 -0.61338E-01 -0.93893E+01
  93 + 1. -0.59887E+01 0.31064E+01 -0.93820E+01
  94 + 1. -0.16136E+02 0.11566E+01 -0.93789E+01
  95 + 1. 0.12673E+02 0.93274E+01 -0.93671E+01
  96 + 1. -0.76655E+01 -0.23670E+01 -0.93602E+01
  97 + 1. 0.17239E+02 0.43301E+01 -0.93536E+01
  98 + 1. -0.14090E+02 0.86260E+00 -0.93523E+01
  99 + 1. -0.36694E+01 -0.13088E+02 -0.93425E+01
  100 + 1. -0.15033E+02 0.12883E+02 -0.93364E+01
  101 + 1. 0.54747E+01 0.73678E+01 -0.93273E+01
  102 + 1. 0.11184E+02 -0.70293E+01 -0.93225E+01
  103 + 1. -0.62900E+01 0.10415E+02 -0.93190E+01
  104 + 1. -0.61622E+00 -0.27437E+01 -0.93087E+01
  105 + 1. 0.16535E+01 0.13153E+02 -0.93066E+01
  106 + 1. 0.72539E+00 0.22450E+01 -0.92948E+01
  107 + 1. 0.14297E+01 0.67372E+01 -0.92933E+01
  108 + 1. 0.10418E+02 -0.11470E+02 -0.92841E+01
  109 + 1. 0.28941E+01 -0.27008E+01 -0.92780E+01
  110 + 1. -0.73668E+01 -0.87661E+01 -0.92721E+01
  111 + 1. 0.13623E+02 0.12116E+01 -0.92655E+01
  112 + 1. 0.66149E+01 0.12475E+02 -0.92598E+01
  113 + 1. -0.12678E+02 0.15442E+02 -0.92524E+01
  114 + 1. -0.28672E+01 0.33557E+01 -0.92443E+01
  115 + 1. -0.12854E+02 -0.14593E+02 -0.92353E+01
  116 + 1. -0.49908E+01 -0.17075E+02 -0.92329E+01
  117 + 1. -0.14031E+02 -0.33746E+01 -0.92211E+01
  118 + 1. 0.15814E+01 0.10803E+02 -0.92195E+01
  119 + 1. 0.98881E+01 -0.44901E+01 -0.92113E+01
  120 + 1. 0.86778E+01 0.10863E+02 -0.92020E+01
  121 + 1. 0.58363E+01 0.40170E+01 -0.91975E+01
  122 + 1. -0.41879E+01 -0.73750E+01 -0.91898E+01
  123 + 1. 0.14852E+02 0.50703E+01 -0.91853E+01
  124 + 1. -0.40961E+01 0.19042E+02 -0.91773E+01
  125 + 1. -0.51800E+00 -0.96622E+01 -0.91686E+01
  126 + 1. 0.14617E+02 -0.10887E+02 -0.91613E+01
  127 + 1. 0.11199E+01 -0.63856E+01 -0.91547E+01
  128 + 1. -0.98372E+01 0.21105E+01 -0.91522E+01
  129 + 1. -0.10287E+02 -0.51245E+00 -0.91401E+01
  130 + 1. 0.67853E+01 -0.45976E+01 -0.91395E+01
  131 + 1. 0.37715E+01 0.15622E+02 -0.91325E+01
  132 + 1. 0.76988E+01 0.88123E+01 -0.91226E+01
  133 + 1. -0.41771E+01 0.14191E+02 -0.91157E+01
  134 + 1. 0.98434E+01 -0.88095E+01 -0.91124E+01
  135 + 1. -0.13552E+02 0.38767E+01 -0.91048E+01
  136 + 1. -0.10001E+02 -0.15063E+02 -0.90977E+01
  137 + 1. 0.24919E+01 -0.15923E+02 -0.90909E+01
  138 + 1. -0.96944E+01 -0.77051E+01 -0.90826E+01
  139 + 1. -0.75942E+01 0.17006E+02 -0.90744E+01
  140 + 1. -0.86421E+01 -0.46246E+01 -0.90670E+01
  141 + 1. -0.20268E+01 0.14451E+02 -0.90622E+01
  142 + 1. 0.25649E+01 0.18175E+02 -0.90562E+01
  143 + 1. -0.10462E+02 0.54579E+01 -0.90499E+01
  144 + 1. -0.15684E+02 -0.11313E+02 -0.90453E+01
  145 + 1. 0.13924E+02 -0.14125E+02 -0.90334E+01
  146 + 1. 0.10806E+02 -0.25169E+00 -0.90293E+01
  147 + 1. 0.86059E+01 -0.17910E+02 -0.90222E+01
  148 + 1. 0.12093E+02 0.58994E+01 -0.90139E+01
  149 + 1. -0.35407E+01 -0.58539E+00 -0.90115E+01
  150 + 1. 0.60208E+01 0.99562E+01 -0.90001E+01
  151 + 1. 0.30316E+01 0.88095E+01 -0.89944E+01
  152 + 1. -0.17377E+02 0.47615E+01 -0.89920E+01
  153 + 1. 0.43469E+01 -0.76060E+01 -0.89841E+01
  154 + 1. -0.10709E+02 -0.52675E+01 -0.89795E+01
  155 + 1. -0.11972E+02 0.11564E+02 -0.89686E+01
  156 + 1. -0.81731E+00 -0.54869E+01 -0.89629E+01
  157 + 1. -0.14050E+02 0.65784E+01 -0.89535E+01
  158 + 1. 0.19905E+02 -0.96167E+00 -0.89508E+01
  159 + 1. -0.12822E+02 -0.11130E+02 -0.89458E+01
  160 + 1. 0.12430E+00 0.17839E+02 -0.89367E+01
  161 + 1. 0.24154E+01 -0.10731E+02 -0.89331E+01
  162 + 1. -0.44862E+01 -0.40489E+01 -0.89234E+01
  163 + 1. -0.17380E+02 -0.16030E+01 -0.89143E+01
  164 + 1. -0.15379E+02 -0.55455E+01 -0.89133E+01
  165 + 1. -0.44002E+01 0.15541E+01 -0.89002E+01
  166 + 1. -0.40603E+01 0.11832E+02 -0.88936E+01
  167 + 1. -0.21719E+01 0.10892E+02 -0.88921E+01
  168 + 1. 0.19628E+02 -0.33844E+01 -0.88821E+01
  169 + 1. -0.19330E+02 -0.46178E+01 -0.88742E+01
  170 + 1. 0.16926E+02 -0.54990E+01 -0.88728E+01
  171 + 1. -0.10048E+01 -0.16082E+02 -0.88604E+01
  172 + 1. 0.81468E+01 0.48332E+01 -0.88569E+01
  173 + 1. -0.16978E+02 0.96853E+01 -0.88506E+01
  174 + 1. -0.13778E+02 0.91493E+01 -0.88465E+01
  175 + 1. 0.17832E+02 -0.88284E+01 -0.88388E+01
  176 + 1. -0.24500E+01 -0.10694E+02 -0.88302E+01
  177 + 1. 0.14492E+02 -0.27149E+01 -0.88246E+01
  178 + 1. -0.75461E+01 0.12232E+02 -0.88145E+01
  179 + 1. -0.71187E+01 -0.12235E+02 -0.88100E+01
  180 + 1. 0.74122E+01 -0.14045E+02 -0.88035E+01
  181 + 1. -0.63399E+01 -0.15118E+02 -0.87934E+01
  182 + 1. 0.24190E+01 -0.18373E+02 -0.87884E+01
  183 + 1. -0.11234E+02 0.35494E+01 -0.87845E+01
  184 + 1. -0.81761E+01 0.67723E+01 -0.87750E+01
  185 + 1. 0.91350E+01 0.74105E+01 -0.87696E+01
  186 + 1. 0.38679E+01 0.28890E+01 -0.87607E+01
  187 + 1. -0.94179E+01 0.92015E+01 -0.87588E+01
  188 + 1. 0.68910E+01 0.17163E+02 -0.87521E+01
  189 + 1. 0.32649E+01 -0.13943E+02 -0.87441E+01
  190 + 1. 0.11483E+02 -0.13379E+02 -0.87378E+01
  191 + 1. 0.20543E+01 -0.90770E+00 -0.87302E+01
  192 + 1. 0.13476E+02 0.14071E+02 -0.87201E+01
  193 + 1. -0.19466E+01 0.17580E+02 -0.87185E+01
  194 + 1. 0.10189E+02 -0.15122E+02 -0.87080E+01
  195 + 1. 0.87027E+01 0.14008E+02 -0.87056E+01
  196 + 1. -0.17640E+02 0.26597E+01 -0.86973E+01
  197 + 1. 0.11674E+02 -0.36610E+01 -0.86890E+01
  198 + 1. 0.13900E+02 0.10811E+02 -0.86828E+01
  199 + 1. 0.18278E+02 0.88575E+00 -0.86761E+01
  200 + 1. -0.43653E+01 0.46751E+01 -0.86674E+01
  201 + 1. 0.76140E+01 -0.25575E+01 -0.86665E+01
  202 + 1. -0.14197E+02 0.11117E+02 -0.86585E+01
  203 + 1. 0.34402E-01 0.89502E+01 -0.86482E+01
  204 + 1. 0.11197E+02 0.14086E+02 -0.86412E+01
  205 + 1. -0.21110E+01 -0.14193E+02 -0.86352E+01
  206 + 1. 0.10357E+02 0.92557E+01 -0.86326E+01
  207 + 1. 0.47724E+01 -0.17669E+02 -0.86237E+01
  208 + 1. 0.13358E+01 0.47061E+01 -0.86172E+01
  209 + 1. -0.50046E+01 -0.10772E+02 -0.86078E+01
  210 + 1. -0.41061E+01 -0.19181E+02 -0.86046E+01
  211 + 1. -0.89085E+01 -0.13224E+02 -0.85938E+01
  212 + 1. 0.79173E+01 -0.11550E+02 -0.85898E+01
  213 + 1. 0.18881E+02 -0.62745E+01 -0.85804E+01
  214 + 1. 0.14976E+02 0.30291E+01 -0.85790E+01
  215 + 1. 0.14031E+01 0.15042E+02 -0.85668E+01
  216 + 1. -0.17295E+01 -0.19929E+02 -0.85630E+01
  217 + 1. 0.18424E+02 0.28866E+01 -0.85596E+01
  218 + 1. -0.10665E+02 -0.11917E+02 -0.85495E+01
  219 + 1. 0.73102E+01 -0.83652E+01 -0.85461E+01
  220 + 1. 0.99508E+01 0.17196E+02 -0.85381E+01
  221 + 1. 0.60374E+01 0.15201E+02 -0.85326E+01
  222 + 1. 0.72906E+01 0.10016E+01 -0.85266E+01
  223 + 1. -0.10037E+02 -0.16977E+02 -0.85141E+01
  224 + 1. -0.52988E+01 0.74435E+01 -0.85092E+01
  225 + 1. -0.95700E+01 0.13332E+02 -0.85039E+01
  226 + 1. 0.17484E+00 -0.11879E+02 -0.84936E+01
  227 + 1. 0.71191E+00 -0.17101E+02 -0.84913E+01
  228 + 1. -0.21364E+01 -0.75803E+01 -0.84818E+01
  229 + 1. 0.12778E+02 -0.88022E+01 -0.84755E+01
  230 + 1. 0.48148E+01 -0.11941E+02 -0.84729E+01
  231 + 1. -0.67166E+01 -0.45744E+01 -0.84640E+01
  232 + 1. -0.17708E+01 0.17423E+01 -0.84574E+01
  233 + 1. -0.10138E+02 0.17147E+02 -0.84521E+01
  234 + 1. -0.11992E+01 0.19598E+02 -0.84406E+01
  235 + 1. -0.15498E+02 -0.50427E+00 -0.84336E+01
  236 + 1. -0.19765E+02 0.21570E+01 -0.84317E+01
  237 + 1. 0.32091E+00 -0.14286E+02 -0.84239E+01
  238 + 1. 0.13132E+01 -0.91410E+01 -0.84167E+01
  239 + 1. 0.18336E+02 0.57850E+01 -0.84122E+01
  240 + 1. 0.17863E+02 -0.11144E+01 -0.84048E+01
  241 + 1. -0.73414E+01 0.45137E+01 -0.83966E+01
  242 + 1. -0.83738E+01 0.34437E+00 -0.83894E+01
  243 + 1. -0.17991E+02 0.75537E+01 -0.83850E+01
  244 + 1. -0.60142E+01 0.18592E+02 -0.83777E+01
  245 + 1. -0.12787E+02 0.21140E+01 -0.83712E+01
  246 + 1. 0.71931E+01 0.66350E+01 -0.83607E+01
  247 + 1. -0.18038E+02 -0.63271E+01 -0.83600E+01
  248 + 1. 0.47326E+01 -0.19394E+01 -0.83493E+01
  249 + 1. -0.12906E+02 0.13541E+02 -0.83435E+01
  250 + 1. -0.17975E+02 0.50683E+00 -0.83362E+01
  251 + 1. -0.15205E+01 -0.95566E+00 -0.83282E+01
  252 + 1. 0.47613E+01 0.13671E+02 -0.83211E+01
  253 + 1. 0.10373E+01 -0.34373E+01 -0.83177E+01
  254 + 1. -0.25973E+01 -0.26473E+01 -0.83108E+01
  255 + 1. 0.15028E+02 -0.61197E+01 -0.83042E+01
  256 + 1. -0.81094E+01 0.15021E+02 -0.82971E+01
  257 + 1. -0.31900E+01 -0.55276E+01 -0.82917E+01
  258 + 1. 0.15112E+02 0.89344E+01 -0.82820E+01
  259 + 1. -0.12272E+01 0.41319E+01 -0.82782E+01
  260 + 1. -0.54286E+01 -0.13304E+02 -0.82709E+01
  261 + 1. -0.95435E+01 -0.95597E+01 -0.82656E+01
  262 + 1. 0.10279E+02 0.42993E+01 -0.82551E+01
  263 + 1. -0.27258E+00 0.11021E+02 -0.82481E+01
  264 + 1. -0.19925E+01 0.69056E+01 -0.82402E+01
  265 + 1. 0.16305E+02 0.62390E+01 -0.82390E+01
  266 + 1. 0.57555E+01 -0.98817E+01 -0.82330E+01
  267 + 1. -0.11748E+02 0.88725E+01 -0.82232E+01
  268 + 1. 0.10715E+02 0.11590E+02 -0.82188E+01
  269 + 1. -0.12884E+02 -0.68941E+00 -0.82093E+01
  270 + 1. 0.16143E+02 -0.78386E+01 -0.82054E+01
  271 + 1. 0.35767E+01 0.11985E+02 -0.81995E+01
  272 + 1. 0.11890E+02 0.78088E+01 -0.81870E+01
  273 + 1. -0.13700E+02 -0.87684E+01 -0.81834E+01
  274 + 1. -0.15391E+02 0.33080E+01 -0.81776E+01
  275 + 1. 0.15731E+01 0.19760E+02 -0.81675E+01
  276 + 1. -0.56295E+01 0.13097E+02 -0.81641E+01
  277 + 1. 0.11850E+02 0.12920E+01 -0.81592E+01
  278 + 1. 0.45174E+01 0.18015E+02 -0.81477E+01
  279 + 1. -0.16027E+02 0.67457E+01 -0.81435E+01
  280 + 1. 0.15659E+02 0.12324E+02 -0.81395E+01
  281 + 1. -0.65313E+01 0.15638E+01 -0.81316E+01
  282 + 1. -0.10210E+02 -0.34459E+01 -0.81234E+01
  283 + 1. -0.19825E+02 -0.45991E+00 -0.81136E+01
  284 + 1. -0.44308E+01 0.16088E+02 -0.81129E+01
  285 + 1. -0.32345E+01 -0.15956E+02 -0.81051E+01
  286 + 1. -0.15917E+02 -0.35863E+01 -0.80970E+01
  287 + 1. -0.65927E+01 -0.70832E+00 -0.80916E+01
  288 + 1. -0.14298E+02 -0.12614E+02 -0.80852E+01
  289 + 1. -0.12309E+02 -0.34906E+01 -0.80769E+01
  290 + 1. -0.10082E+02 0.72194E+01 -0.80688E+01
  291 + 1. 0.54895E+01 -0.60893E+01 -0.80613E+01
  292 + 1. -0.11658E+02 -0.84580E+01 -0.80541E+01
  293 + 1. 0.17670E+02 0.91994E+01 -0.80503E+01
  294 + 1. 0.29389E+01 0.60787E+01 -0.80457E+01
  295 + 1. 0.91241E+01 0.26722E+01 -0.80341E+01
  296 + 1. -0.21673E+01 0.12741E+02 -0.80301E+01
  297 + 1. 0.13740E+02 -0.45909E+01 -0.80218E+01
  298 + 1. -0.12509E+02 0.52973E+01 -0.80165E+01
  299 + 1. 0.30955E+01 -0.60832E+01 -0.80081E+01
  300 + 1. 0.82690E+01 0.15886E+02 -0.80002E+01
  301 + 1. 0.59213E+00 0.68252E+00 -0.80000E+01
  302 + 1. -0.18988E+02 -0.27237E+01 -0.79930E+01
  303 + 1. -0.75414E+01 0.94685E+01 -0.79849E+01
  304 + 1. -0.75211E+01 -0.71355E+01 -0.79793E+01
  305 + 1. 0.14225E+02 -0.48232E+00 -0.79673E+01
  306 + 1. -0.28471E+01 0.90489E+01 -0.79664E+01
  307 + 1. -0.54978E+01 -0.85248E+01 -0.79537E+01
  308 + 1. -0.17188E+02 -0.10231E+02 -0.79495E+01
  309 + 1. 0.16396E+02 -0.10243E+02 -0.79465E+01
  310 + 1. -0.19758E+00 -0.78737E+01 -0.79378E+01
  311 + 1. -0.11727E+02 -0.13503E+02 -0.79333E+01
  312 + 1. 0.56761E+01 0.24035E+01 -0.79219E+01
  313 + 1. 0.64636E+00 -0.19921E+02 -0.79179E+01
  314 + 1. -0.10563E+02 0.15156E+02 -0.79072E+01
  315 + 1. 0.51727E+01 -0.14981E+02 -0.79000E+01
  316 + 1. -0.19160E+02 0.49698E+01 -0.78960E+01
  317 + 1. 0.95624E+01 -0.71136E+01 -0.78885E+01
  318 + 1. 0.11649E+02 -0.55853E+01 -0.78820E+01
  319 + 1. -0.11812E+02 -0.16071E+02 -0.78740E+01
  320 + 1. 0.85457E+01 -0.16173E+02 -0.78721E+01
  321 + 1. 0.69381E+01 -0.17864E+02 -0.78628E+01
  322 + 1. -0.89174E+01 -0.15112E+01 -0.78543E+01
  323 + 1. 0.11940E+02 -0.15726E+02 -0.78531E+01
  324 + 1. 0.12399E+02 0.40743E+01 -0.78420E+01
  325 + 1. 0.30231E+00 0.13369E+02 -0.78344E+01
  326 + 1. 0.35252E+01 -0.92540E+01 -0.78302E+01
  327 + 1. -0.13121E+02 -0.58179E+01 -0.78235E+01
  328 + 1. 0.12933E+02 -0.12024E+02 -0.78168E+01
  329 + 1. 0.83967E+01 -0.50084E+01 -0.78080E+01
  330 + 1. 0.51216E+01 0.56930E+01 -0.78004E+01
  331 + 1. -0.32167E+00 0.16254E+02 -0.77956E+01
  332 + 1. -0.57685E+01 -0.18292E+02 -0.77920E+01
  333 + 1. -0.16066E+02 0.11440E+02 -0.77829E+01
  334 + 1. 0.10109E+02 -0.26874E+01 -0.77743E+01
  335 + 1. 0.86523E+01 -0.71006E+00 -0.77687E+01
  336 + 1. -0.79867E+01 -0.17475E+02 -0.77603E+01
  337 + 1. -0.16472E+02 -0.79900E+01 -0.77593E+01
  338 + 1. 0.17435E+02 -0.30463E+01 -0.77484E+01
  339 + 1. -0.11400E+02 0.68375E+00 -0.77414E+01
  340 + 1. -0.26559E+01 -0.12377E+02 -0.77374E+01
  341 + 1. -0.88018E+01 0.11060E+02 -0.77304E+01
  342 + 1. 0.48016E+01 0.85515E+01 -0.77261E+01
  343 + 1. 0.16781E+02 0.18208E+01 -0.77185E+01
  344 + 1. 0.28977E+01 0.11469E+01 -0.77116E+01
  345 + 1. 0.96957E+01 -0.12720E+02 -0.77030E+01
  346 + 1. 0.30617E+01 -0.40592E+01 -0.76942E+01
  347 + 1. 0.11438E+02 0.15844E+02 -0.76933E+01
  348 + 1. -0.77825E+00 -0.18263E+02 -0.76842E+01
  349 + 1. -0.87829E+01 0.31137E+01 -0.76796E+01
  350 + 1. 0.96070E+01 -0.10399E+02 -0.76730E+01
  351 + 1. -0.54990E+01 0.94154E+01 -0.76617E+01
  352 + 1. 0.72023E+01 0.11203E+02 -0.76545E+01
  353 + 1. 0.15662E+02 -0.40166E+01 -0.76507E+01
  354 + 1. 0.39304E+01 -0.19317E+02 -0.76417E+01
  355 + 1. 0.13908E+02 0.63981E+01 -0.76359E+01
  356 + 1. -0.51401E+01 -0.60315E+01 -0.76310E+01
  357 + 1. -0.35040E+01 -0.93864E+01 -0.76214E+01
  358 + 1. 0.47579E+01 0.31293E+00 -0.76192E+01
  359 + 1. -0.57072E+01 -0.29198E+01 -0.76095E+01
  360 + 1. 0.77312E-01 0.67751E+01 -0.76038E+01
  361 + 1. 0.56242E+01 -0.36166E+01 -0.75952E+01
  362 + 1. 0.24741E+01 0.16734E+02 -0.75922E+01
  363 + 1. 0.17754E+01 -0.12663E+02 -0.75861E+01
  364 + 1. 0.12730E+02 0.12139E+02 -0.75765E+01
  365 + 1. -0.70928E+01 -0.10197E+02 -0.75695E+01
  366 + 1. -0.14810E+02 0.52121E+01 -0.75661E+01
  367 + 1. -0.14854E+02 0.14601E+01 -0.75559E+01
  368 + 1. -0.79079E+01 -0.15236E+02 -0.75476E+01
  369 + 1. -0.90033E+01 -0.11345E+02 -0.75422E+01
  370 + 1. 0.14494E+01 0.29337E+01 -0.75373E+01
  371 + 1. -0.61453E+01 0.14932E+02 -0.75302E+01
  372 + 1. -0.85088E+01 0.17947E+02 -0.75265E+01
  373 + 1. -0.40522E+01 0.29621E+01 -0.75196E+01
  374 + 1. -0.29905E+01 -0.17903E+02 -0.75073E+01
  375 + 1. -0.59610E+01 0.57769E+01 -0.75033E+01
  376 + 1. -0.10748E+02 -0.66328E+01 -0.74986E+01
  377 + 1. -0.30780E+01 0.19424E+02 -0.74885E+01
  378 + 1. -0.82561E+00 -0.37629E+01 -0.74842E+01
  379 + 1. 0.15902E+02 -0.15405E+01 -0.74762E+01
  380 + 1. 0.49219E+01 0.10662E+02 -0.74696E+01
  381 + 1. 0.29467E+01 0.14108E+02 -0.74624E+01
  382 + 1. 0.66231E+01 -0.12606E+01 -0.74562E+01
  383 + 1. 0.34481E+01 0.19649E+02 -0.74529E+01
  384 + 1. 0.13355E+02 -0.70547E+01 -0.74448E+01
  385 + 1. 0.15291E+02 -0.12379E+02 -0.74369E+01
  386 + 1. 0.11597E+02 -0.10140E+02 -0.74285E+01
  387 + 1. 0.13855E+02 -0.10250E+02 -0.74207E+01
  388 + 1. 0.19794E+02 0.16951E+01 -0.74196E+01
  389 + 1. 0.11957E+02 0.98078E+01 -0.74084E+01
  390 + 1. 0.16561E+02 0.39446E+01 -0.74042E+01
  391 + 1. -0.17607E+02 -0.45296E+01 -0.73955E+01
  392 + 1. -0.14083E+02 -0.21434E+01 -0.73874E+01
  393 + 1. 0.13119E+02 -0.21317E+01 -0.73867E+01
  394 + 1. 0.16622E+01 0.80371E+01 -0.73758E+01
  395 + 1. 0.89610E+01 0.12270E+02 -0.73686E+01
  396 + 1. -0.46671E+01 -0.10028E+01 -0.73636E+01
  397 + 1. -0.28338E+01 0.52586E+01 -0.73576E+01
  398 + 1. -0.10632E+02 0.11807E+02 -0.73527E+01
  399 + 1. 0.36796E+01 -0.16442E+02 -0.73459E+01
  400 + 1. 0.87508E+01 0.95956E+01 -0.73362E+01
  401 + 1. -0.11241E+02 -0.17827E+01 -0.73272E+01
  402 + 1. -0.23384E+01 0.15469E+02 -0.73253E+01
  403 + 1. 0.10443E+01 -0.52727E+01 -0.73138E+01
  404 + 1. 0.13876E+02 0.17674E+01 -0.73091E+01
  405 + 1. 0.20744E+01 0.10405E+02 -0.73018E+01
  406 + 1. 0.19372E+02 0.42051E+01 -0.72979E+01
  407 + 1. 0.18991E+02 -0.47495E+01 -0.72893E+01
  408 + 1. -0.11448E+01 -0.10682E+02 -0.72832E+01
  409 + 1. 0.63650E+01 0.18639E+02 -0.72799E+01
  410 + 1. -0.14079E+02 -0.10547E+02 -0.72718E+01
  411 + 1. 0.59831E+01 -0.13149E+02 -0.72635E+01
  412 + 1. 0.11475E+02 -0.78694E+01 -0.72589E+01
  413 + 1. -0.12954E+02 0.74808E+01 -0.72526E+01
  414 + 1. -0.55913E+01 -0.16337E+02 -0.72426E+01
  415 + 1. -0.62964E+01 0.11365E+02 -0.72386E+01
  416 + 1. 0.86038E+01 0.17923E+02 -0.72317E+01
  417 + 1. 0.22462E+01 -0.14816E+02 -0.72205E+01
  418 + 1. -0.15475E+02 0.84730E+01 -0.72183E+01
  419 + 1. 0.73120E+01 0.13640E+02 -0.72105E+01
  420 + 1. -0.36663E+01 0.72712E+01 -0.72015E+01
  421 + 1. 0.94555E+01 0.60158E+01 -0.71978E+01
  422 + 1. 0.32368E-01 -0.16011E+01 -0.71870E+01
  423 + 1. -0.14881E+02 0.13005E+02 -0.71858E+01
  424 + 1. 0.18271E+02 -0.75849E+01 -0.71761E+01
  425 + 1. 0.98494E+01 0.14623E+02 -0.71733E+01
  426 + 1. -0.12928E+02 0.10266E+02 -0.71607E+01
  427 + 1. 0.35868E+01 0.41848E+01 -0.71539E+01
  428 + 1. -0.69858E+01 0.77292E+01 -0.71512E+01
  429 + 1. -0.17542E+02 0.39414E+01 -0.71460E+01
  430 + 1. 0.67259E+01 0.43597E+01 -0.71349E+01
  431 + 1. 0.16402E+02 0.10708E+02 -0.71331E+01
  432 + 1. 0.31087E+01 -0.20278E+01 -0.71248E+01
  433 + 1. -0.88037E+01 0.51148E+01 -0.71173E+01
  434 + 1. -0.28238E+01 -0.18749E-01 -0.71106E+01
  435 + 1. -0.85834E+01 -0.50941E+01 -0.71026E+01
  436 + 1. 0.55200E+01 -0.78985E+01 -0.70967E+01
  437 + 1. 0.77170E+01 -0.98178E+01 -0.70883E+01
  438 + 1. 0.55726E+01 0.16679E+02 -0.70830E+01
  439 + 1. -0.97784E+01 -0.14637E+02 -0.70747E+01
  440 + 1. 0.10921E+02 -0.78991E+00 -0.70732E+01
  441 + 1. 0.13023E+02 -0.13972E+02 -0.70646E+01
  442 + 1. -0.37138E+01 0.14029E+02 -0.70564E+01
  443 + 1. -0.14344E+02 -0.43347E+01 -0.70480E+01
  444 + 1. -0.95568E+00 -0.14965E+02 -0.70413E+01
  445 + 1. -0.32639E+01 0.11066E+02 -0.70375E+01
  446 + 1. -0.11263E+02 -0.10662E+02 -0.70312E+01
  447 + 1. 0.74363E+00 0.18045E+02 -0.70208E+01
  448 + 1. 0.14505E+01 -0.10714E+02 -0.70171E+01
  449 + 1. -0.11320E+02 0.26188E+01 -0.70124E+01
  450 + 1. -0.13530E+02 0.34172E+01 -0.70052E+01
  451 + 1. 0.14446E+02 0.13498E+02 -0.69943E+01
  452 + 1. 0.19845E+02 -0.17525E+01 -0.69902E+01
  453 + 1. -0.16042E+02 -0.18093E+01 -0.69850E+01
  454 + 1. -0.48345E+01 0.10748E+01 -0.69784E+01
  455 + 1. -0.15743E+02 -0.11670E+02 -0.69684E+01
  456 + 1. -0.58789E+01 0.35805E+01 -0.69604E+01
  457 + 1. -0.58919E+01 0.17041E+02 -0.69591E+01
  458 + 1. -0.17467E+02 0.91785E+01 -0.69516E+01
  459 + 1. 0.12392E+02 0.14234E+02 -0.69467E+01
  460 + 1. -0.40167E+01 -0.14005E+02 -0.69367E+01
  461 + 1. 0.67448E+01 0.91378E+01 -0.69321E+01
  462 + 1. -0.80091E+01 0.13259E+02 -0.69243E+01
  463 + 1. 0.14348E+02 0.39702E+01 -0.69158E+01
  464 + 1. -0.33020E+01 -0.39947E+01 -0.69085E+01
  465 + 1. 0.96580E+01 0.83376E+00 -0.69040E+01
  466 + 1. 0.19121E+01 -0.17794E+02 -0.68944E+01
  467 + 1. -0.77314E+01 -0.13342E+02 -0.68879E+01
  468 + 1. -0.12359E+01 -0.56307E+01 -0.68859E+01
  469 + 1. 0.35610E+01 -0.11122E+02 -0.68736E+01
  470 + 1. -0.10838E+02 0.48866E+01 -0.68679E+01
  471 + 1. -0.15426E+02 -0.65133E+01 -0.68661E+01
  472 + 1. 0.17411E+02 0.73878E+01 -0.68575E+01
  473 + 1. 0.40132E+01 -0.13629E+02 -0.68514E+01
  474 + 1. -0.13715E+02 -0.14393E+02 -0.68458E+01
  475 + 1. -0.17351E+01 -0.87784E+01 -0.68347E+01
  476 + 1. -0.94285E+01 -0.81157E+01 -0.68275E+01
  477 + 1. -0.12722E+02 0.15055E+02 -0.68217E+01
  478 + 1. -0.76009E+01 -0.31767E+01 -0.68197E+01
  479 + 1. -0.58066E+01 -0.11533E+02 -0.68092E+01
  480 + 1. 0.17090E+01 -0.73952E+01 -0.68003E+01
  481 + 1. 0.16852E+02 -0.53917E+01 -0.67974E+01
  482 + 1. 0.10404E+02 0.80109E+01 -0.67878E+01
  483 + 1. -0.32767E+01 0.17226E+02 -0.67826E+01
  484 + 1. 0.75688E+01 -0.14707E+02 -0.67784E+01
  485 + 1. -0.17374E+02 0.18735E+01 -0.67681E+01
  486 + 1. 0.18144E+01 0.12471E+02 -0.67628E+01
  487 + 1. -0.10178E+02 0.96669E+01 -0.67599E+01
  488 + 1. -0.30469E+01 -0.68186E+01 -0.67479E+01
  489 + 1. 0.15562E+02 0.55766E+00 -0.67413E+01
  490 + 1. 0.96032E+01 -0.14521E+02 -0.67366E+01
  491 + 1. 0.11403E+02 0.56438E+01 -0.67287E+01
  492 + 1. -0.52090E+00 -0.12910E+02 -0.67201E+01
  493 + 1. 0.10141E+02 -0.43883E+01 -0.67134E+01
  494 + 1. 0.11503E+02 0.26692E+01 -0.67097E+01
  495 + 1. -0.19161E+02 -0.57064E+01 -0.67032E+01
  496 + 1. 0.18535E+02 0.98620E-01 -0.66987E+01
  497 + 1. -0.11552E+02 -0.48205E+01 -0.66870E+01
  498 + 1. 0.18965E-01 0.19936E+02 -0.66860E+01
  499 + 1. -0.49916E+01 0.18955E+02 -0.66750E+01
  500 + 1. -0.94228E+01 0.56521E+00 -0.66677E+01
  501 + 1. 0.77771E+01 0.16205E+01 -0.66603E+01
  502 + 1. -0.18521E+02 -0.92628E+00 -0.66568E+01
  503 + 1. 0.60708E+00 0.49262E+01 -0.66483E+01
  504 + 1. 0.14150E+02 0.10182E+02 -0.66461E+01
  505 + 1. -0.12400E+02 0.12503E+02 -0.66393E+01
  506 + 1. -0.69158E+00 0.88270E+01 -0.66314E+01
  507 + 1. 0.13361E+02 0.80722E+01 -0.66223E+01
  508 + 1. 0.10280E+02 -0.16804E+02 -0.66181E+01
  509 + 1. 0.72809E+00 0.14976E+02 -0.66070E+01
  510 + 1. -0.12576E+02 -0.12198E+02 -0.66010E+01
  511 + 1. -0.78414E+00 0.20687E+01 -0.65953E+01
  512 + 1. 0.71900E+01 -0.61352E+01 -0.65927E+01
  513 + 1. 0.21949E+01 -0.19761E+02 -0.65851E+01
  514 + 1. -0.19645E+02 0.32465E+01 -0.65767E+01
  515 + 1. 0.56229E+01 -0.19085E+02 -0.65683E+01
  516 + 1. 0.14542E+02 -0.85328E+01 -0.65640E+01
  517 + 1. -0.17829E+01 -0.19898E+02 -0.65549E+01
  518 + 1. 0.49514E+01 0.14677E+02 -0.65473E+01
  519 + 1. 0.78970E+01 -0.26307E+01 -0.65465E+01
  520 + 1. 0.92947E+01 -0.86602E+01 -0.65348E+01
  521 + 1. -0.11449E+01 0.11854E+02 -0.65273E+01
  522 + 1. 0.57248E+01 -0.16573E+02 -0.65250E+01
  523 + 1. -0.15761E+02 -0.94820E+01 -0.65167E+01
  524 + 1. -0.18111E+02 -0.79791E+01 -0.65108E+01
  525 + 1. 0.55297E+01 -0.10891E+02 -0.65018E+01
  526 + 1. -0.85134E+01 0.15880E+02 -0.64944E+01
  527 + 1. -0.18612E+02 0.72510E+01 -0.64897E+01
  528 + 1. 0.12594E+02 -0.39881E+01 -0.64832E+01
  529 + 1. 0.90149E+01 0.40904E+01 -0.64745E+01
  530 + 1. 0.34381E+01 0.77871E+01 -0.64712E+01
  531 + 1. -0.99651E+01 -0.17135E+02 -0.64627E+01
  532 + 1. -0.43907E+01 -0.18891E+02 -0.64541E+01
  533 + 1. -0.10397E+02 0.16551E+02 -0.64530E+01
  534 + 1. -0.13067E+02 0.15388E+01 -0.64436E+01
  535 + 1. -0.12683E+02 -0.77203E+01 -0.64365E+01
  536 + 1. 0.15234E+01 -0.35986E+00 -0.64307E+01
  537 + 1. 0.15428E+02 0.79489E+01 -0.64261E+01
  538 + 1. 0.32329E+00 -0.16587E+02 -0.64187E+01
  539 + 1. -0.65478E+01 -0.51759E+01 -0.64107E+01
  540 + 1. -0.89387E+01 0.72420E+01 -0.64006E+01
  541 + 1. 0.36333E+01 -0.78128E+01 -0.63966E+01
  542 + 1. 0.10259E+02 0.17126E+02 -0.63903E+01
  543 + 1. -0.27884E+01 -0.19867E+01 -0.63835E+01
  544 + 1. 0.57827E+01 0.12219E+02 -0.63774E+01
  545 + 1. 0.17522E+02 -0.96229E+01 -0.63686E+01
  546 + 1. 0.80804E+01 -0.11974E+02 -0.63640E+01
  547 + 1. -0.30841E+01 -0.10887E+02 -0.63580E+01
  548 + 1. -0.73949E+01 -0.86136E+01 -0.63496E+01
  549 + 1. 0.60930E+01 0.67968E+01 -0.63407E+01
  550 + 1. 0.42327E+01 -0.53033E+01 -0.63377E+01
  551 + 1. -0.65649E+01 0.28585E+00 -0.63306E+01
  552 + 1. -0.86865E+00 0.35375E-02 -0.63201E+01
  553 + 1. -0.15063E+02 0.10500E+02 -0.63140E+01
  554 + 1. -0.16898E+01 0.38852E+01 -0.63093E+01
  555 + 1. 0.12520E+02 0.20843E+00 -0.63026E+01
  556 + 1. 0.49111E+01 -0.12405E+01 -0.62970E+01
  557 + 1. 0.16433E+02 0.56419E+01 -0.62877E+01
  558 + 1. 0.12452E+01 -0.35625E+01 -0.62825E+01
  559 + 1. -0.13422E+01 0.17638E+02 -0.62743E+01
  560 + 1. 0.11419E+02 -0.12934E+02 -0.62732E+01
  561 + 1. -0.97908E+01 -0.27088E+01 -0.62621E+01
  562 + 1. 0.14894E+02 -0.55901E+01 -0.62586E+01
  563 + 1. -0.13407E+01 0.13848E+02 -0.62486E+01
  564 + 1. 0.82385E+01 -0.17424E+02 -0.62420E+01
  565 + 1. -0.15377E+02 0.31793E-01 -0.62373E+01
  566 + 1. -0.13795E+01 0.63954E+01 -0.62331E+01
  567 + 1. -0.49546E+01 -0.74651E+01 -0.62201E+01
  568 + 1. 0.41088E+01 0.19142E+01 -0.62176E+01
  569 + 1. 0.10498E+02 0.10472E+02 -0.62116E+01
  570 + 1. -0.39773E+01 0.93196E+01 -0.62019E+01
  571 + 1. 0.85097E+01 0.75527E+01 -0.61986E+01
  572 + 1. -0.15422E+02 0.35609E+01 -0.61912E+01
  573 + 1. -0.11305E+02 0.79298E+01 -0.61828E+01
  574 + 1. -0.27892E+01 -0.15487E+02 -0.61764E+01
  575 + 1. -0.17172E+02 0.58495E+01 -0.61718E+01
  576 + 1. 0.74049E+01 0.15762E+02 -0.61655E+01
  577 + 1. -0.12735E+02 -0.30214E+01 -0.61583E+01
  578 + 1. 0.14726E+02 -0.27534E+01 -0.61496E+01
  579 + 1. 0.38786E+01 0.17460E+02 -0.61453E+01
  580 + 1. -0.19155E+02 -0.37236E+01 -0.61397E+01
  581 + 1. 0.15672E+02 -0.10812E+02 -0.61281E+01
  582 + 1. -0.54454E+01 0.13006E+02 -0.61216E+01
  583 + 1. 0.17946E+02 0.32140E+01 -0.61144E+01
  584 + 1. -0.67632E+01 0.95791E+01 -0.61070E+01
  585 + 1. -0.78040E+01 0.18937E+01 -0.61064E+01
  586 + 1. 0.17643E+02 -0.17725E+01 -0.60941E+01
  587 + 1. -0.46386E+01 0.15601E+02 -0.60889E+01
  588 + 1. 0.20587E+01 0.63730E+01 -0.60806E+01
  589 + 1. 0.19027E+02 0.61374E+01 -0.60758E+01
  590 + 1. 0.59621E+01 0.96394E+00 -0.60670E+01
  591 + 1. -0.15014E+02 0.67030E+01 -0.60637E+01
  592 + 1. -0.10257E+02 0.14062E+02 -0.60547E+01
  593 + 1. 0.25565E+00 -0.93911E+01 -0.60512E+01
  594 + 1. -0.10471E+02 -0.12725E+02 -0.60401E+01
  595 + 1. -0.19283E+02 0.13246E+01 -0.60398E+01
  596 + 1. -0.16124E+02 -0.40788E+01 -0.60322E+01
  597 + 1. -0.69963E+01 -0.18063E+02 -0.60202E+01
  598 + 1. 0.36744E+01 0.12687E+02 -0.60151E+01
  599 + 1. -0.11562E+02 -0.14901E+02 -0.60120E+01
  600 + 1. 0.22083E+00 -0.19060E+02 -0.60021E+01
  601 + 1. -0.58167E+01 -0.14585E+02 -0.59942E+01
  602 + 1. 0.56768E+00 0.10603E+02 -0.59919E+01
  603 + 1. 0.13739E+02 -0.12326E+02 -0.59823E+01
  604 + 1. -0.44784E+01 0.56451E+01 -0.59763E+01
  605 + 1. -0.12483E+02 0.56827E+01 -0.59715E+01
  606 + 1. -0.82096E+01 -0.11410E+01 -0.59651E+01
  607 + 1. -0.13013E+02 -0.92352E+00 -0.59595E+01
  608 + 1. 0.10437E+02 -0.11004E+02 -0.59492E+01
  609 + 1. 0.16426E+02 -0.77490E+01 -0.59448E+01
  610 + 1. 0.12622E+02 -0.59415E+01 -0.59364E+01
  611 + 1. 0.10300E+02 0.12898E+02 -0.59269E+01
  612 + 1. 0.11716E+01 0.16430E+01 -0.59229E+01
  613 + 1. 0.36793E+01 0.97609E+01 -0.59169E+01
  614 + 1. -0.40523E+00 -0.73008E+01 -0.59098E+01
  615 + 1. 0.15105E+02 0.11898E+02 -0.59042E+01
  616 + 1. 0.36338E+01 -0.18231E+02 -0.58949E+01
  617 + 1. 0.78608E+01 -0.48704E+00 -0.58931E+01
  618 + 1. -0.71894E+01 0.47856E+01 -0.58823E+01
  619 + 1. -0.79412E+01 -0.10947E+02 -0.58755E+01
  620 + 1. 0.21849E+01 0.19264E+02 -0.58673E+01
  621 + 1. -0.61866E+01 -0.18526E+01 -0.58660E+01
  622 + 1. 0.14265E+02 -0.70501E+00 -0.58561E+01
  623 + 1. -0.11138E+02 -0.88799E+01 -0.58520E+01
  624 + 1. 0.95298E+01 -0.65942E+01 -0.58442E+01
  625 + 1. -0.29697E+01 0.22334E+01 -0.58380E+01
  626 + 1. 0.82744E+01 0.10924E+02 -0.58327E+01
  627 + 1. 0.17422E+02 0.92300E+01 -0.58203E+01
  628 + 1. -0.90606E+01 0.11858E+02 -0.58198E+01
  629 + 1. 0.68436E+01 -0.42837E+01 -0.58085E+01
  630 + 1. -0.42639E+01 -0.54698E+01 -0.58036E+01
  631 + 1. -0.47590E+01 -0.94370E+01 -0.57951E+01
  632 + 1. -0.95918E+01 0.34564E+01 -0.57925E+01
  633 + 1. 0.58487E+01 0.29882E+01 -0.57828E+01
  634 + 1. 0.10643E+01 -0.13923E+02 -0.57749E+01
  635 + 1. -0.16241E+01 -0.17070E+02 -0.57719E+01
  636 + 1. 0.12131E+02 -0.15286E+02 -0.57646E+01
  637 + 1. 0.28174E+01 0.15169E+02 -0.57585E+01
  638 + 1. 0.41963E+01 -0.15344E+02 -0.57496E+01
  639 + 1. 0.12979E+02 -0.95761E+01 -0.57410E+01
  640 + 1. -0.86509E+01 -0.66022E+01 -0.57374E+01
  641 + 1. 0.44929E+01 0.53488E+01 -0.57289E+01
  642 + 1. -0.53671E+01 0.75920E+01 -0.57219E+01
  643 + 1. -0.11209E+02 0.46631E+00 -0.57176E+01
  644 + 1. -0.13547E+02 0.87958E+01 -0.57110E+01
  645 + 1. 0.70392E+01 -0.84097E+01 -0.57048E+01
  646 + 1. 0.18938E+02 -0.33802E+01 -0.56941E+01
  647 + 1. 0.39737E+01 -0.34184E+01 -0.56890E+01
  648 + 1. -0.73925E+01 0.18468E+02 -0.56852E+01
  649 + 1. -0.97657E+00 -0.26064E+01 -0.56745E+01
  650 + 1. 0.15832E+02 0.31904E+01 -0.56686E+01
  651 + 1. -0.28821E+01 -0.12783E+02 -0.56624E+01
  652 + 1. -0.83847E+01 -0.15827E+02 -0.56548E+01
  653 + 1. 0.49759E+01 0.19156E+02 -0.56474E+01
  654 + 1. -0.13331E+02 -0.58427E+01 -0.56450E+01
  655 + 1. 0.13891E+02 0.60039E+01 -0.56378E+01
  656 + 1. 0.18614E+01 0.35075E+01 -0.56321E+01
  657 + 1. -0.17130E+02 -0.59926E+01 -0.56216E+01
  658 + 1. 0.26111E+01 -0.12532E+02 -0.56191E+01
  659 + 1. 0.19301E+01 0.17042E+02 -0.56133E+01
  660 + 1. 0.12729E+02 0.11494E+02 -0.56039E+01
  661 + 1. 0.22133E+01 -0.57505E+01 -0.55965E+01
  662 + 1. 0.12803E+02 0.40393E+01 -0.55908E+01
  663 + 1. -0.20939E+01 0.19434E+02 -0.55816E+01
  664 + 1. 0.12133E+02 -0.16821E+01 -0.55739E+01
  665 + 1. 0.16553E+02 -0.33754E+01 -0.55701E+01
  666 + 1. 0.74079E+01 0.18016E+02 -0.55602E+01
  667 + 1. -0.13082E+02 -0.97763E+01 -0.55600E+01
  668 + 1. -0.28807E+01 0.12627E+02 -0.55525E+01
  669 + 1. 0.18966E+02 -0.61007E+01 -0.55450E+01
  670 + 1. -0.16573E+02 0.79650E+01 -0.55343E+01
  671 + 1. -0.66423E+01 0.15105E+02 -0.55322E+01
  672 + 1. -0.14652E+02 -0.12937E+02 -0.55232E+01
  673 + 1. 0.22350E+01 -0.15968E+02 -0.55150E+01
  674 + 1. 0.96245E+01 -0.28180E+01 -0.55120E+01
  675 + 1. -0.44268E+01 0.36432E+01 -0.55054E+01
  676 + 1. 0.11099E+02 0.15163E+02 -0.54935E+01
  677 + 1. 0.45051E+00 0.74981E+01 -0.54925E+01
  678 + 1. -0.49357E+01 -0.33721E+01 -0.54860E+01
  679 + 1. -0.43874E+01 -0.16920E+02 -0.54766E+01
  680 + 1. 0.76787E+01 0.53271E+01 -0.54723E+01
  681 + 1. -0.11799E+02 0.10384E+02 -0.54645E+01
  682 + 1. -0.17248E+02 0.11471E+00 -0.54559E+01
  683 + 1. -0.98509E+01 -0.10385E+02 -0.54491E+01
  684 + 1. 0.92675E+01 0.22207E+01 -0.54462E+01
  685 + 1. 0.51253E+01 -0.90290E+01 -0.54355E+01
  686 + 1. 0.88507E+01 0.14430E+02 -0.54269E+01
  687 + 1. -0.14645E+02 -0.20426E+01 -0.54266E+01
  688 + 1. -0.46030E+01 -0.30754E+00 -0.54151E+01
  689 + 1. 0.31829E+01 0.17736E+00 -0.54069E+01
  690 + 1. -0.17305E+02 -0.25475E+01 -0.54013E+01
  691 + 1. -0.16384E+02 -0.78712E+01 -0.53992E+01
  692 + 1. 0.55747E+01 -0.13803E+02 -0.53887E+01
  693 + 1. 0.11081E+02 -0.86790E+01 -0.53826E+01
  694 + 1. 0.12445E+02 0.94806E+01 -0.53789E+01
  695 + 1. -0.16876E+02 0.10469E+02 -0.53689E+01
  696 + 1. -0.46682E+01 0.11068E+02 -0.53662E+01
  697 + 1. -0.14053E+02 0.12331E+02 -0.53568E+01
  698 + 1. 0.19709E+02 0.20681E+01 -0.53493E+01
  699 + 1. -0.19183E+01 0.98248E+01 -0.53440E+01
  700 + 1. -0.99713E+01 -0.46270E+01 -0.53335E+01
  701 + 1. 0.17022E+02 0.64437E+00 -0.53271E+01
  702 + 1. 0.97779E+01 -0.78267E+00 -0.53217E+01
  703 + 1. 0.22839E+01 -0.91238E+01 -0.53179E+01
  704 + 1. 0.22237E+01 -0.19283E+01 -0.53085E+01
  705 + 1. 0.13263E+02 0.20520E+01 -0.53059E+01
  706 + 1. 0.11644E+02 0.71196E+01 -0.52940E+01
  707 + 1. -0.13680E+01 0.15745E+02 -0.52905E+01
  708 + 1. 0.19031E+01 0.90416E+01 -0.52849E+01
  709 + 1. 0.85945E+01 -0.15564E+02 -0.52746E+01
  710 + 1. -0.12426E+02 0.30698E+01 -0.52724E+01
  711 + 1. -0.13038E+01 -0.10588E+02 -0.52626E+01
  712 + 1. 0.59173E+01 0.10167E+02 -0.52564E+01
  713 + 1. 0.56502E+01 -0.63349E+01 -0.52486E+01
  714 + 1. 0.35968E+00 0.12953E+02 -0.52461E+01
  715 + 1. -0.32575E+01 0.72957E+01 -0.52359E+01
  716 + 1. 0.19862E+02 -0.71126E+00 -0.52328E+01
  717 + 1. -0.18950E+02 0.56332E+01 -0.52258E+01
  718 + 1. -0.66342E+01 -0.12707E+02 -0.52183E+01
  719 + 1. -0.17836E+02 0.33705E+01 -0.52072E+01
  720 + 1. -0.23619E+01 -0.57377E+01 -0.52035E+01
  721 + 1. -0.90060E+01 0.88952E+01 -0.51970E+01
  722 + 1. 0.73475E+01 0.13126E+02 -0.51899E+01
  723 + 1. -0.46968E+01 -0.11970E+02 -0.51842E+01
  724 + 1. -0.96728E+01 0.56553E+01 -0.51734E+01
  725 + 1. 0.98129E+01 0.57489E+01 -0.51730E+01
  726 + 1. -0.11405E+02 -0.62656E+01 -0.51611E+01
  727 + 1. 0.13340E+02 0.14235E+02 -0.51578E+01
  728 + 1. -0.74789E+01 0.66741E+01 -0.51521E+01
  729 + 1. -0.45476E+01 0.17569E+02 -0.51464E+01
  730 + 1. 0.69929E+01 -0.10781E+02 -0.51348E+01
  731 + 1. 0.89730E+01 -0.13494E+02 -0.51296E+01
  732 + 1. -0.52037E+00 -0.49601E+01 -0.51221E+01
  733 + 1. 0.55862E+01 0.16123E+02 -0.51184E+01
  734 + 1. -0.19617E+02 -0.17961E+01 -0.51112E+01
  735 + 1. -0.25711E+01 -0.20476E-01 -0.51035E+01
  736 + 1. 0.70237E+01 -0.18549E+02 -0.50957E+01
  737 + 1. -0.11212E+02 -0.17326E+01 -0.50878E+01
  738 + 1. -0.14378E+02 -0.79279E+01 -0.50866E+01
  739 + 1. -0.12643E+01 -0.14085E+02 -0.50762E+01
  740 + 1. 0.63266E+01 -0.22817E+01 -0.50715E+01
  741 + 1. -0.24958E+01 -0.77871E+01 -0.50658E+01
  742 + 1. -0.60178E+01 0.20140E+01 -0.50536E+01
  743 + 1. -0.16582E+02 -0.11034E+02 -0.50496E+01
  744 + 1. 0.13626E+02 -0.74356E+01 -0.50404E+01
  745 + 1. -0.13036E+02 0.14104E+02 -0.50398E+01
  746 + 1. -0.78905E+01 -0.40344E+01 -0.50314E+01
  747 + 1. -0.85747E+01 -0.13534E+02 -0.50255E+01
  748 + 1. -0.65552E+01 -0.71409E+01 -0.50172E+01
  749 + 1. -0.63062E+01 -0.16361E+02 -0.50118E+01
  750 + 1. 0.63594E-01 0.18761E+02 -0.50024E+01
  751 + 1. 0.10709E+02 0.39684E+01 -0.49946E+01
  752 + 1. -0.66056E+01 0.11563E+02 -0.49911E+01
  753 + 1. -0.15410E+02 0.18246E+01 -0.49835E+01
  754 + 1. 0.69017E+01 0.83338E+01 -0.49797E+01
  755 + 1. 0.10921E+02 -0.52378E+01 -0.49693E+01
  756 + 1. 0.19298E+02 0.42136E+01 -0.49628E+01
  757 + 1. 0.98186E+01 0.87658E+01 -0.49564E+01
  758 + 1. -0.11380E+02 0.15488E+02 -0.49490E+01
  759 + 1. -0.75949E-02 0.37522E+01 -0.49429E+01
  760 + 1. -0.91193E+01 0.17477E+02 -0.49348E+01
  761 + 1. -0.10963E+02 0.12450E+02 -0.49311E+01
  762 + 1. 0.16399E+00 -0.12050E+02 -0.49240E+01
  763 + 1. -0.31333E+01 -0.18600E+02 -0.49168E+01
  764 + 1. 0.13903E+02 -0.42715E+01 -0.49105E+01
  765 + 1. -0.15189E+02 -0.56562E+01 -0.49028E+01
  766 + 1. -0.14035E+02 0.49815E+01 -0.48984E+01
  767 + 1. -0.12672E+02 -0.13647E+02 -0.48880E+01
  768 + 1. 0.14429E+02 0.89155E+01 -0.48831E+01
  769 + 1. 0.89330E+01 0.16575E+02 -0.48736E+01
  770 + 1. -0.22612E+01 0.52070E+01 -0.48678E+01
  771 + 1. 0.46794E+01 -0.11706E+02 -0.48623E+01
  772 + 1. -0.27308E+01 -0.37865E+01 -0.48592E+01
  773 + 1. -0.11037E+02 -0.16589E+02 -0.48472E+01
  774 + 1. -0.39440E+01 -0.14508E+02 -0.48408E+01
  775 + 1. -0.83491E+01 0.14278E+02 -0.48339E+01
  776 + 1. 0.46086E+01 0.82600E+01 -0.48275E+01
  777 + 1. 0.16463E+02 0.10696E+02 -0.48266E+01
  778 + 1. 0.11314E+02 0.13284E+01 -0.48151E+01
  779 + 1. 0.17249E+02 -0.51869E+01 -0.48099E+01
  780 + 1. 0.17277E+02 0.69474E+01 -0.48057E+01
  781 + 1. 0.13649E+02 -0.14139E+02 -0.47957E+01
  782 + 1. 0.15241E+02 -0.91565E+01 -0.47902E+01
  783 + 1. 0.21782E+01 0.11970E+02 -0.47848E+01
  784 + 1. -0.86981E+01 -0.88637E+01 -0.47759E+01
  785 + 1. -0.58277E+01 -0.19136E+02 -0.47718E+01
  786 + 1. -0.11448E+02 -0.11528E+02 -0.47608E+01
  787 + 1. 0.41424E+01 0.33168E+01 -0.47547E+01
  788 + 1. -0.94341E+01 0.14404E+01 -0.47468E+01
  789 + 1. -0.34380E+01 0.14632E+02 -0.47450E+01
  790 + 1. -0.87340E+01 -0.17643E+02 -0.47349E+01
  791 + 1. 0.66373E+01 -0.16068E+02 -0.47301E+01
  792 + 1. 0.16031E+02 -0.14122E+01 -0.47245E+01
  793 + 1. -0.17798E+02 -0.91162E+01 -0.47175E+01
  794 + 1. 0.18213E+02 -0.78721E+01 -0.47113E+01
  795 + 1. 0.10480E+02 -0.16172E+02 -0.47044E+01
  796 + 1. -0.16028E+02 0.50782E+01 -0.46962E+01
  797 + 1. 0.87943E+01 -0.47851E+01 -0.46883E+01
  798 + 1. 0.68399E+00 0.15682E+02 -0.46841E+01
  799 + 1. 0.20181E+01 -0.17929E+02 -0.46746E+01
  800 + 1. 0.10013E+00 -0.57815E+00 -0.46668E+01
  801 + 1. 0.12475E+02 -0.11207E+02 -0.46662E+01
  802 + 1. 0.48117E+01 -0.17169E+02 -0.46562E+01
  803 + 1. -0.18932E+02 -0.52410E+01 -0.46474E+01
  804 + 1. -0.70604E+00 0.14558E+01 -0.46441E+01
  805 + 1. 0.93320E+01 -0.93490E+01 -0.46338E+01
  806 + 1. 0.15596E+02 -0.12206E+02 -0.46319E+01
  807 + 1. -0.14294E+02 -0.38713E+01 -0.46245E+01
  808 + 1. -0.12312E+02 -0.42534E+01 -0.46142E+01
  809 + 1. -0.79700E-01 -0.17630E+02 -0.46069E+01
  810 + 1. 0.77267E+01 -0.65005E+01 -0.46040E+01
  811 + 1. 0.53713E+01 0.13139E+02 -0.45996E+01
  812 + 1. -0.62159E+01 -0.10396E+02 -0.45933E+01
  813 + 1. -0.40455E+01 0.19436E+02 -0.45809E+01
  814 + 1. -0.15080E+02 0.94342E+01 -0.45736E+01
  815 + 1. 0.17192E+02 0.44294E+01 -0.45671E+01
  816 + 1. -0.22085E+00 0.58118E+01 -0.45611E+01
  817 + 1. -0.76520E+01 0.50942E+00 -0.45580E+01
  818 + 1. -0.14405E+01 0.78421E+01 -0.45501E+01
  819 + 1. 0.11090E+02 -0.14055E+02 -0.45424E+01
  820 + 1. 0.15141E+02 0.56478E+00 -0.45338E+01
  821 + 1. -0.26092E+01 0.17374E+02 -0.45325E+01
  822 + 1. 0.15478E+02 -0.65814E+01 -0.45234E+01
  823 + 1. -0.11241E+02 0.45699E+01 -0.45187E+01
  824 + 1. 0.74896E+01 0.21925E+01 -0.45120E+01
  825 + 1. 0.31983E+01 -0.72983E+01 -0.45005E+01
  826 + 1. 0.71024E+01 -0.12714E+02 -0.44962E+01
  827 + 1. 0.10845E+01 -0.77069E+01 -0.44924E+01
  828 + 1. -0.13568E+02 0.55452E+00 -0.44864E+01
  829 + 1. -0.74554E+01 0.32801E+01 -0.44746E+01
  830 + 1. -0.19593E+02 0.26354E+01 -0.44717E+01
  831 + 1. 0.15190E+02 0.70968E+01 -0.44604E+01
  832 + 1. -0.52990E+01 0.93030E+01 -0.44586E+01
  833 + 1. 0.60864E+01 0.46542E+01 -0.44508E+01
  834 + 1. -0.12343E+01 0.11845E+02 -0.44463E+01
  835 + 1. 0.41515E+01 0.11347E+02 -0.44370E+01
  836 + 1. 0.64474E+01 -0.14215E+00 -0.44269E+01
  837 + 1. -0.14542E+02 -0.10567E+02 -0.44215E+01
  838 + 1. -0.63226E+01 0.16940E+02 -0.44174E+01
  839 + 1. 0.33976E+00 -0.15556E+02 -0.44077E+01
  840 + 1. 0.96921E+01 0.11633E+02 -0.44044E+01
  841 + 1. -0.36982E+01 -0.18672E+01 -0.43976E+01
  842 + 1. 0.52368E+01 -0.19294E+02 -0.43877E+01
  843 + 1. -0.30436E+01 -0.99989E+01 -0.43807E+01
  844 + 1. -0.12169E+02 0.74054E+01 -0.43739E+01
  845 + 1. 0.11763E+02 0.12819E+02 -0.43698E+01
  846 + 1. 0.17069E+02 -0.10078E+02 -0.43654E+01
  847 + 1. 0.13031E+02 0.26343E+00 -0.43557E+01
  848 + 1. -0.12444E+02 -0.80920E+01 -0.43528E+01
  849 + 1. 0.31692E+01 0.65014E+01 -0.43414E+01
  850 + 1. 0.14561E+02 0.45955E+01 -0.43360E+01
  851 + 1. 0.13614E+02 -0.22518E+01 -0.43275E+01
  852 + 1. 0.17537E+01 -0.40252E+01 -0.43238E+01
  853 + 1. -0.19096E+02 0.37266E-01 -0.43164E+01
  854 + 1. 0.34590E+01 0.19334E+02 -0.43097E+01
  855 + 1. -0.43255E+01 -0.70660E+01 -0.43030E+01
  856 + 1. 0.87280E+01 -0.17782E+02 -0.42939E+01
  857 + 1. 0.43238E+01 -0.12428E+01 -0.42900E+01
  858 + 1. -0.18181E+02 0.77948E+01 -0.42840E+01
  859 + 1. 0.29336E+01 -0.19682E+02 -0.42750E+01
  860 + 1. -0.60866E+01 0.54833E+01 -0.42720E+01
  861 + 1. 0.14992E+02 0.13099E+02 -0.42665E+01
  862 + 1. -0.53993E+01 0.14132E+02 -0.42588E+01
  863 + 1. -0.16055E+02 -0.11942E+01 -0.42506E+01
  864 + 1. 0.11813E+02 -0.33790E+01 -0.42455E+01
  865 + 1. -0.10663E+02 -0.14022E+02 -0.42382E+01
  866 + 1. 0.71527E+01 0.11368E+02 -0.42293E+01
  867 + 1. 0.49987E+01 -0.45388E+01 -0.42235E+01
  868 + 1. -0.10906E+02 0.89954E+01 -0.42141E+01
  869 + 1. -0.74830E+01 -0.20477E+01 -0.42114E+01
  870 + 1. 0.83398E+01 -0.17965E+01 -0.42033E+01
  871 + 1. 0.51798E+01 0.14290E+01 -0.41985E+01
  872 + 1. -0.14172E+02 0.70150E+01 -0.41895E+01
  873 + 1. 0.94701E+00 -0.10272E+02 -0.41844E+01
  874 + 1. 0.14233E+02 0.10843E+02 -0.41791E+01
  875 + 1. 0.11604E+02 -0.70132E+01 -0.41692E+01
  876 + 1. 0.33059E+01 0.13654E+02 -0.41656E+01
  877 + 1. -0.53013E+01 -0.49467E+01 -0.41544E+01
  878 + 1. -0.95952E+01 -0.30384E+01 -0.41512E+01
  879 + 1. 0.28982E+01 0.18329E+01 -0.41433E+01
  880 + 1. -0.16760E+02 -0.42849E+01 -0.41393E+01
  881 + 1. -0.22190E+01 -0.15850E+02 -0.41306E+01
  882 + 1. 0.18867E+02 -0.21335E+01 -0.41246E+01
  883 + 1. -0.75361E+01 0.99208E+01 -0.41153E+01
  884 + 1. 0.74515E+01 0.15411E+02 -0.41070E+01
  885 + 1. 0.34842E+01 0.16710E+02 -0.41053E+01
  886 + 1. 0.18664E+02 0.57620E+00 -0.40964E+01
  887 + 1. -0.15681E+02 0.11827E+02 -0.40889E+01
  888 + 1. 0.12375E+02 0.55239E+01 -0.40847E+01
  889 + 1. 0.16868E+02 0.22926E+01 -0.40781E+01
  890 + 1. 0.84972E+01 0.39044E+01 -0.40726E+01
  891 + 1. 0.24216E+01 -0.14558E+02 -0.40602E+01
  892 + 1. 0.84209E+01 0.73713E+01 -0.40538E+01
  893 + 1. -0.10399E+02 -0.77045E+01 -0.40495E+01
  894 + 1. -0.99952E+01 -0.36575E+00 -0.40467E+01
  895 + 1. -0.82207E+00 -0.86832E+01 -0.40356E+01
  896 + 1. 0.48108E+00 0.98288E+01 -0.40314E+01
  897 + 1. 0.94101E+01 0.74559E+00 -0.40249E+01
  898 + 1. -0.17744E+02 -0.71446E+01 -0.40154E+01
  899 + 1. 0.58890E+01 0.68495E+01 -0.40074E+01
  900 + 1. -0.90150E+01 -0.11731E+02 -0.40013E+01
  901 + 1. -0.13335E+02 0.10970E+02 -0.39977E+01
  902 + 1. -0.65330E+00 0.14291E+02 -0.39885E+01
  903 + 1. -0.17502E+02 0.14889E+01 -0.39813E+01
  904 + 1. 0.99833E+01 -0.11141E+02 -0.39766E+01
  905 + 1. 0.34290E+01 -0.10173E+02 -0.39681E+01
  906 + 1. -0.39563E+01 0.21156E+01 -0.39633E+01
  907 + 1. -0.32450E+01 0.92329E+01 -0.39583E+01
  908 + 1. 0.57608E+00 -0.19415E+02 -0.39481E+01
  909 + 1. -0.20412E+01 0.30476E+01 -0.39465E+01
  910 + 1. -0.11421E+02 0.17911E+01 -0.39363E+01
  911 + 1. -0.13126E+02 -0.21070E+01 -0.39290E+01
  912 + 1. 0.23280E+01 0.45372E+01 -0.39258E+01
  913 + 1. 0.11289E+02 0.10369E+02 -0.39162E+01
  914 + 1. 0.57610E+01 0.17998E+02 -0.39109E+01
  915 + 1. -0.98954E+01 0.11081E+02 -0.39052E+01
  916 + 1. -0.16484E+01 -0.14443E+01 -0.38954E+01
  917 + 1. 0.16499E+02 0.88526E+01 -0.38909E+01
  918 + 1. -0.88559E+01 -0.56457E+01 -0.38837E+01
  919 + 1. -0.67953E+01 -0.14538E+02 -0.38757E+01
  920 + 1. 0.19096E+02 -0.46457E+01 -0.38693E+01
  921 + 1. -0.92812E+01 -0.15715E+02 -0.38657E+01
  922 + 1. 0.11043E+02 0.16651E+02 -0.38551E+01
  923 + 1. 0.11142E+02 -0.59623E+00 -0.38474E+01
  924 + 1. 0.44182E+01 -0.14625E+02 -0.38432E+01
  925 + 1. -0.61856E+01 0.75666E+01 -0.38350E+01
  926 + 1. -0.10242E+02 0.70635E+01 -0.38281E+01
  927 + 1. -0.14615E+01 -0.19298E+02 -0.38208E+01
  928 + 1. -0.15505E+01 -0.12552E+02 -0.38154E+01
  929 + 1. 0.13468E+02 -0.93385E+01 -0.38078E+01
  930 + 1. 0.84115E+01 0.97452E+01 -0.38038E+01
  931 + 1. -0.52123E+00 0.17071E+02 -0.37984E+01
  932 + 1. -0.59110E+01 -0.38195E+00 -0.37907E+01
  933 + 1. -0.37433E+01 0.12194E+02 -0.37806E+01
  934 + 1. -0.65603E+01 0.18847E+02 -0.37753E+01
  935 + 1. 0.70663E+01 -0.36290E+01 -0.37713E+01
  936 + 1. 0.95161E+01 -0.69187E+01 -0.37610E+01
  937 + 1. 0.64689E+01 -0.85565E+01 -0.37576E+01
  938 + 1. -0.94902E+01 0.37801E+01 -0.37524E+01
  939 + 1. -0.42967E+01 0.63193E+01 -0.37422E+01
  940 + 1. -0.11577E+01 -0.66819E+01 -0.37390E+01
  941 + 1. 0.15766E+02 -0.42643E+01 -0.37277E+01
  942 + 1. -0.15497E+02 -0.12516E+02 -0.37232E+01
  943 + 1. 0.21511E+01 -0.55584E+00 -0.37154E+01
  944 + 1. -0.80380E+01 0.15992E+02 -0.37085E+01
  945 + 1. -0.80205E+01 0.12255E+02 -0.37058E+01
  946 + 1. -0.10140E+02 0.14286E+02 -0.36955E+01
  947 + 1. -0.14505E+02 0.34547E+01 -0.36890E+01
  948 + 1. 0.64576E+00 -0.24856E+01 -0.36836E+01
  949 + 1. 0.18968E+02 0.62621E+01 -0.36763E+01
  950 + 1. 0.13074E+01 0.79303E+01 -0.36704E+01
  951 + 1. 0.19758E+01 -0.12067E+02 -0.36617E+01
  952 + 1. -0.13610E+02 -0.58874E+01 -0.36559E+01
  953 + 1. -0.46671E+01 -0.89898E+01 -0.36506E+01
  954 + 1. 0.13695E+02 -0.59621E+01 -0.36404E+01
  955 + 1. -0.37552E+01 0.42223E+01 -0.36393E+01
  956 + 1. 0.11525E+02 -0.97795E+01 -0.36283E+01
  957 + 1. 0.12456E+02 0.33256E+01 -0.36242E+01
  958 + 1. 0.88354E+01 0.13313E+02 -0.36188E+01
  959 + 1. -0.68455E+01 -0.17773E+02 -0.36080E+01
  960 + 1. -0.11182E+02 -0.97814E+01 -0.36041E+01
  961 + 1. -0.15880E+02 -0.91244E+01 -0.35973E+01
  962 + 1. -0.19660E+02 -0.35127E+01 -0.35870E+01
  963 + 1. -0.46675E+01 -0.16318E+02 -0.35826E+01
  964 + 1. -0.19960E+01 0.19402E+02 -0.35785E+01
  965 + 1. 0.14697E+01 0.19546E+02 -0.35683E+01
  966 + 1. -0.11983E+01 -0.34308E+01 -0.35635E+01
  967 + 1. 0.13091E+02 0.82373E+01 -0.35599E+01
  968 + 1. 0.36792E+01 -0.30823E+01 -0.35477E+01
  969 + 1. -0.79454E+01 0.50552E+01 -0.35465E+01
  970 + 1. 0.51410E+01 0.14877E+02 -0.35377E+01
  971 + 1. 0.20160E+00 -0.13674E+02 -0.35306E+01
  972 + 1. 0.10599E+02 0.14477E+02 -0.35265E+01
  973 + 1. -0.43911E+01 0.16045E+02 -0.35179E+01
  974 + 1. 0.10632E+02 0.76106E+01 -0.35100E+01
  975 + 1. -0.17227E+02 0.94156E+01 -0.35029E+01
  976 + 1. 0.99826E+01 -0.29572E+01 -0.34988E+01
  977 + 1. -0.43220E+01 -0.19485E+02 -0.34906E+01
  978 + 1. 0.29093E+01 -0.16536E+02 -0.34840E+01
  979 + 1. -0.17284E+02 0.61054E+01 -0.34739E+01
  980 + 1. -0.44296E+01 -0.12982E+02 -0.34687E+01
  981 + 1. 0.79137E+01 -0.14486E+02 -0.34632E+01
  982 + 1. -0.34050E+01 -0.50643E+01 -0.34580E+01
  983 + 1. -0.14267E+02 0.13538E+02 -0.34467E+01
  984 + 1. 0.59913E+01 -0.11178E+02 -0.34450E+01
  985 + 1. 0.16667E+02 -0.79286E+01 -0.34387E+01
  986 + 1. 0.79686E+01 -0.10288E+02 -0.34284E+01
  987 + 1. -0.13299E+02 -0.11990E+02 -0.34253E+01
  988 + 1. 0.17510E+01 -0.60728E+01 -0.34164E+01
  989 + 1. -0.77993E+01 -0.74496E+01 -0.34100E+01
  990 + 1. 0.31437E+01 0.98427E+01 -0.34024E+01
  991 + 1. 0.18720E+02 0.26276E+01 -0.33947E+01
  992 + 1. -0.18200E+02 -0.18696E+01 -0.33905E+01
  993 + 1. -0.12050E+02 -0.15597E+02 -0.33840E+01
  994 + 1. 0.12585E+02 0.15078E+02 -0.33741E+01
  995 + 1. -0.51330E+01 -0.29210E+01 -0.33684E+01
  996 + 1. 0.56940E+01 0.94583E+01 -0.33619E+01
  997 + 1. -0.15679E+02 -0.68585E+01 -0.33566E+01
  998 + 1. 0.12670E+02 -0.15390E+02 -0.33497E+01
  999 + 1. -0.13949E+02 -0.14291E+02 -0.33422E+01
  1000 + 1. 0.12827E+02 -0.12876E+02 -0.33345E+01
  1001 + 1. -0.35110E+01 -0.13187E+00 -0.33321E+01
  1002 + 1. -0.19381E+02 0.49295E+01 -0.33247E+01
  1003 + 1. 0.78998E+00 0.89018E+00 -0.33140E+01
  1004 + 1. 0.13880E+01 0.13247E+02 -0.33074E+01
  1005 + 1. 0.15134E+02 -0.10646E+02 -0.33040E+01
  1006 + 1. 0.79390E+01 0.17675E+02 -0.32996E+01
  1007 + 1. -0.57989E+01 0.36343E+01 -0.32895E+01
  1008 + 1. -0.12809E+02 0.54764E+01 -0.32867E+01
  1009 + 1. 0.16105E+02 0.56154E+01 -0.32743E+01
  1010 + 1. -0.15316E+02 0.68704E+00 -0.32672E+01
  1011 + 1. -0.77401E+01 -0.97776E+01 -0.32620E+01
  1012 + 1. 0.14491E+02 0.24547E+01 -0.32568E+01
  1013 + 1. -0.10699E+02 -0.47546E+01 -0.32475E+01
  1014 + 1. 0.10216E+02 0.30081E+01 -0.32462E+01
  1015 + 1. -0.17266E+02 0.33716E+01 -0.32346E+01
  1016 + 1. -0.10464E+02 0.16629E+02 -0.32279E+01
  1017 + 1. -0.12446E+02 0.15246E+02 -0.32261E+01
  1018 + 1. -0.23357E+01 0.15471E+02 -0.32138E+01
  1019 + 1. 0.49710E+01 -0.70887E+01 -0.32096E+01
  1020 + 1. 0.78593E+01 0.55953E+01 -0.32050E+01
  1021 + 1. -0.72167E+01 -0.12441E+02 -0.31991E+01
  1022 + 1. -0.87439E+01 0.83880E+01 -0.31913E+01
  1023 + 1. 0.17270E+02 -0.96117E+00 -0.31833E+01
  1024 + 1. 0.21149E+01 -0.88238E+01 -0.31789E+01
  1025 + 1. 0.11809E+02 -0.51169E+01 -0.31671E+01
  1026 + 1. -0.69537E+00 -0.10795E+02 -0.31636E+01
  1027 + 1. 0.43054E+01 0.50272E+01 -0.31584E+01
  1028 + 1. -0.72963E+01 -0.43500E+01 -0.31472E+01
  1029 + 1. 0.65859E+01 -0.56826E+01 -0.31425E+01
  1030 + 1. 0.61905E+01 -0.17667E+02 -0.31355E+01
  1031 + 1. 0.18414E+02 -0.63875E+01 -0.31329E+01
  1032 + 1. -0.15278E+01 0.10093E+02 -0.31258E+01
  1033 + 1. -0.11735E+02 0.13089E+02 -0.31151E+01
  1034 + 1. 0.10139E+02 0.55961E+01 -0.31079E+01
  1035 + 1. 0.14632E+02 -0.78397E+01 -0.31016E+01
  1036 + 1. -0.84328E+01 0.21817E+01 -0.30952E+01
  1037 + 1. 0.15765E+02 0.11574E+02 -0.30914E+01
  1038 + 1. -0.21895E+01 0.63076E+01 -0.30802E+01
  1039 + 1. 0.49252E+01 -0.12846E+02 -0.30748E+01
  1040 + 1. 0.14599E+02 -0.70901E+00 -0.30687E+01
  1041 + 1. 0.67695E+01 0.13689E+02 -0.30630E+01
  1042 + 1. -0.39110E+01 0.18064E+02 -0.30580E+01
  1043 + 1. -0.30481E+01 -0.17457E+02 -0.30530E+01
  1044 + 1. 0.10063E+01 0.31022E+01 -0.30429E+01
  1045 + 1. -0.57368E+01 0.11842E+02 -0.30394E+01
  1046 + 1. 0.19214E+01 0.16002E+02 -0.30300E+01
  1047 + 1. -0.13624E+02 -0.90506E+01 -0.30212E+01
  1048 + 1. -0.74870E+00 0.46526E+01 -0.30151E+01
  1049 + 1. -0.15484E+02 0.82407E+01 -0.30076E+01
  1050 + 1. 0.56643E+01 0.31563E+01 -0.30064E+01
  1051 + 1. -0.87885E+01 -0.13704E+02 -0.29979E+01
  1052 + 1. -0.19411E+01 0.13108E+02 -0.29920E+01
  1053 + 1. 0.88106E+01 -0.12504E+02 -0.29812E+01
  1054 + 1. -0.11852E+02 -0.59169E+00 -0.29744E+01
  1055 + 1. -0.73640E+00 -0.16566E+02 -0.29676E+01
  1056 + 1. -0.15109E+02 -0.24086E+01 -0.29620E+01
  1057 + 1. 0.98771E+01 -0.14412E+02 -0.29594E+01
  1058 + 1. -0.16204E+01 0.55894E+00 -0.29498E+01
  1059 + 1. 0.63759E+01 -0.18000E+01 -0.29431E+01
  1060 + 1. -0.29435E+01 -0.81139E+01 -0.29347E+01
  1061 + 1. 0.92495E+01 -0.16375E+02 -0.29288E+01
  1062 + 1. -0.84459E+01 0.17832E+02 -0.29217E+01
  1063 + 1. -0.12667E+02 0.88319E+01 -0.29169E+01
  1064 + 1. 0.78334E+01 -0.16264E-01 -0.29104E+01
  1065 + 1. -0.15270E+02 -0.49101E+01 -0.29001E+01
  1066 + 1. -0.65993E+01 0.14075E+01 -0.28941E+01
  1067 + 1. 0.34794E+01 -0.51637E+01 -0.28892E+01
  1068 + 1. 0.13312E+02 0.12326E+02 -0.28827E+01
  1069 + 1. -0.15095E+02 0.57411E+01 -0.28747E+01
  1070 + 1. 0.90781E+01 0.15679E+02 -0.28671E+01
  1071 + 1. 0.17462E+02 -0.34217E+01 -0.28634E+01
  1072 + 1. -0.12685E+02 0.32992E+01 -0.28598E+01
  1073 + 1. -0.11932E+02 -0.67508E+01 -0.28467E+01
  1074 + 1. -0.70356E+01 0.13943E+02 -0.28454E+01
  1075 + 1. 0.19844E+02 -0.88318E+00 -0.28355E+01
  1076 + 1. -0.19508E+02 0.14317E+01 -0.28297E+01
  1077 + 1. 0.38494E+01 -0.18254E+02 -0.28219E+01
  1078 + 1. 0.11915E+02 0.10294E+01 -0.28168E+01
  1079 + 1. 0.30706E+01 0.12078E+02 -0.28088E+01
  1080 + 1. 0.17431E+02 0.72970E+01 -0.28001E+01
  1081 + 1. -0.11556E+02 -0.29976E+01 -0.27988E+01
  1082 + 1. 0.94681E+00 0.57447E+01 -0.27918E+01
  1083 + 1. 0.13307E-01 0.11405E+02 -0.27806E+01
  1084 + 1. -0.11056E+02 -0.12538E+02 -0.27738E+01
  1085 + 1. -0.30871E+01 -0.14472E+02 -0.27671E+01
  1086 + 1. 0.88855E+01 -0.85558E+01 -0.27644E+01
  1087 + 1. 0.52174E+01 0.11574E+02 -0.27596E+01
  1088 + 1. 0.96953E+01 -0.50361E+01 -0.27522E+01
  1089 + 1. -0.95256E+01 -0.17493E+02 -0.27403E+01
  1090 + 1. 0.45793E+01 0.10395E+00 -0.27338E+01
  1091 + 1. 0.16286E+02 -0.60551E+01 -0.27284E+01
  1092 + 1. 0.36478E+01 0.79969E+01 -0.27203E+01
  1093 + 1. -0.14754E+02 0.10171E+02 -0.27198E+01
  1094 + 1. 0.14986E+02 -0.26703E+01 -0.27078E+01
  1095 + 1. 0.16697E+01 -0.18183E+02 -0.27036E+01
  1096 + 1. -0.18138E+02 -0.45569E+01 -0.26936E+01
  1097 + 1. 0.13946E+02 0.63373E+01 -0.26893E+01
  1098 + 1. 0.14874E+02 -0.12794E+02 -0.26823E+01
  1099 + 1. -0.27518E+01 -0.11404E+02 -0.26770E+01
  1100 + 1. 0.55334E+01 -0.15829E+02 -0.26733E+01
  1101 + 1. -0.13420E+02 -0.37520E+01 -0.26617E+01
  1102 + 1. -0.30371E+01 -0.26905E+01 -0.26563E+01
  1103 + 1. -0.75369E+01 -0.77412E+00 -0.26503E+01
  1104 + 1. 0.49376E+01 0.19357E+02 -0.26455E+01
  1105 + 1. -0.52354E+01 -0.62482E+01 -0.26335E+01
  1106 + 1. 0.17738E+02 0.45518E+01 -0.26268E+01
  1107 + 1. 0.33634E+00 -0.49005E+01 -0.26247E+01
  1108 + 1. 0.71018E+01 0.80336E+01 -0.26195E+01
  1109 + 1. 0.27739E+01 0.17939E+02 -0.26070E+01
  1110 + 1. -0.49234E+01 0.10068E+02 -0.26022E+01
  1111 + 1. -0.58480E+01 -0.10978E+02 -0.25954E+01
  1112 + 1. 0.36792E+01 0.28555E+01 -0.25921E+01
  1113 + 1. -0.98656E+00 0.81160E+01 -0.25824E+01
  1114 + 1. 0.12789E+02 0.10211E+02 -0.25752E+01
  1115 + 1. -0.46411E+01 0.80537E+01 -0.25674E+01
  1116 + 1. 0.11006E+02 0.12235E+02 -0.25646E+01
  1117 + 1. -0.17716E+02 -0.87762E+01 -0.25539E+01
  1118 + 1. -0.16957E+02 -0.47682E+00 -0.25533E+01
  1119 + 1. -0.16700E+02 -0.10931E+02 -0.25448E+01
  1120 + 1. -0.37352E+01 0.14111E+02 -0.25353E+01
  1121 + 1. 0.14706E+02 0.91405E+01 -0.25281E+01
  1122 + 1. 0.76832E+01 0.25152E+01 -0.25234E+01
  1123 + 1. 0.12124E+02 -0.23723E+01 -0.25177E+01
  1124 + 1. 0.10140E+02 0.94523E+01 -0.25129E+01
  1125 + 1. 0.48272E+01 -0.94249E+01 -0.25051E+01
  1126 + 1. -0.10843E+02 0.49651E+01 -0.24968E+01
  1127 + 1. -0.13161E+02 0.10011E+01 -0.24882E+01
  1128 + 1. 0.11580E+02 -0.11502E+02 -0.24859E+01
  1129 + 1. -0.12797E-01 -0.77459E+00 -0.24746E+01
  1130 + 1. -0.30020E+00 0.19204E+02 -0.24691E+01
  1131 + 1. -0.96068E+01 -0.88590E+01 -0.24621E+01
  1132 + 1. 0.16130E+02 0.13294E+01 -0.24574E+01
  1133 + 1. -0.10231E+02 0.96620E+01 -0.24481E+01
  1134 + 1. 0.96559E+01 -0.12504E+01 -0.24455E+01
  1135 + 1. 0.60636E+00 -0.73980E+01 -0.24388E+01
  1136 + 1. 0.11687E+02 -0.81225E+01 -0.24304E+01
  1137 + 1. -0.99788E+01 0.96227E+00 -0.24229E+01
  1138 + 1. -0.97102E+01 0.12777E+02 -0.24165E+01
  1139 + 1. -0.19967E+02 -0.10744E+01 -0.24093E+01
  1140 + 1. 0.49092E+01 0.16533E+02 -0.24049E+01
  1141 + 1. -0.78179E+01 -0.15735E+02 -0.23950E+01
  1142 + 1. 0.80264E+01 0.11679E+02 -0.23928E+01
  1143 + 1. -0.78711E+01 0.67325E+01 -0.23848E+01
  1144 + 1. 0.31366E+01 -0.13720E+02 -0.23735E+01
  1145 + 1. 0.54792E+01 -0.38359E+01 -0.23714E+01
  1146 + 1. -0.59172E+01 0.61952E+01 -0.23660E+01
  1147 + 1. -0.57233E+01 0.17302E+02 -0.23563E+01
  1148 + 1. 0.14603E+00 0.15149E+02 -0.23497E+01
  1149 + 1. 0.25845E+01 0.88440E+00 -0.23405E+01
  1150 + 1. 0.17362E+02 -0.95715E+01 -0.23397E+01
  1151 + 1. 0.11534E+01 -0.16223E+02 -0.23296E+01
  1152 + 1. -0.84089E+01 -0.25905E+01 -0.23263E+01
  1153 + 1. 0.19541E+02 -0.32501E+01 -0.23188E+01
  1154 + 1. -0.11802E+02 0.11108E+02 -0.23116E+01
  1155 + 1. -0.27006E+01 -0.19745E+02 -0.23011E+01
  1156 + 1. -0.98518E+01 -0.64725E+01 -0.22952E+01
  1157 + 1. 0.81614E+01 -0.66429E+01 -0.22914E+01
  1158 + 1. -0.71254E+01 0.92173E+01 -0.22824E+01
  1159 + 1. 0.21287E+01 -0.34574E+01 -0.22792E+01
  1160 + 1. 0.11896E+02 0.63557E+01 -0.22681E+01
  1161 + 1. -0.97526E+01 -0.10871E+02 -0.22611E+01
  1162 + 1. -0.11700E+02 0.68331E+01 -0.22570E+01
  1163 + 1. 0.30662E+01 0.14458E+02 -0.22505E+01
  1164 + 1. 0.14171E+02 -0.45685E+01 -0.22430E+01
  1165 + 1. -0.18821E+02 0.66664E+01 -0.22398E+01
  1166 + 1. -0.57863E+01 -0.15355E+02 -0.22318E+01
  1167 + 1. 0.14780E+02 0.42095E+01 -0.22222E+01
  1168 + 1. 0.35268E+01 -0.11662E+02 -0.22156E+01
  1169 + 1. -0.90335E+01 0.15043E+02 -0.22118E+01
  1170 + 1. -0.10680E+02 0.29071E+01 -0.22026E+01
  1171 + 1. -0.16442E+01 0.17573E+02 -0.21949E+01
  1172 + 1. -0.12463E+02 -0.10635E+02 -0.21911E+01
  1173 + 1. 0.17123E+02 0.10066E+02 -0.21818E+01
  1174 + 1. -0.16514E+01 -0.54798E+01 -0.21796E+01
  1175 + 1. -0.30526E+01 0.11100E+02 -0.21728E+01
  1176 + 1. -0.18562E+02 -0.69968E+01 -0.21608E+01
  1177 + 1. -0.12060E+01 -0.14141E+02 -0.21562E+01
  1178 + 1. -0.29388E+01 0.29829E+01 -0.21524E+01
  1179 + 1. -0.84594E+01 0.11046E+02 -0.21410E+01
  1180 + 1. -0.89089E+00 0.23152E+01 -0.21379E+01
  1181 + 1. 0.31645E+00 -0.93736E+01 -0.21318E+01
  1182 + 1. 0.32641E+01 -0.73992E+01 -0.21265E+01
  1183 + 1. 0.11351E+02 0.42815E+01 -0.21142E+01
  1184 + 1. -0.44070E+01 0.12476E+01 -0.21077E+01
  1185 + 1. 0.68816E+01 0.15566E+02 -0.21014E+01
  1186 + 1. -0.13837E+02 -0.72561E+01 -0.20966E+01
  1187 + 1. 0.99827E+01 0.96543E+00 -0.20915E+01
  1188 + 1. 0.60253E+01 0.52506E+01 -0.20814E+01
  1189 + 1. -0.57319E+01 -0.18867E+02 -0.20744E+01
  1190 + 1. -0.13774E+02 0.11831E+02 -0.20712E+01
  1191 + 1. 0.19376E+02 0.10053E+01 -0.20656E+01
  1192 + 1. 0.64990E+01 -0.13958E+02 -0.20556E+01
  1193 + 1. 0.13347E+02 -0.10291E+02 -0.20493E+01
  1194 + 1. -0.53116E+01 -0.13152E+01 -0.20404E+01
  1195 + 1. -0.31852E+00 -0.18973E+02 -0.20338E+01
  1196 + 1. -0.63674E+01 -0.85854E+01 -0.20287E+01
  1197 + 1. -0.14709E+02 -0.11624E+02 -0.20212E+01
  1198 + 1. -0.15401E+02 0.26950E+01 -0.20181E+01
  1199 + 1. 0.13769E+02 0.79632E+00 -0.20089E+01
  1200 + 1. 0.12702E+01 0.94158E+01 -0.20035E+01
  1201 + 1. 0.88371E+01 0.69889E+01 -0.19978E+01
  1202 + 1. 0.96308E+01 -0.10546E+02 -0.19924E+01
  1203 + 1. 0.52091E+00 -0.12373E+02 -0.19863E+01
  1204 + 1. -0.10426E+02 -0.14339E+02 -0.19773E+01
  1205 + 1. -0.19600E+02 0.34461E+01 -0.19675E+01
  1206 + 1. -0.16625E+02 0.48110E+01 -0.19642E+01
  1207 + 1. 0.70920E+00 0.17273E+02 -0.19552E+01
  1208 + 1. 0.31287E+01 -0.11133E+01 -0.19494E+01
  1209 + 1. -0.16854E+02 0.10642E+02 -0.19452E+01
  1210 + 1. 0.64720E+01 0.18168E+02 -0.19400E+01
  1211 + 1. 0.11074E+02 0.15795E+02 -0.19318E+01
  1212 + 1. 0.11805E+02 0.84020E+01 -0.19210E+01
  1213 + 1. -0.17318E+02 0.17475E+01 -0.19174E+01
  1214 + 1. 0.11506E+02 -0.16261E+02 -0.19123E+01
  1215 + 1. -0.13567E+02 -0.16535E+01 -0.19030E+01
  1216 + 1. -0.85160E+01 0.40444E+01 -0.18943E+01
  1217 + 1. 0.12025E+02 -0.14096E+02 -0.18881E+01
  1218 + 1. -0.12829E+02 -0.13187E+02 -0.18866E+01
  1219 + 1. -0.17152E+02 -0.29506E+01 -0.18756E+01
  1220 + 1. -0.39411E+01 0.53099E+01 -0.18674E+01
  1221 + 1. 0.28579E+01 0.63375E+01 -0.18608E+01
  1222 + 1. 0.14865E+02 0.13204E+02 -0.18595E+01
  1223 + 1. 0.10136E+02 -0.70004E+01 -0.18494E+01
  1224 + 1. -0.11652E+02 -0.84992E+01 -0.18447E+01
  1225 + 1. 0.79544E+01 -0.45258E+01 -0.18334E+01
  1226 + 1. 0.95655E+01 0.13945E+02 -0.18315E+01
  1227 + 1. 0.84807E+01 -0.17910E+02 -0.18226E+01
  1228 + 1. -0.16833E+01 -0.91925E+01 -0.18167E+01
  1229 + 1. 0.70810E+01 -0.83661E+01 -0.18103E+01
  1230 + 1. -0.56690E+01 -0.13146E+02 -0.18048E+01
  1231 + 1. -0.51936E+01 -0.42906E+01 -0.17981E+01
  1232 + 1. 0.12810E+02 0.25966E+01 -0.17905E+01
  1233 + 1. 0.22759E+01 0.41709E+01 -0.17827E+01
  1234 + 1. 0.12371E+01 -0.14247E+02 -0.17777E+01
  1235 + 1. 0.68936E+01 0.99620E+01 -0.17729E+01
  1236 + 1. 0.96696E+01 0.17472E+02 -0.17666E+01
  1237 + 1. 0.68955E+01 -0.10598E+02 -0.17542E+01
  1238 + 1. 0.75292E+01 -0.16026E+02 -0.17500E+01
  1239 + 1. 0.19742E+02 0.31243E+01 -0.17461E+01
  1240 + 1. -0.26289E+01 0.90267E+01 -0.17382E+01
  1241 + 1. -0.64141E+01 0.15505E+02 -0.17327E+01
  1242 + 1. 0.11969E+02 0.13967E+02 -0.17264E+01
  1243 + 1. -0.37429E+01 -0.97176E+01 -0.17158E+01
  1244 + 1. -0.79247E+01 -0.61267E+01 -0.17067E+01
  1245 + 1. -0.10007E+02 -0.11162E+01 -0.17040E+01
  1246 + 1. 0.16569E+02 0.32101E+01 -0.16965E+01
  1247 + 1. 0.12967E+02 -0.66305E+01 -0.16922E+01
  1248 + 1. -0.25932E+01 0.19812E+02 -0.16806E+01
  1249 + 1. 0.79823E+01 -0.23769E+01 -0.16799E+01
  1250 + 1. 0.15105E+02 -0.92270E+01 -0.16733E+01
  1251 + 1. -0.45385E+00 -0.30404E+01 -0.16657E+01
  1252 + 1. -0.13870E+02 0.72486E+01 -0.16581E+01
  1253 + 1. -0.11114E+02 -0.16615E+02 -0.16532E+01
  1254 + 1. -0.13049E+02 0.13986E+02 -0.16432E+01
  1255 + 1. 0.16187E+02 -0.11059E+02 -0.16366E+01
  1256 + 1. 0.26743E+01 -0.19635E+02 -0.16290E+01
  1257 + 1. -0.17019E+02 0.73401E+01 -0.16261E+01
  1258 + 1. -0.38585E+01 0.16386E+02 -0.16142E+01
  1259 + 1. 0.87263E+01 0.40035E+01 -0.16081E+01
  1260 + 1. 0.53954E+01 0.13790E+02 -0.16013E+01
  1261 + 1. 0.18572E+02 0.61562E+01 -0.15971E+01
  1262 + 1. -0.16758E+02 -0.57908E+01 -0.15926E+01
  1263 + 1. -0.15663E+02 -0.93332E+01 -0.15833E+01
  1264 + 1. 0.43272E+01 0.95065E+01 -0.15773E+01
  1265 + 1. -0.97762E+01 -0.39957E+01 -0.15673E+01
  1266 + 1. -0.76198E+01 -0.17659E+02 -0.15647E+01
  1267 + 1. 0.33637E+01 -0.16214E+02 -0.15581E+01
  1268 + 1. -0.42316E+01 -0.16747E+02 -0.15497E+01
  1269 + 1. 0.15650E+02 0.76445E+01 -0.15423E+01
  1270 + 1. 0.15421E+01 0.19430E+02 -0.15366E+01
  1271 + 1. -0.79251E+01 -0.11348E+02 -0.15325E+01
  1272 + 1. 0.52464E+01 -0.18935E+02 -0.15252E+01
  1273 + 1. 0.23204E+01 -0.10140E+02 -0.15137E+01
  1274 + 1. 0.64660E+01 0.12889E+01 -0.15114E+01
  1275 + 1. 0.10288E+02 -0.33649E+01 -0.15050E+01
  1276 + 1. -0.19183E+02 -0.32493E+01 -0.14945E+01
  1277 + 1. -0.54347E+01 0.13626E+02 -0.14873E+01
  1278 + 1. 0.17892E+02 -0.49917E+01 -0.14846E+01
  1279 + 1. -0.97241E+01 0.63921E+01 -0.14742E+01
  1280 + 1. -0.13859E+02 0.42874E+01 -0.14674E+01
  1281 + 1. -0.11058E+02 0.14094E+02 -0.14640E+01
  1282 + 1. 0.16803E+02 -0.76363E+01 -0.14588E+01
  1283 + 1. 0.17630E+02 0.15080E+00 -0.14485E+01
  1284 + 1. 0.47746E+01 -0.59322E+01 -0.14430E+01
  1285 + 1. -0.56984E+01 0.26492E+01 -0.14335E+01
  1286 + 1. -0.21811E+01 -0.71414E+00 -0.14320E+01
  1287 + 1. -0.46269E+00 0.13394E+02 -0.14243E+01
  1288 + 1. -0.12745E+02 -0.15331E+02 -0.14149E+01
  1289 + 1. -0.12086E+02 -0.50587E+01 -0.14099E+01
  1290 + 1. 0.21218E+01 -0.56893E+01 -0.14039E+01
  1291 + 1. 0.18099E+02 -0.19202E+01 -0.13968E+01
  1292 + 1. -0.33627E+01 -0.64127E+01 -0.13889E+01
  1293 + 1. -0.11704E+02 0.16137E+02 -0.13833E+01
  1294 + 1. -0.14856E+02 0.14788E-01 -0.13774E+01
  1295 + 1. 0.11331E+02 -0.56047E+00 -0.13671E+01
  1296 + 1. 0.98624E+01 0.11103E+02 -0.13638E+01
  1297 + 1. 0.10843E+01 0.72153E+01 -0.13592E+01
  1298 + 1. -0.20093E+01 -0.17873E+02 -0.13500E+01
  1299 + 1. 0.16362E+01 0.12780E+02 -0.13461E+01
  1300 + 1. -0.15270E+02 -0.35704E+01 -0.13356E+01
  1301 + 1. -0.41672E+01 -0.11841E+02 -0.13269E+01
  1302 + 1. -0.21776E+01 -0.15755E+02 -0.13204E+01
  1303 + 1. -0.65615E+01 0.11084E+02 -0.13168E+01
  1304 + 1. -0.47169E+01 0.19264E+02 -0.13085E+01
  1305 + 1. 0.93956E+00 0.16197E+01 -0.13023E+01
  1306 + 1. 0.49735E+01 0.67723E+01 -0.12993E+01
  1307 + 1. -0.16535E+01 0.15715E+02 -0.12868E+01
  1308 + 1. 0.48559E+01 -0.22043E+01 -0.12816E+01
  1309 + 1. -0.11598E+01 0.62842E+01 -0.12761E+01
  1310 + 1. 0.14163E+02 -0.14086E+02 -0.12709E+01
  1311 + 1. 0.16153E+02 0.54784E+01 -0.12626E+01
  1312 + 1. -0.12049E+01 -0.11323E+02 -0.12562E+01
  1313 + 1. 0.16299E+02 -0.37665E+01 -0.12521E+01
  1314 + 1. 0.12168E+02 -0.41319E+01 -0.12439E+01
  1315 + 1. -0.11367E+01 0.10845E+02 -0.12395E+01
  1316 + 1. 0.13550E+02 -0.10425E+01 -0.12274E+01
  1317 + 1. -0.18566E+02 -0.13430E+00 -0.12240E+01
  1318 + 1. -0.81618E+01 0.10534E+01 -0.12147E+01
  1319 + 1. 0.84728E+01 -0.13960E+02 -0.12096E+01
  1320 + 1. -0.95176E+01 -0.12563E+02 -0.12061E+01
  1321 + 1. -0.11583E+01 -0.72036E+01 -0.11957E+01
  1322 + 1. 0.14923E+02 -0.62968E+01 -0.11876E+01
  1323 + 1. 0.15409E+02 -0.45714E-01 -0.11824E+01
  1324 + 1. -0.14339E+02 -0.54240E+01 -0.11754E+01
  1325 + 1. -0.66718E+01 -0.27065E+01 -0.11707E+01
  1326 + 1. -0.11711E+02 0.14926E+01 -0.11617E+01
  1327 + 1. -0.68879E+01 0.18768E+02 -0.11571E+01
  1328 + 1. -0.78874E+01 -0.13730E+02 -0.11481E+01
  1329 + 1. 0.28341E+00 0.42193E+01 -0.11426E+01
  1330 + 1. -0.13414E+02 0.96085E+01 -0.11345E+01
  1331 + 1. 0.10439E+02 -0.12679E+02 -0.11330E+01
  1332 + 1. 0.14323E+02 0.11290E+02 -0.11231E+01
  1333 + 1. -0.86610E+01 0.16950E+02 -0.11199E+01
  1334 + 1. -0.30408E+01 0.69641E+01 -0.11111E+01
  1335 + 1. -0.15611E+02 0.90018E+01 -0.11063E+01
  1336 + 1. 0.75562E+01 0.13896E+02 -0.10955E+01
  1337 + 1. 0.41446E+01 0.13378E+01 -0.10908E+01
  1338 + 1. -0.86038E+01 0.82292E+01 -0.10856E+01
  1339 + 1. 0.11375E+02 -0.10065E+02 -0.10787E+01
  1340 + 1. 0.13671E+02 0.77269E+01 -0.10726E+01
  1341 + 1. -0.62550E+01 0.16613E+00 -0.10643E+01
  1342 + 1. 0.29527E+01 0.16340E+02 -0.10551E+01
  1343 + 1. 0.13282E+02 -0.12038E+02 -0.10523E+01
  1344 + 1. -0.15634E+02 0.11963E+02 -0.10436E+01
  1345 + 1. 0.84268E+01 0.88612E+01 -0.10366E+01
  1346 + 1. 0.66697E+01 -0.76473E+00 -0.10313E+01
  1347 + 1. 0.13051E+02 -0.85369E+01 -0.10264E+01
  1348 + 1. -0.82151E+01 0.13222E+02 -0.10159E+01
  1349 + 1. -0.24579E+01 0.13478E+02 -0.10083E+01
  1350 + 1. 0.10139E+02 0.54854E+01 -0.10062E+01
  1351 + 1. -0.10820E+02 0.84131E+01 -0.99655E+00
  1352 + 1. 0.37696E+01 0.19595E+02 -0.98742E+00
  1353 + 1. 0.33643E+01 0.11176E+02 -0.98219E+00
  1354 + 1. 0.45778E+01 -0.14061E+02 -0.97710E+00
  1355 + 1. 0.42068E+01 0.41049E+01 -0.96992E+00
  1356 + 1. -0.24250E+01 -0.36394E+01 -0.96204E+00
  1357 + 1. -0.19189E+02 -0.53520E+01 -0.95752E+00
  1358 + 1. -0.41403E+01 -0.25622E+01 -0.95108E+00
  1359 + 1. -0.83570E+01 -0.80208E+01 -0.94279E+00
  1360 + 1. -0.13596E+02 0.22226E+01 -0.93392E+00
  1361 + 1. 0.55176E+01 -0.16975E+02 -0.93197E+00
  1362 + 1. -0.13737E+02 -0.94448E+01 -0.92252E+00
  1363 + 1. 0.98267E+01 -0.15623E+02 -0.91429E+00
  1364 + 1. 0.64507E+01 0.12067E+02 -0.91002E+00
  1365 + 1. 0.83904E+01 0.13274E+01 -0.90447E+00
  1366 + 1. -0.59027E+01 0.76663E+01 -0.89713E+00
  1367 + 1. 0.84773E+01 -0.11921E+02 -0.88689E+00
  1368 + 1. 0.14109E+02 -0.30673E+01 -0.88273E+00
  1369 + 1. 0.50128E+01 -0.81358E+01 -0.87672E+00
  1370 + 1. 0.13107E+02 0.51292E+01 -0.87199E+00
  1371 + 1. -0.40023E+01 -0.14374E+02 -0.86044E+00
  1372 + 1. 0.12632E+01 -0.11434E+01 -0.85353E+00
  1373 + 1. -0.15468E+02 0.63206E+01 -0.85088E+00
  1374 + 1. 0.60641E+01 -0.12368E+02 -0.84664E+00
  1375 + 1. 0.77003E+01 0.16939E+02 -0.83994E+00
  1376 + 1. 0.64362E+01 0.33544E+01 -0.83265E+00
  1377 + 1. -0.31456E+00 -0.16663E+02 -0.82594E+00
  1378 + 1. 0.11836E+02 0.11674E+02 -0.81415E+00
  1379 + 1. -0.27845E+01 0.10935E+01 -0.80757E+00
  1380 + 1. 0.34565E+01 -0.40830E+01 -0.80624E+00
  1381 + 1. -0.18711E+02 0.48534E+01 -0.79693E+00
  1382 + 1. -0.63282E+01 0.47967E+01 -0.78797E+00
  1383 + 1. -0.14546E+02 -0.13629E+02 -0.78543E+00
  1384 + 1. 0.26467E+01 0.84305E+01 -0.77744E+00
  1385 + 1. -0.10424E+02 -0.97034E+01 -0.77125E+00
  1386 + 1. -0.11819E+02 -0.22091E+01 -0.76263E+00
  1387 + 1. -0.93974E+01 -0.15552E+02 -0.75761E+00
  1388 + 1. 0.89241E+01 -0.81866E+01 -0.75318E+00
  1389 + 1. -0.11848E+02 0.53271E+01 -0.74388E+00
  1390 + 1. 0.17464E+02 0.84898E+01 -0.73690E+00
  1391 + 1. -0.56967E+01 -0.72015E+01 -0.72934E+00
  1392 + 1. -0.15869E+02 -0.16874E+01 -0.72483E+00
  1393 + 1. 0.41523E+01 -0.10263E+02 -0.71914E+00
  1394 + 1. 0.21018E+01 -0.12667E+02 -0.70693E+00
  1395 + 1. -0.99451E+01 0.11244E+02 -0.70197E+00
  1396 + 1. -0.11403E+02 -0.11469E+02 -0.69944E+00
  1397 + 1. -0.55147E+01 -0.10061E+02 -0.68674E+00
  1398 + 1. -0.49959E+00 0.87712E+01 -0.68084E+00
  1399 + 1. -0.17772E+02 0.89625E+01 -0.67793E+00
  1400 + 1. 0.14707E+02 0.21098E+01 -0.66825E+00
  1401 + 1. 0.96653E+01 -0.53916E+01 -0.66188E+00
  1402 + 1. 0.10934E+02 0.23993E+01 -0.65943E+00
  1403 + 1. 0.71875E+01 0.63998E+01 -0.65224E+00
  1404 + 1. -0.68596E+01 -0.47983E+01 -0.64465E+00
  1405 + 1. -0.40821E+00 -0.48718E+01 -0.63668E+00
  1406 + 1. 0.93179E+01 0.15728E+02 -0.62706E+00
  1407 + 1. -0.41618E+01 0.10437E+02 -0.62334E+00
  1408 + 1. -0.16884E+02 -0.77650E+01 -0.61493E+00
  1409 + 1. 0.13821E+01 0.14694E+02 -0.60875E+00
  1410 + 1. 0.22953E+01 -0.17769E+02 -0.60564E+00
  1411 + 1. 0.19924E+02 -0.68720E+00 -0.59637E+00
  1412 + 1. 0.54482E+01 0.15558E+02 -0.59106E+00
  1413 + 1. -0.38492E+01 -0.19055E+02 -0.58393E+00
  1414 + 1. 0.17236E+01 -0.80640E+01 -0.57762E+00
  1415 + 1. -0.18906E+02 0.19775E+01 -0.57165E+00
  1416 + 1. 0.91243E+01 -0.55956E+00 -0.56029E+00
  1417 + 1. 0.65017E+01 0.83231E+01 -0.55455E+00
  1418 + 1. 0.64712E+01 -0.51713E+01 -0.55116E+00
  1419 + 1. -0.69816E+01 -0.15772E+02 -0.54068E+00
  1420 + 1. -0.23406E+01 -0.13005E+02 -0.53902E+00
  1421 + 1. -0.10981E+02 -0.67026E+01 -0.52923E+00
  1422 + 1. -0.24876E+01 0.46774E+01 -0.52269E+00
  1423 + 1. -0.92122E+00 0.19541E+02 -0.51594E+00
  1424 + 1. 0.10172E+02 0.74345E+01 -0.51126E+00
  1425 + 1. 0.18636E+02 -0.70323E+01 -0.50284E+00
  1426 + 1. -0.30790E+01 0.18058E+02 -0.49919E+00
  1427 + 1. -0.15989E+02 -0.11512E+02 -0.48671E+00
  1428 + 1. 0.10549E+01 0.10875E+02 -0.48443E+00
  1429 + 1. -0.16188E+01 -0.19864E+02 -0.47625E+00
  1430 + 1. 0.11118E+02 0.98138E+01 -0.46843E+00
  1431 + 1. -0.12952E+02 -0.37376E+00 -0.46620E+00
  1432 + 1. 0.69531E+01 -0.18449E+02 -0.45521E+00
  1433 + 1. -0.17265E+02 -0.98187E+01 -0.44970E+00
  1434 + 1. -0.41877E+01 -0.46531E+00 -0.44117E+00
  1435 + 1. -0.12208E+02 0.12205E+02 -0.43914E+00
  1436 + 1. -0.95536E+01 -0.17536E+02 -0.42876E+00
  1437 + 1. -0.96184E+01 0.27661E+01 -0.42355E+00
  1438 + 1. -0.40804E+01 0.32477E+01 -0.41590E+00
  1439 + 1. 0.19123E+02 -0.38051E+01 -0.40843E+00
  1440 + 1. -0.82307E+01 -0.12733E+01 -0.40559E+00
  1441 + 1. -0.16944E+02 0.34875E+01 -0.39543E+00
  1442 + 1. -0.74559E+01 0.28851E+01 -0.39258E+00
  1443 + 1. -0.19947E+02 -0.13942E+01 -0.38307E+00
  1444 + 1. 0.15718E+02 0.96288E+01 -0.37679E+00
  1445 + 1. 0.18309E+02 0.27444E+01 -0.37078E+00
  1446 + 1. -0.14797E+02 -0.77365E+01 -0.36068E+00
  1447 + 1. 0.12426E+02 0.15459E+02 -0.35622E+00
  1448 + 1. -0.56955E+01 0.17340E+02 -0.35237E+00
  1449 + 1. 0.16237E+02 0.11567E+02 -0.34018E+00
  1450 + 1. 0.37607E+00 -0.19833E+02 -0.33349E+00
  1451 + 1. -0.77789E+01 0.63598E+01 -0.32705E+00
  1452 + 1. 0.14337E+01 -0.37201E+01 -0.32518E+00
  1453 + 1. 0.10217E+02 0.12781E+02 -0.31660E+00
  1454 + 1. -0.16956E+02 -0.41970E+01 -0.31187E+00
  1455 + 1. 0.18164E+01 0.54453E+01 -0.30476E+00
  1456 + 1. 0.19587E+01 -0.15552E+02 -0.29737E+00
  1457 + 1. 0.80261E+00 -0.10614E+02 -0.29068E+00
  1458 + 1. -0.16574E+02 0.81301E+00 -0.28259E+00
  1459 + 1. 0.35473E+01 0.14216E+02 -0.27542E+00
  1460 + 1. -0.41506E+00 -0.14667E+02 -0.27217E+00
  1461 + 1. -0.30350E+01 -0.84992E+01 -0.26332E+00
  1462 + 1. 0.65598E+01 -0.31484E+01 -0.25465E+00
  1463 + 1. -0.83455E+01 -0.34022E+01 -0.24824E+00
  1464 + 1. 0.81343E+01 0.10994E+02 -0.24433E+00
  1465 + 1. 0.14308E+02 -0.10496E+02 -0.23746E+00
  1466 + 1. -0.84384E+00 -0.17046E+01 -0.22911E+00
  1467 + 1. -0.11426E+02 -0.13918E+02 -0.22655E+00
  1468 + 1. 0.17229E+02 -0.99238E+01 -0.21648E+00
  1469 + 1. 0.48868E+01 0.17789E+02 -0.21168E+00
  1470 + 1. -0.99811E+01 0.41277E+00 -0.20349E+00
  1471 + 1. -0.83421E-01 0.16573E+02 -0.19493E+00
  1472 + 1. 0.19926E+02 0.15267E+01 -0.18691E+00
  1473 + 1. -0.14090E+02 0.13048E+02 -0.18632E+00
  1474 + 1. -0.82683E+01 0.10086E+02 -0.17994E+00
  1475 + 1. -0.13232E+02 -0.12089E+02 -0.17027E+00
  1476 + 1. 0.67067E+01 -0.14667E+02 -0.16349E+00
  1477 + 1. -0.56522E+01 -0.17465E+02 -0.15818E+00
  1478 + 1. -0.37376E+01 0.14767E+02 -0.14780E+00
  1479 + 1. -0.18404E+02 0.69140E+01 -0.14586E+00
  1480 + 1. 0.13808E+02 0.13032E+02 -0.13808E+00
  1481 + 1. 0.12920E+02 0.77095E+00 -0.13332E+00
  1482 + 1. 0.11166E+02 -0.79063E+01 -0.12188E+00
  1483 + 1. 0.11712E+02 -0.22519E+01 -0.11345E+00
  1484 + 1. -0.99683E+01 0.15389E+02 -0.11155E+00
  1485 + 1. 0.29411E+01 -0.31446E+00 -0.10330E+00
  1486 + 1. -0.17833E+02 -0.21032E+01 -0.96015E-01
  1487 + 1. -0.43016E+01 0.12636E+02 -0.92979E-01
  1488 + 1. -0.93134E+01 -0.54113E+01 -0.83324E-01
  1489 + 1. 0.16910E+01 0.32271E+01 -0.78401E-01
  1490 + 1. -0.68112E+00 0.12961E+01 -0.67867E-01
  1491 + 1. 0.12726E+02 -0.15139E+02 -0.64059E-01
  1492 + 1. -0.41427E+01 -0.48671E+01 -0.57850E-01
  1493 + 1. 0.75879E+01 -0.67789E+01 -0.51261E-01
  1494 + 1. 0.56460E+01 0.10182E+02 -0.43949E-01
  1495 + 1. 0.14026E+01 0.17923E+02 -0.39997E-01
  1496 + 1. 0.40139E+01 -0.19535E+02 -0.30328E-01
  1497 + 1. -0.12492E+02 0.74426E+01 -0.25239E-01
  1498 + 1. -0.99543E+01 0.48661E+01 -0.13476E-01
  1499 + 1. -0.78053E+00 -0.89605E+01 -0.10096E-01
  1500 + 1. 0.14702E+02 0.63516E+01 -0.53276E-02
  1501 + 1. 0.14684E+02 0.40336E+01 0.47004E-02
  1502 + 1. -0.64731E+01 0.14469E+02 0.95324E-02
  1503 + 1. -0.26692E+01 -0.10803E+02 0.14102E-01
  1504 + 1. 0.16602E+02 -0.60727E+01 0.26419E-01
  1505 + 1. 0.41675E+01 -0.12357E+02 0.28076E-01
  1506 + 1. 0.16387E+02 -0.16681E+01 0.36083E-01
  1507 + 1. 0.56278E+01 0.51874E+01 0.42367E-01
  1508 + 1. -0.66936E+01 -0.12553E+02 0.49625E-01
  1509 + 1. 0.18893E+02 0.49731E+01 0.56476E-01
  1510 + 1. 0.70405E+01 -0.96728E+01 0.62090E-01
  1511 + 1. -0.12676E+02 -0.76622E+01 0.73267E-01
  1512 + 1. 0.84926E+01 -0.17141E+02 0.77894E-01
  1513 + 1. -0.11639E+02 0.32626E+01 0.81661E-01
  1514 + 1. 0.17446E+02 0.63670E+01 0.87488E-01
  1515 + 1. 0.96043E+01 -0.10586E+02 0.98967E-01
  1516 + 1. 0.15326E+02 -0.12850E+02 0.10291E+00
  1517 + 1. 0.84668E+01 -0.38188E+01 0.10984E+00
  1518 + 1. -0.11203E+02 -0.39994E+01 0.11343E+00
  1519 + 1. 0.11963E+02 -0.13209E+02 0.12504E+00
  1520 + 1. -0.20386E+01 -0.57926E+01 0.13234E+00
  1521 + 1. 0.13374E+02 -0.56184E+01 0.13704E+00
  1522 + 1. -0.16889E+02 0.10610E+02 0.14223E+00
  1523 + 1. -0.13670E+02 0.56278E+01 0.14756E+00
  1524 + 1. 0.15705E+02 -0.86737E+01 0.15694E+00
  1525 + 1. -0.13724E+02 -0.39707E+01 0.16039E+00
  1526 + 1. 0.52382E+01 -0.39454E-01 0.17121E+00
  1527 + 1. 0.45448E+01 0.84802E+01 0.17757E+00
  1528 + 1. 0.16772E+02 0.10398E+01 0.18059E+00
  1529 + 1. 0.46765E+01 0.12161E+02 0.19258E+00
  1530 + 1. -0.12540E+02 0.14651E+02 0.19906E+00
  1531 + 1. -0.47360E+01 0.59210E+01 0.20148E+00
  1532 + 1. -0.11889E+01 0.12338E+02 0.20903E+00
  1533 + 1. -0.14397E+02 0.10859E+02 0.21533E+00
  1534 + 1. 0.11186E+02 0.41827E+01 0.22469E+00
  1535 + 1. 0.82061E+01 0.31823E+01 0.23281E+00
  1536 + 1. 0.13308E+02 0.10083E+02 0.23735E+00
  1537 + 1. -0.83480E+01 -0.97235E+01 0.24258E+00
  1538 + 1. -0.20571E+01 0.27983E+01 0.25096E+00
  1539 + 1. 0.11968E+02 0.79430E+01 0.25709E+00
  1540 + 1. -0.10474E+01 0.14338E+02 0.26271E+00
  1541 + 1. -0.23850E+01 0.90014E+01 0.27076E+00
  1542 + 1. -0.11748E+02 0.10275E+02 0.27330E+00
  1543 + 1. -0.53517E+01 0.13677E+01 0.28483E+00
  1544 + 1. 0.32592E+01 -0.69261E+01 0.28781E+00
  1545 + 1. -0.16411E+02 0.78020E+01 0.29849E+00
  1546 + 1. 0.11412E+01 -0.62580E+01 0.30330E+00
  1547 + 1. -0.15875E+02 -0.60014E+01 0.30698E+00
  1548 + 1. 0.10602E+02 0.58315E+00 0.31364E+00
  1549 + 1. -0.34922E+01 -0.16027E+02 0.32257E+00
  1550 + 1. -0.11390E+02 -0.16224E+02 0.33084E+00
  1551 + 1. 0.39195E+01 -0.16738E+02 0.33552E+00
  1552 + 1. -0.10326E+02 0.12999E+02 0.34264E+00
  1553 + 1. 0.73779E+01 0.15300E+02 0.35101E+00
  1554 + 1. -0.55932E+01 -0.14645E+02 0.35578E+00
  1555 + 1. -0.14737E+02 0.33560E+01 0.36240E+00
  1556 + 1. -0.60505E+01 -0.15094E+01 0.36755E+00
  1557 + 1. 0.36236E+01 0.66112E+01 0.37732E+00
  1558 + 1. 0.16798E+00 -0.12608E+02 0.38247E+00
  1559 + 1. 0.72871E+01 0.18490E+02 0.38790E+00
  1560 + 1. 0.16714E+02 0.43102E+01 0.39731E+00
  1561 + 1. 0.37126E+01 -0.23776E+01 0.40403E+00
  1562 + 1. -0.61330E+01 0.94868E+01 0.41019E+00
  1563 + 1. -0.76002E+01 -0.18203E+02 0.41765E+00
  1564 + 1. -0.63071E+01 0.12468E+02 0.42348E+00
  1565 + 1. -0.18381E+02 -0.68252E+01 0.43028E+00
  1566 + 1. 0.10681E+02 0.16787E+02 0.43453E+00
  1567 + 1. -0.19613E+02 -0.36885E+01 0.44030E+00
  1568 + 1. -0.32458E+00 0.55653E+01 0.44869E+00
  1569 + 1. 0.99011E+01 -0.13864E+02 0.45427E+00
  1570 + 1. 0.15091E+02 -0.44620E+01 0.46212E+00
  1571 + 1. -0.19899E+02 0.46211E+00 0.46907E+00
  1572 + 1. -0.10583E+01 -0.17987E+02 0.47645E+00
  1573 + 1. -0.99373E+01 -0.20810E+01 0.48502E+00
  1574 + 1. 0.42519E+01 0.26895E+01 0.49092E+00
  1575 + 1. -0.12426E+02 -0.56166E+01 0.49592E+00
  1576 + 1. 0.96419E+01 -0.22406E+01 0.50543E+00
  1577 + 1. 0.11276E+02 -0.49564E+01 0.51254E+00
  1578 + 1. -0.43035E+01 0.82712E+01 0.51951E+00
  1579 + 1. 0.87562E+01 0.57190E+01 0.52255E+00
  1580 + 1. -0.98103E+01 -0.80439E+01 0.52973E+00
  1581 + 1. 0.93003E+00 0.78673E+01 0.53374E+00
  1582 + 1. 0.17197E+02 -0.40408E+01 0.54489E+00
  1583 + 1. -0.76030E+01 -0.63109E+01 0.54785E+00
  1584 + 1. -0.19658E+01 0.16518E+02 0.55657E+00
  1585 + 1. -0.77571E+01 0.15939E+02 0.56500E+00
  1586 + 1. -0.47939E+01 -0.12097E+02 0.57170E+00
  1587 + 1. -0.96747E+01 0.69260E+01 0.57331E+00
  1588 + 1. 0.25352E+01 -0.99273E+01 0.58339E+00
  1589 + 1. -0.77733E+01 0.18056E+02 0.58819E+00
  1590 + 1. 0.10591E+02 -0.16850E+02 0.59576E+00
  1591 + 1. 0.69011E+01 0.13546E+01 0.60206E+00
  1592 + 1. -0.49182E+01 -0.85008E+01 0.61193E+00
  1593 + 1. 0.85278E+01 0.13440E+02 0.61435E+00
  1594 + 1. 0.18312E+02 -0.14200E+01 0.62641E+00
  1595 + 1. -0.14728E+02 0.64829E+00 0.63167E+00
  1596 + 1. 0.20568E+01 0.19765E+02 0.63357E+00
  1597 + 1. -0.14391E+02 -0.14058E+01 0.64521E+00
  1598 + 1. -0.93148E+01 -0.13763E+02 0.65280E+00
  1599 + 1. -0.57821E+01 0.19136E+02 0.65763E+00
  1600 + 1. 0.82697E+01 0.76702E+01 0.66629E+00
  1601 + 1. 0.10761E+01 0.39150E+00 0.67038E+00
  1602 + 1. 0.47870E+01 -0.47635E+01 0.67600E+00
  1603 + 1. 0.17081E+01 0.13021E+02 0.68262E+00
  1604 + 1. 0.12251E+02 -0.96847E+01 0.68914E+00
  1605 + 1. -0.19579E+02 0.34247E+01 0.69628E+00
  1606 + 1. -0.15279E+02 -0.96918E+01 0.70511E+00
  1607 + 1. -0.17988E+01 0.70343E+01 0.71293E+00
  1608 + 1. -0.76158E+01 0.90402E+00 0.71591E+00
  1609 + 1. -0.13343E+02 -0.14286E+02 0.72559E+00
  1610 + 1. -0.77009E+01 0.45528E+01 0.73123E+00
  1611 + 1. -0.11897E+02 -0.96075E+01 0.73896E+00
  1612 + 1. 0.13877E+02 -0.79018E+01 0.74452E+00
  1613 + 1. -0.17147E+02 0.51800E+01 0.74926E+00
  1614 + 1. 0.76375E+01 -0.92609E+00 0.75732E+00
  1615 + 1. 0.13576E+02 -0.13376E+01 0.76306E+00
  1616 + 1. -0.27824E+01 -0.23441E+01 0.76765E+00
  1617 + 1. 0.71138E+01 -0.11667E+02 0.77511E+00
  1618 + 1. 0.19086E+02 -0.54367E+01 0.78346E+00
  1619 + 1. -0.52939E+00 0.10322E+02 0.79140E+00
  1620 + 1. 0.21300E+01 -0.19440E+02 0.79403E+00
  1621 + 1. 0.30733E+01 0.10226E+02 0.80210E+00
  1622 + 1. -0.54885E+01 -0.35066E+01 0.81181E+00
  1623 + 1. 0.94158E+01 0.93509E+01 0.81756E+00
  1624 + 1. -0.39287E+01 0.16802E+02 0.82515E+00
  1625 + 1. -0.24279E+01 -0.11650E+00 0.82947E+00
  1626 + 1. -0.84699E+01 0.12344E+02 0.83856E+00
  1627 + 1. 0.36541E+01 0.15887E+02 0.84347E+00
  1628 + 1. -0.24727E+01 0.19486E+02 0.84804E+00
  1629 + 1. -0.99432E+01 -0.11857E+02 0.85713E+00
  1630 + 1. 0.29110E+01 -0.13692E+02 0.86305E+00
  1631 + 1. -0.85051E+01 -0.16421E+02 0.87231E+00
  1632 + 1. 0.12330E+02 0.24014E+01 0.87905E+00
  1633 + 1. -0.78797E+00 -0.34643E+01 0.88183E+00
  1634 + 1. -0.15572E+02 -0.31422E+01 0.89276E+00
  1635 + 1. -0.14138E+02 0.88907E+01 0.89556E+00
  1636 + 1. 0.12109E+02 0.59059E+01 0.90206E+00
  1637 + 1. 0.17329E+02 0.97619E+01 0.91131E+00
  1638 + 1. -0.23017E+01 -0.14390E+02 0.91385E+00
  1639 + 1. -0.98075E+01 0.93410E+01 0.92630E+00
  1640 + 1. 0.56942E+01 -0.70238E+01 0.93288E+00
  1641 + 1. 0.43256E+01 -0.86887E+01 0.93642E+00
  1642 + 1. -0.11443E+02 -0.64201E+00 0.94258E+00
  1643 + 1. -0.56014E+01 0.34083E+01 0.94874E+00
  1644 + 1. 0.15753E+02 0.78257E+01 0.95518E+00
  1645 + 1. -0.11281E+02 0.16499E+02 0.96655E+00
  1646 + 1. -0.54511E+01 -0.19167E+02 0.96988E+00
  1647 + 1. 0.14935E+02 0.58566E+00 0.97460E+00
  1648 + 1. 0.11784E+02 0.13020E+02 0.98134E+00
  1649 + 1. 0.65673E+01 0.13147E+02 0.98825E+00
  1650 + 1. 0.56804E+01 -0.17762E+02 0.99900E+00
  1651 + 1. -0.17999E+02 0.13659E+00 0.10065E+01
  1652 + 1. -0.78856E+01 0.81557E+01 0.10088E+01
  1653 + 1. 0.95583E+01 -0.65313E+01 0.10147E+01
  1654 + 1. -0.25175E+01 0.11051E+02 0.10211E+01
  1655 + 1. 0.15930E+02 -0.11032E+02 0.10324E+01
  1656 + 1. -0.17718E+02 0.22984E+01 0.10383E+01
  1657 + 1. 0.46983E+00 -0.16496E+02 0.10409E+01
  1658 + 1. 0.50458E+01 -0.14813E+02 0.10469E+01
  1659 + 1. -0.64371E+01 -0.10822E+02 0.10540E+01
  1660 + 1. -0.54238E+01 -0.63352E+01 0.10631E+01
  1661 + 1. 0.69438E+00 -0.15534E+01 0.10710E+01
  1662 + 1. -0.14929E+02 -0.12558E+02 0.10792E+01
  1663 + 1. -0.12029E+02 0.15196E+01 0.10853E+01
  1664 + 1. 0.34185E+01 0.47143E+01 0.10900E+01
  1665 + 1. 0.14771E+02 0.11376E+02 0.10988E+01
  1666 + 1. 0.62356E+01 0.16805E+02 0.11009E+01
  1667 + 1. -0.15569E+02 0.12364E+02 0.11113E+01
  1668 + 1. 0.87100E+01 0.17163E+02 0.11165E+01
  1669 + 1. 0.24450E+01 -0.46926E+01 0.11262E+01
  1670 + 1. -0.31581E+00 0.18132E+02 0.11310E+01
  1671 + 1. 0.88008E+01 -0.89787E+01 0.11397E+01
  1672 + 1. 0.79135E+01 -0.13611E+02 0.11428E+01
  1673 + 1. 0.60332E+01 0.33627E+01 0.11525E+01
  1674 + 1. -0.38089E+01 -0.17881E+02 0.11595E+01
  1675 + 1. 0.49042E+01 -0.10614E+02 0.11624E+01
  1676 + 1. 0.12918E+02 -0.36282E+01 0.11676E+01
  1677 + 1. 0.26228E+01 0.16562E+01 0.11736E+01
  1678 + 1. 0.37839E+01 0.18748E+02 0.11836E+01
  1679 + 1. -0.16309E+02 -0.11938E+01 0.11882E+01
  1680 + 1. -0.49425E+01 0.10941E+02 0.11960E+01
  1681 + 1. 0.19805E+02 -0.26366E+01 0.12049E+01
  1682 + 1. -0.34991E+01 -0.68905E+01 0.12090E+01
  1683 + 1. 0.16159E+01 0.15915E+02 0.12181E+01
  1684 + 1. 0.71639E+01 -0.16149E+02 0.12221E+01
  1685 + 1. 0.13461E+02 0.14559E+02 0.12326E+01
  1686 + 1. 0.49150E+01 0.14292E+02 0.12358E+01
  1687 + 1. 0.17331E+02 -0.77288E+01 0.12429E+01
  1688 + 1. -0.11464E+02 0.56796E+01 0.12525E+01
  1689 + 1. 0.72258E+01 0.96775E+01 0.12554E+01
  1690 + 1. -0.57305E+01 0.15956E+02 0.12654E+01
  1691 + 1. 0.13142E+02 -0.11891E+02 0.12732E+01
  1692 + 1. 0.19154E+02 0.36278E+00 0.12783E+01
  1693 + 1. 0.99251E+01 0.22224E+01 0.12850E+01
  1694 + 1. -0.73325E+01 -0.83213E+01 0.12920E+01
  1695 + 1. 0.10015E+02 0.14660E+02 0.12959E+01
  1696 + 1. 0.13947E+02 -0.14338E+02 0.13037E+01
  1697 + 1. -0.93093E+01 0.16981E+02 0.13082E+01
  1698 + 1. 0.18377E+02 0.76569E+01 0.13149E+01
  1699 + 1. -0.10035E+01 -0.11205E+02 0.13263E+01
  1700 + 1. -0.37092E+01 0.22726E+01 0.13315E+01
  1701 + 1. 0.27230E+01 0.82708E+01 0.13399E+01
  1702 + 1. 0.64214E+01 0.71747E+01 0.13445E+01
  1703 + 1. -0.99934E+01 0.17796E+01 0.13495E+01
  1704 + 1. -0.14186E+02 -0.62746E+01 0.13574E+01
  1705 + 1. 0.20980E+01 -0.11830E+02 0.13626E+01
  1706 + 1. 0.10811E+02 0.11201E+02 0.13695E+01
  1707 + 1. -0.30741E+01 0.56367E+01 0.13734E+01
  1708 + 1. -0.12159E+02 -0.27735E+01 0.13858E+01
  1709 + 1. -0.28163E+01 0.13779E+02 0.13903E+01
  1710 + 1. 0.12134E+02 -0.69284E+01 0.13964E+01
  1711 + 1. 0.14227E+01 -0.82672E+01 0.14002E+01
  1712 + 1. 0.43870E+00 0.25745E+01 0.14111E+01
  1713 + 1. -0.15291E+02 0.62942E+01 0.14175E+01
  1714 + 1. 0.15135E+02 -0.24375E+01 0.14210E+01
  1715 + 1. 0.55007E+01 -0.22459E+01 0.14268E+01
  1716 + 1. 0.68673E+01 -0.53113E+01 0.14375E+01
  1717 + 1. 0.19285E+02 0.30074E+01 0.14430E+01
  1718 + 1. -0.16757E+02 -0.83185E+01 0.14527E+01
  1719 + 1. 0.91503E+01 -0.15505E+02 0.14546E+01
  1720 + 1. 0.15815E+02 0.24880E+01 0.14623E+01
  1721 + 1. -0.19501E+01 -0.82840E+01 0.14682E+01
  1722 + 1. -0.19047E+02 -0.18416E+01 0.14775E+01
  1723 + 1. -0.12054E+02 -0.12059E+02 0.14848E+01
  1724 + 1. 0.57592E+01 -0.12983E+02 0.14907E+01
  1725 + 1. -0.12987E+02 0.37027E+01 0.14936E+01
  1726 + 1. -0.11983E+02 0.86789E+01 0.15031E+01
  1727 + 1. -0.17574E+02 -0.51030E+01 0.15132E+01
  1728 + 1. -0.12726E+02 0.11681E+02 0.15169E+01
  1729 + 1. -0.41805E+01 -0.13748E+02 0.15211E+01
  1730 + 1. -0.90869E+01 0.14625E+02 0.15267E+01
  1731 + 1. -0.16551E+02 -0.11091E+02 0.15350E+01
  1732 + 1. -0.88997E+01 -0.46846E+00 0.15461E+01
  1733 + 1. -0.14852E+01 -0.16223E+02 0.15490E+01
  1734 + 1. 0.13469E+02 0.76462E+01 0.15574E+01
  1735 + 1. -0.55261E+01 -0.16406E+02 0.15645E+01
  1736 + 1. 0.99083E+01 -0.12043E+02 0.15680E+01
  1737 + 1. -0.67586E+01 0.62549E+01 0.15752E+01
  1738 + 1. -0.91701E+01 -0.36830E+01 0.15860E+01
  1739 + 1. 0.11841E+02 -0.60123E+00 0.15932E+01
  1740 + 1. -0.37880E+01 -0.10046E+02 0.15939E+01
  1741 + 1. -0.45807E+01 -0.14216E+00 0.16047E+01
  1742 + 1. 0.81308E+00 -0.14388E+02 0.16110E+01
  1743 + 1. -0.73735E+01 0.10761E+02 0.16192E+01
  1744 + 1. -0.10763E+02 -0.65571E+01 0.16228E+01
  1745 + 1. -0.19102E+02 0.56933E+01 0.16281E+01
  1746 + 1. 0.23160E+01 -0.16003E+02 0.16351E+01
  1747 + 1. -0.29761E+01 -0.48063E+01 0.16414E+01
  1748 + 1. -0.17747E+02 0.84244E+01 0.16521E+01
  1749 + 1. 0.14044E+02 0.51623E+01 0.16543E+01
  1750 + 1. -0.67271E+00 -0.65840E+01 0.16619E+01
  1751 + 1. -0.27556E+01 -0.19720E+02 0.16690E+01
  1752 + 1. 0.35141E+00 -0.18987E+02 0.16755E+01
  1753 + 1. -0.71019E+01 -0.13749E+02 0.16811E+01
  1754 + 1. -0.15064E+01 0.43280E+01 0.16894E+01
  1755 + 1. 0.11589E+02 -0.15148E+02 0.16980E+01
  1756 + 1. -0.10419E+02 0.11366E+02 0.17046E+01
  1757 + 1. 0.20803E+01 0.60973E+01 0.17093E+01
  1758 + 1. 0.10244E+02 0.74750E+01 0.17177E+01
  1759 + 1. 0.16191E+02 0.58225E+01 0.17257E+01
  1760 + 1. 0.14648E+02 -0.60433E+01 0.17288E+01
  1761 + 1. 0.12063E+02 0.94930E+01 0.17335E+01
  1762 + 1. -0.28373E+01 -0.12206E+02 0.17427E+01
  1763 + 1. -0.13534E+02 -0.10731E+02 0.17483E+01
  1764 + 1. -0.13701E+02 0.13663E+02 0.17559E+01
  1765 + 1. -0.50876E-01 0.13354E+02 0.17606E+01
  1766 + 1. -0.11385E+02 0.13918E+02 0.17710E+01
  1767 + 1. 0.95938E+01 0.42007E+01 0.17792E+01
  1768 + 1. 0.95956E+01 -0.46837E+01 0.17847E+01
  1769 + 1. 0.96835E+01 -0.41425E+00 0.17924E+01
  1770 + 1. 0.10601E+01 0.11475E+02 0.17957E+01
  1771 + 1. 0.82088E+01 0.11641E+02 0.18014E+01
  1772 + 1. 0.38578E+01 -0.26728E+00 0.18131E+01
  1773 + 1. 0.39566E+01 -0.18422E+02 0.18182E+01
  1774 + 1. -0.15971E+02 0.99680E+01 0.18233E+01
  1775 + 1. 0.17262E+02 -0.38195E-01 0.18283E+01
  1776 + 1. 0.10516E+02 -0.81615E+01 0.18398E+01
  1777 + 1. -0.99651E+01 0.37746E+01 0.18419E+01
  1778 + 1. -0.76116E+01 -0.20816E+01 0.18474E+01
  1779 + 1. -0.68471E+00 0.24914E+00 0.18563E+01
  1780 + 1. 0.58651E+01 0.11111E+02 0.18630E+01
  1781 + 1. -0.70755E+01 -0.45879E+01 0.18726E+01
  1782 + 1. -0.78266E+01 0.26593E+01 0.18754E+01
  1783 + 1. -0.58486E+01 0.13975E+02 0.18841E+01
  1784 + 1. 0.14762E+02 -0.94847E+01 0.18887E+01
  1785 + 1. 0.14626E+02 0.93362E+01 0.18980E+01
  1786 + 1. -0.10240E+02 -0.96876E+01 0.19055E+01
  1787 + 1. 0.73287E+01 0.51589E+01 0.19082E+01
  1788 + 1. -0.81457E+01 -0.11662E+02 0.19134E+01
  1789 + 1. -0.10723E+02 -0.14903E+02 0.19228E+01
  1790 + 1. -0.13279E+02 -0.82716E+01 0.19286E+01
  1791 + 1. -0.15518E+02 0.20516E+01 0.19386E+01
  1792 + 1. 0.45182E+00 0.19877E+02 0.19447E+01
  1793 + 1. 0.18141E+02 0.49964E+01 0.19506E+01
  1794 + 1. 0.41057E+01 -0.61912E+01 0.19597E+01
  1795 + 1. -0.64284E+00 0.81459E+01 0.19604E+01
  1796 + 1. 0.74624E+01 -0.73081E+01 0.19713E+01
  1797 + 1. 0.36834E+01 0.12119E+02 0.19753E+01
  1798 + 1. 0.84213E+01 -0.17775E+02 0.19826E+01
  1799 + 1. -0.17303E+02 -0.31720E+01 0.19870E+01
  1800 + 1. 0.61340E+00 -0.44335E+01 0.19989E+01
  1801 + 1. -0.13379E+02 0.64149E+01 0.20002E+01
  1802 + 1. 0.21608E+01 -0.28130E+01 0.20091E+01
  1803 + 1. 0.16741E+01 0.40584E+01 0.20198E+01
  1804 + 1. 0.76130E+01 -0.30041E+01 0.20206E+01
  1805 + 1. 0.45363E+01 0.94099E+01 0.20279E+01
  1806 + 1. 0.79086E+01 0.23602E+01 0.20396E+01
  1807 + 1. -0.10022E+02 -0.17278E+02 0.20415E+01
  1808 + 1. -0.15615E+02 0.41148E+01 0.20477E+01
  1809 + 1. 0.62576E+01 0.74038E-01 0.20568E+01
  1810 + 1. 0.17768E+02 -0.28617E+01 0.20656E+01
  1811 + 1. -0.19792E+02 0.16767E+01 0.20699E+01
  1812 + 1. -0.40597E+01 0.18756E+02 0.20743E+01
  1813 + 1. 0.11713E+02 0.16013E+02 0.20841E+01
  1814 + 1. 0.62725E+01 -0.91195E+01 0.20898E+01
  1815 + 1. 0.13013E+02 0.11660E+02 0.20935E+01
  1816 + 1. -0.87368E+00 -0.13196E+02 0.21036E+01
  1817 + 1. 0.31165E+01 0.14186E+02 0.21126E+01
  1818 + 1. 0.16579E+02 -0.51297E+01 0.21141E+01
  1819 + 1. -0.64979E+01 0.17788E+02 0.21213E+01
  1820 + 1. -0.34746E+01 0.91649E+01 0.21315E+01
  1821 + 1. -0.13866E+02 -0.36620E+01 0.21335E+01
  1822 + 1. -0.40996E+00 0.15515E+02 0.21412E+01
  1823 + 1. 0.24411E+01 0.17578E+02 0.21515E+01
  1824 + 1. -0.61170E+01 0.80648E+01 0.21547E+01
  1825 + 1. 0.14862E+02 0.13281E+02 0.21621E+01
  1826 + 1. 0.11065E+02 -0.10428E+02 0.21696E+01
  1827 + 1. -0.43434E+01 -0.22662E+01 0.21748E+01
  1828 + 1. -0.10932E+01 -0.17424E+01 0.21839E+01
  1829 + 1. -0.15141E+01 0.22118E+01 0.21916E+01
  1830 + 1. 0.98961E-01 -0.95634E+01 0.21949E+01
  1831 + 1. 0.17051E+02 -0.94867E+01 0.22034E+01
  1832 + 1. 0.48711E+01 0.60535E+01 0.22128E+01
  1833 + 1. -0.89493E+01 0.59041E+01 0.22186E+01
  1834 + 1. 0.14896E+02 -0.12457E+02 0.22259E+01
  1835 + 1. 0.13426E+02 0.13655E+01 0.22310E+01
  1836 + 1. -0.11064E+02 -0.43774E+01 0.22391E+01
  1837 + 1. 0.12188E+02 0.40600E+01 0.22444E+01
  1838 + 1. 0.11533E+02 -0.25535E+01 0.22476E+01
  1839 + 1. -0.68599E+01 -0.14743E+00 0.22539E+01
  1840 + 1. 0.54741E+01 0.18747E+02 0.22623E+01
  1841 + 1. -0.19883E+01 0.17970E+02 0.22731E+01
  1842 + 1. -0.13040E+02 0.23678E+00 0.22758E+01
  1843 + 1. -0.40738E+01 0.15378E+02 0.22845E+01
  1844 + 1. -0.86138E+01 -0.60501E+01 0.22878E+01
  1845 + 1. 0.78804E+01 0.15689E+02 0.22977E+01
  1846 + 1. 0.14115E+00 0.61610E+01 0.23007E+01
  1847 + 1. 0.16260E+02 0.10739E+02 0.23092E+01
  1848 + 1. 0.48490E+01 0.18184E+01 0.23151E+01
  1849 + 1. -0.65921E+01 -0.18126E+02 0.23213E+01
  1850 + 1. -0.41149E+01 0.12483E+02 0.23288E+01
  1851 + 1. -0.16083E+02 -0.65537E+01 0.23397E+01
  1852 + 1. 0.77332E+01 -0.10577E+02 0.23431E+01
  1853 + 1. -0.44999E+01 0.45343E+01 0.23499E+01
  1854 + 1. 0.12844E+01 -0.64655E+01 0.23588E+01
  1855 + 1. -0.12675E+01 0.11873E+02 0.23655E+01
  1856 + 1. -0.18389E+01 -0.18041E+02 0.23714E+01
  1857 + 1. 0.10845E+01 0.92539E+01 0.23748E+01
  1858 + 1. 0.74691E+01 0.18367E+02 0.23857E+01
  1859 + 1. 0.39308E+01 -0.11917E+02 0.23913E+01
  1860 + 1. -0.15241E+02 0.80387E+01 0.23955E+01
  1861 + 1. 0.50544E+01 -0.16291E+02 0.24003E+01
  1862 + 1. -0.43407E+01 0.70176E+01 0.24107E+01
  1863 + 1. -0.10434E+02 -0.18153E+01 0.24145E+01
  1864 + 1. 0.11349E+02 0.12561E+01 0.24214E+01
  1865 + 1. -0.10064E+02 0.78412E+01 0.24296E+01
  1866 + 1. -0.18592E+02 -0.66910E+01 0.24375E+01
  1867 + 1. -0.55864E+01 -0.78730E+01 0.24416E+01
  1868 + 1. -0.57615E+01 0.20131E+01 0.24482E+01
  1869 + 1. -0.17875E+02 0.38405E+01 0.24580E+01
  1870 + 1. 0.84474E+01 0.86212E+01 0.24600E+01
  1871 + 1. 0.11186E+02 -0.13335E+02 0.24685E+01
  1872 + 1. -0.55701E+01 -0.12473E+02 0.24786E+01
  1873 + 1. 0.13016E+02 -0.86189E+01 0.24805E+01
  1874 + 1. 0.19542E+01 0.18663E+00 0.24903E+01
  1875 + 1. -0.48594E+01 -0.47839E+01 0.24950E+01
  1876 + 1. 0.31858E+01 -0.81132E+01 0.25048E+01
  1877 + 1. 0.14481E+02 -0.84746E+00 0.25132E+01
  1878 + 1. 0.65496E+01 -0.18776E+02 0.25169E+01
  1879 + 1. 0.18950E+02 -0.12457E+01 0.25218E+01
  1880 + 1. -0.13383E+02 0.10000E+02 0.25303E+01
  1881 + 1. 0.95009E+01 0.13040E+02 0.25362E+01
  1882 + 1. -0.37418E+01 -0.16274E+02 0.25429E+01
  1883 + 1. -0.72772E+01 0.15518E+02 0.25482E+01
  1884 + 1. 0.53940E+01 -0.41554E+01 0.25545E+01
  1885 + 1. 0.17853E+02 0.19790E+01 0.25620E+01
  1886 + 1. -0.12593E+02 0.15500E+02 0.25690E+01
  1887 + 1. 0.11761E+02 -0.52701E+01 0.25755E+01
  1888 + 1. -0.13327E+02 -0.13437E+02 0.25835E+01
  1889 + 1. -0.19452E+02 -0.43408E+01 0.25932E+01
  1890 + 1. -0.65222E+01 0.41486E+01 0.25954E+01
  1891 + 1. -0.12752E+02 -0.55963E+01 0.26010E+01
  1892 + 1. 0.48868E+01 0.16080E+02 0.26092E+01
  1893 + 1. 0.36768E+01 -0.14520E+02 0.26191E+01
  1894 + 1. 0.91161E+01 0.60675E+01 0.26247E+01
  1895 + 1. -0.94499E+01 -0.13474E+02 0.26279E+01
  1896 + 1. -0.11019E+02 0.43284E+00 0.26394E+01
  1897 + 1. -0.76934E+01 0.13078E+02 0.26423E+01
  1898 + 1. -0.14997E+02 -0.20535E+01 0.26506E+01
  1899 + 1. 0.19127E+02 -0.46016E+01 0.26534E+01
  1900 + 1. 0.48259E+01 0.39753E+01 0.26601E+01
  1901 + 1. -0.55020E+01 -0.99609E+01 0.26691E+01
  1902 + 1. -0.17068E+02 0.58466E+01 0.26753E+01
  1903 + 1. 0.15359E+02 0.40272E+01 0.26854E+01
  1904 + 1. 0.16768E+02 0.75197E+01 0.26925E+01
  1905 + 1. -0.15449E+02 -0.92488E+01 0.26976E+01
  1906 + 1. 0.12123E+02 0.14075E+02 0.27036E+01
  1907 + 1. -0.78629E+01 -0.15718E+02 0.27088E+01
  1908 + 1. -0.91617E+01 0.99868E+01 0.27164E+01
  1909 + 1. -0.22572E+01 0.69578E+01 0.27244E+01
  1910 + 1. -0.15600E+02 -0.11104E+00 0.27297E+01
  1911 + 1. 0.20344E+01 -0.10319E+02 0.27347E+01
  1912 + 1. 0.20796E+01 -0.18884E+02 0.27410E+01
  1913 + 1. -0.17455E+02 0.12836E+01 0.27478E+01
  1914 + 1. -0.21358E+01 -0.98918E+01 0.27536E+01
  1915 + 1. 0.77904E+01 -0.10075E+01 0.27642E+01
  1916 + 1. -0.12964E+01 -0.45846E+01 0.27708E+01
  1917 + 1. 0.42583E+00 0.17228E+02 0.27766E+01
  1918 + 1. 0.14968E+02 -0.39824E+01 0.27842E+01
  1919 + 1. 0.15987E+02 -0.74988E+01 0.27900E+01
  1920 + 1. 0.18544E+02 -0.70933E+01 0.27985E+01
  1921 + 1. -0.79387E+01 -0.97576E+01 0.28051E+01
  1922 + 1. -0.53591E+01 -0.14809E+02 0.28105E+01
  1923 + 1. 0.62050E+01 0.14081E+02 0.28188E+01
  1924 + 1. -0.46828E+01 -0.19225E+02 0.28258E+01
  1925 + 1. -0.28433E+01 0.57114E+00 0.28305E+01
  1926 + 1. -0.88330E+00 0.99367E+01 0.28342E+01
  1927 + 1. -0.10612E+02 0.15422E+02 0.28439E+01
  1928 + 1. 0.20058E+01 -0.13316E+02 0.28467E+01
  1929 + 1. 0.11445E+02 0.59065E+01 0.28546E+01
  1930 + 1. -0.10640E+02 -0.11592E+02 0.28608E+01
  1931 + 1. 0.71881E+01 -0.14586E+02 0.28694E+01
  1932 + 1. -0.18809E+02 -0.33211E+00 0.28767E+01
  1933 + 1. -0.15019E+02 0.11504E+02 0.28857E+01
  1934 + 1. 0.97087E+01 0.10453E+02 0.28926E+01
  1935 + 1. 0.82465E+01 -0.12651E+02 0.28951E+01
  1936 + 1. -0.15697E+02 -0.46430E+01 0.29006E+01
  1937 + 1. 0.99166E+01 -0.16735E+02 0.29094E+01
  1938 + 1. 0.14821E+02 0.70569E+01 0.29161E+01
  1939 + 1. -0.21396E+01 0.19875E+02 0.29260E+01
  1940 + 1. 0.62990E+01 0.90152E+01 0.29321E+01
  1941 + 1. 0.52390E+00 -0.17279E+02 0.29369E+01
  1942 + 1. 0.28061E+00 -0.11455E+02 0.29439E+01
  1943 + 1. 0.13198E+02 -0.10737E+02 0.29480E+01
  1944 + 1. -0.18494E+01 -0.14729E+02 0.29568E+01
  1945 + 1. -0.60073E+01 0.11908E+02 0.29665E+01
  1946 + 1. 0.15733E+02 0.97219E+00 0.29675E+01
  1947 + 1. -0.15228E+02 -0.11621E+02 0.29779E+01
  1948 + 1. -0.11354E+02 0.24404E+01 0.29850E+01
  1949 + 1. 0.81726E+01 -0.56397E+01 0.29873E+01
  1950 + 1. 0.95693E+01 -0.20185E+01 0.29938E+01
  1951 + 1. -0.19876E+01 0.14623E+02 0.30034E+01
  1952 + 1. 0.27537E+01 0.19773E+02 0.30078E+01
  1953 + 1. -0.11882E+02 0.45864E+01 0.30166E+01
  1954 + 1. 0.28131E+01 0.10155E+02 0.30265E+01
  1955 + 1. -0.12530E+02 -0.15239E+02 0.30332E+01
  1956 + 1. 0.10098E+02 -0.65581E+01 0.30386E+01
  1957 + 1. -0.90779E+01 0.11031E+01 0.30418E+01
  1958 + 1. -0.32689E+01 -0.79323E+01 0.30490E+01
  1959 + 1. 0.33186E+01 0.70269E+01 0.30573E+01
  1960 + 1. -0.11569E+02 -0.80732E+01 0.30621E+01
  1961 + 1. 0.60583E+01 -0.63004E+01 0.30710E+01
  1962 + 1. -0.62785E+01 -0.29723E+01 0.30755E+01
  1963 + 1. 0.21201E+01 0.23203E+01 0.30840E+01
  1964 + 1. 0.26479E+01 -0.50621E+01 0.30920E+01
  1965 + 1. 0.13124E+02 -0.13727E+02 0.30960E+01
  1966 + 1. -0.80884E+01 0.78197E+01 0.31011E+01
  1967 + 1. 0.13312E+01 0.14733E+02 0.31070E+01
  1968 + 1. -0.13106E+02 0.80749E+01 0.31149E+01
  1969 + 1. 0.43977E+01 -0.10069E+02 0.31219E+01
  1970 + 1. 0.13356E+02 -0.24245E+01 0.31330E+01
  1971 + 1. 0.19854E+02 0.11587E+01 0.31337E+01
  1972 + 1. 0.15841E+02 -0.10885E+02 0.31444E+01
  1973 + 1. -0.83532E+01 0.17922E+02 0.31475E+01
  1974 + 1. 0.13449E+02 -0.67740E+01 0.31564E+01
  1975 + 1. 0.10144E+02 0.16785E+02 0.31627E+01
  1976 + 1. 0.93468E+01 0.13062E+01 0.31723E+01
  1977 + 1. 0.86329E+01 -0.86652E+01 0.31765E+01
  1978 + 1. -0.85711E+01 -0.78868E+01 0.31820E+01
  1979 + 1. 0.50200E+00 -0.10723E+01 0.31893E+01
  1980 + 1. -0.13357E+02 0.25404E+01 0.31999E+01
  1981 + 1. -0.12382E+02 -0.14741E+01 0.32064E+01
  1982 + 1. -0.51129E+01 0.97384E+01 0.32096E+01
  1983 + 1. -0.96108E+01 0.12566E+02 0.32196E+01
  1984 + 1. 0.21073E+01 0.12568E+02 0.32235E+01
  1985 + 1. -0.26028E+01 -0.26405E+01 0.32274E+01
  1986 + 1. -0.22651E+00 0.43610E+01 0.32362E+01
  1987 + 1. 0.93359E+01 -0.14602E+02 0.32405E+01
  1988 + 1. 0.50355E+01 -0.12255E+01 0.32488E+01
  1989 + 1. -0.17168E+02 -0.10163E+02 0.32544E+01
  1990 + 1. 0.16435E+02 -0.12161E+01 0.32649E+01
  1991 + 1. 0.11286E+02 0.11891E+02 0.32689E+01
  1992 + 1. -0.86888E+00 -0.19865E+02 0.32787E+01
  1993 + 1. -0.11804E+02 0.12386E+02 0.32816E+01
  1994 + 1. -0.84513E+01 -0.18010E+02 0.32871E+01
  1995 + 1. 0.18722E+02 0.67674E+01 0.32952E+01
  1996 + 1. -0.66976E+01 -0.61500E+01 0.33031E+01
  1997 + 1. -0.44618E+01 0.17063E+02 0.33103E+01
  1998 + 1. -0.14171E+02 -0.68801E+01 0.33195E+01
  1999 + 1. 0.94226E+01 0.14919E+02 0.33221E+01
  2000 + 1. -0.11480E+02 0.99443E+01 0.33306E+01
  2001 + 1. -0.34928E+01 0.24126E+01 0.33398E+01
  2002 + 1. 0.19069E+00 -0.15341E+02 0.33433E+01
  2003 + 1. 0.11446E+02 0.84671E+01 0.33469E+01
  2004 + 1. 0.68542E+01 0.67636E+01 0.33572E+01
  2005 + 1. -0.71807E-01 -0.77101E+01 0.33610E+01
  2006 + 1. 0.10614E+02 0.30148E+01 0.33719E+01
  2007 + 1. -0.32618E+01 -0.58775E+01 0.33775E+01
  2008 + 1. -0.38065E+01 -0.10974E+02 0.33828E+01
  2009 + 1. -0.85089E+01 -0.30943E+01 0.33873E+01
  2010 + 1. 0.54609E+01 -0.13576E+02 0.33964E+01
  2011 + 1. -0.18621E+02 0.69901E+01 0.34041E+01
  2012 + 1. 0.35582E+01 -0.17216E+02 0.34110E+01
  2013 + 1. -0.12092E+02 -0.10155E+02 0.34137E+01
  2014 + 1. 0.79815E+01 0.39831E+01 0.34257E+01
  2015 + 1. 0.72104E+01 0.10749E+02 0.34307E+01
  2016 + 1. 0.64899E+01 -0.11772E+02 0.34354E+01
  2017 + 1. -0.16964E+02 -0.80348E+01 0.34422E+01
  2018 + 1. 0.35876E+01 -0.28444E+01 0.34523E+01
  2019 + 1. 0.49800E-01 0.13609E+01 0.34560E+01
  2020 + 1. -0.16802E+02 0.89484E+01 0.34616E+01
  2021 + 1. 0.14706E+02 0.11669E+02 0.34699E+01
  2022 + 1. 0.19592E+02 0.38912E+01 0.34780E+01
  2023 + 1. -0.19786E+02 -0.19731E+01 0.34826E+01
  2024 + 1. -0.14756E+02 0.55716E+01 0.34882E+01
  2025 + 1. -0.87913E+01 -0.90671E+00 0.34998E+01
  2026 + 1. -0.97784E+01 -0.15831E+02 0.35060E+01
  2027 + 1. -0.88465E+01 0.37619E+01 0.35103E+01
  2028 + 1. 0.46353E+01 0.11183E+02 0.35133E+01
  2029 + 1. 0.71258E+01 -0.16597E+02 0.35233E+01
  2030 + 1. -0.27136E+01 0.44191E+01 0.35292E+01
  2031 + 1. -0.17576E+02 -0.52954E+01 0.35363E+01
  2032 + 1. 0.15992E+02 0.91820E+01 0.35415E+01
  2033 + 1. -0.34370E+01 -0.12944E+02 0.35511E+01
  2034 + 1. 0.96474E+01 -0.10917E+02 0.35570E+01
  2035 + 1. 0.11201E+02 -0.97363E+00 0.35660E+01
  2036 + 1. 0.69128E+01 0.14835E+01 0.35693E+01
  2037 + 1. 0.13648E+02 0.85810E+01 0.35760E+01
  2038 + 1. -0.58314E+01 -0.16597E+02 0.35814E+01
  2039 + 1. -0.10112E+02 -0.64320E+01 0.35901E+01
  2040 + 1. -0.77932E+01 -0.12691E+02 0.35969E+01
  2041 + 1. -0.16346E+02 0.29773E+01 0.36009E+01
  2042 + 1. 0.90604E+01 -0.38896E+01 0.36118E+01
  2043 + 1. -0.66577E+01 0.62703E+01 0.36147E+01
  2044 + 1. -0.76907E+01 0.11004E+02 0.36226E+01
  2045 + 1. -0.17286E+02 -0.17338E+01 0.36286E+01
  2046 + 1. 0.39318E+00 -0.31110E+01 0.36366E+01
  2047 + 1. -0.10899E+02 0.64246E+01 0.36430E+01
  2048 + 1. 0.11207E+02 -0.88555E+01 0.36473E+01
  2049 + 1. -0.45085E+01 -0.72715E+00 0.36568E+01
  2050 + 1. -0.24816E+01 0.16574E+02 0.36655E+01
  2051 + 1. -0.19425E+02 0.43655E+01 0.36673E+01
  2052 + 1. 0.17137E+02 0.49085E+01 0.36794E+01
  2053 + 1. 0.51243E+01 -0.81151E+01 0.36838E+01
  2054 + 1. 0.35361E+01 0.99607E+00 0.36893E+01
  2055 + 1. -0.28429E+01 -0.19261E+02 0.36967E+01
  2056 + 1. 0.13311E+02 0.48852E+01 0.37004E+01
  2057 + 1. 0.28749E+01 0.16338E+02 0.37083E+01
  2058 + 1. 0.11289E+01 0.76456E+01 0.37133E+01
  2059 + 1. -0.14789E+02 0.13330E+02 0.37260E+01
  2060 + 1. -0.21336E+00 0.18968E+02 0.37332E+01
  2061 + 1. 0.21164E+01 -0.15845E+02 0.37391E+01
  2062 + 1. 0.77844E+01 0.12876E+02 0.37401E+01
  2063 + 1. 0.29854E+01 0.46678E+01 0.37475E+01
  2064 + 1. -0.42133E+01 0.13897E+02 0.37535E+01
  2065 + 1. -0.25057E+01 0.10963E+02 0.37640E+01
  2066 + 1. -0.11639E+02 -0.13550E+02 0.37716E+01
  2067 + 1. 0.11321E+02 -0.14896E+02 0.37758E+01
  2068 + 1. 0.43943E+01 -0.19064E+02 0.37844E+01
  2069 + 1. -0.18831E+02 0.23718E+01 0.37930E+01
  2070 + 1. 0.39867E+00 0.11520E+02 0.37984E+01
  2071 + 1. 0.17230E+02 -0.38277E+01 0.38012E+01
  2072 + 1. 0.13071E+02 0.26012E+01 0.38121E+01
  2073 + 1. -0.49318E+01 0.19286E+02 0.38165E+01
  2074 + 1. -0.12225E+02 -0.38140E+01 0.38202E+01
  2075 + 1. -0.74097E+01 0.20249E+01 0.38309E+01
  2076 + 1. 0.12945E+02 0.10559E+02 0.38360E+01
  2077 + 1. 0.57397E+01 0.17474E+02 0.38440E+01
  2078 + 1. 0.19439E+02 -0.29056E+01 0.38501E+01
  2079 + 1. 0.50140E+01 0.77706E+01 0.38569E+01
  2080 + 1. -0.53567E+00 0.13349E+02 0.38603E+01
  2081 + 1. -0.14884E+01 -0.51965E+00 0.38706E+01
  2082 + 1. -0.12122E+01 -0.16833E+02 0.38779E+01
  2083 + 1. -0.22901E+01 0.89006E+01 0.38850E+01
  2084 + 1. -0.15360E+01 -0.12153E+02 0.38901E+01
  2085 + 1. 0.64707E+01 -0.28752E+01 0.38953E+01
  2086 + 1. 0.17847E+02 0.44621E+00 0.39056E+01
  2087 + 1. 0.12970E+02 0.70104E-01 0.39107E+01
  2088 + 1. 0.39819E+01 0.14640E+02 0.39180E+01
  2089 + 1. 0.11434E+02 -0.11780E+02 0.39214E+01
  2090 + 1. 0.97207E+01 0.75886E+01 0.39272E+01
  2091 + 1. 0.38055E+01 0.18332E+02 0.39342E+01
  2092 + 1. 0.82844E+01 0.17022E+02 0.39402E+01
  2093 + 1. -0.90483E+01 0.14625E+02 0.39509E+01
  2094 + 1. 0.14306E+00 -0.53330E+01 0.39557E+01
  2095 + 1. 0.13892E+02 0.14149E+02 0.39629E+01
  2096 + 1. -0.13895E+02 -0.90039E+01 0.39714E+01
  2097 + 1. -0.68171E+01 -0.85069E+01 0.39746E+01
  2098 + 1. 0.17920E+02 0.86509E+01 0.39853E+01
  2099 + 1. -0.14798E+02 0.93057E+01 0.39876E+01
  2100 + 1. -0.14922E+02 0.14292E+01 0.39963E+01
  2101 + 1. 0.17451E+02 -0.85469E+01 0.40037E+01
  2102 + 1. 0.16124E+02 -0.56488E+01 0.40085E+01
  2103 + 1. 0.15449E+02 -0.90764E+01 0.40199E+01
  2104 + 1. 0.17509E+01 0.18151E+02 0.40225E+01
  2105 + 1. 0.65252E+01 -0.98550E+01 0.40295E+01
  2106 + 1. -0.12910E+02 -0.11987E+02 0.40389E+01
  2107 + 1. 0.13256E+02 -0.48521E+01 0.40430E+01
  2108 + 1. 0.10083E+02 0.49620E+01 0.40505E+01
  2109 + 1. -0.10077E+02 -0.95996E+01 0.40573E+01
  2110 + 1. -0.63243E+01 0.16847E+02 0.40620E+01
  2111 + 1. 0.27630E+01 -0.10674E+01 0.40700E+01
  2112 + 1. -0.10253E+02 -0.43920E+01 0.40768E+01
  2113 + 1. -0.64823E+01 0.85027E+01 0.40826E+01
  2114 + 1. 0.18891E+01 -0.87425E+01 0.40868E+01
  2115 + 1. 0.91982E-01 -0.13421E+02 0.40993E+01
  2116 + 1. 0.12141E+02 0.15643E+02 0.41014E+01
  2117 + 1. 0.35756E+01 -0.68182E+01 0.41077E+01
  2118 + 1. 0.14123E+02 -0.12321E+02 0.41136E+01
  2119 + 1. 0.30508E+01 -0.11417E+02 0.41216E+01
  2120 + 1. -0.68604E+01 -0.14532E+02 0.41317E+01
  2121 + 1. -0.66218E+00 0.65206E+01 0.41365E+01
  2122 + 1. 0.53397E+01 0.26881E+01 0.41455E+01
  2123 + 1. -0.37458E+01 -0.14993E+02 0.41527E+01
  2124 + 1. -0.35909E+01 0.63568E+01 0.41542E+01
  2125 + 1. -0.12421E+02 0.14238E+02 0.41621E+01
  2126 + 1. -0.39437E+01 -0.41340E+01 0.41676E+01
  2127 + 1. 0.16553E+02 0.25238E+01 0.41749E+01
  2128 + 1. 0.57465E+01 0.51689E+01 0.41831E+01
  2129 + 1. -0.64921E+01 0.13565E+02 0.41925E+01
  2130 + 1. -0.13438E+02 0.11619E+02 0.41970E+01
  2131 + 1. -0.16437E+02 0.10933E+02 0.42061E+01
  2132 + 1. 0.49349E+01 -0.15397E+02 0.42078E+01
  2133 + 1. 0.44649E+01 -0.49314E+01 0.42169E+01
  2134 + 1. 0.10827E+02 -0.31402E+01 0.42237E+01
  2135 + 1. -0.14712E+02 -0.13533E+02 0.42316E+01
  2136 + 1. -0.14639E+01 0.24646E+01 0.42375E+01
  2137 + 1. -0.14106E+02 -0.29044E+01 0.42406E+01
  2138 + 1. -0.65360E+01 -0.19806E+00 0.42530E+01
  2139 + 1. -0.13388E+02 0.15814E+00 0.42552E+01
  2140 + 1. -0.87562E+01 0.60112E+01 0.42649E+01
  2141 + 1. -0.18512E+00 0.15765E+02 0.42685E+01
  2142 + 1. -0.56736E+01 0.29157E+01 0.42751E+01
  2143 + 1. 0.74879E+01 -0.18476E+02 0.42820E+01
  2144 + 1. 0.15250E+02 0.52699E+01 0.42897E+01
  2145 + 1. -0.64193E+00 -0.97361E+01 0.42992E+01
  2146 + 1. 0.18199E+02 -0.56508E+01 0.43031E+01
  2147 + 1. 0.19905E+02 -0.48703E+00 0.43092E+01
  2148 + 1. -0.67716E+01 -0.10864E+02 0.43162E+01
  2149 + 1. -0.16308E+02 0.72106E+01 0.43214E+01
  2150 + 1. 0.69592E+01 0.15306E+02 0.43295E+01
  2151 + 1. -0.65060E+01 -0.18355E+02 0.43354E+01
  2152 + 1. -0.18351E+02 -0.34904E+01 0.43428E+01
  2153 + 1. -0.10078E+02 0.17219E+02 0.43469E+01
  2154 + 1. -0.12254E+02 -0.66496E+01 0.43548E+01
  2155 + 1. -0.49346E+01 -0.65079E+01 0.43636E+01
  2156 + 1. -0.39012E+01 -0.17601E+02 0.43679E+01
  2157 + 1. 0.10867E+02 0.13574E+02 0.43748E+01
  2158 + 1. -0.25167E+01 0.18501E+02 0.43810E+01
  2159 + 1. -0.96711E+01 0.80350E+01 0.43869E+01
  2160 + 1. -0.73540E+01 -0.44324E+01 0.43951E+01
  2161 + 1. -0.52522E+01 0.48770E+01 0.44020E+01
  2162 + 1. -0.89145E+01 -0.11231E+02 0.44082E+01
  2163 + 1. 0.91814E+01 -0.35350E+00 0.44190E+01
  2164 + 1. 0.13369E+02 -0.91272E+01 0.44251E+01
  2165 + 1. 0.75807E+01 -0.71277E+01 0.44283E+01
  2166 + 1. 0.40658E+00 -0.18733E+02 0.44380E+01
  2167 + 1. -0.42280E+01 -0.90147E+01 0.44430E+01
  2168 + 1. 0.14577E+01 0.58016E+01 0.44503E+01
  2169 + 1. 0.11900E+02 -0.63470E+01 0.44551E+01
  2170 + 1. -0.13422E+02 0.42842E+01 0.44636E+01
  2171 + 1. -0.17859E+01 -0.69751E+01 0.44682E+01
  2172 + 1. -0.10554E+02 -0.22500E+01 0.44746E+01
  2173 + 1. 0.31863E+01 0.85749E+01 0.44834E+01
  2174 + 1. 0.66583E+01 -0.50259E+01 0.44925E+01
  2175 + 1. 0.95818E+01 -0.12996E+02 0.44957E+01
  2176 + 1. -0.16562E+02 0.48676E+01 0.45052E+01
  2177 + 1. 0.76852E+01 0.88567E+01 0.45070E+01
  2178 + 1. -0.45574E+01 0.11863E+02 0.45134E+01
  2179 + 1. -0.14301E+02 -0.49983E+01 0.45225E+01
  2180 + 1. 0.31650E+01 -0.13543E+02 0.45318E+01
  2181 + 1. -0.18718E+02 -0.67564E+01 0.45344E+01
  2182 + 1. 0.68686E+01 -0.70480E+00 0.45447E+01
  2183 + 1. -0.98466E+01 0.10418E+02 0.45521E+01
  2184 + 1. 0.55583E+01 0.12957E+02 0.45557E+01
  2185 + 1. 0.14519E+02 -0.13550E+01 0.45602E+01
  2186 + 1. -0.12926E+02 0.66142E+01 0.45703E+01
  2187 + 1. 0.14571E+02 0.12812E+01 0.45750E+01
  2188 + 1. 0.21375E+01 -0.37426E+01 0.45820E+01
  2189 + 1. -0.11254E+02 -0.56813E-01 0.45894E+01
  2190 + 1. 0.12101E+02 0.69907E+01 0.45941E+01
  2191 + 1. -0.92368E+01 -0.14136E+02 0.46043E+01
  2192 + 1. 0.88470E+01 -0.16242E+02 0.46121E+01
  2193 + 1. -0.98487E+01 0.22918E+01 0.46173E+01
  2194 + 1. -0.15491E+02 -0.10458E+02 0.46208E+01
  2195 + 1. -0.68918E+01 0.18726E+02 0.46321E+01
  2196 + 1. -0.16194E+02 -0.66075E+01 0.46339E+01
  2197 + 1. -0.10508E+02 0.42645E+01 0.46437E+01
  2198 + 1. 0.16731E+02 0.71084E+01 0.46533E+01
  2199 + 1. -0.17902E+02 0.43332E+00 0.46584E+01
  2200 + 1. -0.15270E+02 -0.91046E+00 0.46629E+01
  2201 + 1. 0.90963E+01 0.27549E+01 0.46700E+01
  2202 + 1. 0.11216E+02 0.14641E+01 0.46751E+01
  2203 + 1. -0.52401E+01 -0.12732E+02 0.46864E+01
  2204 + 1. 0.14047E+01 0.95485E+01 0.46928E+01
  2205 + 1. 0.23446E+01 -0.18180E+02 0.46983E+01
  2206 + 1. 0.51573E+01 0.96497E+01 0.47058E+01
  2207 + 1. 0.18974E+02 0.24043E+01 0.47075E+01
  2208 + 1. 0.88290E+01 0.10655E+02 0.47166E+01
  2209 + 1. 0.10050E+02 -0.52644E+01 0.47226E+01
  2210 + 1. -0.19664E+01 -0.44296E+01 0.47291E+01
  2211 + 1. 0.72784E+01 -0.13275E+02 0.47336E+01
  2212 + 1. 0.80307E+01 0.56025E+01 0.47412E+01
  2213 + 1. 0.13358E+02 -0.14864E+02 0.47521E+01
  2214 + 1. 0.54604E+01 -0.17296E+02 0.47534E+01
  2215 + 1. -0.80569E+01 -0.16588E+02 0.47644E+01
  2216 + 1. -0.80696E+01 -0.64154E+01 0.47671E+01
  2217 + 1. -0.16028E+02 -0.30428E+01 0.47796E+01
  2218 + 1. -0.34767E+01 0.68691E+00 0.47819E+01
  2219 + 1. -0.75791E+01 -0.19847E+01 0.47901E+01
  2220 + 1. 0.18473E+01 0.82793E+00 0.47943E+01
  2221 + 1. 0.96860E+00 0.27866E+01 0.48024E+01
  2222 + 1. 0.30673E+01 0.11547E+02 0.48128E+01
  2223 + 1. -0.26630E+01 0.13105E+02 0.48181E+01
  2224 + 1. 0.13327E+02 0.12265E+02 0.48265E+01
  2225 + 1. 0.14971E+02 -0.34545E+01 0.48274E+01
  2226 + 1. 0.49546E+01 0.13882E+00 0.48390E+01
  2227 + 1. 0.10765E+02 0.10051E+02 0.48442E+01
  2228 + 1. -0.47496E+01 0.78372E+01 0.48468E+01
  2229 + 1. -0.10797E+02 0.13289E+02 0.48591E+01
  2230 + 1. 0.84003E+01 -0.98775E+01 0.48611E+01
  2231 + 1. 0.14329E+02 -0.74192E+01 0.48722E+01
  2232 + 1. 0.18741E+02 0.54297E+01 0.48789E+01
  2233 + 1. -0.54971E+01 -0.24861E+01 0.48808E+01
  2234 + 1. -0.11607E+02 0.84282E+01 0.48879E+01
  2235 + 1. 0.69249E+01 0.18751E+02 0.48980E+01
  2236 + 1. 0.11653E+01 0.13139E+02 0.49033E+01
  2237 + 1. -0.53689E+01 0.15161E+02 0.49111E+01
  2238 + 1. 0.13892E+01 -0.65668E+01 0.49185E+01
  2239 + 1. -0.86002E+00 0.10424E+02 0.49222E+01
  2240 + 1. -0.11816E+02 -0.16127E+02 0.49305E+01
  2241 + 1. -0.61556E+01 0.10640E+02 0.49334E+01
  2242 + 1. -0.11975E+02 0.26214E+01 0.49462E+01
  2243 + 1. 0.17033E+02 0.10378E+02 0.49522E+01
  2244 + 1. 0.10331E+02 0.15859E+02 0.49590E+01
  2245 + 1. -0.87979E+01 0.50541E+00 0.49662E+01
  2246 + 1. 0.16000E+02 -0.11724E+02 0.49696E+01
  2247 + 1. 0.14860E+02 0.33535E+01 0.49781E+01
  2248 + 1. -0.86587E+01 0.12919E+02 0.49816E+01
  2249 + 1. -0.10678E+02 0.15398E+02 0.49925E+01
  2250 + 1. 0.12040E+01 -0.11413E+02 0.49958E+01
  2251 + 1. 0.17532E+02 -0.14838E+01 0.50037E+01
  2252 + 1. -0.35752E+01 -0.18943E+01 0.50131E+01
  2253 + 1. -0.74140E+01 0.37066E+01 0.50136E+01
  2254 + 1. 0.12768E+02 -0.28607E+01 0.50233E+01
  2255 + 1. 0.11830E+02 0.46584E+01 0.50319E+01
  2256 + 1. -0.16495E+01 -0.14505E+02 0.50397E+01
  2257 + 1. 0.14553E+02 0.71379E+01 0.50425E+01
  2258 + 1. -0.14204E+01 0.45689E+01 0.50492E+01
  2259 + 1. 0.48907E+01 -0.11295E+02 0.50592E+01
  2260 + 1. -0.17917E+02 0.84880E+01 0.50648E+01
  2261 + 1. -0.25493E+01 -0.10470E+02 0.50699E+01
  2262 + 1. -0.39871E+01 0.98479E+01 0.50745E+01
  2263 + 1. -0.11258E+02 -0.82623E+01 0.50853E+01
  2264 + 1. -0.17050E+02 -0.92153E+01 0.50923E+01
  2265 + 1. -0.10877E+02 -0.11231E+02 0.50965E+01
  2266 + 1. -0.33734E+01 0.15289E+02 0.51018E+01
  2267 + 1. 0.37991E+01 -0.92525E+01 0.51071E+01
  2268 + 1. -0.18984E+02 0.60159E+01 0.51183E+01
  2269 + 1. 0.19252E+01 0.19869E+02 0.51245E+01
  2270 + 1. 0.71303E+01 0.28287E+01 0.51268E+01
  2271 + 1. 0.37260E+01 0.63706E+01 0.51356E+01
  2272 + 1. 0.44518E+01 -0.21820E+01 0.51420E+01
  2273 + 1. 0.68429E+01 -0.15282E+02 0.51533E+01
  2274 + 1. -0.89798E+00 -0.26070E+01 0.51598E+01
  2275 + 1. -0.74596E+01 0.15566E+02 0.51630E+01
  2276 + 1. 0.20005E+01 0.15211E+02 0.51711E+01
  2277 + 1. -0.16813E+01 -0.18442E+02 0.51784E+01
  2278 + 1. -0.61505E+00 0.17496E+02 0.51830E+01
  2279 + 1. 0.16297E+02 0.26930E+00 0.51922E+01
  2280 + 1. -0.49109E+01 0.17780E+02 0.51997E+01
  2281 + 1. 0.52761E+01 -0.65452E+01 0.52019E+01
  2282 + 1. 0.12435E+02 0.88986E+01 0.52079E+01
  2283 + 1. -0.43647E+01 -0.19379E+02 0.52197E+01
  2284 + 1. 0.29259E+00 -0.16582E+02 0.52244E+01
  2285 + 1. 0.90902E+00 -0.90663E+00 0.52324E+01
  2286 + 1. -0.82495E+01 -0.91099E+01 0.52355E+01
  2287 + 1. 0.94675E+01 -0.78973E+01 0.52454E+01
  2288 + 1. -0.19145E+02 -0.12594E+01 0.52493E+01
  2289 + 1. 0.42712E+01 0.41979E+01 0.52540E+01
  2290 + 1. 0.10942E+02 -0.10162E+02 0.52630E+01
  2291 + 1. -0.31606E+01 0.28700E+01 0.52727E+01
  2292 + 1. 0.11834E+02 -0.13534E+02 0.52735E+01
  2293 + 1. 0.11229E+02 -0.16320E+02 0.52847E+01
  2294 + 1. 0.89253E+01 0.13573E+02 0.52929E+01
  2295 + 1. -0.15269E+02 0.31127E+01 0.52950E+01
  2296 + 1. -0.13336E+02 -0.14521E+02 0.53038E+01
  2297 + 1. 0.15028E+02 0.10147E+02 0.53077E+01
  2298 + 1. 0.50252E+01 0.16319E+02 0.53180E+01
  2299 + 1. 0.80075E+01 -0.35334E+01 0.53223E+01
  2300 + 1. 0.63451E+01 0.74362E+01 0.53290E+01
  2301 + 1. 0.33442E+01 -0.16246E+02 0.53357E+01
  2302 + 1. -0.69828E+00 0.93557E+00 0.53435E+01
  2303 + 1. 0.16801E+02 -0.70368E+01 0.53487E+01
  2304 + 1. -0.11767E+02 0.11028E+02 0.53564E+01
  2305 + 1. -0.12502E+02 -0.21116E+01 0.53617E+01
  2306 + 1. -0.14203E+02 -0.75803E+01 0.53713E+01
  2307 + 1. -0.73656E+01 0.71645E+01 0.53785E+01
  2308 + 1. -0.18225E+02 0.39502E+01 0.53822E+01
  2309 + 1. 0.14529E+01 -0.14514E+02 0.53922E+01
  2310 + 1. -0.17822E+00 0.85486E+01 0.54000E+01
  2311 + 1. -0.23054E+01 0.73483E+01 0.54036E+01
  2312 + 1. -0.13088E+02 -0.10236E+02 0.54123E+01
  2313 + 1. 0.53070E+01 -0.13412E+02 0.54142E+01
  2314 + 1. -0.78381E+01 0.92708E+01 0.54239E+01
  2315 + 1. 0.13485E+02 -0.10851E+02 0.54324E+01
  2316 + 1. -0.13953E+02 0.81907E+01 0.54345E+01
  2317 + 1. 0.34828E+01 0.20872E+01 0.54445E+01
  2318 + 1. -0.19869E+02 0.93699E+00 0.54526E+01
  2319 + 1. -0.37943E+00 -0.81158E+01 0.54595E+01
  2320 + 1. 0.70156E+01 -0.11315E+02 0.54612E+01
  2321 + 1. 0.18554E+02 -0.38739E+01 0.54715E+01
  2322 + 1. 0.28557E+01 0.17294E+02 0.54766E+01
  2323 + 1. -0.14378E+02 -0.11926E+02 0.54827E+01
  2324 + 1. -0.54102E+01 -0.15537E+02 0.54882E+01
  2325 + 1. 0.65431E+01 0.10949E+02 0.54956E+01
  2326 + 1. 0.77465E+01 0.82053E+00 0.55030E+01
  2327 + 1. -0.10807E+02 -0.58672E+01 0.55075E+01
  2328 + 1. -0.15465E+02 0.12589E+02 0.55186E+01
  2329 + 1. -0.19215E+02 -0.50573E+01 0.55243E+01
  2330 + 1. -0.98988E+01 -0.17259E+02 0.55317E+01
  2331 + 1. 0.11910E+02 -0.81447E+01 0.55383E+01
  2332 + 1. 0.58105E+01 -0.85733E+01 0.55410E+01
  2333 + 1. -0.14537E+01 0.14699E+02 0.55494E+01
  2334 + 1. -0.50934E+01 -0.10785E+02 0.55534E+01
  2335 + 1. 0.10933E+02 -0.13541E+01 0.55625E+01
  2336 + 1. 0.17247E+02 -0.10080E+02 0.55703E+01
  2337 + 1. -0.14886E+02 0.58015E+01 0.55752E+01
  2338 + 1. 0.15608E+02 0.12062E+02 0.55845E+01
  2339 + 1. 0.17248E+02 0.38851E+01 0.55899E+01
  2340 + 1. -0.89985E+01 -0.40145E+01 0.55935E+01
  2341 + 1. -0.23464E+01 -0.16603E+02 0.56041E+01
  2342 + 1. -0.13709E+02 0.13657E+02 0.56106E+01
  2343 + 1. -0.75945E+01 -0.12197E+02 0.56161E+01
  2344 + 1. 0.10114E+02 0.11997E+02 0.56249E+01
  2345 + 1. 0.14770E+02 -0.53870E+01 0.56271E+01
  2346 + 1. -0.62799E+01 -0.74153E+01 0.56356E+01
  2347 + 1. 0.10346E+02 0.62643E+01 0.56416E+01
  2348 + 1. 0.10053E+02 -0.14651E+02 0.56491E+01
  2349 + 1. -0.72674E-01 0.19615E+02 0.56595E+01
  2350 + 1. 0.58054E+01 -0.19117E+02 0.56665E+01
  2351 + 1. -0.29872E+01 -0.12750E+02 0.56720E+01
  2352 + 1. -0.10652E+02 0.68428E+01 0.56768E+01
  2353 + 1. -0.34609E+01 -0.74682E+01 0.56833E+01
  2354 + 1. 0.13686E+02 0.54051E+01 0.56912E+01
  2355 + 1. 0.28874E+01 -0.53099E+01 0.56961E+01
  2356 + 1. -0.13722E+02 0.18418E+01 0.57020E+01
  2357 + 1. 0.20799E+01 0.74191E+01 0.57102E+01
  2358 + 1. -0.14140E+02 0.10263E+02 0.57170E+01
  2359 + 1. -0.16352E+02 -0.49332E+01 0.57239E+01
  2360 + 1. -0.67925E+00 0.12491E+02 0.57311E+01
  2361 + 1. 0.49922E+01 0.18400E+02 0.57366E+01
  2362 + 1. 0.41495E+01 0.13763E+02 0.57412E+01
  2363 + 1. -0.66399E+01 0.16505E+01 0.57494E+01
  2364 + 1. 0.95077E+00 0.11287E+02 0.57534E+01
  2365 + 1. 0.94892E+01 0.83576E+01 0.57605E+01
  2366 + 1. 0.35929E+00 -0.45137E+01 0.57698E+01
  2367 + 1. -0.51492E+00 -0.12140E+02 0.57769E+01
  2368 + 1. -0.10826E+02 -0.13210E+02 0.57834E+01
  2369 + 1. -0.36451E+01 0.19456E+02 0.57897E+01
  2370 + 1. 0.13021E+02 0.21941E+01 0.57978E+01
  2371 + 1. -0.16885E+02 0.20252E+01 0.58043E+01
  2372 + 1. 0.22176E+01 0.43149E+01 0.58085E+01
  2373 + 1. 0.73774E+01 0.16963E+02 0.58164E+01
  2374 + 1. -0.52985E+01 -0.50907E+01 0.58221E+01
  2375 + 1. 0.19708E+02 0.82542E+00 0.58291E+01
  2376 + 1. 0.80989E+01 -0.55110E+01 0.58375E+01
  2377 + 1. 0.11608E+02 -0.46412E+01 0.58441E+01
  2378 + 1. -0.11729E+02 -0.40399E+01 0.58486E+01
  2379 + 1. -0.34844E+01 0.52421E+01 0.58549E+01
  2380 + 1. -0.19387E+01 -0.91815E+00 0.58660E+01
  2381 + 1. -0.17082E+02 -0.12215E+01 0.58694E+01
  2382 + 1. 0.54765E+01 -0.39663E+01 0.58793E+01
  2383 + 1. -0.52316E+01 -0.61956E+00 0.58842E+01
  2384 + 1. 0.26718E+01 -0.19817E+02 0.58890E+01
  2385 + 1. 0.12427E+02 0.14007E+02 0.58938E+01
  2386 + 1. 0.98056E+00 -0.95433E+01 0.59015E+01
  2387 + 1. -0.45411E+01 0.13489E+02 0.59077E+01
  2388 + 1. -0.86104E+01 0.17911E+02 0.59154E+01
  2389 + 1. 0.19739E+02 -0.22903E+01 0.59232E+01
  2390 + 1. 0.70754E+01 0.13004E+02 0.59320E+01
  2391 + 1. 0.16647E+02 -0.30510E+01 0.59336E+01
  2392 + 1. -0.55670E+01 0.63560E+01 0.59444E+01
  2393 + 1. 0.12793E+02 -0.62270E+00 0.59472E+01
  2394 + 1. 0.80994E+01 -0.14094E+01 0.59574E+01
  2395 + 1. 0.26377E+01 -0.17491E+01 0.59644E+01
  2396 + 1. 0.75263E+01 -0.17294E+02 0.59713E+01
  2397 + 1. 0.10164E+02 0.39043E+01 0.59789E+01
  2398 + 1. 0.14740E+02 -0.13348E+02 0.59832E+01
  2399 + 1. 0.17553E+02 0.86217E+01 0.59900E+01
  2400 + 1. 0.14992E+02 -0.95256E+01 0.59985E+01
  2401 + 1. 0.33897E+01 0.98651E+01 0.60043E+01
  2402 + 1. -0.97236E+01 -0.93512E+00 0.60077E+01
  2403 + 1. -0.15937E+02 0.87263E+01 0.60158E+01
  2404 + 1. -0.31300E+01 -0.54562E+01 0.60257E+01
  2405 + 1. -0.73176E+01 -0.15108E+02 0.60280E+01
  2406 + 1. -0.17283E+02 0.65833E+01 0.60390E+01
  2407 + 1. -0.12281E+02 0.52046E+01 0.60432E+01
  2408 + 1. -0.68129E+01 0.12169E+02 0.60468E+01
  2409 + 1. 0.30643E+00 0.49330E+01 0.60560E+01
  2410 + 1. 0.12061E+02 0.11212E+02 0.60621E+01
  2411 + 1. 0.18658E+02 -0.64733E+01 0.60679E+01
  2412 + 1. 0.96805E+01 0.12204E+01 0.60751E+01
  2413 + 1. 0.27104E+01 -0.76285E+01 0.60816E+01
  2414 + 1. 0.44125E+01 0.81280E+01 0.60928E+01
  2415 + 1. -0.96010E+01 -0.74183E+01 0.60999E+01
  2416 + 1. -0.10176E+02 -0.15175E+02 0.61017E+01
  2417 + 1. -0.31831E+01 0.17265E+02 0.61099E+01
  2418 + 1. -0.15655E+02 0.41544E+00 0.61194E+01
  2419 + 1. -0.10846E+02 0.11911E+01 0.61250E+01
  2420 + 1. 0.89562E+01 -0.11885E+02 0.61313E+01
  2421 + 1. 0.95682E+01 0.17398E+02 0.61368E+01
  2422 + 1. 0.65529E+01 0.54176E+01 0.61452E+01
  2423 + 1. -0.90539E+01 0.44267E+01 0.61483E+01
  2424 + 1. -0.29879E+01 0.11210E+02 0.61551E+01
  2425 + 1. -0.50176E+01 0.36248E+01 0.61640E+01
  2426 + 1. -0.98132E+01 0.11606E+02 0.61669E+01
  2427 + 1. -0.99200E+01 0.89945E+01 0.61795E+01
  2428 + 1. -0.14608E+02 -0.27542E+01 0.61863E+01
  2429 + 1. 0.28338E+01 -0.11288E+02 0.61915E+01
  2430 + 1. -0.69468E+01 -0.33772E+01 0.61988E+01
  2431 + 1. -0.76308E+01 -0.17957E+02 0.62050E+01
  2432 + 1. -0.17288E+02 -0.75009E+01 0.62111E+01
  2433 + 1. 0.53419E+01 0.22028E+01 0.62179E+01
  2434 + 1. -0.54891E+01 -0.17570E+02 0.62234E+01
  2435 + 1. -0.59478E+01 0.90567E+01 0.62328E+01
  2436 + 1. 0.98855E+00 0.16657E+02 0.62373E+01
  2437 + 1. 0.13034E+02 -0.63975E+01 0.62452E+01
  2438 + 1. -0.41204E+01 -0.34640E+01 0.62487E+01
  2439 + 1. -0.86186E-01 -0.19787E+02 0.62547E+01
  2440 + 1. 0.16884E+02 0.57703E+01 0.62632E+01
  2441 + 1. 0.95768E+01 -0.17323E+02 0.62683E+01
  2442 + 1. 0.60696E+01 0.14756E+02 0.62742E+01
  2443 + 1. -0.13567E+02 -0.18238E+00 0.62860E+01
  2444 + 1. -0.12928E+02 -0.60536E+01 0.62928E+01
  2445 + 1. 0.60360E+01 -0.17241E+01 0.62936E+01
  2446 + 1. -0.97082E+00 -0.98923E+01 0.63036E+01
  2447 + 1. 0.18684E+02 0.69763E+01 0.63129E+01
  2448 + 1. 0.98192E+01 -0.35963E+01 0.63189E+01
  2449 + 1. -0.91287E+01 0.15709E+02 0.63257E+01
  2450 + 1. 0.14490E+02 0.13766E+02 0.63302E+01
  2451 + 1. -0.18870E+02 -0.32561E+01 0.63344E+01
  2452 + 1. -0.88930E+01 -0.10720E+02 0.63440E+01
  2453 + 1. 0.75502E+01 -0.78256E+01 0.63482E+01
  2454 + 1. 0.82264E+01 0.42991E+01 0.63561E+01
  2455 + 1. -0.16431E+02 -0.11120E+02 0.63654E+01
  2456 + 1. -0.16354E+02 0.10737E+02 0.63681E+01
  2457 + 1. -0.62453E+01 0.16714E+02 0.63771E+01
  2458 + 1. 0.39570E+01 -0.18361E+02 0.63812E+01
  2459 + 1. 0.11993E+02 0.15896E+02 0.63910E+01
  2460 + 1. -0.72940E+01 -0.13621E+00 0.63982E+01
  2461 + 1. -0.11087E+01 -0.61001E+01 0.64028E+01
  2462 + 1. 0.50592E+01 -0.15678E+02 0.64084E+01
  2463 + 1. 0.15210E+02 0.19635E+01 0.64177E+01
  2464 + 1. 0.18813E+01 -0.17181E+02 0.64217E+01
  2465 + 1. 0.17502E+02 0.20754E+01 0.64304E+01
  2466 + 1. 0.42949E+00 0.14381E+02 0.64397E+01
  2467 + 1. 0.78398E+01 0.97331E+01 0.64452E+01
  2468 + 1. 0.32212E+01 0.24793E+00 0.64475E+01
  2469 + 1. 0.15541E+02 0.84640E+01 0.64537E+01
  2470 + 1. -0.56291E+01 -0.13634E+02 0.64664E+01
  2471 + 1. -0.71802E+01 -0.54305E+01 0.64729E+01
  2472 + 1. 0.19266E+02 0.38814E+01 0.64772E+01
  2473 + 1. -0.85429E+01 0.19716E+01 0.64828E+01
  2474 + 1. -0.68898E+01 -0.10009E+02 0.64894E+01
  2475 + 1. 0.14749E+02 -0.20862E+01 0.64947E+01
  2476 + 1. -0.13285E+01 0.30371E+01 0.65017E+01
  2477 + 1. 0.12738E+02 0.70961E+01 0.65126E+01
  2478 + 1. -0.88189E+01 -0.13541E+02 0.65154E+01
  2479 + 1. -0.11470E+02 0.14207E+02 0.65204E+01
  2480 + 1. -0.49297E+01 -0.88500E+01 0.65330E+01
  2481 + 1. 0.32860E+01 -0.13420E+02 0.65354E+01
  2482 + 1. -0.32942E+01 -0.14579E+02 0.65422E+01
  2483 + 1. 0.16618E+02 -0.50928E+01 0.65474E+01
  2484 + 1. -0.12205E+02 -0.11726E+02 0.65551E+01
  2485 + 1. 0.33118E+00 0.69044E+01 0.65624E+01
  2486 + 1. 0.13975E+01 0.16948E+01 0.65727E+01
  2487 + 1. -0.19741E+02 0.31229E+01 0.65740E+01
  2488 + 1. 0.10713E+02 -0.63275E+01 0.65815E+01
  2489 + 1. 0.84060E+01 0.15339E+02 0.65874E+01
  2490 + 1. -0.27949E+01 -0.19377E+02 0.65996E+01
  2491 + 1. -0.13543E+02 0.37036E+01 0.66016E+01
  2492 + 1. 0.13563E+02 -0.39381E+01 0.66118E+01
  2493 + 1. 0.33081E+01 0.19461E+02 0.66178E+01
  2494 + 1. -0.55872E+01 0.19031E+02 0.66243E+01
  2495 + 1. -0.12900E+02 -0.84732E+01 0.66310E+01
  2496 + 1. -0.48478E+00 -0.14202E+02 0.66382E+01
  2497 + 1. -0.15485E+01 -0.38916E+01 0.66419E+01
  2498 + 1. -0.14568E+02 -0.48542E+01 0.66531E+01
  2499 + 1. -0.14639E+02 -0.98736E+01 0.66578E+01
  2500 + 1. 0.10989E+02 -0.11783E+02 0.66636E+01
  2501 + 1. -0.16874E+01 0.92729E+01 0.66669E+01
  2502 + 1. 0.18427E+02 -0.84109E+00 0.66747E+01
  2503 + 1. 0.70659E+01 -0.13697E+02 0.66825E+01
  2504 + 1. 0.26221E+01 0.12418E+02 0.66876E+01
  2505 + 1. -0.12856E+02 0.12065E+02 0.66985E+01
  2506 + 1. -0.39582E+01 0.76726E+01 0.67050E+01
  2507 + 1. -0.40202E+01 0.80039E+00 0.67077E+01
  2508 + 1. -0.66713E+01 0.14089E+02 0.67166E+01
  2509 + 1. 0.10233E+02 0.14509E+02 0.67237E+01
  2510 + 1. 0.12051E+02 -0.15203E+02 0.67283E+01
  2511 + 1. -0.18043E+02 0.35617E+00 0.67363E+01
  2512 + 1. 0.97553E+01 0.10267E+02 0.67425E+01
  2513 + 1. 0.11833E+01 0.92794E+01 0.67484E+01
  2514 + 1. -0.10718E+02 -0.99656E+01 0.67567E+01
  2515 + 1. -0.67088E+01 0.48222E+01 0.67639E+01
  2516 + 1. -0.12204E+02 0.90323E+01 0.67708E+01
  2517 + 1. 0.30695E+00 -0.22944E+01 0.67761E+01
  2518 + 1. 0.23547E+01 -0.37154E+01 0.67856E+01
  2519 + 1. -0.10548E+02 -0.26072E+01 0.67909E+01
  2520 + 1. -0.26611E+01 -0.89302E+01 0.67979E+01
  2521 + 1. -0.16683E+02 -0.30111E+01 0.68061E+01
  2522 + 1. -0.16712E+02 0.43761E+01 0.68087E+01
  2523 + 1. 0.79945E+01 0.66878E+01 0.68174E+01
  2524 + 1. -0.17133E+01 0.56240E+01 0.68205E+01
  2525 + 1. 0.62042E+01 0.43980E+00 0.68321E+01
  2526 + 1. 0.86951E+01 -0.95428E+01 0.68390E+01
  2527 + 1. -0.10981E+02 0.38704E+01 0.68434E+01
  2528 + 1. 0.11318E+02 0.86565E+01 0.68496E+01
  2529 + 1. 0.12757E+02 0.40062E+01 0.68571E+01
  2530 + 1. 0.45639E+01 -0.99242E+01 0.68657E+01
  2531 + 1. 0.13368E+02 -0.85871E+01 0.68709E+01
  2532 + 1. 0.45900E+01 0.11669E+02 0.68734E+01
  2533 + 1. -0.51052E+01 0.11325E+02 0.68801E+01
  2534 + 1. -0.16710E+01 0.18507E+02 0.68927E+01
  2535 + 1. -0.90358E+01 0.65495E+01 0.68951E+01
  2536 + 1. -0.14551E+02 -0.13673E+02 0.69025E+01
  2537 + 1. -0.83945E+00 -0.17045E+02 0.69118E+01
  2538 + 1. -0.92430E+01 0.13737E+02 0.69162E+01
  2539 + 1. 0.16895E+02 -0.84024E+01 0.69258E+01
  2540 + 1. -0.46274E+01 0.15323E+02 0.69295E+01
  2541 + 1. 0.57089E+01 0.97497E+01 0.69394E+01
  2542 + 1. -0.81475E+01 0.10711E+02 0.69460E+01
  2543 + 1. 0.84756E+01 -0.15294E+02 0.69512E+01
  2544 + 1. 0.31491E+01 0.15123E+02 0.69540E+01
  2545 + 1. 0.17001E+02 0.10374E+02 0.69641E+01
  2546 + 1. 0.11945E+02 -0.23592E+01 0.69713E+01
  2547 + 1. -0.12055E+02 -0.14351E+02 0.69738E+01
  2548 + 1. 0.13035E+02 0.96915E+01 0.69830E+01
  2549 + 1. -0.26370E+01 0.13939E+02 0.69910E+01
  2550 + 1. 0.16306E+02 -0.11321E+02 0.69974E+01
  2551 + 1. -0.13167E+02 0.71784E+01 0.70033E+01
  2552 + 1. -0.17932E+02 -0.57730E+01 0.70083E+01
  2553 + 1. 0.14363E+02 0.11429E+02 0.70179E+01
  2554 + 1. 0.41817E+01 0.55249E+01 0.70204E+01
  2555 + 1. 0.77441E+01 0.23850E+01 0.70333E+01
  2556 + 1. 0.47923E+01 -0.55932E+01 0.70374E+01
  2557 + 1. 0.55163E+01 -0.11802E+02 0.70414E+01
  2558 + 1. 0.76688E+00 -0.11186E+02 0.70492E+01
  2559 + 1. -0.11581E+02 0.16276E+02 0.70568E+01
  2560 + 1. 0.11159E+02 0.22868E+01 0.70619E+01
  2561 + 1. 0.15107E+02 0.63048E+01 0.70693E+01
  2562 + 1. 0.14887E+02 0.41725E+01 0.70737E+01
  2563 + 1. 0.89822E+00 -0.72387E+01 0.70812E+01
  2564 + 1. 0.10988E+02 0.86812E-01 0.70867E+01
  2565 + 1. 0.25365E+01 -0.15317E+02 0.70986E+01
  2566 + 1. -0.17690E+02 0.86544E+01 0.71001E+01
  2567 + 1. -0.15232E+02 -0.79207E+01 0.71079E+01
  2568 + 1. -0.17693E+02 -0.93090E+01 0.71175E+01
  2569 + 1. 0.38158E+01 0.32294E+01 0.71223E+01
  2570 + 1. -0.11534E+01 0.16433E+02 0.71313E+01
  2571 + 1. 0.12756E+02 -0.13140E+02 0.71371E+01
  2572 + 1. 0.87512E+01 0.12212E+02 0.71403E+01
  2573 + 1. 0.42040E+01 0.16874E+02 0.71485E+01
  2574 + 1. 0.95943E+00 0.18551E+02 0.71565E+01
  2575 + 1. -0.20309E+01 -0.11451E+02 0.71651E+01
  2576 + 1. 0.48739E+01 -0.78389E+01 0.71688E+01
  2577 + 1. 0.81245E+00 -0.35497E+00 0.71748E+01
  2578 + 1. 0.75238E+01 0.18445E+02 0.71802E+01
  2579 + 1. 0.15076E+02 -0.69331E+01 0.71918E+01
  2580 + 1. -0.38225E+01 -0.16874E+02 0.71970E+01
  2581 + 1. -0.46779E+01 -0.11912E+02 0.72066E+01
  2582 + 1. -0.11407E+02 -0.72490E+01 0.72133E+01
  2583 + 1. -0.18800E+02 0.55395E+01 0.72193E+01
  2584 + 1. 0.12594E+02 -0.10625E+02 0.72236E+01
  2585 + 1. -0.17055E+01 0.11583E+01 0.72315E+01
  2586 + 1. -0.15385E+02 0.23821E+01 0.72375E+01
  2587 + 1. -0.33479E+01 -0.17415E+01 0.72427E+01
  2588 + 1. -0.79805E+01 -0.80710E+01 0.72484E+01
  2589 + 1. 0.18813E+02 -0.47591E+01 0.72550E+01
  2590 + 1. 0.16180E+02 0.30569E+00 0.72646E+01
  2591 + 1. -0.81728E+01 -0.18574E+01 0.72715E+01
  2592 + 1. 0.70765E+01 -0.33099E+01 0.72740E+01
  2593 + 1. -0.12276E+02 0.22880E+01 0.72811E+01
  2594 + 1. -0.15823E+02 0.71531E+01 0.72882E+01
  2595 + 1. -0.14361E+02 0.88030E+01 0.72961E+01
  2596 + 1. -0.19510E+02 -0.10001E+01 0.73007E+01
  2597 + 1. -0.11960E+02 -0.79937E+00 0.73094E+01
  2598 + 1. 0.40469E+01 -0.23706E+01 0.73193E+01
  2599 + 1. 0.68709E+01 -0.18697E+02 0.73256E+01
  2600 + 1. -0.43816E+01 -0.67739E+01 0.73330E+01
  2601 + 1. -0.69516E+01 0.72598E+01 0.73378E+01
  2602 + 1. -0.90325E+01 -0.52342E+01 0.73459E+01
  2603 + 1. -0.86551E+01 -0.16459E+02 0.73492E+01
  2604 + 1. 0.21491E+01 0.61509E+01 0.73577E+01
  2605 + 1. 0.10693E+02 -0.95488E+01 0.73609E+01
  2606 + 1. 0.96162E+01 0.53497E+01 0.73688E+01
  2607 + 1. 0.11250E+02 0.12820E+02 0.73789E+01
  2608 + 1. -0.70063E+01 0.29311E+01 0.73855E+01
  2609 + 1. -0.35496E+01 0.28672E+01 0.73871E+01
  2610 + 1. -0.13067E+01 0.11119E+02 0.73944E+01
  2611 + 1. 0.64482E+01 -0.91572E+01 0.74042E+01
  2612 + 1. 0.14029E+02 -0.37702E-01 0.74109E+01
  2613 + 1. -0.57988E+01 -0.15949E+02 0.74165E+01
  2614 + 1. -0.15464E+02 -0.11044E+01 0.74226E+01
  2615 + 1. 0.56714E+01 0.72955E+01 0.74317E+01
  2616 + 1. 0.56699E+01 0.39247E+01 0.74386E+01
  2617 + 1. 0.12854E+01 -0.18837E+02 0.74404E+01
  2618 + 1. -0.15243E+02 0.12104E+02 0.74493E+01
  2619 + 1. 0.82874E+01 0.33892E-01 0.74598E+01
  2620 + 1. 0.99152E+01 -0.13407E+02 0.74628E+01
  2621 + 1. -0.12968E+02 -0.38780E+01 0.74704E+01
  2622 + 1. -0.61641E+01 -0.16383E+01 0.74793E+01
  2623 + 1. 0.67100E+01 -0.59931E+01 0.74805E+01
  2624 + 1. 0.17888E+02 -0.26294E+01 0.74915E+01
  2625 + 1. 0.94228E+01 -0.20019E+01 0.74990E+01
  2626 + 1. -0.17815E+02 0.28075E+01 0.75030E+01
  2627 + 1. 0.24544E+00 0.12650E+02 0.75090E+01
  2628 + 1. -0.39483E+01 0.96767E+01 0.75178E+01
  2629 + 1. -0.94372E+01 0.45710E+00 0.75239E+01
  2630 + 1. -0.47182E+01 0.51443E+01 0.75282E+01
  2631 + 1. -0.13960E+02 -0.11868E+02 0.75399E+01
  2632 + 1. 0.26155E+01 -0.90998E+01 0.75425E+01
  2633 + 1. -0.96969E+01 0.17460E+02 0.75498E+01
  2634 + 1. -0.11073E+02 0.10888E+02 0.75557E+01
  2635 + 1. -0.11115E+02 0.60850E+01 0.75618E+01
  2636 + 1. -0.47703E+01 -0.19390E+02 0.75687E+01
  2637 + 1. -0.74355E+01 -0.11726E+02 0.75791E+01
  2638 + 1. -0.13581E+02 0.14264E+02 0.75822E+01
  2639 + 1. 0.19700E+02 0.19639E+01 0.75887E+01
  2640 + 1. 0.28221E+01 -0.59546E+01 0.75943E+01
  2641 + 1. 0.99889E+00 0.34162E+01 0.76043E+01
  2642 + 1. -0.10893E+02 -0.45146E+01 0.76104E+01
  2643 + 1. 0.58236E+01 0.13120E+02 0.76150E+01
  2644 + 1. 0.63295E+01 0.16554E+02 0.76204E+01
  2645 + 1. -0.75066E+01 0.15714E+02 0.76310E+01
  2646 + 1. 0.69413E+01 0.11429E+02 0.76354E+01
  2647 + 1. 0.52941E+01 -0.17282E+02 0.76435E+01
  2648 + 1. 0.16667E+02 0.34571E+01 0.76487E+01
  2649 + 1. 0.90239E+01 -0.64450E+01 0.76555E+01
  2650 + 1. 0.30890E+01 0.85297E+01 0.76623E+01
  2651 + 1. -0.85577E+01 0.86930E+01 0.76690E+01
  2652 + 1. -0.14463E+02 0.54314E+01 0.76771E+01
  2653 + 1. -0.10261E+02 -0.11951E+02 0.76838E+01
  2654 + 1. 0.77422E+01 -0.11396E+02 0.76890E+01
  2655 + 1. -0.11111E+02 -0.16502E+02 0.76986E+01
  2656 + 1. 0.14637E+02 -0.12296E+02 0.77063E+01
  2657 + 1. -0.58127E+01 0.81714E+00 0.77086E+01
  2658 + 1. -0.89649E+00 -0.81883E+01 0.77197E+01
  2659 + 1. -0.72194E+01 0.18388E+02 0.77207E+01
  2660 + 1. -0.42137E+01 0.17932E+02 0.77326E+01
  2661 + 1. 0.16360E+01 -0.13036E+02 0.77389E+01
  2662 + 1. 0.13241E+02 0.13077E+02 0.77462E+01
  2663 + 1. 0.13646E+02 0.20778E+01 0.77482E+01
  2664 + 1. 0.10843E+02 -0.16640E+02 0.77549E+01
  2665 + 1. 0.50255E+01 0.19305E+02 0.77618E+01
  2666 + 1. 0.97016E+01 0.78647E+01 0.77668E+01
  2667 + 1. 0.16925E+02 0.77694E+01 0.77772E+01
  2668 + 1. 0.50181E+01 -0.14076E+02 0.77826E+01
  2669 + 1. -0.49430E+01 -0.46813E+01 0.77907E+01
  2670 + 1. -0.10013E+02 0.23716E+01 0.77947E+01
  2671 + 1. -0.19722E+02 0.94273E+00 0.78032E+01
  2672 + 1. 0.15549E+02 -0.34575E+01 0.78113E+01
  2673 + 1. -0.10919E+01 -0.18932E+02 0.78184E+01
  2674 + 1. -0.53313E+01 0.13092E+02 0.78219E+01
  2675 + 1. 0.12325E+02 -0.53408E+01 0.78276E+01
  2676 + 1. -0.19813E+01 -0.15391E+02 0.78386E+01
  2677 + 1. -0.72713E+01 -0.14200E+02 0.78466E+01
  2678 + 1. 0.27967E+00 -0.50122E+01 0.78472E+01
  2679 + 1. -0.16098E+02 -0.54483E+01 0.78579E+01
  2680 + 1. 0.65117E+01 -0.15425E+02 0.78629E+01
  2681 + 1. 0.31041E+01 0.10754E+02 0.78678E+01
  2682 + 1. -0.19712E+01 0.73681E+01 0.78782E+01
  2683 + 1. 0.14182E+02 0.79178E+01 0.78820E+01
  2684 + 1. 0.83854E+01 -0.17177E+02 0.78867E+01
  2685 + 1. 0.17824E+02 -0.66685E+01 0.78976E+01
  2686 + 1. 0.10477E+02 0.16507E+02 0.79010E+01
  2687 + 1. 0.44169E+01 0.12638E+01 0.79126E+01
  2688 + 1. 0.18395E+02 0.53923E+01 0.79135E+01
  2689 + 1. 0.74991E+01 0.83651E+01 0.79219E+01
  2690 + 1. 0.23484E+01 0.17101E+02 0.79313E+01
  2691 + 1. 0.11236E+02 0.64206E+01 0.79384E+01
  2692 + 1. -0.24053E+01 -0.64508E+01 0.79463E+01
  2693 + 1. -0.12358E+02 -0.10076E+02 0.79495E+01
  2694 + 1. -0.14995E+01 -0.71630E+00 0.79541E+01
  2695 + 1. -0.13596E+02 -0.70152E+01 0.79654E+01
  2696 + 1. -0.64606E+01 0.99676E+01 0.79693E+01
  2697 + 1. 0.14695E+02 -0.96965E+01 0.79779E+01
  2698 + 1. -0.16496E+02 0.75219E+00 0.79860E+01
  2699 + 1. -0.65284E+01 -0.68852E+01 0.79876E+01
  2700 + 1. 0.10410E+02 -0.46407E+01 0.79941E+01
  2701 + 1. -0.72814E+01 0.12512E+02 0.80054E+01
  2702 + 1. -0.17589E+02 -0.13138E+01 0.80086E+01
  2703 + 1. 0.12995E+02 0.15101E+02 0.80161E+01
  2704 + 1. -0.78250E+01 -0.37582E+01 0.80234E+01
  2705 + 1. 0.11609E+02 0.10654E+02 0.80281E+01
  2706 + 1. -0.14397E+02 0.52135E+00 0.80346E+01
  2707 + 1. 0.73495E+01 0.50017E+01 0.80450E+01
  2708 + 1. 0.11935E+02 -0.77315E+01 0.80476E+01
  2709 + 1. 0.64606E+00 0.15905E+02 0.80586E+01
  2710 + 1. 0.19972E+02 -0.98587E+00 0.80611E+01
  2711 + 1. 0.76810E+01 0.14145E+02 0.80725E+01
  2712 + 1. -0.61621E+01 -0.17992E+02 0.80751E+01
  2713 + 1. 0.53792E+01 -0.10381E+01 0.80842E+01
  2714 + 1. -0.10397E+02 0.80103E+01 0.80884E+01
  2715 + 1. -0.18499E+02 -0.74231E+01 0.80989E+01
  2716 + 1. 0.81529E+00 -0.16815E+02 0.81044E+01
  2717 + 1. -0.99988E+01 0.15227E+02 0.81126E+01
  2718 + 1. 0.32984E+01 -0.17368E+02 0.81166E+01
  2719 + 1. -0.84944E+00 -0.12854E+02 0.81261E+01
  2720 + 1. -0.39974E+01 -0.10092E+02 0.81323E+01
  2721 + 1. 0.19358E+01 0.13810E+02 0.81379E+01
  2722 + 1. -0.21086E+01 0.40758E+01 0.81443E+01
  2723 + 1. 0.13154E+02 0.58252E+01 0.81469E+01
  2724 + 1. -0.94102E+01 0.11887E+02 0.81570E+01
  2725 + 1. 0.96480E+01 0.33189E+01 0.81602E+01
  2726 + 1. -0.18275E+02 -0.41171E+01 0.81729E+01
  2727 + 1. -0.95474E+01 0.49442E+01 0.81780E+01
  2728 + 1. 0.61031E+00 -0.95210E+01 0.81815E+01
  2729 + 1. -0.34285E+01 0.11572E+02 0.81898E+01
  2730 + 1. -0.97191E+00 0.14546E+02 0.81997E+01
  2731 + 1. -0.37294E+00 0.19820E+02 0.82023E+01
  2732 + 1. 0.34833E+01 -0.11745E+02 0.82092E+01
  2733 + 1. -0.45290E+01 -0.14186E+02 0.82153E+01
  2734 + 1. 0.52975E+01 -0.38454E+01 0.82203E+01
  2735 + 1. -0.95534E+01 -0.14773E+02 0.82296E+01
  2736 + 1. 0.17899E+02 0.11525E+01 0.82346E+01
  2737 + 1. -0.26012E+01 0.19731E+02 0.82425E+01
  2738 + 1. 0.38728E+00 0.80855E+01 0.82494E+01
  2739 + 1. 0.17184E+02 -0.10014E+02 0.82546E+01
  2740 + 1. 0.82981E+01 -0.46079E+01 0.82604E+01
  2741 + 1. 0.23625E+01 0.11011E+01 0.82701E+01
  2742 + 1. -0.14604E+02 -0.29336E+01 0.82773E+01
  2743 + 1. -0.41030E+00 0.51258E+01 0.82848E+01
  2744 + 1. -0.14050E+02 0.10545E+02 0.82913E+01
  2745 + 1. 0.17086E+01 -0.22770E+01 0.82933E+01
  2746 + 1. -0.27342E+01 -0.43150E+01 0.83014E+01
  2747 + 1. -0.96932E+01 -0.71513E+01 0.83101E+01
  2748 + 1. -0.15703E+02 -0.94466E+01 0.83185E+01
  2749 + 1. -0.93572E+01 -0.97315E+01 0.83240E+01
  2750 + 1. -0.17724E+02 0.69333E+01 0.83293E+01
  2751 + 1. 0.13636E+02 -0.19408E+01 0.83352E+01
  2752 + 1. -0.16234E+02 -0.11445E+02 0.83451E+01
  2753 + 1. 0.15144E+02 0.96230E+01 0.83527E+01
  2754 + 1. 0.47106E+01 -0.19237E+02 0.83562E+01
  2755 + 1. 0.17267E+00 0.10123E+02 0.83659E+01
  2756 + 1. 0.84727E+01 0.10148E+02 0.83683E+01
  2757 + 1. -0.57877E+01 0.16701E+02 0.83775E+01
  2758 + 1. 0.80359E+01 -0.13249E+02 0.83841E+01
  2759 + 1. -0.19314E+02 0.38632E+01 0.83898E+01
  2760 + 1. 0.10003E+02 0.12584E+01 0.83966E+01
  2761 + 1. -0.23919E+01 0.17405E+02 0.84051E+01
  2762 + 1. -0.16141E+02 0.92843E+01 0.84133E+01
  2763 + 1. 0.84388E+01 0.16649E+02 0.84198E+01
  2764 + 1. -0.51868E+01 0.77779E+01 0.84231E+01
  2765 + 1. 0.47060E+01 0.14805E+02 0.84308E+01
  2766 + 1. 0.14665E+02 -0.52184E+01 0.84387E+01
  2767 + 1. -0.62448E+01 -0.10072E+02 0.84424E+01
  2768 + 1. 0.20743E+01 0.19872E+02 0.84526E+01
  2769 + 1. -0.82712E+01 -0.18114E+02 0.84590E+01
  2770 + 1. 0.13349E+02 -0.14555E+02 0.84626E+01
  2771 + 1. -0.10140E+02 -0.12598E+01 0.84668E+01
  2772 + 1. 0.62761E+01 0.21009E+01 0.84756E+01
  2773 + 1. 0.15760E+02 0.12146E+02 0.84854E+01
  2774 + 1. 0.11553E+02 0.41830E+01 0.84903E+01
  2775 + 1. -0.47538E+00 -0.31657E+01 0.84997E+01
  2776 + 1. -0.81935E+01 0.16816E+01 0.85046E+01
  2777 + 1. -0.33805E+01 0.15099E+02 0.85121E+01
  2778 + 1. 0.17354E+02 -0.75941E+00 0.85133E+01
  2779 + 1. -0.11381E+02 0.13511E+02 0.85266E+01
  2780 + 1. 0.10211E+02 -0.11225E+02 0.85311E+01
  2781 + 1. -0.73898E+01 -0.35999E+00 0.85349E+01
  2782 + 1. 0.75027E+01 -0.75789E+01 0.85418E+01
  2783 + 1. 0.16778E+00 0.98004E+00 0.85508E+01
  2784 + 1. 0.97667E+01 -0.15151E+02 0.85557E+01
  2785 + 1. -0.31224E+01 0.58692E+01 0.85628E+01
  2786 + 1. -0.21445E+01 0.96754E+01 0.85721E+01
  2787 + 1. -0.12330E+02 0.45739E+01 0.85786E+01
  2788 + 1. 0.19444E+02 0.36888E+01 0.85802E+01
  2789 + 1. 0.15830E+02 0.18503E+01 0.85877E+01
  2790 + 1. 0.16893E+02 -0.49179E+01 0.85950E+01
  2791 + 1. 0.19571E+02 -0.31481E+01 0.86030E+01
  2792 + 1. -0.15734E+02 0.39372E+01 0.86114E+01
  2793 + 1. 0.12401E+02 0.41399E+00 0.86138E+01
  2794 + 1. 0.30419E+01 0.44771E+01 0.86224E+01
  2795 + 1. 0.81062E+00 -0.14704E+02 0.86273E+01
  2796 + 1. -0.75435E+01 0.55941E+01 0.86344E+01
  2797 + 1. -0.19782E+02 -0.26265E+01 0.86426E+01
  2798 + 1. -0.13759E+02 0.29716E+01 0.86487E+01
  2799 + 1. -0.50252E+01 0.34303E+01 0.86582E+01
  2800 + 1. -0.35703E+01 0.11452E+01 0.86617E+01
  2801 + 1. 0.39464E+01 0.12849E+02 0.86673E+01
  2802 + 1. 0.31059E+01 -0.37371E+01 0.86778E+01
  2803 + 1. 0.99114E+01 -0.82490E+01 0.86816E+01
  2804 + 1. -0.13057E+02 -0.14977E+02 0.86928E+01
  2805 + 1. -0.25777E+01 -0.13684E+02 0.86993E+01
  2806 + 1. -0.13596E+02 0.12562E+02 0.87009E+01
  2807 + 1. 0.10184E+02 0.14296E+02 0.87131E+01
  2808 + 1. 0.12352E+02 0.89158E+01 0.87179E+01
  2809 + 1. 0.36173E+01 0.64589E+01 0.87260E+01
  2810 + 1. -0.11448E+01 -0.10313E+02 0.87280E+01
  2811 + 1. 0.16088E+02 -0.80428E+01 0.87385E+01
  2812 + 1. 0.24707E+01 -0.19838E+02 0.87461E+01
  2813 + 1. -0.12802E+02 0.84040E+01 0.87523E+01
  2814 + 1. -0.12162E+02 0.69224E+00 0.87589E+01
  2815 + 1. -0.11803E+02 -0.13289E+02 0.87665E+01
  2816 + 1. -0.21053E+01 -0.17359E+02 0.87674E+01
  2817 + 1. -0.45376E+01 -0.24767E+01 0.87775E+01
  2818 + 1. 0.47420E+01 0.90735E+01 0.87851E+01
  2819 + 1. -0.14037E+02 -0.51713E+01 0.87916E+01
  2820 + 1. -0.28598E+01 -0.19346E+02 0.87958E+01
  2821 + 1. 0.16654E+02 0.59181E+01 0.88051E+01
  2822 + 1. 0.30707E+01 -0.82041E+00 0.88119E+01
  2823 + 1. 0.72751E+01 -0.16224E+01 0.88193E+01
  2824 + 1. -0.16196E+02 -0.72166E+01 0.88206E+01
  2825 + 1. -0.28778E+01 -0.84625E+01 0.88309E+01
  2826 + 1. 0.11382E+02 -0.13329E+02 0.88357E+01
  2827 + 1. 0.49754E+01 -0.90011E+01 0.88413E+01
  2828 + 1. 0.11767E+02 -0.32951E+01 0.88503E+01
  2829 + 1. -0.10996E+02 -0.86311E+01 0.88588E+01
  2830 + 1. -0.14473E+02 0.72257E+01 0.88653E+01
  2831 + 1. -0.12323E+02 -0.22710E+01 0.88702E+01
  2832 + 1. -0.60282E+01 -0.12597E+02 0.88757E+01
  2833 + 1. -0.42699E+00 0.17886E+02 0.88800E+01
  2834 + 1. -0.85115E+01 0.14052E+02 0.88921E+01
  2835 + 1. 0.84072E+01 -0.98582E+01 0.88992E+01
  2836 + 1. 0.13651E+02 0.11438E+02 0.89042E+01
  2837 + 1. 0.61196E+01 -0.10724E+02 0.89109E+01
  2838 + 1. 0.43680E+01 -0.69144E+01 0.89154E+01
  2839 + 1. -0.11975E+02 -0.61034E+01 0.89216E+01
  2840 + 1. 0.10887E+02 -0.11614E+01 0.89305E+01
  2841 + 1. 0.29241E+01 -0.14326E+02 0.89376E+01
  2842 + 1. 0.98643E+01 0.11923E+02 0.89454E+01
  2843 + 1. -0.17467E+02 0.49272E+01 0.89494E+01
  2844 + 1. 0.39043E+01 0.18131E+02 0.89553E+01
  2845 + 1. 0.14010E+02 -0.72096E+01 0.89664E+01
  2846 + 1. 0.60271E+01 -0.12810E+02 0.89689E+01
  2847 + 1. 0.16875E+01 -0.11259E+02 0.89743E+01
  2848 + 1. -0.16450E+02 -0.37883E+01 0.89860E+01
  2849 + 1. 0.16118E+01 -0.70353E+01 0.89871E+01
  2850 + 1. 0.86836E+01 0.62250E+01 0.89971E+01
  2851 + 1. 0.56099E+01 0.60596E+01 0.90048E+01
  2852 + 1. -0.86625E+01 0.10197E+02 0.90120E+01
  2853 + 1. -0.14479E+02 -0.13319E+02 0.90152E+01
  2854 + 1. 0.10313E+02 0.94707E+01 0.90260E+01
  2855 + 1. -0.77003E+01 -0.56401E+01 0.90332E+01
  2856 + 1. -0.51788E+01 -0.82968E+01 0.90356E+01
  2857 + 1. -0.27837E+01 -0.11649E+02 0.90407E+01
  2858 + 1. -0.25380E+01 -0.24280E+01 0.90468E+01
  2859 + 1. 0.12476E+02 -0.97108E+01 0.90573E+01
  2860 + 1. 0.16096E+01 0.11760E+02 0.90617E+01
  2861 + 1. 0.12991E+02 -0.11880E+02 0.90703E+01
  2862 + 1. -0.61023E+01 0.14588E+02 0.90773E+01
  2863 + 1. -0.57913E+00 -0.67364E+01 0.90838E+01
  2864 + 1. 0.69533E+01 0.18205E+02 0.90890E+01
  2865 + 1. -0.12056E+02 0.15586E+02 0.90997E+01
  2866 + 1. 0.53428E+01 0.11300E+02 0.91001E+01
  2867 + 1. -0.42019E+01 -0.17671E+02 0.91101E+01
  2868 + 1. 0.14602E+02 0.47885E+01 0.91182E+01
  2869 + 1. -0.99896E+01 -0.33509E+01 0.91208E+01
  2870 + 1. 0.46596E+01 -0.15946E+02 0.91290E+01
  2871 + 1. -0.16801E+01 0.12338E+02 0.91370E+01
  2872 + 1. 0.15076E+02 -0.17921E+00 0.91460E+01
  2873 + 1. -0.18182E+01 0.20350E+01 0.91522E+01
  2874 + 1. 0.19178E+02 -0.56516E+01 0.91599E+01
  2875 + 1. -0.77034E+01 0.76088E+01 0.91664E+01
  2876 + 1. -0.11162E+02 0.95951E+01 0.91730E+01
  2877 + 1. -0.82598E+01 0.17206E+02 0.91786E+01
  2878 + 1. 0.65992E+01 -0.17164E+02 0.91824E+01
  2879 + 1. -0.54070E+01 -0.51633E+00 0.91920E+01
  2880 + 1. -0.97580E+01 -0.16997E+02 0.91979E+01
  2881 + 1. 0.16813E+01 0.67816E+01 0.92007E+01
  2882 + 1. -0.53158E+01 0.19251E+02 0.92072E+01
  2883 + 1. -0.14004E+02 -0.10448E+02 0.92175E+01
  2884 + 1. -0.17527E+02 -0.93361E+01 0.92257E+01
  2885 + 1. -0.11481E+02 0.26819E+01 0.92299E+01
  2886 + 1. 0.19026E+01 0.94157E+01 0.92371E+01
  2887 + 1. 0.27865E+01 0.15512E+02 0.92429E+01
  2888 + 1. 0.15872E+02 -0.11941E+02 0.92493E+01
  2889 + 1. 0.40484E+01 0.28446E+01 0.92572E+01
  2890 + 1. -0.18697E+02 0.18786E+01 0.92633E+01
  2891 + 1. -0.73498E+01 -0.16409E+02 0.92720E+01
  2892 + 1. 0.78136E+01 0.10291E+01 0.92758E+01
  2893 + 1. 0.12350E+02 0.24167E+01 0.92832E+01
  2894 + 1. 0.90779E+01 -0.29582E+01 0.92894E+01
  2895 + 1. 0.79133E+01 -0.15537E+02 0.92993E+01
  2896 + 1. 0.90078E+01 -0.58004E+00 0.93023E+01
  2897 + 1. -0.79884E+01 0.35124E+01 0.93116E+01
  2898 + 1. -0.80398E+01 -0.85047E+01 0.93163E+01
  2899 + 1. 0.18292E+02 0.76823E+01 0.93239E+01
  2900 + 1. -0.43707E+01 -0.63726E+01 0.93327E+01
  2901 + 1. 0.11872E+02 -0.15663E+02 0.93384E+01
  2902 + 1. -0.16323E+02 0.11107E+02 0.93407E+01
  2903 + 1. 0.11966E+02 0.12903E+02 0.93483E+01
  2904 + 1. 0.32996E+00 -0.10246E+01 0.93583E+01
  2905 + 1. -0.19681E+02 -0.44055E+00 0.93623E+01
  2906 + 1. -0.15362E+02 0.19477E+01 0.93680E+01
  2907 + 1. -0.15043E+02 -0.12882E+01 0.93763E+01
  2908 + 1. 0.16760E+02 -0.27779E+01 0.93860E+01
  2909 + 1. 0.44343E+01 -0.23746E+01 0.93920E+01
  2910 + 1. -0.38794E+01 0.13234E+02 0.93996E+01
  2911 + 1. 0.33120E+00 0.13320E+02 0.94060E+01
  2912 + 1. -0.89777E+01 -0.13086E+02 0.94102E+01
  2913 + 1. 0.17787E+02 0.28096E+01 0.94135E+01
  2914 + 1. -0.57988E+01 0.11397E+02 0.94229E+01
  2915 + 1. 0.75511E+01 0.12193E+02 0.94293E+01
  2916 + 1. -0.17963E+02 0.87564E+01 0.94367E+01
  2917 + 1. 0.71310E+00 -0.18415E+02 0.94400E+01
  2918 + 1. -0.37113E+01 0.86771E+01 0.94491E+01
  2919 + 1. 0.18127E+01 0.26752E+01 0.94596E+01
  2920 + 1. -0.18865E+02 -0.57931E+01 0.94653E+01
  2921 + 1. 0.63747E+01 0.15286E+02 0.94698E+01
  2922 + 1. 0.14183E+02 0.13942E+02 0.94775E+01
  2923 + 1. 0.10319E+02 -0.63735E+01 0.94848E+01
  2924 + 1. 0.17231E+02 0.95350E+01 0.94923E+01
  2925 + 1. -0.51427E+01 0.52625E+01 0.94981E+01
  2926 + 1. 0.14923E+02 0.68598E+01 0.95041E+01
  2927 + 1. 0.68297E+01 0.37414E+01 0.95105E+01
  2928 + 1. -0.10715E+02 -0.10785E+02 0.95188E+01
  2929 + 1. -0.10223E+02 0.16701E+02 0.95263E+01
  2930 + 1. 0.21583E+01 -0.92355E+01 0.95276E+01
  2931 + 1. -0.64442E+01 -0.36629E+01 0.95350E+01
  2932 + 1. -0.58087E+01 0.17985E+01 0.95426E+01
  2933 + 1. -0.34571E+01 -0.15754E+02 0.95519E+01
  2934 + 1. 0.65394E+01 -0.59382E+01 0.95545E+01
  2935 + 1. 0.23387E+01 -0.16322E+02 0.95642E+01
  2936 + 1. -0.99534E+01 0.65662E+01 0.95709E+01
  2937 + 1. 0.19757E+02 0.36934E+00 0.95735E+01
  2938 + 1. 0.94945E+01 -0.16938E+02 0.95816E+01
  2939 + 1. -0.77168E+01 -0.10824E+02 0.95904E+01
  2940 + 1. -0.10695E+01 0.65673E+01 0.95964E+01
  2941 + 1. 0.11601E+02 0.15641E+02 0.96009E+01
  2942 + 1. -0.94415E+00 -0.15089E+02 0.96095E+01
  2943 + 1. 0.15326E+01 -0.48095E+01 0.96140E+01
  2944 + 1. 0.98785E+01 0.17372E+02 0.96259E+01
  2945 + 1. -0.10054E+02 0.76689E+00 0.96315E+01
  2946 + 1. 0.68498E+01 -0.36130E+01 0.96375E+01
  2947 + 1. -0.11528E+02 0.11575E+02 0.96453E+01
  2948 + 1. 0.15972E+01 0.18040E+02 0.96511E+01
  2949 + 1. 0.10551E+02 0.73303E+01 0.96585E+01
  2950 + 1. 0.14278E+02 -0.33016E+01 0.96627E+01
  2951 + 1. -0.12282E+00 0.33089E+01 0.96702E+01
  2952 + 1. -0.96634E+01 -0.55717E+01 0.96750E+01
  2953 + 1. 0.70241E+01 0.95811E+01 0.96836E+01
  2954 + 1. 0.50711E+01 0.59407E+00 0.96930E+01
  2955 + 1. -0.58938E+01 -0.14641E+02 0.96963E+01
  2956 + 1. -0.13228E+02 -0.79932E+01 0.97007E+01
  2957 + 1. -0.16326E+02 0.64602E+01 0.97121E+01
  2958 + 1. -0.11326E+02 -0.15860E+02 0.97191E+01
  2959 + 1. -0.13775E+02 0.14410E+02 0.97248E+01
  2960 + 1. -0.12094E+02 -0.42679E+01 0.97269E+01
  2961 + 1. -0.23223E+01 0.84320E-02 0.97381E+01
  2962 + 1. 0.41375E+00 -0.12887E+02 0.97446E+01
  2963 + 1. -0.14077E+01 0.16111E+02 0.97513E+01
  2964 + 1. -0.41466E+01 0.16942E+02 0.97548E+01
  2965 + 1. 0.12822E+02 -0.50795E+01 0.97659E+01
  2966 + 1. -0.97512E+00 -0.19447E+02 0.97689E+01
  2967 + 1. -0.12576E+02 0.65046E+01 0.97788E+01
  2968 + 1. -0.14408E+02 0.90919E+01 0.97804E+01
  2969 + 1. -0.85749E+01 -0.19920E+01 0.97920E+01
  2970 + 1. -0.14501E+02 0.53353E+01 0.97952E+01
  2971 + 1. 0.10518E+02 0.52865E+01 0.98027E+01
  2972 + 1. 0.86208E+01 0.81712E+01 0.98129E+01
  2973 + 1. -0.34374E+01 0.40442E+01 0.98198E+01
  2974 + 1. 0.19050E+02 0.53330E+01 0.98242E+01
  2975 + 1. 0.46557E+01 -0.50319E+01 0.98298E+01
  2976 + 1. 0.18167E+02 -0.75301E+01 0.98390E+01
  2977 + 1. -0.15235E+01 -0.47868E+01 0.98443E+01
  2978 + 1. -0.83172E+01 0.12299E+02 0.98484E+01
  2979 + 1. 0.14366E+02 -0.10592E+02 0.98551E+01
  2980 + 1. 0.36922E+01 -0.18330E+02 0.98641E+01
  2981 + 1. -0.60953E+01 0.91315E+01 0.98733E+01
  2982 + 1. -0.17199E+02 -0.21445E+01 0.98795E+01
  2983 + 1. 0.84098E+01 -0.11618E+02 0.98826E+01
  2984 + 1. -0.57023E+01 -0.19010E+02 0.98888E+01
  2985 + 1. 0.85363E+01 0.15040E+02 0.98954E+01
  2986 + 1. -0.16991E+02 0.27072E+00 0.99043E+01
  2987 + 1. 0.14573E+02 -0.13492E+02 0.99107E+01
  2988 + 1. 0.13045E+02 0.74086E+01 0.99198E+01
  2989 + 1. 0.19066E+02 -0.15403E+01 0.99205E+01
  2990 + 1. 0.13229E+01 0.48428E+01 0.99269E+01
  2991 + 1. -0.28709E+00 -0.89428E+01 0.99370E+01
  2992 + 1. -0.18864E+02 0.65966E+01 0.99441E+01
  2993 + 1. -0.43471E+01 -0.13196E+02 0.99473E+01
  2994 + 1. -0.12647E+02 -0.11787E+02 0.99568E+01
  2995 + 1. -0.47721E+01 -0.10785E+02 0.99631E+01
  2996 + 1. 0.14267E+02 0.28735E+01 0.99670E+01
  2997 + 1. 0.40853E+01 -0.10600E+02 0.99797E+01
  2998 + 1. -0.71554E+00 0.86857E+01 0.99816E+01
  2999 + 1. 0.10411E+02 0.24616E+01 0.99929E+01
  3000 + 1. -0.10791E+02 0.44438E+01 0.99945E+01
... ...
cylslab3000.pos 0 → 100644
  1 +++ a/cylslab3000.pos
  1 + 1. -0.12965E+02 -0.93624E+01 -0.99941E+01
  2 + 1. 0.85070E+01 0.16922E+02 -0.99904E+01
  3 + 1. 0.35559E+01 0.13697E+02 -0.99814E+01
  4 + 1. -0.21028E+01 -0.40664E+01 -0.99752E+01
  5 + 1. 0.16388E+02 0.24331E+01 -0.99732E+01
  6 + 1. 0.12191E+02 -0.53233E+01 -0.99640E+01
  7 + 1. -0.63155E+01 0.54762E+00 -0.99566E+01
  8 + 1. -0.16808E+02 -0.66680E+01 -0.99510E+01
  9 + 1. -0.38971E+01 0.16950E+02 -0.99405E+01
  10 + 1. 0.14536E+02 -0.75087E+00 -0.99361E+01
  11 + 1. 0.10011E+02 0.12734E+02 -0.99304E+01
  12 + 1. 0.19577E+02 0.19602E+01 -0.99235E+01
  13 + 1. -0.38874E+01 0.66963E+01 -0.99166E+01
  14 + 1. -0.16619E+02 0.77769E+01 -0.99108E+01
  15 + 1. -0.19262E+01 0.29369E+00 -0.99008E+01
  16 + 1. -0.45367E+01 -0.14913E+02 -0.98994E+01
  17 + 1. -0.76987E+01 -0.63255E+01 -0.98870E+01
  18 + 1. -0.69447E+00 -0.74946E+01 -0.98822E+01
  19 + 1. -0.19576E+02 0.63091E+00 -0.98789E+01
  20 + 1. 0.12397E+02 0.15573E+02 -0.98702E+01
  21 + 1. -0.15526E+02 0.44510E+01 -0.98611E+01
  22 + 1. 0.43635E+01 0.11015E+02 -0.98534E+01
  23 + 1. -0.88401E+01 0.44805E+01 -0.98514E+01
  24 + 1. 0.11902E+02 -0.15124E+02 -0.98434E+01
  25 + 1. 0.14525E+02 0.12588E+02 -0.98395E+01
  26 + 1. -0.11177E+02 0.13433E+02 -0.98273E+01
  27 + 1. -0.12716E+00 0.15386E+02 -0.98207E+01
  28 + 1. 0.67438E+01 -0.67611E+01 -0.98138E+01
  29 + 1. -0.96134E+01 0.15372E+02 -0.98114E+01
  30 + 1. -0.12177E+02 -0.24229E+01 -0.98009E+01
  31 + 1. -0.12666E+02 -0.48327E+01 -0.97974E+01
  32 + 1. 0.58753E+01 -0.27347E+01 -0.97919E+01
  33 + 1. -0.15659E+02 -0.21863E+01 -0.97862E+01
  34 + 1. 0.71397E+01 -0.10003E+02 -0.97758E+01
  35 + 1. -0.13601E+00 0.55659E+01 -0.97677E+01
  36 + 1. -0.77498E+01 0.85131E+01 -0.97647E+01
  37 + 1. -0.98243E+01 0.10896E+02 -0.97566E+01
  38 + 1. 0.70499E+01 -0.15910E+02 -0.97477E+01
  39 + 1. -0.15316E+01 -0.12234E+02 -0.97461E+01
  40 + 1. 0.16559E+02 0.87679E+01 -0.97363E+01
  41 + 1. 0.13209E+02 0.39911E+01 -0.97309E+01
  42 + 1. 0.46898E+01 -0.15977E+02 -0.97266E+01
  43 + 1. -0.11894E+02 0.63805E+00 -0.97197E+01
  44 + 1. -0.10899E+02 -0.10216E+02 -0.97107E+01
  45 + 1. 0.15537E+01 -0.12742E+02 -0.97040E+01
  46 + 1. 0.95296E+01 -0.13359E+02 -0.96995E+01
  47 + 1. 0.14894E+02 -0.46716E+01 -0.96904E+01
  48 + 1. 0.41886E+01 -0.98142E+01 -0.96866E+01
  49 + 1. 0.15893E+02 -0.93592E+01 -0.96734E+01
  50 + 1. 0.13701E+02 -0.72705E+01 -0.96695E+01
  51 + 1. -0.84370E+01 -0.16242E+02 -0.96618E+01
  52 + 1. -0.57945E+01 0.16151E+02 -0.96545E+01
  53 + 1. 0.53057E+01 -0.13966E+02 -0.96501E+01
  54 + 1. 0.12104E+02 0.12289E+02 -0.96464E+01
  55 + 1. 0.90752E+01 0.14213E+01 -0.96377E+01
  56 + 1. 0.41127E+00 -0.18735E+02 -0.96332E+01
  57 + 1. -0.62457E+01 0.58332E+01 -0.96266E+01
  58 + 1. -0.78919E+01 0.24838E+01 -0.96148E+01
  59 + 1. 0.53353E+01 0.19207E+02 -0.96111E+01
  60 + 1. 0.26592E+00 -0.66718E+00 -0.96051E+01
  61 + 1. -0.42934E+01 0.95216E+01 -0.95991E+01
  62 + 1. -0.21728E+01 0.53178E+01 -0.95897E+01
  63 + 1. -0.19033E+02 0.60782E+01 -0.95817E+01
  64 + 1. -0.56455E+01 -0.60247E+01 -0.95739E+01
  65 + 1. 0.37324E+01 0.72618E+00 -0.95696E+01
  66 + 1. -0.70891E+01 -0.17799E+02 -0.95655E+01
  67 + 1. 0.15303E+02 -0.12749E+02 -0.95552E+01
  68 + 1. -0.68308E+01 0.14032E+02 -0.95518E+01
  69 + 1. -0.17202E+01 0.84350E+01 -0.95446E+01
  70 + 1. 0.23021E+01 -0.47083E+01 -0.95348E+01
  71 + 1. -0.61204E+00 0.12671E+02 -0.95307E+01
  72 + 1. 0.36889E+01 0.48344E+01 -0.95215E+01
  73 + 1. 0.14339E+02 0.70811E+01 -0.95167E+01
  74 + 1. -0.55337E+01 -0.21995E+01 -0.95100E+01
  75 + 1. 0.16382E+02 -0.32772E+01 -0.95061E+01
  76 + 1. -0.17172E+01 -0.17904E+02 -0.94970E+01
  77 + 1. -0.17184E+02 -0.42935E+01 -0.94907E+01
  78 + 1. 0.45522E+01 -0.45899E+01 -0.94828E+01
  79 + 1. 0.12125E+02 -0.10435E+02 -0.94743E+01
  80 + 1. 0.15970E+02 0.10790E+02 -0.94729E+01
  81 + 1. 0.16473E+02 0.17185E+00 -0.94630E+01
  82 + 1. 0.12650E+02 -0.18238E+01 -0.94545E+01
  83 + 1. -0.15189E+02 -0.81921E+01 -0.94471E+01
  84 + 1. -0.17909E+02 -0.85967E+01 -0.94443E+01
  85 + 1. 0.94085E+01 -0.17749E+01 -0.94379E+01
  86 + 1. 0.86253E+01 -0.61852E+01 -0.94295E+01
  87 + 1. 0.18235E+02 0.75681E+01 -0.94237E+01
  88 + 1. -0.12852E+02 -0.74127E+01 -0.94154E+01
  89 + 1. -0.12068E+02 0.72710E+01 -0.94098E+01
  90 + 1. -0.82542E+01 -0.10638E+02 -0.94066E+01
  91 + 1. 0.10740E+02 0.25815E+01 -0.93953E+01
  92 + 1. 0.58269E+01 -0.61338E-01 -0.93893E+01
  93 + 1. -0.59887E+01 0.31064E+01 -0.93820E+01
  94 + 1. -0.16136E+02 0.11566E+01 -0.93789E+01
  95 + 1. 0.12673E+02 0.93274E+01 -0.93671E+01
  96 + 1. -0.76655E+01 -0.23670E+01 -0.93602E+01
  97 + 1. 0.17239E+02 0.43301E+01 -0.93536E+01
  98 + 1. -0.14090E+02 0.86260E+00 -0.93523E+01
  99 + 1. -0.36694E+01 -0.13088E+02 -0.93425E+01
  100 + 1. -0.15033E+02 0.12883E+02 -0.93364E+01
  101 + 1. 0.54747E+01 0.73678E+01 -0.93273E+01
  102 + 1. 0.11184E+02 -0.70293E+01 -0.93225E+01
  103 + 1. -0.62900E+01 0.10415E+02 -0.93190E+01
  104 + 1. -0.61622E+00 -0.27437E+01 -0.93087E+01
  105 + 1. 0.16535E+01 0.13153E+02 -0.93066E+01
  106 + 1. 0.72539E+00 0.22450E+01 -0.92948E+01
  107 + 1. 0.14297E+01 0.67372E+01 -0.92933E+01
  108 + 1. 0.10418E+02 -0.11470E+02 -0.92841E+01
  109 + 1. 0.28941E+01 -0.27008E+01 -0.92780E+01
  110 + 1. -0.73668E+01 -0.87661E+01 -0.92721E+01
  111 + 1. 0.13623E+02 0.12116E+01 -0.92655E+01
  112 + 1. 0.66149E+01 0.12475E+02 -0.92598E+01
  113 + 1. -0.12678E+02 0.15442E+02 -0.92524E+01
  114 + 1. -0.28672E+01 0.33557E+01 -0.92443E+01
  115 + 1. -0.12854E+02 -0.14593E+02 -0.92353E+01
  116 + 1. -0.49908E+01 -0.17075E+02 -0.92329E+01
  117 + 1. -0.14031E+02 -0.33746E+01 -0.92211E+01
  118 + 1. 0.15814E+01 0.10803E+02 -0.92195E+01
  119 + 1. 0.98881E+01 -0.44901E+01 -0.92113E+01
  120 + 1. 0.86778E+01 0.10863E+02 -0.92020E+01
  121 + 1. 0.58363E+01 0.40170E+01 -0.91975E+01
  122 + 1. -0.41879E+01 -0.73750E+01 -0.91898E+01
  123 + 1. 0.14852E+02 0.50703E+01 -0.91853E+01
  124 + 1. -0.40961E+01 0.19042E+02 -0.91773E+01
  125 + 1. -0.51800E+00 -0.96622E+01 -0.91686E+01
  126 + 1. 0.14617E+02 -0.10887E+02 -0.91613E+01
  127 + 1. 0.11199E+01 -0.63856E+01 -0.91547E+01
  128 + 1. -0.98372E+01 0.21105E+01 -0.91522E+01
  129 + 1. -0.10287E+02 -0.51245E+00 -0.91401E+01
  130 + 1. 0.67853E+01 -0.45976E+01 -0.91395E+01
  131 + 1. 0.37715E+01 0.15622E+02 -0.91325E+01
  132 + 1. 0.76988E+01 0.88123E+01 -0.91226E+01
  133 + 1. -0.41771E+01 0.14191E+02 -0.91157E+01
  134 + 1. 0.98434E+01 -0.88095E+01 -0.91124E+01
  135 + 1. -0.13552E+02 0.38767E+01 -0.91048E+01
  136 + 1. -0.10001E+02 -0.15063E+02 -0.90977E+01
  137 + 1. 0.24919E+01 -0.15923E+02 -0.90909E+01
  138 + 1. -0.96944E+01 -0.77051E+01 -0.90826E+01
  139 + 1. -0.75942E+01 0.17006E+02 -0.90744E+01
  140 + 1. -0.86421E+01 -0.46246E+01 -0.90670E+01
  141 + 1. -0.20268E+01 0.14451E+02 -0.90622E+01
  142 + 1. 0.25649E+01 0.18175E+02 -0.90562E+01
  143 + 1. -0.10462E+02 0.54579E+01 -0.90499E+01
  144 + 1. -0.15684E+02 -0.11313E+02 -0.90453E+01
  145 + 1. 0.13924E+02 -0.14125E+02 -0.90334E+01
  146 + 1. 0.10806E+02 -0.25169E+00 -0.90293E+01
  147 + 1. 0.86059E+01 -0.17910E+02 -0.90222E+01
  148 + 1. 0.12093E+02 0.58994E+01 -0.90139E+01
  149 + 1. -0.35407E+01 -0.58539E+00 -0.90115E+01
  150 + 1. 0.60208E+01 0.99562E+01 -0.90001E+01
  151 + 1. 0.30316E+01 0.88095E+01 -0.89944E+01
  152 + 1. -0.17377E+02 0.47615E+01 -0.89920E+01
  153 + 1. 0.43469E+01 -0.76060E+01 -0.89841E+01
  154 + 1. -0.10709E+02 -0.52675E+01 -0.89795E+01
  155 + 1. -0.11972E+02 0.11564E+02 -0.89686E+01
  156 + 1. -0.81731E+00 -0.54869E+01 -0.89629E+01
  157 + 1. -0.14050E+02 0.65784E+01 -0.89535E+01
  158 + 1. 0.19905E+02 -0.96167E+00 -0.89508E+01
  159 + 1. -0.12822E+02 -0.11130E+02 -0.89458E+01
  160 + 1. 0.12430E+00 0.17839E+02 -0.89367E+01
  161 + 1. 0.24154E+01 -0.10731E+02 -0.89331E+01
  162 + 1. -0.44862E+01 -0.40489E+01 -0.89234E+01
  163 + 1. -0.17380E+02 -0.16030E+01 -0.89143E+01
  164 + 1. -0.15379E+02 -0.55455E+01 -0.89133E+01
  165 + 1. -0.44002E+01 0.15541E+01 -0.89002E+01
  166 + 1. -0.40603E+01 0.11832E+02 -0.88936E+01
  167 + 1. -0.21719E+01 0.10892E+02 -0.88921E+01
  168 + 1. 0.19628E+02 -0.33844E+01 -0.88821E+01
  169 + 1. -0.19330E+02 -0.46178E+01 -0.88742E+01
  170 + 1. 0.16926E+02 -0.54990E+01 -0.88728E+01
  171 + 1. -0.10048E+01 -0.16082E+02 -0.88604E+01
  172 + 1. 0.81468E+01 0.48332E+01 -0.88569E+01
  173 + 1. -0.16978E+02 0.96853E+01 -0.88506E+01
  174 + 1. -0.13778E+02 0.91493E+01 -0.88465E+01
  175 + 1. 0.17832E+02 -0.88284E+01 -0.88388E+01
  176 + 1. -0.24500E+01 -0.10694E+02 -0.88302E+01
  177 + 1. 0.14492E+02 -0.27149E+01 -0.88246E+01
  178 + 1. -0.75461E+01 0.12232E+02 -0.88145E+01
  179 + 1. -0.71187E+01 -0.12235E+02 -0.88100E+01
  180 + 1. 0.74122E+01 -0.14045E+02 -0.88035E+01
  181 + 1. -0.63399E+01 -0.15118E+02 -0.87934E+01
  182 + 1. 0.24190E+01 -0.18373E+02 -0.87884E+01
  183 + 1. -0.11234E+02 0.35494E+01 -0.87845E+01
  184 + 1. -0.81761E+01 0.67723E+01 -0.87750E+01
  185 + 1. 0.91350E+01 0.74105E+01 -0.87696E+01
  186 + 1. 0.38679E+01 0.28890E+01 -0.87607E+01
  187 + 1. -0.94179E+01 0.92015E+01 -0.87588E+01
  188 + 1. 0.68910E+01 0.17163E+02 -0.87521E+01
  189 + 1. 0.32649E+01 -0.13943E+02 -0.87441E+01
  190 + 1. 0.11483E+02 -0.13379E+02 -0.87378E+01
  191 + 1. 0.20543E+01 -0.90770E+00 -0.87302E+01
  192 + 1. 0.13476E+02 0.14071E+02 -0.87201E+01
  193 + 1. -0.19466E+01 0.17580E+02 -0.87185E+01
  194 + 1. 0.10189E+02 -0.15122E+02 -0.87080E+01
  195 + 1. 0.87027E+01 0.14008E+02 -0.87056E+01
  196 + 1. -0.17640E+02 0.26597E+01 -0.86973E+01
  197 + 1. 0.11674E+02 -0.36610E+01 -0.86890E+01
  198 + 1. 0.13900E+02 0.10811E+02 -0.86828E+01
  199 + 1. 0.18278E+02 0.88575E+00 -0.86761E+01
  200 + 1. -0.43653E+01 0.46751E+01 -0.86674E+01
  201 + 1. 0.76140E+01 -0.25575E+01 -0.86665E+01
  202 + 1. -0.14197E+02 0.11117E+02 -0.86585E+01
  203 + 1. 0.34402E-01 0.89502E+01 -0.86482E+01
  204 + 1. 0.11197E+02 0.14086E+02 -0.86412E+01
  205 + 1. -0.21110E+01 -0.14193E+02 -0.86352E+01
  206 + 1. 0.10357E+02 0.92557E+01 -0.86326E+01
  207 + 1. 0.47724E+01 -0.17669E+02 -0.86237E+01
  208 + 1. 0.13358E+01 0.47061E+01 -0.86172E+01
  209 + 1. -0.50046E+01 -0.10772E+02 -0.86078E+01
  210 + 1. -0.41061E+01 -0.19181E+02 -0.86046E+01
  211 + 1. -0.89085E+01 -0.13224E+02 -0.85938E+01
  212 + 1. 0.79173E+01 -0.11550E+02 -0.85898E+01
  213 + 1. 0.18881E+02 -0.62745E+01 -0.85804E+01
  214 + 1. 0.14976E+02 0.30291E+01 -0.85790E+01
  215 + 1. 0.14031E+01 0.15042E+02 -0.85668E+01
  216 + 1. -0.17295E+01 -0.19929E+02 -0.85630E+01
  217 + 1. 0.18424E+02 0.28866E+01 -0.85596E+01
  218 + 1. -0.10665E+02 -0.11917E+02 -0.85495E+01
  219 + 1. 0.73102E+01 -0.83652E+01 -0.85461E+01
  220 + 1. 0.99508E+01 0.17196E+02 -0.85381E+01
  221 + 1. 0.60374E+01 0.15201E+02 -0.85326E+01
  222 + 1. 0.72906E+01 0.10016E+01 -0.85266E+01
  223 + 1. -0.10037E+02 -0.16977E+02 -0.85141E+01
  224 + 1. -0.52988E+01 0.74435E+01 -0.85092E+01
  225 + 1. -0.95700E+01 0.13332E+02 -0.85039E+01
  226 + 1. 0.17484E+00 -0.11879E+02 -0.84936E+01
  227 + 1. 0.71191E+00 -0.17101E+02 -0.84913E+01
  228 + 1. -0.21364E+01 -0.75803E+01 -0.84818E+01
  229 + 1. 0.12778E+02 -0.88022E+01 -0.84755E+01
  230 + 1. 0.48148E+01 -0.11941E+02 -0.84729E+01
  231 + 1. -0.67166E+01 -0.45744E+01 -0.84640E+01
  232 + 1. -0.17708E+01 0.17423E+01 -0.84574E+01
  233 + 1. -0.10138E+02 0.17147E+02 -0.84521E+01
  234 + 1. -0.11992E+01 0.19598E+02 -0.84406E+01
  235 + 1. -0.15498E+02 -0.50427E+00 -0.84336E+01
  236 + 1. -0.19765E+02 0.21570E+01 -0.84317E+01
  237 + 1. 0.32091E+00 -0.14286E+02 -0.84239E+01
  238 + 1. 0.13132E+01 -0.91410E+01 -0.84167E+01
  239 + 1. 0.18336E+02 0.57850E+01 -0.84122E+01
  240 + 1. 0.17863E+02 -0.11144E+01 -0.84048E+01
  241 + 1. -0.73414E+01 0.45137E+01 -0.83966E+01
  242 + 1. -0.83738E+01 0.34437E+00 -0.83894E+01
  243 + 1. -0.17991E+02 0.75537E+01 -0.83850E+01
  244 + 1. -0.60142E+01 0.18592E+02 -0.83777E+01
  245 + 1. -0.12787E+02 0.21140E+01 -0.83712E+01
  246 + 1. 0.71931E+01 0.66350E+01 -0.83607E+01
  247 + 1. -0.18038E+02 -0.63271E+01 -0.83600E+01
  248 + 1. 0.47326E+01 -0.19394E+01 -0.83493E+01
  249 + 1. -0.12906E+02 0.13541E+02 -0.83435E+01
  250 + 1. -0.17975E+02 0.50683E+00 -0.83362E+01
  251 + 1. -0.15205E+01 -0.95566E+00 -0.83282E+01
  252 + 1. 0.47613E+01 0.13671E+02 -0.83211E+01
  253 + 1. 0.10373E+01 -0.34373E+01 -0.83177E+01
  254 + 1. -0.25973E+01 -0.26473E+01 -0.83108E+01
  255 + 1. 0.15028E+02 -0.61197E+01 -0.83042E+01
  256 + 1. -0.81094E+01 0.15021E+02 -0.82971E+01
  257 + 1. -0.31900E+01 -0.55276E+01 -0.82917E+01
  258 + 1. 0.15112E+02 0.89344E+01 -0.82820E+01
  259 + 1. -0.12272E+01 0.41319E+01 -0.82782E+01
  260 + 1. -0.54286E+01 -0.13304E+02 -0.82709E+01
  261 + 1. -0.95435E+01 -0.95597E+01 -0.82656E+01
  262 + 1. 0.10279E+02 0.42993E+01 -0.82551E+01
  263 + 1. -0.27258E+00 0.11021E+02 -0.82481E+01
  264 + 1. -0.19925E+01 0.69056E+01 -0.82402E+01
  265 + 1. 0.16305E+02 0.62390E+01 -0.82390E+01
  266 + 1. 0.57555E+01 -0.98817E+01 -0.82330E+01
  267 + 1. -0.11748E+02 0.88725E+01 -0.82232E+01
  268 + 1. 0.10715E+02 0.11590E+02 -0.82188E+01
  269 + 1. -0.12884E+02 -0.68941E+00 -0.82093E+01
  270 + 1. 0.16143E+02 -0.78386E+01 -0.82054E+01
  271 + 1. 0.35767E+01 0.11985E+02 -0.81995E+01
  272 + 1. 0.11890E+02 0.78088E+01 -0.81870E+01
  273 + 1. -0.13700E+02 -0.87684E+01 -0.81834E+01
  274 + 1. -0.15391E+02 0.33080E+01 -0.81776E+01
  275 + 1. 0.15731E+01 0.19760E+02 -0.81675E+01
  276 + 1. -0.56295E+01 0.13097E+02 -0.81641E+01
  277 + 1. 0.11850E+02 0.12920E+01 -0.81592E+01
  278 + 1. 0.45174E+01 0.18015E+02 -0.81477E+01
  279 + 1. -0.16027E+02 0.67457E+01 -0.81435E+01
  280 + 1. 0.15659E+02 0.12324E+02 -0.81395E+01
  281 + 1. -0.65313E+01 0.15638E+01 -0.81316E+01
  282 + 1. -0.10210E+02 -0.34459E+01 -0.81234E+01
  283 + 1. -0.19825E+02 -0.45991E+00 -0.81136E+01
  284 + 1. -0.44308E+01 0.16088E+02 -0.81129E+01
  285 + 1. -0.32345E+01 -0.15956E+02 -0.81051E+01
  286 + 1. -0.15917E+02 -0.35863E+01 -0.80970E+01
  287 + 1. -0.65927E+01 -0.70832E+00 -0.80916E+01
  288 + 1. -0.14298E+02 -0.12614E+02 -0.80852E+01
  289 + 1. -0.12309E+02 -0.34906E+01 -0.80769E+01
  290 + 1. -0.10082E+02 0.72194E+01 -0.80688E+01
  291 + 1. 0.54895E+01 -0.60893E+01 -0.80613E+01
  292 + 1. -0.11658E+02 -0.84580E+01 -0.80541E+01
  293 + 1. 0.17670E+02 0.91994E+01 -0.80503E+01
  294 + 1. 0.29389E+01 0.60787E+01 -0.80457E+01
  295 + 1. 0.91241E+01 0.26722E+01 -0.80341E+01
  296 + 1. -0.21673E+01 0.12741E+02 -0.80301E+01
  297 + 1. 0.13740E+02 -0.45909E+01 -0.80218E+01
  298 + 1. -0.12509E+02 0.52973E+01 -0.80165E+01
  299 + 1. 0.30955E+01 -0.60832E+01 -0.80081E+01
  300 + 1. 0.82690E+01 0.15886E+02 -0.80002E+01
  301 + 1. 0.59213E+00 0.68252E+00 -0.80000E+01
  302 + 1. -0.18988E+02 -0.27237E+01 -0.79930E+01
  303 + 1. -0.75414E+01 0.94685E+01 -0.79849E+01
  304 + 1. -0.75211E+01 -0.71355E+01 -0.79793E+01
  305 + 1. 0.14225E+02 -0.48232E+00 -0.79673E+01
  306 + 1. -0.28471E+01 0.90489E+01 -0.79664E+01
  307 + 1. -0.54978E+01 -0.85248E+01 -0.79537E+01
  308 + 1. -0.17188E+02 -0.10231E+02 -0.79495E+01
  309 + 1. 0.16396E+02 -0.10243E+02 -0.79465E+01
  310 + 1. -0.19758E+00 -0.78737E+01 -0.79378E+01
  311 + 1. -0.11727E+02 -0.13503E+02 -0.79333E+01
  312 + 1. 0.56761E+01 0.24035E+01 -0.79219E+01
  313 + 1. 0.64636E+00 -0.19921E+02 -0.79179E+01
  314 + 1. -0.10563E+02 0.15156E+02 -0.79072E+01
  315 + 1. 0.51727E+01 -0.14981E+02 -0.79000E+01
  316 + 1. -0.19160E+02 0.49698E+01 -0.78960E+01
  317 + 1. 0.95624E+01 -0.71136E+01 -0.78885E+01
  318 + 1. 0.11649E+02 -0.55853E+01 -0.78820E+01
  319 + 1. -0.11812E+02 -0.16071E+02 -0.78740E+01
  320 + 1. 0.85457E+01 -0.16173E+02 -0.78721E+01
  321 + 1. 0.69381E+01 -0.17864E+02 -0.78628E+01
  322 + 1. -0.89174E+01 -0.15112E+01 -0.78543E+01
  323 + 1. 0.11940E+02 -0.15726E+02 -0.78531E+01
  324 + 1. 0.12399E+02 0.40743E+01 -0.78420E+01
  325 + 1. 0.30231E+00 0.13369E+02 -0.78344E+01
  326 + 1. 0.35252E+01 -0.92540E+01 -0.78302E+01
  327 + 1. -0.13121E+02 -0.58179E+01 -0.78235E+01
  328 + 1. 0.12933E+02 -0.12024E+02 -0.78168E+01
  329 + 1. 0.83967E+01 -0.50084E+01 -0.78080E+01
  330 + 1. 0.51216E+01 0.56930E+01 -0.78004E+01
  331 + 1. -0.32167E+00 0.16254E+02 -0.77956E+01
  332 + 1. -0.57685E+01 -0.18292E+02 -0.77920E+01
  333 + 1. -0.16066E+02 0.11440E+02 -0.77829E+01
  334 + 1. 0.10109E+02 -0.26874E+01 -0.77743E+01
  335 + 1. 0.86523E+01 -0.71006E+00 -0.77687E+01
  336 + 1. -0.79867E+01 -0.17475E+02 -0.77603E+01
  337 + 1. -0.16472E+02 -0.79900E+01 -0.77593E+01
  338 + 1. 0.17435E+02 -0.30463E+01 -0.77484E+01
  339 + 1. -0.11400E+02 0.68375E+00 -0.77414E+01
  340 + 1. -0.26559E+01 -0.12377E+02 -0.77374E+01
  341 + 1. -0.88018E+01 0.11060E+02 -0.77304E+01
  342 + 1. 0.48016E+01 0.85515E+01 -0.77261E+01
  343 + 1. 0.16781E+02 0.18208E+01 -0.77185E+01
  344 + 1. 0.28977E+01 0.11469E+01 -0.77116E+01
  345 + 1. 0.96957E+01 -0.12720E+02 -0.77030E+01
  346 + 1. 0.30617E+01 -0.40592E+01 -0.76942E+01
  347 + 1. 0.11438E+02 0.15844E+02 -0.76933E+01
  348 + 1. -0.77825E+00 -0.18263E+02 -0.76842E+01
  349 + 1. -0.87829E+01 0.31137E+01 -0.76796E+01
  350 + 1. 0.96070E+01 -0.10399E+02 -0.76730E+01
  351 + 1. -0.54990E+01 0.94154E+01 -0.76617E+01
  352 + 1. 0.72023E+01 0.11203E+02 -0.76545E+01
  353 + 1. 0.15662E+02 -0.40166E+01 -0.76507E+01
  354 + 1. 0.39304E+01 -0.19317E+02 -0.76417E+01
  355 + 1. 0.13908E+02 0.63981E+01 -0.76359E+01
  356 + 1. -0.51401E+01 -0.60315E+01 -0.76310E+01
  357 + 1. -0.35040E+01 -0.93864E+01 -0.76214E+01
  358 + 1. 0.47579E+01 0.31293E+00 -0.76192E+01
  359 + 1. -0.57072E+01 -0.29198E+01 -0.76095E+01
  360 + 1. 0.77312E-01 0.67751E+01 -0.76038E+01
  361 + 1. 0.56242E+01 -0.36166E+01 -0.75952E+01
  362 + 1. 0.24741E+01 0.16734E+02 -0.75922E+01
  363 + 1. 0.17754E+01 -0.12663E+02 -0.75861E+01
  364 + 1. 0.12730E+02 0.12139E+02 -0.75765E+01
  365 + 1. -0.70928E+01 -0.10197E+02 -0.75695E+01
  366 + 1. -0.14810E+02 0.52121E+01 -0.75661E+01
  367 + 1. -0.14854E+02 0.14601E+01 -0.75559E+01
  368 + 1. -0.79079E+01 -0.15236E+02 -0.75476E+01
  369 + 1. -0.90033E+01 -0.11345E+02 -0.75422E+01
  370 + 1. 0.14494E+01 0.29337E+01 -0.75373E+01
  371 + 1. -0.61453E+01 0.14932E+02 -0.75302E+01
  372 + 1. -0.85088E+01 0.17947E+02 -0.75265E+01
  373 + 1. -0.40522E+01 0.29621E+01 -0.75196E+01
  374 + 1. -0.29905E+01 -0.17903E+02 -0.75073E+01
  375 + 1. -0.59610E+01 0.57769E+01 -0.75033E+01
  376 + 1. -0.10748E+02 -0.66328E+01 -0.74986E+01
  377 + 1. -0.30780E+01 0.19424E+02 -0.74885E+01
  378 + 1. -0.82561E+00 -0.37629E+01 -0.74842E+01
  379 + 1. 0.15902E+02 -0.15405E+01 -0.74762E+01
  380 + 1. 0.49219E+01 0.10662E+02 -0.74696E+01
  381 + 1. 0.29467E+01 0.14108E+02 -0.74624E+01
  382 + 1. 0.66231E+01 -0.12606E+01 -0.74562E+01
  383 + 1. 0.34481E+01 0.19649E+02 -0.74529E+01
  384 + 1. 0.13355E+02 -0.70547E+01 -0.74448E+01
  385 + 1. 0.15291E+02 -0.12379E+02 -0.74369E+01
  386 + 1. 0.11597E+02 -0.10140E+02 -0.74285E+01
  387 + 1. 0.13855E+02 -0.10250E+02 -0.74207E+01
  388 + 1. 0.19794E+02 0.16951E+01 -0.74196E+01
  389 + 1. 0.11957E+02 0.98078E+01 -0.74084E+01
  390 + 1. 0.16561E+02 0.39446E+01 -0.74042E+01
  391 + 1. -0.17607E+02 -0.45296E+01 -0.73955E+01
  392 + 1. -0.14083E+02 -0.21434E+01 -0.73874E+01
  393 + 1. 0.13119E+02 -0.21317E+01 -0.73867E+01
  394 + 1. 0.16622E+01 0.80371E+01 -0.73758E+01
  395 + 1. 0.89610E+01 0.12270E+02 -0.73686E+01
  396 + 1. -0.46671E+01 -0.10028E+01 -0.73636E+01
  397 + 1. -0.28338E+01 0.52586E+01 -0.73576E+01
  398 + 1. -0.10632E+02 0.11807E+02 -0.73527E+01
  399 + 1. 0.36796E+01 -0.16442E+02 -0.73459E+01
  400 + 1. 0.87508E+01 0.95956E+01 -0.73362E+01
  401 + 1. -0.11241E+02 -0.17827E+01 -0.73272E+01
  402 + 1. -0.23384E+01 0.15469E+02 -0.73253E+01
  403 + 1. 0.10443E+01 -0.52727E+01 -0.73138E+01
  404 + 1. 0.13876E+02 0.17674E+01 -0.73091E+01
  405 + 1. 0.20744E+01 0.10405E+02 -0.73018E+01
  406 + 1. 0.19372E+02 0.42051E+01 -0.72979E+01
  407 + 1. 0.18991E+02 -0.47495E+01 -0.72893E+01
  408 + 1. -0.11448E+01 -0.10682E+02 -0.72832E+01
  409 + 1. 0.63650E+01 0.18639E+02 -0.72799E+01
  410 + 1. -0.14079E+02 -0.10547E+02 -0.72718E+01
  411 + 1. 0.59831E+01 -0.13149E+02 -0.72635E+01
  412 + 1. 0.11475E+02 -0.78694E+01 -0.72589E+01
  413 + 1. -0.12954E+02 0.74808E+01 -0.72526E+01
  414 + 1. -0.55913E+01 -0.16337E+02 -0.72426E+01
  415 + 1. -0.62964E+01 0.11365E+02 -0.72386E+01
  416 + 1. 0.86038E+01 0.17923E+02 -0.72317E+01
  417 + 1. 0.22462E+01 -0.14816E+02 -0.72205E+01
  418 + 1. -0.15475E+02 0.84730E+01 -0.72183E+01
  419 + 1. 0.73120E+01 0.13640E+02 -0.72105E+01
  420 + 1. -0.36663E+01 0.72712E+01 -0.72015E+01
  421 + 1. 0.94555E+01 0.60158E+01 -0.71978E+01
  422 + 1. 0.32368E-01 -0.16011E+01 -0.71870E+01
  423 + 1. -0.14881E+02 0.13005E+02 -0.71858E+01
  424 + 1. 0.18271E+02 -0.75849E+01 -0.71761E+01
  425 + 1. 0.98494E+01 0.14623E+02 -0.71733E+01
  426 + 1. -0.12928E+02 0.10266E+02 -0.71607E+01
  427 + 1. 0.35868E+01 0.41848E+01 -0.71539E+01
  428 + 1. -0.69858E+01 0.77292E+01 -0.71512E+01
  429 + 1. -0.17542E+02 0.39414E+01 -0.71460E+01
  430 + 1. 0.67259E+01 0.43597E+01 -0.71349E+01
  431 + 1. 0.16402E+02 0.10708E+02 -0.71331E+01
  432 + 1. 0.31087E+01 -0.20278E+01 -0.71248E+01
  433 + 1. -0.88037E+01 0.51148E+01 -0.71173E+01
  434 + 1. -0.28238E+01 -0.18749E-01 -0.71106E+01
  435 + 1. -0.85834E+01 -0.50941E+01 -0.71026E+01
  436 + 1. 0.55200E+01 -0.78985E+01 -0.70967E+01
  437 + 1. 0.77170E+01 -0.98178E+01 -0.70883E+01
  438 + 1. 0.55726E+01 0.16679E+02 -0.70830E+01
  439 + 1. -0.97784E+01 -0.14637E+02 -0.70747E+01
  440 + 1. 0.10921E+02 -0.78991E+00 -0.70732E+01
  441 + 1. 0.13023E+02 -0.13972E+02 -0.70646E+01
  442 + 1. -0.37138E+01 0.14029E+02 -0.70564E+01
  443 + 1. -0.14344E+02 -0.43347E+01 -0.70480E+01
  444 + 1. -0.95568E+00 -0.14965E+02 -0.70413E+01
  445 + 1. -0.32639E+01 0.11066E+02 -0.70375E+01
  446 + 1. -0.11263E+02 -0.10662E+02 -0.70312E+01
  447 + 1. 0.74363E+00 0.18045E+02 -0.70208E+01
  448 + 1. 0.14505E+01 -0.10714E+02 -0.70171E+01
  449 + 1. -0.11320E+02 0.26188E+01 -0.70124E+01
  450 + 1. -0.13530E+02 0.34172E+01 -0.70052E+01
  451 + 1. 0.14446E+02 0.13498E+02 -0.69943E+01
  452 + 1. 0.19845E+02 -0.17525E+01 -0.69902E+01
  453 + 1. -0.16042E+02 -0.18093E+01 -0.69850E+01
  454 + 1. -0.48345E+01 0.10748E+01 -0.69784E+01
  455 + 1. -0.15743E+02 -0.11670E+02 -0.69684E+01
  456 + 1. -0.58789E+01 0.35805E+01 -0.69604E+01
  457 + 1. -0.58919E+01 0.17041E+02 -0.69591E+01
  458 + 1. -0.17467E+02 0.91785E+01 -0.69516E+01
  459 + 1. 0.12392E+02 0.14234E+02 -0.69467E+01
  460 + 1. -0.40167E+01 -0.14005E+02 -0.69367E+01
  461 + 1. 0.67448E+01 0.91378E+01 -0.69321E+01
  462 + 1. -0.80091E+01 0.13259E+02 -0.69243E+01
  463 + 1. 0.14348E+02 0.39702E+01 -0.69158E+01
  464 + 1. -0.33020E+01 -0.39947E+01 -0.69085E+01
  465 + 1. 0.96580E+01 0.83376E+00 -0.69040E+01
  466 + 1. 0.19121E+01 -0.17794E+02 -0.68944E+01
  467 + 1. -0.77314E+01 -0.13342E+02 -0.68879E+01
  468 + 1. -0.12359E+01 -0.56307E+01 -0.68859E+01
  469 + 1. 0.35610E+01 -0.11122E+02 -0.68736E+01
  470 + 1. -0.10838E+02 0.48866E+01 -0.68679E+01
  471 + 1. -0.15426E+02 -0.65133E+01 -0.68661E+01
  472 + 1. 0.17411E+02 0.73878E+01 -0.68575E+01
  473 + 1. 0.40132E+01 -0.13629E+02 -0.68514E+01
  474 + 1. -0.13715E+02 -0.14393E+02 -0.68458E+01
  475 + 1. -0.17351E+01 -0.87784E+01 -0.68347E+01
  476 + 1. -0.94285E+01 -0.81157E+01 -0.68275E+01
  477 + 1. -0.12722E+02 0.15055E+02 -0.68217E+01
  478 + 1. -0.76009E+01 -0.31767E+01 -0.68197E+01
  479 + 1. -0.58066E+01 -0.11533E+02 -0.68092E+01
  480 + 1. 0.17090E+01 -0.73952E+01 -0.68003E+01
  481 + 1. 0.16852E+02 -0.53917E+01 -0.67974E+01
  482 + 1. 0.10404E+02 0.80109E+01 -0.67878E+01
  483 + 1. -0.32767E+01 0.17226E+02 -0.67826E+01
  484 + 1. 0.75688E+01 -0.14707E+02 -0.67784E+01
  485 + 1. -0.17374E+02 0.18735E+01 -0.67681E+01
  486 + 1. 0.18144E+01 0.12471E+02 -0.67628E+01
  487 + 1. -0.10178E+02 0.96669E+01 -0.67599E+01
  488 + 1. -0.30469E+01 -0.68186E+01 -0.67479E+01
  489 + 1. 0.15562E+02 0.55766E+00 -0.67413E+01
  490 + 1. 0.96032E+01 -0.14521E+02 -0.67366E+01
  491 + 1. 0.11403E+02 0.56438E+01 -0.67287E+01
  492 + 1. -0.52090E+00 -0.12910E+02 -0.67201E+01
  493 + 1. 0.10141E+02 -0.43883E+01 -0.67134E+01
  494 + 1. 0.11503E+02 0.26692E+01 -0.67097E+01
  495 + 1. -0.19161E+02 -0.57064E+01 -0.67032E+01
  496 + 1. 0.18535E+02 0.98620E-01 -0.66987E+01
  497 + 1. -0.11552E+02 -0.48205E+01 -0.66870E+01
  498 + 1. 0.18965E-01 0.19936E+02 -0.66860E+01
  499 + 1. -0.49916E+01 0.18955E+02 -0.66750E+01
  500 + 1. -0.94228E+01 0.56521E+00 -0.66677E+01
  501 + 1. 0.77771E+01 0.16205E+01 -0.66603E+01
  502 + 1. -0.18521E+02 -0.92628E+00 -0.66568E+01
  503 + 1. 0.60708E+00 0.49262E+01 -0.66483E+01
  504 + 1. 0.14150E+02 0.10182E+02 -0.66461E+01
  505 + 1. -0.12400E+02 0.12503E+02 -0.66393E+01
  506 + 1. -0.69158E+00 0.88270E+01 -0.66314E+01
  507 + 1. 0.13361E+02 0.80722E+01 -0.66223E+01
  508 + 1. 0.10280E+02 -0.16804E+02 -0.66181E+01
  509 + 1. 0.72809E+00 0.14976E+02 -0.66070E+01
  510 + 1. -0.12576E+02 -0.12198E+02 -0.66010E+01
  511 + 1. -0.78414E+00 0.20687E+01 -0.65953E+01
  512 + 1. 0.71900E+01 -0.61352E+01 -0.65927E+01
  513 + 1. 0.21949E+01 -0.19761E+02 -0.65851E+01
  514 + 1. -0.19645E+02 0.32465E+01 -0.65767E+01
  515 + 1. 0.56229E+01 -0.19085E+02 -0.65683E+01
  516 + 1. 0.14542E+02 -0.85328E+01 -0.65640E+01
  517 + 1. -0.17829E+01 -0.19898E+02 -0.65549E+01
  518 + 1. 0.49514E+01 0.14677E+02 -0.65473E+01
  519 + 1. 0.78970E+01 -0.26307E+01 -0.65465E+01
  520 + 1. 0.92947E+01 -0.86602E+01 -0.65348E+01
  521 + 1. -0.11449E+01 0.11854E+02 -0.65273E+01
  522 + 1. 0.57248E+01 -0.16573E+02 -0.65250E+01
  523 + 1. -0.15761E+02 -0.94820E+01 -0.65167E+01
  524 + 1. -0.18111E+02 -0.79791E+01 -0.65108E+01
  525 + 1. 0.55297E+01 -0.10891E+02 -0.65018E+01
  526 + 1. -0.85134E+01 0.15880E+02 -0.64944E+01
  527 + 1. -0.18612E+02 0.72510E+01 -0.64897E+01
  528 + 1. 0.12594E+02 -0.39881E+01 -0.64832E+01
  529 + 1. 0.90149E+01 0.40904E+01 -0.64745E+01
  530 + 1. 0.34381E+01 0.77871E+01 -0.64712E+01
  531 + 1. -0.99651E+01 -0.17135E+02 -0.64627E+01
  532 + 1. -0.43907E+01 -0.18891E+02 -0.64541E+01
  533 + 1. -0.10397E+02 0.16551E+02 -0.64530E+01
  534 + 1. -0.13067E+02 0.15388E+01 -0.64436E+01
  535 + 1. -0.12683E+02 -0.77203E+01 -0.64365E+01
  536 + 1. 0.15234E+01 -0.35986E+00 -0.64307E+01
  537 + 1. 0.15428E+02 0.79489E+01 -0.64261E+01
  538 + 1. 0.32329E+00 -0.16587E+02 -0.64187E+01
  539 + 1. -0.65478E+01 -0.51759E+01 -0.64107E+01
  540 + 1. -0.89387E+01 0.72420E+01 -0.64006E+01
  541 + 1. 0.36333E+01 -0.78128E+01 -0.63966E+01
  542 + 1. 0.10259E+02 0.17126E+02 -0.63903E+01
  543 + 1. -0.27884E+01 -0.19867E+01 -0.63835E+01
  544 + 1. 0.57827E+01 0.12219E+02 -0.63774E+01
  545 + 1. 0.17522E+02 -0.96229E+01 -0.63686E+01
  546 + 1. 0.80804E+01 -0.11974E+02 -0.63640E+01
  547 + 1. -0.30841E+01 -0.10887E+02 -0.63580E+01
  548 + 1. -0.73949E+01 -0.86136E+01 -0.63496E+01
  549 + 1. 0.60930E+01 0.67968E+01 -0.63407E+01
  550 + 1. 0.42327E+01 -0.53033E+01 -0.63377E+01
  551 + 1. -0.65649E+01 0.28585E+00 -0.63306E+01
  552 + 1. -0.86865E+00 0.35375E-02 -0.63201E+01
  553 + 1. -0.15063E+02 0.10500E+02 -0.63140E+01
  554 + 1. -0.16898E+01 0.38852E+01 -0.63093E+01
  555 + 1. 0.12520E+02 0.20843E+00 -0.63026E+01
  556 + 1. 0.49111E+01 -0.12405E+01 -0.62970E+01
  557 + 1. 0.16433E+02 0.56419E+01 -0.62877E+01
  558 + 1. 0.12452E+01 -0.35625E+01 -0.62825E+01
  559 + 1. -0.13422E+01 0.17638E+02 -0.62743E+01
  560 + 1. 0.11419E+02 -0.12934E+02 -0.62732E+01
  561 + 1. -0.97908E+01 -0.27088E+01 -0.62621E+01
  562 + 1. 0.14894E+02 -0.55901E+01 -0.62586E+01
  563 + 1. -0.13407E+01 0.13848E+02 -0.62486E+01
  564 + 1. 0.82385E+01 -0.17424E+02 -0.62420E+01
  565 + 1. -0.15377E+02 0.31793E-01 -0.62373E+01
  566 + 1. -0.13795E+01 0.63954E+01 -0.62331E+01
  567 + 1. -0.49546E+01 -0.74651E+01 -0.62201E+01
  568 + 1. 0.41088E+01 0.19142E+01 -0.62176E+01
  569 + 1. 0.10498E+02 0.10472E+02 -0.62116E+01
  570 + 1. -0.39773E+01 0.93196E+01 -0.62019E+01
  571 + 1. 0.85097E+01 0.75527E+01 -0.61986E+01
  572 + 1. -0.15422E+02 0.35609E+01 -0.61912E+01
  573 + 1. -0.11305E+02 0.79298E+01 -0.61828E+01
  574 + 1. -0.27892E+01 -0.15487E+02 -0.61764E+01
  575 + 1. -0.17172E+02 0.58495E+01 -0.61718E+01
  576 + 1. 0.74049E+01 0.15762E+02 -0.61655E+01
  577 + 1. -0.12735E+02 -0.30214E+01 -0.61583E+01
  578 + 1. 0.14726E+02 -0.27534E+01 -0.61496E+01
  579 + 1. 0.38786E+01 0.17460E+02 -0.61453E+01
  580 + 1. -0.19155E+02 -0.37236E+01 -0.61397E+01
  581 + 1. 0.15672E+02 -0.10812E+02 -0.61281E+01
  582 + 1. -0.54454E+01 0.13006E+02 -0.61216E+01
  583 + 1. 0.17946E+02 0.32140E+01 -0.61144E+01
  584 + 1. -0.67632E+01 0.95791E+01 -0.61070E+01
  585 + 1. -0.78040E+01 0.18937E+01 -0.61064E+01
  586 + 1. 0.17643E+02 -0.17725E+01 -0.60941E+01
  587 + 1. -0.46386E+01 0.15601E+02 -0.60889E+01
  588 + 1. 0.20587E+01 0.63730E+01 -0.60806E+01
  589 + 1. 0.19027E+02 0.61374E+01 -0.60758E+01
  590 + 1. 0.59621E+01 0.96394E+00 -0.60670E+01
  591 + 1. -0.15014E+02 0.67030E+01 -0.60637E+01
  592 + 1. -0.10257E+02 0.14062E+02 -0.60547E+01
  593 + 1. 0.25565E+00 -0.93911E+01 -0.60512E+01
  594 + 1. -0.10471E+02 -0.12725E+02 -0.60401E+01
  595 + 1. -0.19283E+02 0.13246E+01 -0.60398E+01
  596 + 1. -0.16124E+02 -0.40788E+01 -0.60322E+01
  597 + 1. -0.69963E+01 -0.18063E+02 -0.60202E+01
  598 + 1. 0.36744E+01 0.12687E+02 -0.60151E+01
  599 + 1. -0.11562E+02 -0.14901E+02 -0.60120E+01
  600 + 1. 0.22083E+00 -0.19060E+02 -0.60021E+01
  601 + 1. -0.58167E+01 -0.14585E+02 -0.59942E+01
  602 + 1. 0.56768E+00 0.10603E+02 -0.59919E+01
  603 + 1. 0.13739E+02 -0.12326E+02 -0.59823E+01
  604 + 1. -0.44784E+01 0.56451E+01 -0.59763E+01
  605 + 1. -0.12483E+02 0.56827E+01 -0.59715E+01
  606 + 1. -0.82096E+01 -0.11410E+01 -0.59651E+01
  607 + 1. -0.13013E+02 -0.92352E+00 -0.59595E+01
  608 + 1. 0.10437E+02 -0.11004E+02 -0.59492E+01
  609 + 1. 0.16426E+02 -0.77490E+01 -0.59448E+01
  610 + 1. 0.12622E+02 -0.59415E+01 -0.59364E+01
  611 + 1. 0.10300E+02 0.12898E+02 -0.59269E+01
  612 + 1. 0.11716E+01 0.16430E+01 -0.59229E+01
  613 + 1. 0.36793E+01 0.97609E+01 -0.59169E+01
  614 + 1. -0.40523E+00 -0.73008E+01 -0.59098E+01
  615 + 1. 0.15105E+02 0.11898E+02 -0.59042E+01
  616 + 1. 0.36338E+01 -0.18231E+02 -0.58949E+01
  617 + 1. 0.78608E+01 -0.48704E+00 -0.58931E+01
  618 + 1. -0.71894E+01 0.47856E+01 -0.58823E+01
  619 + 1. -0.79412E+01 -0.10947E+02 -0.58755E+01
  620 + 1. 0.21849E+01 0.19264E+02 -0.58673E+01
  621 + 1. -0.61866E+01 -0.18526E+01 -0.58660E+01
  622 + 1. 0.14265E+02 -0.70501E+00 -0.58561E+01
  623 + 1. -0.11138E+02 -0.88799E+01 -0.58520E+01
  624 + 1. 0.95298E+01 -0.65942E+01 -0.58442E+01
  625 + 1. -0.29697E+01 0.22334E+01 -0.58380E+01
  626 + 1. 0.82744E+01 0.10924E+02 -0.58327E+01
  627 + 1. 0.17422E+02 0.92300E+01 -0.58203E+01
  628 + 1. -0.90606E+01 0.11858E+02 -0.58198E+01
  629 + 1. 0.68436E+01 -0.42837E+01 -0.58085E+01
  630 + 1. -0.42639E+01 -0.54698E+01 -0.58036E+01
  631 + 1. -0.47590E+01 -0.94370E+01 -0.57951E+01
  632 + 1. -0.95918E+01 0.34564E+01 -0.57925E+01
  633 + 1. 0.58487E+01 0.29882E+01 -0.57828E+01
  634 + 1. 0.10643E+01 -0.13923E+02 -0.57749E+01
  635 + 1. -0.16241E+01 -0.17070E+02 -0.57719E+01
  636 + 1. 0.12131E+02 -0.15286E+02 -0.57646E+01
  637 + 1. 0.28174E+01 0.15169E+02 -0.57585E+01
  638 + 1. 0.41963E+01 -0.15344E+02 -0.57496E+01
  639 + 1. 0.12979E+02 -0.95761E+01 -0.57410E+01
  640 + 1. -0.86509E+01 -0.66022E+01 -0.57374E+01
  641 + 1. 0.44929E+01 0.53488E+01 -0.57289E+01
  642 + 1. -0.53671E+01 0.75920E+01 -0.57219E+01
  643 + 1. -0.11209E+02 0.46631E+00 -0.57176E+01
  644 + 1. -0.13547E+02 0.87958E+01 -0.57110E+01
  645 + 1. 0.70392E+01 -0.84097E+01 -0.57048E+01
  646 + 1. 0.18938E+02 -0.33802E+01 -0.56941E+01
  647 + 1. 0.39737E+01 -0.34184E+01 -0.56890E+01
  648 + 1. -0.73925E+01 0.18468E+02 -0.56852E+01
  649 + 1. -0.97657E+00 -0.26064E+01 -0.56745E+01
  650 + 1. 0.15832E+02 0.31904E+01 -0.56686E+01
  651 + 1. -0.28821E+01 -0.12783E+02 -0.56624E+01
  652 + 1. -0.83847E+01 -0.15827E+02 -0.56548E+01
  653 + 1. 0.49759E+01 0.19156E+02 -0.56474E+01
  654 + 1. -0.13331E+02 -0.58427E+01 -0.56450E+01
  655 + 1. 0.13891E+02 0.60039E+01 -0.56378E+01
  656 + 1. 0.18614E+01 0.35075E+01 -0.56321E+01
  657 + 1. -0.17130E+02 -0.59926E+01 -0.56216E+01
  658 + 1. 0.26111E+01 -0.12532E+02 -0.56191E+01
  659 + 1. 0.19301E+01 0.17042E+02 -0.56133E+01
  660 + 1. 0.12729E+02 0.11494E+02 -0.56039E+01
  661 + 1. 0.22133E+01 -0.57505E+01 -0.55965E+01
  662 + 1. 0.12803E+02 0.40393E+01 -0.55908E+01
  663 + 1. -0.20939E+01 0.19434E+02 -0.55816E+01
  664 + 1. 0.12133E+02 -0.16821E+01 -0.55739E+01
  665 + 1. 0.16553E+02 -0.33754E+01 -0.55701E+01
  666 + 1. 0.74079E+01 0.18016E+02 -0.55602E+01
  667 + 1. -0.13082E+02 -0.97763E+01 -0.55600E+01
  668 + 1. -0.28807E+01 0.12627E+02 -0.55525E+01
  669 + 1. 0.18966E+02 -0.61007E+01 -0.55450E+01
  670 + 1. -0.16573E+02 0.79650E+01 -0.55343E+01
  671 + 1. -0.66423E+01 0.15105E+02 -0.55322E+01
  672 + 1. -0.14652E+02 -0.12937E+02 -0.55232E+01
  673 + 1. 0.22350E+01 -0.15968E+02 -0.55150E+01
  674 + 1. 0.96245E+01 -0.28180E+01 -0.55120E+01
  675 + 1. -0.44268E+01 0.36432E+01 -0.55054E+01
  676 + 1. 0.11099E+02 0.15163E+02 -0.54935E+01
  677 + 1. 0.45051E+00 0.74981E+01 -0.54925E+01
  678 + 1. -0.49357E+01 -0.33721E+01 -0.54860E+01
  679 + 1. -0.43874E+01 -0.16920E+02 -0.54766E+01
  680 + 1. 0.76787E+01 0.53271E+01 -0.54723E+01
  681 + 1. -0.11799E+02 0.10384E+02 -0.54645E+01
  682 + 1. -0.17248E+02 0.11471E+00 -0.54559E+01
  683 + 1. -0.98509E+01 -0.10385E+02 -0.54491E+01
  684 + 1. 0.92675E+01 0.22207E+01 -0.54462E+01
  685 + 1. 0.51253E+01 -0.90290E+01 -0.54355E+01
  686 + 1. 0.88507E+01 0.14430E+02 -0.54269E+01
  687 + 1. -0.14645E+02 -0.20426E+01 -0.54266E+01
  688 + 1. -0.46030E+01 -0.30754E+00 -0.54151E+01
  689 + 1. 0.31829E+01 0.17736E+00 -0.54069E+01
  690 + 1. -0.17305E+02 -0.25475E+01 -0.54013E+01
  691 + 1. -0.16384E+02 -0.78712E+01 -0.53992E+01
  692 + 1. 0.55747E+01 -0.13803E+02 -0.53887E+01
  693 + 1. 0.11081E+02 -0.86790E+01 -0.53826E+01
  694 + 1. 0.12445E+02 0.94806E+01 -0.53789E+01
  695 + 1. -0.16876E+02 0.10469E+02 -0.53689E+01
  696 + 1. -0.46682E+01 0.11068E+02 -0.53662E+01
  697 + 1. -0.14053E+02 0.12331E+02 -0.53568E+01
  698 + 1. 0.19709E+02 0.20681E+01 -0.53493E+01
  699 + 1. -0.19183E+01 0.98248E+01 -0.53440E+01
  700 + 1. -0.99713E+01 -0.46270E+01 -0.53335E+01
  701 + 1. 0.17022E+02 0.64437E+00 -0.53271E+01
  702 + 1. 0.97779E+01 -0.78267E+00 -0.53217E+01
  703 + 1. 0.22839E+01 -0.91238E+01 -0.53179E+01
  704 + 1. 0.22237E+01 -0.19283E+01 -0.53085E+01
  705 + 1. 0.13263E+02 0.20520E+01 -0.53059E+01
  706 + 1. 0.11644E+02 0.71196E+01 -0.52940E+01
  707 + 1. -0.13680E+01 0.15745E+02 -0.52905E+01
  708 + 1. 0.19031E+01 0.90416E+01 -0.52849E+01
  709 + 1. 0.85945E+01 -0.15564E+02 -0.52746E+01
  710 + 1. -0.12426E+02 0.30698E+01 -0.52724E+01
  711 + 1. -0.13038E+01 -0.10588E+02 -0.52626E+01
  712 + 1. 0.59173E+01 0.10167E+02 -0.52564E+01
  713 + 1. 0.56502E+01 -0.63349E+01 -0.52486E+01
  714 + 1. 0.35968E+00 0.12953E+02 -0.52461E+01
  715 + 1. -0.32575E+01 0.72957E+01 -0.52359E+01
  716 + 1. 0.19862E+02 -0.71126E+00 -0.52328E+01
  717 + 1. -0.18950E+02 0.56332E+01 -0.52258E+01
  718 + 1. -0.66342E+01 -0.12707E+02 -0.52183E+01
  719 + 1. -0.17836E+02 0.33705E+01 -0.52072E+01
  720 + 1. -0.23619E+01 -0.57377E+01 -0.52035E+01
  721 + 1. -0.90060E+01 0.88952E+01 -0.51970E+01
  722 + 1. 0.73475E+01 0.13126E+02 -0.51899E+01
  723 + 1. -0.46968E+01 -0.11970E+02 -0.51842E+01
  724 + 1. -0.96728E+01 0.56553E+01 -0.51734E+01
  725 + 1. 0.98129E+01 0.57489E+01 -0.51730E+01
  726 + 1. -0.11405E+02 -0.62656E+01 -0.51611E+01
  727 + 1. 0.13340E+02 0.14235E+02 -0.51578E+01
  728 + 1. -0.74789E+01 0.66741E+01 -0.51521E+01
  729 + 1. -0.45476E+01 0.17569E+02 -0.51464E+01
  730 + 1. 0.69929E+01 -0.10781E+02 -0.51348E+01
  731 + 1. 0.89730E+01 -0.13494E+02 -0.51296E+01
  732 + 1. -0.52037E+00 -0.49601E+01 -0.51221E+01
  733 + 1. 0.55862E+01 0.16123E+02 -0.51184E+01
  734 + 1. -0.19617E+02 -0.17961E+01 -0.51112E+01
  735 + 1. -0.25711E+01 -0.20476E-01 -0.51035E+01
  736 + 1. 0.70237E+01 -0.18549E+02 -0.50957E+01
  737 + 1. -0.11212E+02 -0.17326E+01 -0.50878E+01
  738 + 1. -0.14378E+02 -0.79279E+01 -0.50866E+01
  739 + 1. -0.12643E+01 -0.14085E+02 -0.50762E+01
  740 + 1. 0.63266E+01 -0.22817E+01 -0.50715E+01
  741 + 1. -0.24958E+01 -0.77871E+01 -0.50658E+01
  742 + 1. -0.60178E+01 0.20140E+01 -0.50536E+01
  743 + 1. -0.16582E+02 -0.11034E+02 -0.50496E+01
  744 + 1. 0.13626E+02 -0.74356E+01 -0.50404E+01
  745 + 1. -0.13036E+02 0.14104E+02 -0.50398E+01
  746 + 1. -0.78905E+01 -0.40344E+01 -0.50314E+01
  747 + 1. -0.85747E+01 -0.13534E+02 -0.50255E+01
  748 + 1. -0.65552E+01 -0.71409E+01 -0.50172E+01
  749 + 1. -0.63062E+01 -0.16361E+02 -0.50118E+01
  750 + 1. 0.63594E-01 0.18761E+02 -0.50024E+01
  751 + 1. 0.10709E+02 0.39684E+01 -0.49946E+01
  752 + 1. -0.66056E+01 0.11563E+02 -0.49911E+01
  753 + 1. -0.15410E+02 0.18246E+01 -0.49835E+01
  754 + 1. 0.69017E+01 0.83338E+01 -0.49797E+01
  755 + 1. 0.10921E+02 -0.52378E+01 -0.49693E+01
  756 + 1. 0.19298E+02 0.42136E+01 -0.49628E+01
  757 + 1. 0.98186E+01 0.87658E+01 -0.49564E+01
  758 + 1. -0.11380E+02 0.15488E+02 -0.49490E+01
  759 + 1. -0.75949E-02 0.37522E+01 -0.49429E+01
  760 + 1. -0.91193E+01 0.17477E+02 -0.49348E+01
  761 + 1. -0.10963E+02 0.12450E+02 -0.49311E+01
  762 + 1. 0.16399E+00 -0.12050E+02 -0.49240E+01
  763 + 1. -0.31333E+01 -0.18600E+02 -0.49168E+01
  764 + 1. 0.13903E+02 -0.42715E+01 -0.49105E+01
  765 + 1. -0.15189E+02 -0.56562E+01 -0.49028E+01
  766 + 1. -0.14035E+02 0.49815E+01 -0.48984E+01
  767 + 1. -0.12672E+02 -0.13647E+02 -0.48880E+01
  768 + 1. 0.14429E+02 0.89155E+01 -0.48831E+01
  769 + 1. 0.89330E+01 0.16575E+02 -0.48736E+01
  770 + 1. -0.22612E+01 0.52070E+01 -0.48678E+01
  771 + 1. 0.46794E+01 -0.11706E+02 -0.48623E+01
  772 + 1. -0.27308E+01 -0.37865E+01 -0.48592E+01
  773 + 1. -0.11037E+02 -0.16589E+02 -0.48472E+01
  774 + 1. -0.39440E+01 -0.14508E+02 -0.48408E+01
  775 + 1. -0.83491E+01 0.14278E+02 -0.48339E+01
  776 + 1. 0.46086E+01 0.82600E+01 -0.48275E+01
  777 + 1. 0.16463E+02 0.10696E+02 -0.48266E+01
  778 + 1. 0.11314E+02 0.13284E+01 -0.48151E+01
  779 + 1. 0.17249E+02 -0.51869E+01 -0.48099E+01
  780 + 1. 0.17277E+02 0.69474E+01 -0.48057E+01
  781 + 1. 0.13649E+02 -0.14139E+02 -0.47957E+01
  782 + 1. 0.15241E+02 -0.91565E+01 -0.47902E+01
  783 + 1. 0.21782E+01 0.11970E+02 -0.47848E+01
  784 + 1. -0.86981E+01 -0.88637E+01 -0.47759E+01
  785 + 1. -0.58277E+01 -0.19136E+02 -0.47718E+01
  786 + 1. -0.11448E+02 -0.11528E+02 -0.47608E+01
  787 + 1. 0.41424E+01 0.33168E+01 -0.47547E+01
  788 + 1. -0.94341E+01 0.14404E+01 -0.47468E+01
  789 + 1. -0.34380E+01 0.14632E+02 -0.47450E+01
  790 + 1. -0.87340E+01 -0.17643E+02 -0.47349E+01
  791 + 1. 0.66373E+01 -0.16068E+02 -0.47301E+01
  792 + 1. 0.16031E+02 -0.14122E+01 -0.47245E+01
  793 + 1. -0.17798E+02 -0.91162E+01 -0.47175E+01
  794 + 1. 0.18213E+02 -0.78721E+01 -0.47113E+01
  795 + 1. 0.10480E+02 -0.16172E+02 -0.47044E+01
  796 + 1. -0.16028E+02 0.50782E+01 -0.46962E+01
  797 + 1. 0.87943E+01 -0.47851E+01 -0.46883E+01
  798 + 1. 0.68399E+00 0.15682E+02 -0.46841E+01
  799 + 1. 0.20181E+01 -0.17929E+02 -0.46746E+01
  800 + 1. 0.10013E+00 -0.57815E+00 -0.46668E+01
  801 + 1. 0.12475E+02 -0.11207E+02 -0.46662E+01
  802 + 1. 0.48117E+01 -0.17169E+02 -0.46562E+01
  803 + 1. -0.18932E+02 -0.52410E+01 -0.46474E+01
  804 + 1. -0.70604E+00 0.14558E+01 -0.46441E+01
  805 + 1. 0.93320E+01 -0.93490E+01 -0.46338E+01
  806 + 1. 0.15596E+02 -0.12206E+02 -0.46319E+01
  807 + 1. -0.14294E+02 -0.38713E+01 -0.46245E+01
  808 + 1. -0.12312E+02 -0.42534E+01 -0.46142E+01
  809 + 1. -0.79700E-01 -0.17630E+02 -0.46069E+01
  810 + 1. 0.77267E+01 -0.65005E+01 -0.46040E+01
  811 + 1. 0.53713E+01 0.13139E+02 -0.45996E+01
  812 + 1. -0.62159E+01 -0.10396E+02 -0.45933E+01
  813 + 1. -0.40455E+01 0.19436E+02 -0.45809E+01
  814 + 1. -0.15080E+02 0.94342E+01 -0.45736E+01
  815 + 1. 0.17192E+02 0.44294E+01 -0.45671E+01
  816 + 1. -0.22085E+00 0.58118E+01 -0.45611E+01
  817 + 1. -0.76520E+01 0.50942E+00 -0.45580E+01
  818 + 1. -0.14405E+01 0.78421E+01 -0.45501E+01
  819 + 1. 0.11090E+02 -0.14055E+02 -0.45424E+01
  820 + 1. 0.15141E+02 0.56478E+00 -0.45338E+01
  821 + 1. -0.26092E+01 0.17374E+02 -0.45325E+01
  822 + 1. 0.15478E+02 -0.65814E+01 -0.45234E+01
  823 + 1. -0.11241E+02 0.45699E+01 -0.45187E+01
  824 + 1. 0.74896E+01 0.21925E+01 -0.45120E+01
  825 + 1. 0.31983E+01 -0.72983E+01 -0.45005E+01
  826 + 1. 0.71024E+01 -0.12714E+02 -0.44962E+01
  827 + 1. 0.10845E+01 -0.77069E+01 -0.44924E+01
  828 + 1. -0.13568E+02 0.55452E+00 -0.44864E+01
  829 + 1. -0.74554E+01 0.32801E+01 -0.44746E+01
  830 + 1. -0.19593E+02 0.26354E+01 -0.44717E+01
  831 + 1. 0.15190E+02 0.70968E+01 -0.44604E+01
  832 + 1. -0.52990E+01 0.93030E+01 -0.44586E+01
  833 + 1. 0.60864E+01 0.46542E+01 -0.44508E+01
  834 + 1. -0.12343E+01 0.11845E+02 -0.44463E+01
  835 + 1. 0.41515E+01 0.11347E+02 -0.44370E+01
  836 + 1. 0.64474E+01 -0.14215E+00 -0.44269E+01
  837 + 1. -0.14542E+02 -0.10567E+02 -0.44215E+01
  838 + 1. -0.63226E+01 0.16940E+02 -0.44174E+01
  839 + 1. 0.33976E+00 -0.15556E+02 -0.44077E+01
  840 + 1. 0.96921E+01 0.11633E+02 -0.44044E+01
  841 + 1. -0.36982E+01 -0.18672E+01 -0.43976E+01
  842 + 1. 0.52368E+01 -0.19294E+02 -0.43877E+01
  843 + 1. -0.30436E+01 -0.99989E+01 -0.43807E+01
  844 + 1. -0.12169E+02 0.74054E+01 -0.43739E+01
  845 + 1. 0.11763E+02 0.12819E+02 -0.43698E+01
  846 + 1. 0.17069E+02 -0.10078E+02 -0.43654E+01
  847 + 1. 0.13031E+02 0.26343E+00 -0.43557E+01
  848 + 1. -0.12444E+02 -0.80920E+01 -0.43528E+01
  849 + 1. 0.31692E+01 0.65014E+01 -0.43414E+01
  850 + 1. 0.14561E+02 0.45955E+01 -0.43360E+01
  851 + 1. 0.13614E+02 -0.22518E+01 -0.43275E+01
  852 + 1. 0.17537E+01 -0.40252E+01 -0.43238E+01
  853 + 1. -0.19096E+02 0.37266E-01 -0.43164E+01
  854 + 1. 0.34590E+01 0.19334E+02 -0.43097E+01
  855 + 1. -0.43255E+01 -0.70660E+01 -0.43030E+01
  856 + 1. 0.87280E+01 -0.17782E+02 -0.42939E+01
  857 + 1. 0.43238E+01 -0.12428E+01 -0.42900E+01
  858 + 1. -0.18181E+02 0.77948E+01 -0.42840E+01
  859 + 1. 0.29336E+01 -0.19682E+02 -0.42750E+01
  860 + 1. -0.60866E+01 0.54833E+01 -0.42720E+01
  861 + 1. 0.14992E+02 0.13099E+02 -0.42665E+01
  862 + 1. -0.53993E+01 0.14132E+02 -0.42588E+01
  863 + 1. -0.16055E+02 -0.11942E+01 -0.42506E+01
  864 + 1. 0.11813E+02 -0.33790E+01 -0.42455E+01
  865 + 1. -0.10663E+02 -0.14022E+02 -0.42382E+01
  866 + 1. 0.71527E+01 0.11368E+02 -0.42293E+01
  867 + 1. 0.49987E+01 -0.45388E+01 -0.42235E+01
  868 + 1. -0.10906E+02 0.89954E+01 -0.42141E+01
  869 + 1. -0.74830E+01 -0.20477E+01 -0.42114E+01
  870 + 1. 0.83398E+01 -0.17965E+01 -0.42033E+01
  871 + 1. 0.51798E+01 0.14290E+01 -0.41985E+01
  872 + 1. -0.14172E+02 0.70150E+01 -0.41895E+01
  873 + 1. 0.94701E+00 -0.10272E+02 -0.41844E+01
  874 + 1. 0.14233E+02 0.10843E+02 -0.41791E+01
  875 + 1. 0.11604E+02 -0.70132E+01 -0.41692E+01
  876 + 1. 0.33059E+01 0.13654E+02 -0.41656E+01
  877 + 1. -0.53013E+01 -0.49467E+01 -0.41544E+01
  878 + 1. -0.95952E+01 -0.30384E+01 -0.41512E+01
  879 + 1. 0.28982E+01 0.18329E+01 -0.41433E+01
  880 + 1. -0.16760E+02 -0.42849E+01 -0.41393E+01
  881 + 1. -0.22190E+01 -0.15850E+02 -0.41306E+01
  882 + 1. 0.18867E+02 -0.21335E+01 -0.41246E+01
  883 + 1. -0.75361E+01 0.99208E+01 -0.41153E+01
  884 + 1. 0.74515E+01 0.15411E+02 -0.41070E+01
  885 + 1. 0.34842E+01 0.16710E+02 -0.41053E+01
  886 + 1. 0.18664E+02 0.57620E+00 -0.40964E+01
  887 + 1. -0.15681E+02 0.11827E+02 -0.40889E+01
  888 + 1. 0.12375E+02 0.55239E+01 -0.40847E+01
  889 + 1. 0.16868E+02 0.22926E+01 -0.40781E+01
  890 + 1. 0.84972E+01 0.39044E+01 -0.40726E+01
  891 + 1. 0.24216E+01 -0.14558E+02 -0.40602E+01
  892 + 1. 0.84209E+01 0.73713E+01 -0.40538E+01
  893 + 1. -0.10399E+02 -0.77045E+01 -0.40495E+01
  894 + 1. -0.99952E+01 -0.36575E+00 -0.40467E+01
  895 + 1. -0.82207E+00 -0.86832E+01 -0.40356E+01
  896 + 1. 0.48108E+00 0.98288E+01 -0.40314E+01
  897 + 1. 0.94101E+01 0.74559E+00 -0.40249E+01
  898 + 1. -0.17744E+02 -0.71446E+01 -0.40154E+01
  899 + 1. 0.58890E+01 0.68495E+01 -0.40074E+01
  900 + 1. -0.90150E+01 -0.11731E+02 -0.40013E+01
  901 + 1. -0.13335E+02 0.10970E+02 -0.39977E+01
  902 + 1. -0.65330E+00 0.14291E+02 -0.39885E+01
  903 + 1. -0.17502E+02 0.14889E+01 -0.39813E+01
  904 + 1. 0.99833E+01 -0.11141E+02 -0.39766E+01
  905 + 1. 0.34290E+01 -0.10173E+02 -0.39681E+01
  906 + 1. -0.39563E+01 0.21156E+01 -0.39633E+01
  907 + 1. -0.32450E+01 0.92329E+01 -0.39583E+01
  908 + 1. 0.57608E+00 -0.19415E+02 -0.39481E+01
  909 + 1. -0.20412E+01 0.30476E+01 -0.39465E+01
  910 + 1. -0.11421E+02 0.17911E+01 -0.39363E+01
  911 + 1. -0.13126E+02 -0.21070E+01 -0.39290E+01
  912 + 1. 0.23280E+01 0.45372E+01 -0.39258E+01
  913 + 1. 0.11289E+02 0.10369E+02 -0.39162E+01
  914 + 1. 0.57610E+01 0.17998E+02 -0.39109E+01
  915 + 1. -0.98954E+01 0.11081E+02 -0.39052E+01
  916 + 1. -0.16484E+01 -0.14443E+01 -0.38954E+01
  917 + 1. 0.16499E+02 0.88526E+01 -0.38909E+01
  918 + 1. -0.88559E+01 -0.56457E+01 -0.38837E+01
  919 + 1. -0.67953E+01 -0.14538E+02 -0.38757E+01
  920 + 1. 0.19096E+02 -0.46457E+01 -0.38693E+01
  921 + 1. -0.92812E+01 -0.15715E+02 -0.38657E+01
  922 + 1. 0.11043E+02 0.16651E+02 -0.38551E+01
  923 + 1. 0.11142E+02 -0.59623E+00 -0.38474E+01
  924 + 1. 0.44182E+01 -0.14625E+02 -0.38432E+01
  925 + 1. -0.61856E+01 0.75666E+01 -0.38350E+01
  926 + 1. -0.10242E+02 0.70635E+01 -0.38281E+01
  927 + 1. -0.14615E+01 -0.19298E+02 -0.38208E+01
  928 + 1. -0.15505E+01 -0.12552E+02 -0.38154E+01
  929 + 1. 0.13468E+02 -0.93385E+01 -0.38078E+01
  930 + 1. 0.84115E+01 0.97452E+01 -0.38038E+01
  931 + 1. -0.52123E+00 0.17071E+02 -0.37984E+01
  932 + 1. -0.59110E+01 -0.38195E+00 -0.37907E+01
  933 + 1. -0.37433E+01 0.12194E+02 -0.37806E+01
  934 + 1. -0.65603E+01 0.18847E+02 -0.37753E+01
  935 + 1. 0.70663E+01 -0.36290E+01 -0.37713E+01
  936 + 1. 0.95161E+01 -0.69187E+01 -0.37610E+01
  937 + 1. 0.64689E+01 -0.85565E+01 -0.37576E+01
  938 + 1. -0.94902E+01 0.37801E+01 -0.37524E+01
  939 + 1. -0.42967E+01 0.63193E+01 -0.37422E+01
  940 + 1. -0.11577E+01 -0.66819E+01 -0.37390E+01
  941 + 1. 0.15766E+02 -0.42643E+01 -0.37277E+01
  942 + 1. -0.15497E+02 -0.12516E+02 -0.37232E+01
  943 + 1. 0.21511E+01 -0.55584E+00 -0.37154E+01
  944 + 1. -0.80380E+01 0.15992E+02 -0.37085E+01
  945 + 1. -0.80205E+01 0.12255E+02 -0.37058E+01
  946 + 1. -0.10140E+02 0.14286E+02 -0.36955E+01
  947 + 1. -0.14505E+02 0.34547E+01 -0.36890E+01
  948 + 1. 0.64576E+00 -0.24856E+01 -0.36836E+01
  949 + 1. 0.18968E+02 0.62621E+01 -0.36763E+01
  950 + 1. 0.13074E+01 0.79303E+01 -0.36704E+01
  951 + 1. 0.19758E+01 -0.12067E+02 -0.36617E+01
  952 + 1. -0.13610E+02 -0.58874E+01 -0.36559E+01
  953 + 1. -0.46671E+01 -0.89898E+01 -0.36506E+01
  954 + 1. 0.13695E+02 -0.59621E+01 -0.36404E+01
  955 + 1. -0.37552E+01 0.42223E+01 -0.36393E+01
  956 + 1. 0.11525E+02 -0.97795E+01 -0.36283E+01
  957 + 1. 0.12456E+02 0.33256E+01 -0.36242E+01
  958 + 1. 0.88354E+01 0.13313E+02 -0.36188E+01
  959 + 1. -0.68455E+01 -0.17773E+02 -0.36080E+01
  960 + 1. -0.11182E+02 -0.97814E+01 -0.36041E+01
  961 + 1. -0.15880E+02 -0.91244E+01 -0.35973E+01
  962 + 1. -0.19660E+02 -0.35127E+01 -0.35870E+01
  963 + 1. -0.46675E+01 -0.16318E+02 -0.35826E+01
  964 + 1. -0.19960E+01 0.19402E+02 -0.35785E+01
  965 + 1. 0.14697E+01 0.19546E+02 -0.35683E+01
  966 + 1. -0.11983E+01 -0.34308E+01 -0.35635E+01
  967 + 1. 0.13091E+02 0.82373E+01 -0.35599E+01
  968 + 1. 0.36792E+01 -0.30823E+01 -0.35477E+01
  969 + 1. -0.79454E+01 0.50552E+01 -0.35465E+01
  970 + 1. 0.51410E+01 0.14877E+02 -0.35377E+01
  971 + 1. 0.20160E+00 -0.13674E+02 -0.35306E+01
  972 + 1. 0.10599E+02 0.14477E+02 -0.35265E+01
  973 + 1. -0.43911E+01 0.16045E+02 -0.35179E+01
  974 + 1. 0.10632E+02 0.76106E+01 -0.35100E+01
  975 + 1. -0.17227E+02 0.94156E+01 -0.35029E+01
  976 + 1. 0.99826E+01 -0.29572E+01 -0.34988E+01
  977 + 1. -0.43220E+01 -0.19485E+02 -0.34906E+01
  978 + 1. 0.29093E+01 -0.16536E+02 -0.34840E+01
  979 + 1. -0.17284E+02 0.61054E+01 -0.34739E+01
  980 + 1. -0.44296E+01 -0.12982E+02 -0.34687E+01
  981 + 1. 0.79137E+01 -0.14486E+02 -0.34632E+01
  982 + 1. -0.34050E+01 -0.50643E+01 -0.34580E+01
  983 + 1. -0.14267E+02 0.13538E+02 -0.34467E+01
  984 + 1. 0.59913E+01 -0.11178E+02 -0.34450E+01
  985 + 1. 0.16667E+02 -0.79286E+01 -0.34387E+01
  986 + 1. 0.79686E+01 -0.10288E+02 -0.34284E+01
  987 + 1. -0.13299E+02 -0.11990E+02 -0.34253E+01
  988 + 1. 0.17510E+01 -0.60728E+01 -0.34164E+01
  989 + 1. -0.77993E+01 -0.74496E+01 -0.34100E+01
  990 + 1. 0.31437E+01 0.98427E+01 -0.34024E+01
  991 + 1. 0.18720E+02 0.26276E+01 -0.33947E+01
  992 + 1. -0.18200E+02 -0.18696E+01 -0.33905E+01
  993 + 1. -0.12050E+02 -0.15597E+02 -0.33840E+01
  994 + 1. 0.12585E+02 0.15078E+02 -0.33741E+01
  995 + 1. -0.51330E+01 -0.29210E+01 -0.33684E+01
  996 + 1. 0.56940E+01 0.94583E+01 -0.33619E+01
  997 + 1. -0.15679E+02 -0.68585E+01 -0.33566E+01
  998 + 1. 0.12670E+02 -0.15390E+02 -0.33497E+01
  999 + 1. -0.13949E+02 -0.14291E+02 -0.33422E+01
  1000 + 1. 0.12827E+02 -0.12876E+02 -0.33345E+01
  1001 + 1. -0.35110E+01 -0.13187E+00 -0.33321E+01
  1002 + 1. -0.19381E+02 0.49295E+01 -0.33247E+01
  1003 + 1. 0.78998E+00 0.89018E+00 -0.33140E+01
  1004 + 1. 0.13880E+01 0.13247E+02 -0.33074E+01
  1005 + 1. 0.15134E+02 -0.10646E+02 -0.33040E+01
  1006 + 1. 0.79390E+01 0.17675E+02 -0.32996E+01
  1007 + 1. -0.57989E+01 0.36343E+01 -0.32895E+01
  1008 + 1. -0.12809E+02 0.54764E+01 -0.32867E+01
  1009 + 1. 0.16105E+02 0.56154E+01 -0.32743E+01
  1010 + 1. -0.15316E+02 0.68704E+00 -0.32672E+01
  1011 + 1. -0.77401E+01 -0.97776E+01 -0.32620E+01
  1012 + 1. 0.14491E+02 0.24547E+01 -0.32568E+01
  1013 + 1. -0.10699E+02 -0.47546E+01 -0.32475E+01
  1014 + 1. 0.10216E+02 0.30081E+01 -0.32462E+01
  1015 + 1. -0.17266E+02 0.33716E+01 -0.32346E+01
  1016 + 1. -0.10464E+02 0.16629E+02 -0.32279E+01
  1017 + 1. -0.12446E+02 0.15246E+02 -0.32261E+01
  1018 + 1. -0.23357E+01 0.15471E+02 -0.32138E+01
  1019 + 1. 0.49710E+01 -0.70887E+01 -0.32096E+01
  1020 + 1. 0.78593E+01 0.55953E+01 -0.32050E+01
  1021 + 1. -0.72167E+01 -0.12441E+02 -0.31991E+01
  1022 + 1. -0.87439E+01 0.83880E+01 -0.31913E+01
  1023 + 1. 0.17270E+02 -0.96117E+00 -0.31833E+01
  1024 + 1. 0.21149E+01 -0.88238E+01 -0.31789E+01
  1025 + 1. 0.11809E+02 -0.51169E+01 -0.31671E+01
  1026 + 1. -0.69537E+00 -0.10795E+02 -0.31636E+01
  1027 + 1. 0.43054E+01 0.50272E+01 -0.31584E+01
  1028 + 1. -0.72963E+01 -0.43500E+01 -0.31472E+01
  1029 + 1. 0.65859E+01 -0.56826E+01 -0.31425E+01
  1030 + 1. 0.61905E+01 -0.17667E+02 -0.31355E+01
  1031 + 1. 0.18414E+02 -0.63875E+01 -0.31329E+01
  1032 + 1. -0.15278E+01 0.10093E+02 -0.31258E+01
  1033 + 1. -0.11735E+02 0.13089E+02 -0.31151E+01
  1034 + 1. 0.10139E+02 0.55961E+01 -0.31079E+01
  1035 + 1. 0.14632E+02 -0.78397E+01 -0.31016E+01
  1036 + 1. -0.84328E+01 0.21817E+01 -0.30952E+01
  1037 + 1. 0.15765E+02 0.11574E+02 -0.30914E+01
  1038 + 1. -0.21895E+01 0.63076E+01 -0.30802E+01
  1039 + 1. 0.49252E+01 -0.12846E+02 -0.30748E+01
  1040 + 1. 0.14599E+02 -0.70901E+00 -0.30687E+01
  1041 + 1. 0.67695E+01 0.13689E+02 -0.30630E+01
  1042 + 1. -0.39110E+01 0.18064E+02 -0.30580E+01
  1043 + 1. -0.30481E+01 -0.17457E+02 -0.30530E+01
  1044 + 1. 0.10063E+01 0.31022E+01 -0.30429E+01
  1045 + 1. -0.57368E+01 0.11842E+02 -0.30394E+01
  1046 + 1. 0.19214E+01 0.16002E+02 -0.30300E+01
  1047 + 1. -0.13624E+02 -0.90506E+01 -0.30212E+01
  1048 + 1. -0.74870E+00 0.46526E+01 -0.30151E+01
  1049 + 1. -0.15484E+02 0.82407E+01 -0.30076E+01
  1050 + 1. 0.56643E+01 0.31563E+01 -0.30064E+01
  1051 + 1. -0.87885E+01 -0.13704E+02 -0.29979E+01
  1052 + 1. -0.19411E+01 0.13108E+02 -0.29920E+01
  1053 + 1. 0.88106E+01 -0.12504E+02 -0.29812E+01
  1054 + 1. -0.11852E+02 -0.59169E+00 -0.29744E+01
  1055 + 1. -0.73640E+00 -0.16566E+02 -0.29676E+01
  1056 + 1. -0.15109E+02 -0.24086E+01 -0.29620E+01
  1057 + 1. 0.98771E+01 -0.14412E+02 -0.29594E+01
  1058 + 1. -0.16204E+01 0.55894E+00 -0.29498E+01
  1059 + 1. 0.63759E+01 -0.18000E+01 -0.29431E+01
  1060 + 1. -0.29435E+01 -0.81139E+01 -0.29347E+01
  1061 + 1. 0.92495E+01 -0.16375E+02 -0.29288E+01
  1062 + 1. -0.84459E+01 0.17832E+02 -0.29217E+01
  1063 + 1. -0.12667E+02 0.88319E+01 -0.29169E+01
  1064 + 1. 0.78334E+01 -0.16264E-01 -0.29104E+01
  1065 + 1. -0.15270E+02 -0.49101E+01 -0.29001E+01
  1066 + 1. -0.65993E+01 0.14075E+01 -0.28941E+01
  1067 + 1. 0.34794E+01 -0.51637E+01 -0.28892E+01
  1068 + 1. 0.13312E+02 0.12326E+02 -0.28827E+01
  1069 + 1. -0.15095E+02 0.57411E+01 -0.28747E+01
  1070 + 1. 0.90781E+01 0.15679E+02 -0.28671E+01
  1071 + 1. 0.17462E+02 -0.34217E+01 -0.28634E+01
  1072 + 1. -0.12685E+02 0.32992E+01 -0.28598E+01
  1073 + 1. -0.11932E+02 -0.67508E+01 -0.28467E+01
  1074 + 1. -0.70356E+01 0.13943E+02 -0.28454E+01
  1075 + 1. 0.19844E+02 -0.88318E+00 -0.28355E+01
  1076 + 1. -0.19508E+02 0.14317E+01 -0.28297E+01
  1077 + 1. 0.38494E+01 -0.18254E+02 -0.28219E+01
  1078 + 1. 0.11915E+02 0.10294E+01 -0.28168E+01
  1079 + 1. 0.30706E+01 0.12078E+02 -0.28088E+01
  1080 + 1. 0.17431E+02 0.72970E+01 -0.28001E+01
  1081 + 1. -0.11556E+02 -0.29976E+01 -0.27988E+01
  1082 + 1. 0.94681E+00 0.57447E+01 -0.27918E+01
  1083 + 1. 0.13307E-01 0.11405E+02 -0.27806E+01
  1084 + 1. -0.11056E+02 -0.12538E+02 -0.27738E+01
  1085 + 1. -0.30871E+01 -0.14472E+02 -0.27671E+01
  1086 + 1. 0.88855E+01 -0.85558E+01 -0.27644E+01
  1087 + 1. 0.52174E+01 0.11574E+02 -0.27596E+01
  1088 + 1. 0.96953E+01 -0.50361E+01 -0.27522E+01
  1089 + 1. -0.95256E+01 -0.17493E+02 -0.27403E+01
  1090 + 1. 0.45793E+01 0.10395E+00 -0.27338E+01
  1091 + 1. 0.16286E+02 -0.60551E+01 -0.27284E+01
  1092 + 1. 0.36478E+01 0.79969E+01 -0.27203E+01
  1093 + 1. -0.14754E+02 0.10171E+02 -0.27198E+01
  1094 + 1. 0.14986E+02 -0.26703E+01 -0.27078E+01
  1095 + 1. 0.16697E+01 -0.18183E+02 -0.27036E+01
  1096 + 1. -0.18138E+02 -0.45569E+01 -0.26936E+01
  1097 + 1. 0.13946E+02 0.63373E+01 -0.26893E+01
  1098 + 1. 0.14874E+02 -0.12794E+02 -0.26823E+01
  1099 + 1. -0.27518E+01 -0.11404E+02 -0.26770E+01
  1100 + 1. 0.55334E+01 -0.15829E+02 -0.26733E+01
  1101 + 1. -0.13420E+02 -0.37520E+01 -0.26617E+01
  1102 + 1. -0.30371E+01 -0.26905E+01 -0.26563E+01
  1103 + 1. -0.75369E+01 -0.77412E+00 -0.26503E+01
  1104 + 1. 0.49376E+01 0.19357E+02 -0.26455E+01
  1105 + 1. -0.52354E+01 -0.62482E+01 -0.26335E+01
  1106 + 1. 0.17738E+02 0.45518E+01 -0.26268E+01
  1107 + 1. 0.33634E+00 -0.49005E+01 -0.26247E+01
  1108 + 1. 0.71018E+01 0.80336E+01 -0.26195E+01
  1109 + 1. 0.27739E+01 0.17939E+02 -0.26070E+01
  1110 + 1. -0.49234E+01 0.10068E+02 -0.26022E+01
  1111 + 1. -0.58480E+01 -0.10978E+02 -0.25954E+01
  1112 + 1. 0.36792E+01 0.28555E+01 -0.25921E+01
  1113 + 1. -0.98656E+00 0.81160E+01 -0.25824E+01
  1114 + 1. 0.12789E+02 0.10211E+02 -0.25752E+01
  1115 + 1. -0.46411E+01 0.80537E+01 -0.25674E+01
  1116 + 1. 0.11006E+02 0.12235E+02 -0.25646E+01
  1117 + 1. -0.17716E+02 -0.87762E+01 -0.25539E+01
  1118 + 1. -0.16957E+02 -0.47682E+00 -0.25533E+01
  1119 + 1. -0.16700E+02 -0.10931E+02 -0.25448E+01
  1120 + 1. -0.37352E+01 0.14111E+02 -0.25353E+01
  1121 + 1. 0.14706E+02 0.91405E+01 -0.25281E+01
  1122 + 1. 0.76832E+01 0.25152E+01 -0.25234E+01
  1123 + 1. 0.12124E+02 -0.23723E+01 -0.25177E+01
  1124 + 1. 0.10140E+02 0.94523E+01 -0.25129E+01
  1125 + 1. 0.48272E+01 -0.94249E+01 -0.25051E+01
  1126 + 1. -0.10843E+02 0.49651E+01 -0.24968E+01
  1127 + 1. -0.13161E+02 0.10011E+01 -0.24882E+01
  1128 + 1. 0.11580E+02 -0.11502E+02 -0.24859E+01
  1129 + 1. -0.12797E-01 -0.77459E+00 -0.24746E+01
  1130 + 1. -0.30020E+00 0.19204E+02 -0.24691E+01
  1131 + 1. -0.96068E+01 -0.88590E+01 -0.24621E+01
  1132 + 1. 0.16130E+02 0.13294E+01 -0.24574E+01
  1133 + 1. -0.10231E+02 0.96620E+01 -0.24481E+01
  1134 + 1. 0.96559E+01 -0.12504E+01 -0.24455E+01
  1135 + 1. 0.60636E+00 -0.73980E+01 -0.24388E+01
  1136 + 1. 0.11687E+02 -0.81225E+01 -0.24304E+01
  1137 + 1. -0.99788E+01 0.96227E+00 -0.24229E+01
  1138 + 1. -0.97102E+01 0.12777E+02 -0.24165E+01
  1139 + 1. -0.19967E+02 -0.10744E+01 -0.24093E+01
  1140 + 1. 0.49092E+01 0.16533E+02 -0.24049E+01
  1141 + 1. -0.78179E+01 -0.15735E+02 -0.23950E+01
  1142 + 1. 0.80264E+01 0.11679E+02 -0.23928E+01
  1143 + 1. -0.78711E+01 0.67325E+01 -0.23848E+01
  1144 + 1. 0.31366E+01 -0.13720E+02 -0.23735E+01
  1145 + 1. 0.54792E+01 -0.38359E+01 -0.23714E+01
  1146 + 1. -0.59172E+01 0.61952E+01 -0.23660E+01
  1147 + 1. -0.57233E+01 0.17302E+02 -0.23563E+01
  1148 + 1. 0.14603E+00 0.15149E+02 -0.23497E+01
  1149 + 1. 0.25845E+01 0.88440E+00 -0.23405E+01
  1150 + 1. 0.17362E+02 -0.95715E+01 -0.23397E+01
  1151 + 1. 0.11534E+01 -0.16223E+02 -0.23296E+01
  1152 + 1. -0.84089E+01 -0.25905E+01 -0.23263E+01
  1153 + 1. 0.19541E+02 -0.32501E+01 -0.23188E+01
  1154 + 1. -0.11802E+02 0.11108E+02 -0.23116E+01
  1155 + 1. -0.27006E+01 -0.19745E+02 -0.23011E+01
  1156 + 1. -0.98518E+01 -0.64725E+01 -0.22952E+01
  1157 + 1. 0.81614E+01 -0.66429E+01 -0.22914E+01
  1158 + 1. -0.71254E+01 0.92173E+01 -0.22824E+01
  1159 + 1. 0.21287E+01 -0.34574E+01 -0.22792E+01
  1160 + 1. 0.11896E+02 0.63557E+01 -0.22681E+01
  1161 + 1. -0.97526E+01 -0.10871E+02 -0.22611E+01
  1162 + 1. -0.11700E+02 0.68331E+01 -0.22570E+01
  1163 + 1. 0.30662E+01 0.14458E+02 -0.22505E+01
  1164 + 1. 0.14171E+02 -0.45685E+01 -0.22430E+01
  1165 + 1. -0.18821E+02 0.66664E+01 -0.22398E+01
  1166 + 1. -0.57863E+01 -0.15355E+02 -0.22318E+01
  1167 + 1. 0.14780E+02 0.42095E+01 -0.22222E+01
  1168 + 1. 0.35268E+01 -0.11662E+02 -0.22156E+01
  1169 + 1. -0.90335E+01 0.15043E+02 -0.22118E+01
  1170 + 1. -0.10680E+02 0.29071E+01 -0.22026E+01
  1171 + 1. -0.16442E+01 0.17573E+02 -0.21949E+01
  1172 + 1. -0.12463E+02 -0.10635E+02 -0.21911E+01
  1173 + 1. 0.17123E+02 0.10066E+02 -0.21818E+01
  1174 + 1. -0.16514E+01 -0.54798E+01 -0.21796E+01
  1175 + 1. -0.30526E+01 0.11100E+02 -0.21728E+01
  1176 + 1. -0.18562E+02 -0.69968E+01 -0.21608E+01
  1177 + 1. -0.12060E+01 -0.14141E+02 -0.21562E+01
  1178 + 1. -0.29388E+01 0.29829E+01 -0.21524E+01
  1179 + 1. -0.84594E+01 0.11046E+02 -0.21410E+01
  1180 + 1. -0.89089E+00 0.23152E+01 -0.21379E+01
  1181 + 1. 0.31645E+00 -0.93736E+01 -0.21318E+01
  1182 + 1. 0.32641E+01 -0.73992E+01 -0.21265E+01
  1183 + 1. 0.11351E+02 0.42815E+01 -0.21142E+01
  1184 + 1. -0.44070E+01 0.12476E+01 -0.21077E+01
  1185 + 1. 0.68816E+01 0.15566E+02 -0.21014E+01
  1186 + 1. -0.13837E+02 -0.72561E+01 -0.20966E+01
  1187 + 1. 0.99827E+01 0.96543E+00 -0.20915E+01
  1188 + 1. 0.60253E+01 0.52506E+01 -0.20814E+01
  1189 + 1. -0.57319E+01 -0.18867E+02 -0.20744E+01
  1190 + 1. -0.13774E+02 0.11831E+02 -0.20712E+01
  1191 + 1. 0.19376E+02 0.10053E+01 -0.20656E+01
  1192 + 1. 0.64990E+01 -0.13958E+02 -0.20556E+01
  1193 + 1. 0.13347E+02 -0.10291E+02 -0.20493E+01
  1194 + 1. -0.53116E+01 -0.13152E+01 -0.20404E+01
  1195 + 1. -0.31852E+00 -0.18973E+02 -0.20338E+01
  1196 + 1. -0.63674E+01 -0.85854E+01 -0.20287E+01
  1197 + 1. -0.14709E+02 -0.11624E+02 -0.20212E+01
  1198 + 1. -0.15401E+02 0.26950E+01 -0.20181E+01
  1199 + 1. 0.13769E+02 0.79632E+00 -0.20089E+01
  1200 + 1. 0.12702E+01 0.94158E+01 -0.20035E+01
  1201 + 1. 0.88371E+01 0.69889E+01 -0.19978E+01
  1202 + 1. 0.96308E+01 -0.10546E+02 -0.19924E+01
  1203 + 1. 0.52091E+00 -0.12373E+02 -0.19863E+01
  1204 + 1. -0.10426E+02 -0.14339E+02 -0.19773E+01
  1205 + 1. -0.19600E+02 0.34461E+01 -0.19675E+01
  1206 + 1. -0.16625E+02 0.48110E+01 -0.19642E+01
  1207 + 1. 0.70920E+00 0.17273E+02 -0.19552E+01
  1208 + 1. 0.31287E+01 -0.11133E+01 -0.19494E+01
  1209 + 1. -0.16854E+02 0.10642E+02 -0.19452E+01
  1210 + 1. 0.64720E+01 0.18168E+02 -0.19400E+01
  1211 + 1. 0.11074E+02 0.15795E+02 -0.19318E+01
  1212 + 1. 0.11805E+02 0.84020E+01 -0.19210E+01
  1213 + 1. -0.17318E+02 0.17475E+01 -0.19174E+01
  1214 + 1. 0.11506E+02 -0.16261E+02 -0.19123E+01
  1215 + 1. -0.13567E+02 -0.16535E+01 -0.19030E+01
  1216 + 1. -0.85160E+01 0.40444E+01 -0.18943E+01
  1217 + 1. 0.12025E+02 -0.14096E+02 -0.18881E+01
  1218 + 1. -0.12829E+02 -0.13187E+02 -0.18866E+01
  1219 + 1. -0.17152E+02 -0.29506E+01 -0.18756E+01
  1220 + 1. -0.39411E+01 0.53099E+01 -0.18674E+01
  1221 + 1. 0.28579E+01 0.63375E+01 -0.18608E+01
  1222 + 1. 0.14865E+02 0.13204E+02 -0.18595E+01
  1223 + 1. 0.10136E+02 -0.70004E+01 -0.18494E+01
  1224 + 1. -0.11652E+02 -0.84992E+01 -0.18447E+01
  1225 + 1. 0.79544E+01 -0.45258E+01 -0.18334E+01
  1226 + 1. 0.95655E+01 0.13945E+02 -0.18315E+01
  1227 + 1. 0.84807E+01 -0.17910E+02 -0.18226E+01
  1228 + 1. -0.16833E+01 -0.91925E+01 -0.18167E+01
  1229 + 1. 0.70810E+01 -0.83661E+01 -0.18103E+01
  1230 + 1. -0.56690E+01 -0.13146E+02 -0.18048E+01
  1231 + 1. -0.51936E+01 -0.42906E+01 -0.17981E+01
  1232 + 1. 0.12810E+02 0.25966E+01 -0.17905E+01
  1233 + 1. 0.22759E+01 0.41709E+01 -0.17827E+01
  1234 + 1. 0.12371E+01 -0.14247E+02 -0.17777E+01
  1235 + 1. 0.68936E+01 0.99620E+01 -0.17729E+01
  1236 + 1. 0.96696E+01 0.17472E+02 -0.17666E+01
  1237 + 1. 0.68955E+01 -0.10598E+02 -0.17542E+01
  1238 + 1. 0.75292E+01 -0.16026E+02 -0.17500E+01
  1239 + 1. 0.19742E+02 0.31243E+01 -0.17461E+01
  1240 + 1. -0.26289E+01 0.90267E+01 -0.17382E+01
  1241 + 1. -0.64141E+01 0.15505E+02 -0.17327E+01
  1242 + 1. 0.11969E+02 0.13967E+02 -0.17264E+01
  1243 + 1. -0.37429E+01 -0.97176E+01 -0.17158E+01
  1244 + 1. -0.79247E+01 -0.61267E+01 -0.17067E+01
  1245 + 1. -0.10007E+02 -0.11162E+01 -0.17040E+01
  1246 + 1. 0.16569E+02 0.32101E+01 -0.16965E+01
  1247 + 1. 0.12967E+02 -0.66305E+01 -0.16922E+01
  1248 + 1. -0.25932E+01 0.19812E+02 -0.16806E+01
  1249 + 1. 0.79823E+01 -0.23769E+01 -0.16799E+01
  1250 + 1. 0.15105E+02 -0.92270E+01 -0.16733E+01
  1251 + 1. -0.45385E+00 -0.30404E+01 -0.16657E+01
  1252 + 1. -0.13870E+02 0.72486E+01 -0.16581E+01
  1253 + 1. -0.11114E+02 -0.16615E+02 -0.16532E+01
  1254 + 1. -0.13049E+02 0.13986E+02 -0.16432E+01
  1255 + 1. 0.16187E+02 -0.11059E+02 -0.16366E+01
  1256 + 1. 0.26743E+01 -0.19635E+02 -0.16290E+01
  1257 + 1. -0.17019E+02 0.73401E+01 -0.16261E+01
  1258 + 1. -0.38585E+01 0.16386E+02 -0.16142E+01
  1259 + 1. 0.87263E+01 0.40035E+01 -0.16081E+01
  1260 + 1. 0.53954E+01 0.13790E+02 -0.16013E+01
  1261 + 1. 0.18572E+02 0.61562E+01 -0.15971E+01
  1262 + 1. -0.16758E+02 -0.57908E+01 -0.15926E+01
  1263 + 1. -0.15663E+02 -0.93332E+01 -0.15833E+01
  1264 + 1. 0.43272E+01 0.95065E+01 -0.15773E+01
  1265 + 1. -0.97762E+01 -0.39957E+01 -0.15673E+01
  1266 + 1. -0.76198E+01 -0.17659E+02 -0.15647E+01
  1267 + 1. 0.33637E+01 -0.16214E+02 -0.15581E+01
  1268 + 1. -0.42316E+01 -0.16747E+02 -0.15497E+01
  1269 + 1. 0.15650E+02 0.76445E+01 -0.15423E+01
  1270 + 1. 0.15421E+01 0.19430E+02 -0.15366E+01
  1271 + 1. -0.79251E+01 -0.11348E+02 -0.15325E+01
  1272 + 1. 0.52464E+01 -0.18935E+02 -0.15252E+01
  1273 + 1. 0.23204E+01 -0.10140E+02 -0.15137E+01
  1274 + 1. 0.64660E+01 0.12889E+01 -0.15114E+01
  1275 + 1. 0.10288E+02 -0.33649E+01 -0.15050E+01
  1276 + 1. -0.19183E+02 -0.32493E+01 -0.14945E+01
  1277 + 1. -0.54347E+01 0.13626E+02 -0.14873E+01
  1278 + 1. 0.17892E+02 -0.49917E+01 -0.14846E+01
  1279 + 1. -0.97241E+01 0.63921E+01 -0.14742E+01
  1280 + 1. -0.13859E+02 0.42874E+01 -0.14674E+01
  1281 + 1. -0.11058E+02 0.14094E+02 -0.14640E+01
  1282 + 1. 0.16803E+02 -0.76363E+01 -0.14588E+01
  1283 + 1. 0.17630E+02 0.15080E+00 -0.14485E+01
  1284 + 1. 0.47746E+01 -0.59322E+01 -0.14430E+01
  1285 + 1. -0.56984E+01 0.26492E+01 -0.14335E+01
  1286 + 1. -0.21811E+01 -0.71414E+00 -0.14320E+01
  1287 + 1. -0.46269E+00 0.13394E+02 -0.14243E+01
  1288 + 1. -0.12745E+02 -0.15331E+02 -0.14149E+01
  1289 + 1. -0.12086E+02 -0.50587E+01 -0.14099E+01
  1290 + 1. 0.21218E+01 -0.56893E+01 -0.14039E+01
  1291 + 1. 0.18099E+02 -0.19202E+01 -0.13968E+01
  1292 + 1. -0.33627E+01 -0.64127E+01 -0.13889E+01
  1293 + 1. -0.11704E+02 0.16137E+02 -0.13833E+01
  1294 + 1. -0.14856E+02 0.14788E-01 -0.13774E+01
  1295 + 1. 0.11331E+02 -0.56047E+00 -0.13671E+01
  1296 + 1. 0.98624E+01 0.11103E+02 -0.13638E+01
  1297 + 1. 0.10843E+01 0.72153E+01 -0.13592E+01
  1298 + 1. -0.20093E+01 -0.17873E+02 -0.13500E+01
  1299 + 1. 0.16362E+01 0.12780E+02 -0.13461E+01
  1300 + 1. -0.15270E+02 -0.35704E+01 -0.13356E+01
  1301 + 1. -0.41672E+01 -0.11841E+02 -0.13269E+01
  1302 + 1. -0.21776E+01 -0.15755E+02 -0.13204E+01
  1303 + 1. -0.65615E+01 0.11084E+02 -0.13168E+01
  1304 + 1. -0.47169E+01 0.19264E+02 -0.13085E+01
  1305 + 1. 0.93956E+00 0.16197E+01 -0.13023E+01
  1306 + 1. 0.49735E+01 0.67723E+01 -0.12993E+01
  1307 + 1. -0.16535E+01 0.15715E+02 -0.12868E+01
  1308 + 1. 0.48559E+01 -0.22043E+01 -0.12816E+01
  1309 + 1. -0.11598E+01 0.62842E+01 -0.12761E+01
  1310 + 1. 0.14163E+02 -0.14086E+02 -0.12709E+01
  1311 + 1. 0.16153E+02 0.54784E+01 -0.12626E+01
  1312 + 1. -0.12049E+01 -0.11323E+02 -0.12562E+01
  1313 + 1. 0.16299E+02 -0.37665E+01 -0.12521E+01
  1314 + 1. 0.12168E+02 -0.41319E+01 -0.12439E+01
  1315 + 1. -0.11367E+01 0.10845E+02 -0.12395E+01
  1316 + 1. 0.13550E+02 -0.10425E+01 -0.12274E+01
  1317 + 1. -0.18566E+02 -0.13430E+00 -0.12240E+01
  1318 + 1. -0.81618E+01 0.10534E+01 -0.12147E+01
  1319 + 1. 0.84728E+01 -0.13960E+02 -0.12096E+01
  1320 + 1. -0.95176E+01 -0.12563E+02 -0.12061E+01
  1321 + 1. -0.11583E+01 -0.72036E+01 -0.11957E+01
  1322 + 1. 0.14923E+02 -0.62968E+01 -0.11876E+01
  1323 + 1. 0.15409E+02 -0.45714E-01 -0.11824E+01
  1324 + 1. -0.14339E+02 -0.54240E+01 -0.11754E+01
  1325 + 1. -0.66718E+01 -0.27065E+01 -0.11707E+01
  1326 + 1. -0.11711E+02 0.14926E+01 -0.11617E+01
  1327 + 1. -0.68879E+01 0.18768E+02 -0.11571E+01
  1328 + 1. -0.78874E+01 -0.13730E+02 -0.11481E+01
  1329 + 1. 0.28341E+00 0.42193E+01 -0.11426E+01
  1330 + 1. -0.13414E+02 0.96085E+01 -0.11345E+01
  1331 + 1. 0.10439E+02 -0.12679E+02 -0.11330E+01
  1332 + 1. 0.14323E+02 0.11290E+02 -0.11231E+01
  1333 + 1. -0.86610E+01 0.16950E+02 -0.11199E+01
  1334 + 1. -0.30408E+01 0.69641E+01 -0.11111E+01
  1335 + 1. -0.15611E+02 0.90018E+01 -0.11063E+01
  1336 + 1. 0.75562E+01 0.13896E+02 -0.10955E+01
  1337 + 1. 0.41446E+01 0.13378E+01 -0.10908E+01
  1338 + 1. -0.86038E+01 0.82292E+01 -0.10856E+01
  1339 + 1. 0.11375E+02 -0.10065E+02 -0.10787E+01
  1340 + 1. 0.13671E+02 0.77269E+01 -0.10726E+01
  1341 + 1. -0.62550E+01 0.16613E+00 -0.10643E+01
  1342 + 1. 0.29527E+01 0.16340E+02 -0.10551E+01
  1343 + 1. 0.13282E+02 -0.12038E+02 -0.10523E+01
  1344 + 1. -0.15634E+02 0.11963E+02 -0.10436E+01
  1345 + 1. 0.84268E+01 0.88612E+01 -0.10366E+01
  1346 + 1. 0.66697E+01 -0.76473E+00 -0.10313E+01
  1347 + 1. 0.13051E+02 -0.85369E+01 -0.10264E+01
  1348 + 1. -0.82151E+01 0.13222E+02 -0.10159E+01
  1349 + 1. -0.24579E+01 0.13478E+02 -0.10083E+01
  1350 + 1. 0.10139E+02 0.54854E+01 -0.10062E+01
  1351 + 1. -0.10820E+02 0.84131E+01 -0.99655E+00
  1352 + 1. 0.37696E+01 0.19595E+02 -0.98742E+00
  1353 + 1. 0.33643E+01 0.11176E+02 -0.98219E+00
  1354 + 1. 0.45778E+01 -0.14061E+02 -0.97710E+00
  1355 + 1. 0.42068E+01 0.41049E+01 -0.96992E+00
  1356 + 1. -0.24250E+01 -0.36394E+01 -0.96204E+00
  1357 + 1. -0.19189E+02 -0.53520E+01 -0.95752E+00
  1358 + 1. -0.41403E+01 -0.25622E+01 -0.95108E+00
  1359 + 1. -0.83570E+01 -0.80208E+01 -0.94279E+00
  1360 + 1. -0.13596E+02 0.22226E+01 -0.93392E+00
  1361 + 1. 0.55176E+01 -0.16975E+02 -0.93197E+00
  1362 + 1. -0.13737E+02 -0.94448E+01 -0.92252E+00
  1363 + 1. 0.98267E+01 -0.15623E+02 -0.91429E+00
  1364 + 1. 0.64507E+01 0.12067E+02 -0.91002E+00
  1365 + 1. 0.83904E+01 0.13274E+01 -0.90447E+00
  1366 + 1. -0.59027E+01 0.76663E+01 -0.89713E+00
  1367 + 1. 0.84773E+01 -0.11921E+02 -0.88689E+00
  1368 + 1. 0.14109E+02 -0.30673E+01 -0.88273E+00
  1369 + 1. 0.50128E+01 -0.81358E+01 -0.87672E+00
  1370 + 1. 0.13107E+02 0.51292E+01 -0.87199E+00
  1371 + 1. -0.40023E+01 -0.14374E+02 -0.86044E+00
  1372 + 1. 0.12632E+01 -0.11434E+01 -0.85353E+00
  1373 + 1. -0.15468E+02 0.63206E+01 -0.85088E+00
  1374 + 1. 0.60641E+01 -0.12368E+02 -0.84664E+00
  1375 + 1. 0.77003E+01 0.16939E+02 -0.83994E+00
  1376 + 1. 0.64362E+01 0.33544E+01 -0.83265E+00
  1377 + 1. -0.31456E+00 -0.16663E+02 -0.82594E+00
  1378 + 1. 0.11836E+02 0.11674E+02 -0.81415E+00
  1379 + 1. -0.27845E+01 0.10935E+01 -0.80757E+00
  1380 + 1. 0.34565E+01 -0.40830E+01 -0.80624E+00
  1381 + 1. -0.18711E+02 0.48534E+01 -0.79693E+00
  1382 + 1. -0.63282E+01 0.47967E+01 -0.78797E+00
  1383 + 1. -0.14546E+02 -0.13629E+02 -0.78543E+00
  1384 + 1. 0.26467E+01 0.84305E+01 -0.77744E+00
  1385 + 1. -0.10424E+02 -0.97034E+01 -0.77125E+00
  1386 + 1. -0.11819E+02 -0.22091E+01 -0.76263E+00
  1387 + 1. -0.93974E+01 -0.15552E+02 -0.75761E+00
  1388 + 1. 0.89241E+01 -0.81866E+01 -0.75318E+00
  1389 + 1. -0.11848E+02 0.53271E+01 -0.74388E+00
  1390 + 1. 0.17464E+02 0.84898E+01 -0.73690E+00
  1391 + 1. -0.56967E+01 -0.72015E+01 -0.72934E+00
  1392 + 1. -0.15869E+02 -0.16874E+01 -0.72483E+00
  1393 + 1. 0.41523E+01 -0.10263E+02 -0.71914E+00
  1394 + 1. 0.21018E+01 -0.12667E+02 -0.70693E+00
  1395 + 1. -0.99451E+01 0.11244E+02 -0.70197E+00
  1396 + 1. -0.11403E+02 -0.11469E+02 -0.69944E+00
  1397 + 1. -0.55147E+01 -0.10061E+02 -0.68674E+00
  1398 + 1. -0.49959E+00 0.87712E+01 -0.68084E+00
  1399 + 1. -0.17772E+02 0.89625E+01 -0.67793E+00
  1400 + 1. 0.14707E+02 0.21098E+01 -0.66825E+00
  1401 + 1. 0.96653E+01 -0.53916E+01 -0.66188E+00
  1402 + 1. 0.10934E+02 0.23993E+01 -0.65943E+00
  1403 + 1. 0.71875E+01 0.63998E+01 -0.65224E+00
  1404 + 1. -0.68596E+01 -0.47983E+01 -0.64465E+00
  1405 + 1. -0.40821E+00 -0.48718E+01 -0.63668E+00
  1406 + 1. 0.93179E+01 0.15728E+02 -0.62706E+00
  1407 + 1. -0.41618E+01 0.10437E+02 -0.62334E+00
  1408 + 1. -0.16884E+02 -0.77650E+01 -0.61493E+00
  1409 + 1. 0.13821E+01 0.14694E+02 -0.60875E+00
  1410 + 1. 0.22953E+01 -0.17769E+02 -0.60564E+00
  1411 + 1. 0.19924E+02 -0.68720E+00 -0.59637E+00
  1412 + 1. 0.54482E+01 0.15558E+02 -0.59106E+00
  1413 + 1. -0.38492E+01 -0.19055E+02 -0.58393E+00
  1414 + 1. 0.17236E+01 -0.80640E+01 -0.57762E+00
  1415 + 1. -0.18906E+02 0.19775E+01 -0.57165E+00
  1416 + 1. 0.91243E+01 -0.55956E+00 -0.56029E+00
  1417 + 1. 0.65017E+01 0.83231E+01 -0.55455E+00
  1418 + 1. 0.64712E+01 -0.51713E+01 -0.55116E+00
  1419 + 1. -0.69816E+01 -0.15772E+02 -0.54068E+00
  1420 + 1. -0.23406E+01 -0.13005E+02 -0.53902E+00
  1421 + 1. -0.10981E+02 -0.67026E+01 -0.52923E+00
  1422 + 1. -0.24876E+01 0.46774E+01 -0.52269E+00
  1423 + 1. -0.92122E+00 0.19541E+02 -0.51594E+00
  1424 + 1. 0.10172E+02 0.74345E+01 -0.51126E+00
  1425 + 1. 0.18636E+02 -0.70323E+01 -0.50284E+00
  1426 + 1. -0.30790E+01 0.18058E+02 -0.49919E+00
  1427 + 1. -0.15989E+02 -0.11512E+02 -0.48671E+00
  1428 + 1. 0.10549E+01 0.10875E+02 -0.48443E+00
  1429 + 1. -0.16188E+01 -0.19864E+02 -0.47625E+00
  1430 + 1. 0.11118E+02 0.98138E+01 -0.46843E+00
  1431 + 1. -0.12952E+02 -0.37376E+00 -0.46620E+00
  1432 + 1. 0.69531E+01 -0.18449E+02 -0.45521E+00
  1433 + 1. -0.17265E+02 -0.98187E+01 -0.44970E+00
  1434 + 1. -0.41877E+01 -0.46531E+00 -0.44117E+00
  1435 + 1. -0.12208E+02 0.12205E+02 -0.43914E+00
  1436 + 1. -0.95536E+01 -0.17536E+02 -0.42876E+00
  1437 + 1. -0.96184E+01 0.27661E+01 -0.42355E+00
  1438 + 1. -0.40804E+01 0.32477E+01 -0.41590E+00
  1439 + 1. 0.19123E+02 -0.38051E+01 -0.40843E+00
  1440 + 1. -0.82307E+01 -0.12733E+01 -0.40559E+00
  1441 + 1. -0.16944E+02 0.34875E+01 -0.39543E+00
  1442 + 1. -0.74559E+01 0.28851E+01 -0.39258E+00
  1443 + 1. -0.19947E+02 -0.13942E+01 -0.38307E+00
  1444 + 1. 0.15718E+02 0.96288E+01 -0.37679E+00
  1445 + 1. 0.18309E+02 0.27444E+01 -0.37078E+00
  1446 + 1. -0.14797E+02 -0.77365E+01 -0.36068E+00
  1447 + 1. 0.12426E+02 0.15459E+02 -0.35622E+00
  1448 + 1. -0.56955E+01 0.17340E+02 -0.35237E+00
  1449 + 1. 0.16237E+02 0.11567E+02 -0.34018E+00
  1450 + 1. 0.37607E+00 -0.19833E+02 -0.33349E+00
  1451 + 1. -0.77789E+01 0.63598E+01 -0.32705E+00
  1452 + 1. 0.14337E+01 -0.37201E+01 -0.32518E+00
  1453 + 1. 0.10217E+02 0.12781E+02 -0.31660E+00
  1454 + 1. -0.16956E+02 -0.41970E+01 -0.31187E+00
  1455 + 1. 0.18164E+01 0.54453E+01 -0.30476E+00
  1456 + 1. 0.19587E+01 -0.15552E+02 -0.29737E+00
  1457 + 1. 0.80261E+00 -0.10614E+02 -0.29068E+00
  1458 + 1. -0.16574E+02 0.81301E+00 -0.28259E+00
  1459 + 1. 0.35473E+01 0.14216E+02 -0.27542E+00
  1460 + 1. -0.41506E+00 -0.14667E+02 -0.27217E+00
  1461 + 1. -0.30350E+01 -0.84992E+01 -0.26332E+00
  1462 + 1. 0.65598E+01 -0.31484E+01 -0.25465E+00
  1463 + 1. -0.83455E+01 -0.34022E+01 -0.24824E+00
  1464 + 1. 0.81343E+01 0.10994E+02 -0.24433E+00
  1465 + 1. 0.14308E+02 -0.10496E+02 -0.23746E+00
  1466 + 1. -0.84384E+00 -0.17046E+01 -0.22911E+00
  1467 + 1. -0.11426E+02 -0.13918E+02 -0.22655E+00
  1468 + 1. 0.17229E+02 -0.99238E+01 -0.21648E+00
  1469 + 1. 0.48868E+01 0.17789E+02 -0.21168E+00
  1470 + 1. -0.99811E+01 0.41277E+00 -0.20349E+00
  1471 + 1. -0.83421E-01 0.16573E+02 -0.19493E+00
  1472 + 1. 0.19926E+02 0.15267E+01 -0.18691E+00
  1473 + 1. -0.14090E+02 0.13048E+02 -0.18632E+00
  1474 + 1. -0.82683E+01 0.10086E+02 -0.17994E+00
  1475 + 1. -0.13232E+02 -0.12089E+02 -0.17027E+00
  1476 + 1. 0.67067E+01 -0.14667E+02 -0.16349E+00
  1477 + 1. -0.56522E+01 -0.17465E+02 -0.15818E+00
  1478 + 1. -0.37376E+01 0.14767E+02 -0.14780E+00
  1479 + 1. -0.18404E+02 0.69140E+01 -0.14586E+00
  1480 + 1. 0.13808E+02 0.13032E+02 -0.13808E+00
  1481 + 1. 0.12920E+02 0.77095E+00 -0.13332E+00
  1482 + 1. 0.11166E+02 -0.79063E+01 -0.12188E+00
  1483 + 1. 0.11712E+02 -0.22519E+01 -0.11345E+00
  1484 + 1. -0.99683E+01 0.15389E+02 -0.11155E+00
  1485 + 1. 0.29411E+01 -0.31446E+00 -0.10330E+00
  1486 + 1. -0.17833E+02 -0.21032E+01 -0.96015E-01
  1487 + 1. -0.43016E+01 0.12636E+02 -0.92979E-01
  1488 + 1. -0.93134E+01 -0.54113E+01 -0.83324E-01
  1489 + 1. 0.16910E+01 0.32271E+01 -0.78401E-01
  1490 + 1. -0.68112E+00 0.12961E+01 -0.67867E-01
  1491 + 1. 0.12726E+02 -0.15139E+02 -0.64059E-01
  1492 + 1. -0.41427E+01 -0.48671E+01 -0.57850E-01
  1493 + 1. 0.75879E+01 -0.67789E+01 -0.51261E-01
  1494 + 1. 0.56460E+01 0.10182E+02 -0.43949E-01
  1495 + 1. 0.14026E+01 0.17923E+02 -0.39997E-01
  1496 + 1. 0.40139E+01 -0.19535E+02 -0.30328E-01
  1497 + 1. -0.12492E+02 0.74426E+01 -0.25239E-01
  1498 + 1. -0.99543E+01 0.48661E+01 -0.13476E-01
  1499 + 1. -0.78053E+00 -0.89605E+01 -0.10096E-01
  1500 + 1. 0.14702E+02 0.63516E+01 -0.53276E-02
  1501 + 1. 0.14684E+02 0.40336E+01 0.47004E-02
  1502 + 1. -0.64731E+01 0.14469E+02 0.95324E-02
  1503 + 1. -0.26692E+01 -0.10803E+02 0.14102E-01
  1504 + 1. 0.16602E+02 -0.60727E+01 0.26419E-01
  1505 + 1. 0.41675E+01 -0.12357E+02 0.28076E-01
  1506 + 1. 0.16387E+02 -0.16681E+01 0.36083E-01
  1507 + 1. 0.56278E+01 0.51874E+01 0.42367E-01
  1508 + 1. -0.66936E+01 -0.12553E+02 0.49625E-01
  1509 + 1. 0.18893E+02 0.49731E+01 0.56476E-01
  1510 + 1. 0.70405E+01 -0.96728E+01 0.62090E-01
  1511 + 1. -0.12676E+02 -0.76622E+01 0.73267E-01
  1512 + 1. 0.84926E+01 -0.17141E+02 0.77894E-01
  1513 + 1. -0.11639E+02 0.32626E+01 0.81661E-01
  1514 + 1. 0.17446E+02 0.63670E+01 0.87488E-01
  1515 + 1. 0.96043E+01 -0.10586E+02 0.98967E-01
  1516 + 1. 0.15326E+02 -0.12850E+02 0.10291E+00
  1517 + 1. 0.84668E+01 -0.38188E+01 0.10984E+00
  1518 + 1. -0.11203E+02 -0.39994E+01 0.11343E+00
  1519 + 1. 0.11963E+02 -0.13209E+02 0.12504E+00
  1520 + 1. -0.20386E+01 -0.57926E+01 0.13234E+00
  1521 + 1. 0.13374E+02 -0.56184E+01 0.13704E+00
  1522 + 1. -0.16889E+02 0.10610E+02 0.14223E+00
  1523 + 1. -0.13670E+02 0.56278E+01 0.14756E+00
  1524 + 1. 0.15705E+02 -0.86737E+01 0.15694E+00
  1525 + 1. -0.13724E+02 -0.39707E+01 0.16039E+00
  1526 + 1. 0.52382E+01 -0.39454E-01 0.17121E+00
  1527 + 1. 0.45448E+01 0.84802E+01 0.17757E+00
  1528 + 1. 0.16772E+02 0.10398E+01 0.18059E+00
  1529 + 1. 0.46765E+01 0.12161E+02 0.19258E+00
  1530 + 1. -0.12540E+02 0.14651E+02 0.19906E+00
  1531 + 1. -0.47360E+01 0.59210E+01 0.20148E+00
  1532 + 1. -0.11889E+01 0.12338E+02 0.20903E+00
  1533 + 1. -0.14397E+02 0.10859E+02 0.21533E+00
  1534 + 1. 0.11186E+02 0.41827E+01 0.22469E+00
  1535 + 1. 0.82061E+01 0.31823E+01 0.23281E+00
  1536 + 1. 0.13308E+02 0.10083E+02 0.23735E+00
  1537 + 1. -0.83480E+01 -0.97235E+01 0.24258E+00
  1538 + 1. -0.20571E+01 0.27983E+01 0.25096E+00
  1539 + 1. 0.11968E+02 0.79430E+01 0.25709E+00
  1540 + 1. -0.10474E+01 0.14338E+02 0.26271E+00
  1541 + 1. -0.23850E+01 0.90014E+01 0.27076E+00
  1542 + 1. -0.11748E+02 0.10275E+02 0.27330E+00
  1543 + 1. -0.53517E+01 0.13677E+01 0.28483E+00
  1544 + 1. 0.32592E+01 -0.69261E+01 0.28781E+00
  1545 + 1. -0.16411E+02 0.78020E+01 0.29849E+00
  1546 + 1. 0.11412E+01 -0.62580E+01 0.30330E+00
  1547 + 1. -0.15875E+02 -0.60014E+01 0.30698E+00
  1548 + 1. 0.10602E+02 0.58315E+00 0.31364E+00
  1549 + 1. -0.34922E+01 -0.16027E+02 0.32257E+00
  1550 + 1. -0.11390E+02 -0.16224E+02 0.33084E+00
  1551 + 1. 0.39195E+01 -0.16738E+02 0.33552E+00
  1552 + 1. -0.10326E+02 0.12999E+02 0.34264E+00
  1553 + 1. 0.73779E+01 0.15300E+02 0.35101E+00
  1554 + 1. -0.55932E+01 -0.14645E+02 0.35578E+00
  1555 + 1. -0.14737E+02 0.33560E+01 0.36240E+00
  1556 + 1. -0.60505E+01 -0.15094E+01 0.36755E+00
  1557 + 1. 0.36236E+01 0.66112E+01 0.37732E+00
  1558 + 1. 0.16798E+00 -0.12608E+02 0.38247E+00
  1559 + 1. 0.72871E+01 0.18490E+02 0.38790E+00
  1560 + 1. 0.16714E+02 0.43102E+01 0.39731E+00
  1561 + 1. 0.37126E+01 -0.23776E+01 0.40403E+00
  1562 + 1. -0.61330E+01 0.94868E+01 0.41019E+00
  1563 + 1. -0.76002E+01 -0.18203E+02 0.41765E+00
  1564 + 1. -0.63071E+01 0.12468E+02 0.42348E+00
  1565 + 1. -0.18381E+02 -0.68252E+01 0.43028E+00
  1566 + 1. 0.10681E+02 0.16787E+02 0.43453E+00
  1567 + 1. -0.19613E+02 -0.36885E+01 0.44030E+00
  1568 + 1. -0.32458E+00 0.55653E+01 0.44869E+00
  1569 + 1. 0.99011E+01 -0.13864E+02 0.45427E+00
  1570 + 1. 0.15091E+02 -0.44620E+01 0.46212E+00
  1571 + 1. -0.19899E+02 0.46211E+00 0.46907E+00
  1572 + 1. -0.10583E+01 -0.17987E+02 0.47645E+00
  1573 + 1. -0.99373E+01 -0.20810E+01 0.48502E+00
  1574 + 1. 0.42519E+01 0.26895E+01 0.49092E+00
  1575 + 1. -0.12426E+02 -0.56166E+01 0.49592E+00
  1576 + 1. 0.96419E+01 -0.22406E+01 0.50543E+00
  1577 + 1. 0.11276E+02 -0.49564E+01 0.51254E+00
  1578 + 1. -0.43035E+01 0.82712E+01 0.51951E+00
  1579 + 1. 0.87562E+01 0.57190E+01 0.52255E+00
  1580 + 1. -0.98103E+01 -0.80439E+01 0.52973E+00
  1581 + 1. 0.93003E+00 0.78673E+01 0.53374E+00
  1582 + 1. 0.17197E+02 -0.40408E+01 0.54489E+00
  1583 + 1. -0.76030E+01 -0.63109E+01 0.54785E+00
  1584 + 1. -0.19658E+01 0.16518E+02 0.55657E+00
  1585 + 1. -0.77571E+01 0.15939E+02 0.56500E+00
  1586 + 1. -0.47939E+01 -0.12097E+02 0.57170E+00
  1587 + 1. -0.96747E+01 0.69260E+01 0.57331E+00
  1588 + 1. 0.25352E+01 -0.99273E+01 0.58339E+00
  1589 + 1. -0.77733E+01 0.18056E+02 0.58819E+00
  1590 + 1. 0.10591E+02 -0.16850E+02 0.59576E+00
  1591 + 1. 0.69011E+01 0.13546E+01 0.60206E+00
  1592 + 1. -0.49182E+01 -0.85008E+01 0.61193E+00
  1593 + 1. 0.85278E+01 0.13440E+02 0.61435E+00
  1594 + 1. 0.18312E+02 -0.14200E+01 0.62641E+00
  1595 + 1. -0.14728E+02 0.64829E+00 0.63167E+00
  1596 + 1. 0.20568E+01 0.19765E+02 0.63357E+00
  1597 + 1. -0.14391E+02 -0.14058E+01 0.64521E+00
  1598 + 1. -0.93148E+01 -0.13763E+02 0.65280E+00
  1599 + 1. -0.57821E+01 0.19136E+02 0.65763E+00
  1600 + 1. 0.82697E+01 0.76702E+01 0.66629E+00
  1601 + 1. 0.10761E+01 0.39150E+00 0.67038E+00
  1602 + 1. 0.47870E+01 -0.47635E+01 0.67600E+00
  1603 + 1. 0.17081E+01 0.13021E+02 0.68262E+00
  1604 + 1. 0.12251E+02 -0.96847E+01 0.68914E+00
  1605 + 1. -0.19579E+02 0.34247E+01 0.69628E+00
  1606 + 1. -0.15279E+02 -0.96918E+01 0.70511E+00
  1607 + 1. -0.17988E+01 0.70343E+01 0.71293E+00
  1608 + 1. -0.76158E+01 0.90402E+00 0.71591E+00
  1609 + 1. -0.13343E+02 -0.14286E+02 0.72559E+00
  1610 + 1. -0.77009E+01 0.45528E+01 0.73123E+00
  1611 + 1. -0.11897E+02 -0.96075E+01 0.73896E+00
  1612 + 1. 0.13877E+02 -0.79018E+01 0.74452E+00
  1613 + 1. -0.17147E+02 0.51800E+01 0.74926E+00
  1614 + 1. 0.76375E+01 -0.92609E+00 0.75732E+00
  1615 + 1. 0.13576E+02 -0.13376E+01 0.76306E+00
  1616 + 1. -0.27824E+01 -0.23441E+01 0.76765E+00
  1617 + 1. 0.71138E+01 -0.11667E+02 0.77511E+00
  1618 + 1. 0.19086E+02 -0.54367E+01 0.78346E+00
  1619 + 1. -0.52939E+00 0.10322E+02 0.79140E+00
  1620 + 1. 0.21300E+01 -0.19440E+02 0.79403E+00
  1621 + 1. 0.30733E+01 0.10226E+02 0.80210E+00
  1622 + 1. -0.54885E+01 -0.35066E+01 0.81181E+00
  1623 + 1. 0.94158E+01 0.93509E+01 0.81756E+00
  1624 + 1. -0.39287E+01 0.16802E+02 0.82515E+00
  1625 + 1. -0.24279E+01 -0.11650E+00 0.82947E+00
  1626 + 1. -0.84699E+01 0.12344E+02 0.83856E+00
  1627 + 1. 0.36541E+01 0.15887E+02 0.84347E+00
  1628 + 1. -0.24727E+01 0.19486E+02 0.84804E+00
  1629 + 1. -0.99432E+01 -0.11857E+02 0.85713E+00
  1630 + 1. 0.29110E+01 -0.13692E+02 0.86305E+00
  1631 + 1. -0.85051E+01 -0.16421E+02 0.87231E+00
  1632 + 1. 0.12330E+02 0.24014E+01 0.87905E+00
  1633 + 1. -0.78797E+00 -0.34643E+01 0.88183E+00
  1634 + 1. -0.15572E+02 -0.31422E+01 0.89276E+00
  1635 + 1. -0.14138E+02 0.88907E+01 0.89556E+00
  1636 + 1. 0.12109E+02 0.59059E+01 0.90206E+00
  1637 + 1. 0.17329E+02 0.97619E+01 0.91131E+00
  1638 + 1. -0.23017E+01 -0.14390E+02 0.91385E+00
  1639 + 1. -0.98075E+01 0.93410E+01 0.92630E+00
  1640 + 1. 0.56942E+01 -0.70238E+01 0.93288E+00
  1641 + 1. 0.43256E+01 -0.86887E+01 0.93642E+00
  1642 + 1. -0.11443E+02 -0.64201E+00 0.94258E+00
  1643 + 1. -0.56014E+01 0.34083E+01 0.94874E+00
  1644 + 1. 0.15753E+02 0.78257E+01 0.95518E+00
  1645 + 1. -0.11281E+02 0.16499E+02 0.96655E+00
  1646 + 1. -0.54511E+01 -0.19167E+02 0.96988E+00
  1647 + 1. 0.14935E+02 0.58566E+00 0.97460E+00
  1648 + 1. 0.11784E+02 0.13020E+02 0.98134E+00
  1649 + 1. 0.65673E+01 0.13147E+02 0.98825E+00
  1650 + 1. 0.56804E+01 -0.17762E+02 0.99900E+00
  1651 + 1. -0.17999E+02 0.13659E+00 0.10065E+01
  1652 + 1. -0.78856E+01 0.81557E+01 0.10088E+01
  1653 + 1. 0.95583E+01 -0.65313E+01 0.10147E+01
  1654 + 1. -0.25175E+01 0.11051E+02 0.10211E+01
  1655 + 1. 0.15930E+02 -0.11032E+02 0.10324E+01
  1656 + 1. -0.17718E+02 0.22984E+01 0.10383E+01
  1657 + 1. 0.46983E+00 -0.16496E+02 0.10409E+01
  1658 + 1. 0.50458E+01 -0.14813E+02 0.10469E+01
  1659 + 1. -0.64371E+01 -0.10822E+02 0.10540E+01
  1660 + 1. -0.54238E+01 -0.63352E+01 0.10631E+01
  1661 + 1. 0.69438E+00 -0.15534E+01 0.10710E+01
  1662 + 1. -0.14929E+02 -0.12558E+02 0.10792E+01
  1663 + 1. -0.12029E+02 0.15196E+01 0.10853E+01
  1664 + 1. 0.34185E+01 0.47143E+01 0.10900E+01
  1665 + 1. 0.14771E+02 0.11376E+02 0.10988E+01
  1666 + 1. 0.62356E+01 0.16805E+02 0.11009E+01
  1667 + 1. -0.15569E+02 0.12364E+02 0.11113E+01
  1668 + 1. 0.87100E+01 0.17163E+02 0.11165E+01
  1669 + 1. 0.24450E+01 -0.46926E+01 0.11262E+01
  1670 + 1. -0.31581E+00 0.18132E+02 0.11310E+01
  1671 + 1. 0.88008E+01 -0.89787E+01 0.11397E+01
  1672 + 1. 0.79135E+01 -0.13611E+02 0.11428E+01
  1673 + 1. 0.60332E+01 0.33627E+01 0.11525E+01
  1674 + 1. -0.38089E+01 -0.17881E+02 0.11595E+01
  1675 + 1. 0.49042E+01 -0.10614E+02 0.11624E+01
  1676 + 1. 0.12918E+02 -0.36282E+01 0.11676E+01
  1677 + 1. 0.26228E+01 0.16562E+01 0.11736E+01
  1678 + 1. 0.37839E+01 0.18748E+02 0.11836E+01
  1679 + 1. -0.16309E+02 -0.11938E+01 0.11882E+01
  1680 + 1. -0.49425E+01 0.10941E+02 0.11960E+01
  1681 + 1. 0.19805E+02 -0.26366E+01 0.12049E+01
  1682 + 1. -0.34991E+01 -0.68905E+01 0.12090E+01
  1683 + 1. 0.16159E+01 0.15915E+02 0.12181E+01
  1684 + 1. 0.71639E+01 -0.16149E+02 0.12221E+01
  1685 + 1. 0.13461E+02 0.14559E+02 0.12326E+01
  1686 + 1. 0.49150E+01 0.14292E+02 0.12358E+01
  1687 + 1. 0.17331E+02 -0.77288E+01 0.12429E+01
  1688 + 1. -0.11464E+02 0.56796E+01 0.12525E+01
  1689 + 1. 0.72258E+01 0.96775E+01 0.12554E+01
  1690 + 1. -0.57305E+01 0.15956E+02 0.12654E+01
  1691 + 1. 0.13142E+02 -0.11891E+02 0.12732E+01
  1692 + 1. 0.19154E+02 0.36278E+00 0.12783E+01
  1693 + 1. 0.99251E+01 0.22224E+01 0.12850E+01
  1694 + 1. -0.73325E+01 -0.83213E+01 0.12920E+01
  1695 + 1. 0.10015E+02 0.14660E+02 0.12959E+01
  1696 + 1. 0.13947E+02 -0.14338E+02 0.13037E+01
  1697 + 1. -0.93093E+01 0.16981E+02 0.13082E+01
  1698 + 1. 0.18377E+02 0.76569E+01 0.13149E+01
  1699 + 1. -0.10035E+01 -0.11205E+02 0.13263E+01
  1700 + 1. -0.37092E+01 0.22726E+01 0.13315E+01
  1701 + 1. 0.27230E+01 0.82708E+01 0.13399E+01
  1702 + 1. 0.64214E+01 0.71747E+01 0.13445E+01
  1703 + 1. -0.99934E+01 0.17796E+01 0.13495E+01
  1704 + 1. -0.14186E+02 -0.62746E+01 0.13574E+01
  1705 + 1. 0.20980E+01 -0.11830E+02 0.13626E+01
  1706 + 1. 0.10811E+02 0.11201E+02 0.13695E+01
  1707 + 1. -0.30741E+01 0.56367E+01 0.13734E+01
  1708 + 1. -0.12159E+02 -0.27735E+01 0.13858E+01
  1709 + 1. -0.28163E+01 0.13779E+02 0.13903E+01
  1710 + 1. 0.12134E+02 -0.69284E+01 0.13964E+01
  1711 + 1. 0.14227E+01 -0.82672E+01 0.14002E+01
  1712 + 1. 0.43870E+00 0.25745E+01 0.14111E+01
  1713 + 1. -0.15291E+02 0.62942E+01 0.14175E+01
  1714 + 1. 0.15135E+02 -0.24375E+01 0.14210E+01
  1715 + 1. 0.55007E+01 -0.22459E+01 0.14268E+01
  1716 + 1. 0.68673E+01 -0.53113E+01 0.14375E+01
  1717 + 1. 0.19285E+02 0.30074E+01 0.14430E+01
  1718 + 1. -0.16757E+02 -0.83185E+01 0.14527E+01
  1719 + 1. 0.91503E+01 -0.15505E+02 0.14546E+01
  1720 + 1. 0.15815E+02 0.24880E+01 0.14623E+01
  1721 + 1. -0.19501E+01 -0.82840E+01 0.14682E+01
  1722 + 1. -0.19047E+02 -0.18416E+01 0.14775E+01
  1723 + 1. -0.12054E+02 -0.12059E+02 0.14848E+01
  1724 + 1. 0.57592E+01 -0.12983E+02 0.14907E+01
  1725 + 1. -0.12987E+02 0.37027E+01 0.14936E+01
  1726 + 1. -0.11983E+02 0.86789E+01 0.15031E+01
  1727 + 1. -0.17574E+02 -0.51030E+01 0.15132E+01
  1728 + 1. -0.12726E+02 0.11681E+02 0.15169E+01
  1729 + 1. -0.41805E+01 -0.13748E+02 0.15211E+01
  1730 + 1. -0.90869E+01 0.14625E+02 0.15267E+01
  1731 + 1. -0.16551E+02 -0.11091E+02 0.15350E+01
  1732 + 1. -0.88997E+01 -0.46846E+00 0.15461E+01
  1733 + 1. -0.14852E+01 -0.16223E+02 0.15490E+01
  1734 + 1. 0.13469E+02 0.76462E+01 0.15574E+01
  1735 + 1. -0.55261E+01 -0.16406E+02 0.15645E+01
  1736 + 1. 0.99083E+01 -0.12043E+02 0.15680E+01
  1737 + 1. -0.67586E+01 0.62549E+01 0.15752E+01
  1738 + 1. -0.91701E+01 -0.36830E+01 0.15860E+01
  1739 + 1. 0.11841E+02 -0.60123E+00 0.15932E+01
  1740 + 1. -0.37880E+01 -0.10046E+02 0.15939E+01
  1741 + 1. -0.45807E+01 -0.14216E+00 0.16047E+01
  1742 + 1. 0.81308E+00 -0.14388E+02 0.16110E+01
  1743 + 1. -0.73735E+01 0.10761E+02 0.16192E+01
  1744 + 1. -0.10763E+02 -0.65571E+01 0.16228E+01
  1745 + 1. -0.19102E+02 0.56933E+01 0.16281E+01
  1746 + 1. 0.23160E+01 -0.16003E+02 0.16351E+01
  1747 + 1. -0.29761E+01 -0.48063E+01 0.16414E+01
  1748 + 1. -0.17747E+02 0.84244E+01 0.16521E+01
  1749 + 1. 0.14044E+02 0.51623E+01 0.16543E+01
  1750 + 1. -0.67271E+00 -0.65840E+01 0.16619E+01
  1751 + 1. -0.27556E+01 -0.19720E+02 0.16690E+01
  1752 + 1. 0.35141E+00 -0.18987E+02 0.16755E+01
  1753 + 1. -0.71019E+01 -0.13749E+02 0.16811E+01
  1754 + 1. -0.15064E+01 0.43280E+01 0.16894E+01
  1755 + 1. 0.11589E+02 -0.15148E+02 0.16980E+01
  1756 + 1. -0.10419E+02 0.11366E+02 0.17046E+01
  1757 + 1. 0.20803E+01 0.60973E+01 0.17093E+01
  1758 + 1. 0.10244E+02 0.74750E+01 0.17177E+01
  1759 + 1. 0.16191E+02 0.58225E+01 0.17257E+01
  1760 + 1. 0.14648E+02 -0.60433E+01 0.17288E+01
  1761 + 1. 0.12063E+02 0.94930E+01 0.17335E+01
  1762 + 1. -0.28373E+01 -0.12206E+02 0.17427E+01
  1763 + 1. -0.13534E+02 -0.10731E+02 0.17483E+01
  1764 + 1. -0.13701E+02 0.13663E+02 0.17559E+01
  1765 + 1. -0.50876E-01 0.13354E+02 0.17606E+01
  1766 + 1. -0.11385E+02 0.13918E+02 0.17710E+01
  1767 + 1. 0.95938E+01 0.42007E+01 0.17792E+01
  1768 + 1. 0.95956E+01 -0.46837E+01 0.17847E+01
  1769 + 1. 0.96835E+01 -0.41425E+00 0.17924E+01
  1770 + 1. 0.10601E+01 0.11475E+02 0.17957E+01
  1771 + 1. 0.82088E+01 0.11641E+02 0.18014E+01
  1772 + 1. 0.38578E+01 -0.26728E+00 0.18131E+01
  1773 + 1. 0.39566E+01 -0.18422E+02 0.18182E+01
  1774 + 1. -0.15971E+02 0.99680E+01 0.18233E+01
  1775 + 1. 0.17262E+02 -0.38195E-01 0.18283E+01
  1776 + 1. 0.10516E+02 -0.81615E+01 0.18398E+01
  1777 + 1. -0.99651E+01 0.37746E+01 0.18419E+01
  1778 + 1. -0.76116E+01 -0.20816E+01 0.18474E+01
  1779 + 1. -0.68471E+00 0.24914E+00 0.18563E+01
  1780 + 1. 0.58651E+01 0.11111E+02 0.18630E+01
  1781 + 1. -0.70755E+01 -0.45879E+01 0.18726E+01
  1782 + 1. -0.78266E+01 0.26593E+01 0.18754E+01
  1783 + 1. -0.58486E+01 0.13975E+02 0.18841E+01
  1784 + 1. 0.14762E+02 -0.94847E+01 0.18887E+01
  1785 + 1. 0.14626E+02 0.93362E+01 0.18980E+01
  1786 + 1. -0.10240E+02 -0.96876E+01 0.19055E+01
  1787 + 1. 0.73287E+01 0.51589E+01 0.19082E+01
  1788 + 1. -0.81457E+01 -0.11662E+02 0.19134E+01
  1789 + 1. -0.10723E+02 -0.14903E+02 0.19228E+01
  1790 + 1. -0.13279E+02 -0.82716E+01 0.19286E+01
  1791 + 1. -0.15518E+02 0.20516E+01 0.19386E+01
  1792 + 1. 0.45182E+00 0.19877E+02 0.19447E+01
  1793 + 1. 0.18141E+02 0.49964E+01 0.19506E+01
  1794 + 1. 0.41057E+01 -0.61912E+01 0.19597E+01
  1795 + 1. -0.64284E+00 0.81459E+01 0.19604E+01
  1796 + 1. 0.74624E+01 -0.73081E+01 0.19713E+01
  1797 + 1. 0.36834E+01 0.12119E+02 0.19753E+01
  1798 + 1. 0.84213E+01 -0.17775E+02 0.19826E+01
  1799 + 1. -0.17303E+02 -0.31720E+01 0.19870E+01
  1800 + 1. 0.61340E+00 -0.44335E+01 0.19989E+01
  1801 + 1. -0.13379E+02 0.64149E+01 0.20002E+01
  1802 + 1. 0.21608E+01 -0.28130E+01 0.20091E+01
  1803 + 1. 0.16741E+01 0.40584E+01 0.20198E+01
  1804 + 1. 0.76130E+01 -0.30041E+01 0.20206E+01
  1805 + 1. 0.45363E+01 0.94099E+01 0.20279E+01
  1806 + 1. 0.79086E+01 0.23602E+01 0.20396E+01
  1807 + 1. -0.10022E+02 -0.17278E+02 0.20415E+01
  1808 + 1. -0.15615E+02 0.41148E+01 0.20477E+01
  1809 + 1. 0.62576E+01 0.74038E-01 0.20568E+01
  1810 + 1. 0.17768E+02 -0.28617E+01 0.20656E+01
  1811 + 1. -0.19792E+02 0.16767E+01 0.20699E+01
  1812 + 1. -0.40597E+01 0.18756E+02 0.20743E+01
  1813 + 1. 0.11713E+02 0.16013E+02 0.20841E+01
  1814 + 1. 0.62725E+01 -0.91195E+01 0.20898E+01
  1815 + 1. 0.13013E+02 0.11660E+02 0.20935E+01
  1816 + 1. -0.87368E+00 -0.13196E+02 0.21036E+01
  1817 + 1. 0.31165E+01 0.14186E+02 0.21126E+01
  1818 + 1. 0.16579E+02 -0.51297E+01 0.21141E+01
  1819 + 1. -0.64979E+01 0.17788E+02 0.21213E+01
  1820 + 1. -0.34746E+01 0.91649E+01 0.21315E+01
  1821 + 1. -0.13866E+02 -0.36620E+01 0.21335E+01
  1822 + 1. -0.40996E+00 0.15515E+02 0.21412E+01
  1823 + 1. 0.24411E+01 0.17578E+02 0.21515E+01
  1824 + 1. -0.61170E+01 0.80648E+01 0.21547E+01
  1825 + 1. 0.14862E+02 0.13281E+02 0.21621E+01
  1826 + 1. 0.11065E+02 -0.10428E+02 0.21696E+01
  1827 + 1. -0.43434E+01 -0.22662E+01 0.21748E+01
  1828 + 1. -0.10932E+01 -0.17424E+01 0.21839E+01
  1829 + 1. -0.15141E+01 0.22118E+01 0.21916E+01
  1830 + 1. 0.98961E-01 -0.95634E+01 0.21949E+01
  1831 + 1. 0.17051E+02 -0.94867E+01 0.22034E+01
  1832 + 1. 0.48711E+01 0.60535E+01 0.22128E+01
  1833 + 1. -0.89493E+01 0.59041E+01 0.22186E+01
  1834 + 1. 0.14896E+02 -0.12457E+02 0.22259E+01
  1835 + 1. 0.13426E+02 0.13655E+01 0.22310E+01
  1836 + 1. -0.11064E+02 -0.43774E+01 0.22391E+01
  1837 + 1. 0.12188E+02 0.40600E+01 0.22444E+01
  1838 + 1. 0.11533E+02 -0.25535E+01 0.22476E+01
  1839 + 1. -0.68599E+01 -0.14743E+00 0.22539E+01
  1840 + 1. 0.54741E+01 0.18747E+02 0.22623E+01
  1841 + 1. -0.19883E+01 0.17970E+02 0.22731E+01
  1842 + 1. -0.13040E+02 0.23678E+00 0.22758E+01
  1843 + 1. -0.40738E+01 0.15378E+02 0.22845E+01
  1844 + 1. -0.86138E+01 -0.60501E+01 0.22878E+01
  1845 + 1. 0.78804E+01 0.15689E+02 0.22977E+01
  1846 + 1. 0.14115E+00 0.61610E+01 0.23007E+01
  1847 + 1. 0.16260E+02 0.10739E+02 0.23092E+01
  1848 + 1. 0.48490E+01 0.18184E+01 0.23151E+01
  1849 + 1. -0.65921E+01 -0.18126E+02 0.23213E+01
  1850 + 1. -0.41149E+01 0.12483E+02 0.23288E+01
  1851 + 1. -0.16083E+02 -0.65537E+01 0.23397E+01
  1852 + 1. 0.77332E+01 -0.10577E+02 0.23431E+01
  1853 + 1. -0.44999E+01 0.45343E+01 0.23499E+01
  1854 + 1. 0.12844E+01 -0.64655E+01 0.23588E+01
  1855 + 1. -0.12675E+01 0.11873E+02 0.23655E+01
  1856 + 1. -0.18389E+01 -0.18041E+02 0.23714E+01
  1857 + 1. 0.10845E+01 0.92539E+01 0.23748E+01
  1858 + 1. 0.74691E+01 0.18367E+02 0.23857E+01
  1859 + 1. 0.39308E+01 -0.11917E+02 0.23913E+01
  1860 + 1. -0.15241E+02 0.80387E+01 0.23955E+01
  1861 + 1. 0.50544E+01 -0.16291E+02 0.24003E+01
  1862 + 1. -0.43407E+01 0.70176E+01 0.24107E+01
  1863 + 1. -0.10434E+02 -0.18153E+01 0.24145E+01
  1864 + 1. 0.11349E+02 0.12561E+01 0.24214E+01
  1865 + 1. -0.10064E+02 0.78412E+01 0.24296E+01
  1866 + 1. -0.18592E+02 -0.66910E+01 0.24375E+01
  1867 + 1. -0.55864E+01 -0.78730E+01 0.24416E+01
  1868 + 1. -0.57615E+01 0.20131E+01 0.24482E+01
  1869 + 1. -0.17875E+02 0.38405E+01 0.24580E+01
  1870 + 1. 0.84474E+01 0.86212E+01 0.24600E+01
  1871 + 1. 0.11186E+02 -0.13335E+02 0.24685E+01
  1872 + 1. -0.55701E+01 -0.12473E+02 0.24786E+01
  1873 + 1. 0.13016E+02 -0.86189E+01 0.24805E+01
  1874 + 1. 0.19542E+01 0.18663E+00 0.24903E+01
  1875 + 1. -0.48594E+01 -0.47839E+01 0.24950E+01
  1876 + 1. 0.31858E+01 -0.81132E+01 0.25048E+01
  1877 + 1. 0.14481E+02 -0.84746E+00 0.25132E+01
  1878 + 1. 0.65496E+01 -0.18776E+02 0.25169E+01
  1879 + 1. 0.18950E+02 -0.12457E+01 0.25218E+01
  1880 + 1. -0.13383E+02 0.10000E+02 0.25303E+01
  1881 + 1. 0.95009E+01 0.13040E+02 0.25362E+01
  1882 + 1. -0.37418E+01 -0.16274E+02 0.25429E+01
  1883 + 1. -0.72772E+01 0.15518E+02 0.25482E+01
  1884 + 1. 0.53940E+01 -0.41554E+01 0.25545E+01
  1885 + 1. 0.17853E+02 0.19790E+01 0.25620E+01
  1886 + 1. -0.12593E+02 0.15500E+02 0.25690E+01
  1887 + 1. 0.11761E+02 -0.52701E+01 0.25755E+01
  1888 + 1. -0.13327E+02 -0.13437E+02 0.25835E+01
  1889 + 1. -0.19452E+02 -0.43408E+01 0.25932E+01
  1890 + 1. -0.65222E+01 0.41486E+01 0.25954E+01
  1891 + 1. -0.12752E+02 -0.55963E+01 0.26010E+01
  1892 + 1. 0.48868E+01 0.16080E+02 0.26092E+01
  1893 + 1. 0.36768E+01 -0.14520E+02 0.26191E+01
  1894 + 1. 0.91161E+01 0.60675E+01 0.26247E+01
  1895 + 1. -0.94499E+01 -0.13474E+02 0.26279E+01
  1896 + 1. -0.11019E+02 0.43284E+00 0.26394E+01
  1897 + 1. -0.76934E+01 0.13078E+02 0.26423E+01
  1898 + 1. -0.14997E+02 -0.20535E+01 0.26506E+01
  1899 + 1. 0.19127E+02 -0.46016E+01 0.26534E+01
  1900 + 1. 0.48259E+01 0.39753E+01 0.26601E+01
  1901 + 1. -0.55020E+01 -0.99609E+01 0.26691E+01
  1902 + 1. -0.17068E+02 0.58466E+01 0.26753E+01
  1903 + 1. 0.15359E+02 0.40272E+01 0.26854E+01
  1904 + 1. 0.16768E+02 0.75197E+01 0.26925E+01
  1905 + 1. -0.15449E+02 -0.92488E+01 0.26976E+01
  1906 + 1. 0.12123E+02 0.14075E+02 0.27036E+01
  1907 + 1. -0.78629E+01 -0.15718E+02 0.27088E+01
  1908 + 1. -0.91617E+01 0.99868E+01 0.27164E+01
  1909 + 1. -0.22572E+01 0.69578E+01 0.27244E+01
  1910 + 1. -0.15600E+02 -0.11104E+00 0.27297E+01
  1911 + 1. 0.20344E+01 -0.10319E+02 0.27347E+01
  1912 + 1. 0.20796E+01 -0.18884E+02 0.27410E+01
  1913 + 1. -0.17455E+02 0.12836E+01 0.27478E+01
  1914 + 1. -0.21358E+01 -0.98918E+01 0.27536E+01
  1915 + 1. 0.77904E+01 -0.10075E+01 0.27642E+01
  1916 + 1. -0.12964E+01 -0.45846E+01 0.27708E+01
  1917 + 1. 0.42583E+00 0.17228E+02 0.27766E+01
  1918 + 1. 0.14968E+02 -0.39824E+01 0.27842E+01
  1919 + 1. 0.15987E+02 -0.74988E+01 0.27900E+01
  1920 + 1. 0.18544E+02 -0.70933E+01 0.27985E+01
  1921 + 1. -0.79387E+01 -0.97576E+01 0.28051E+01
  1922 + 1. -0.53591E+01 -0.14809E+02 0.28105E+01
  1923 + 1. 0.62050E+01 0.14081E+02 0.28188E+01
  1924 + 1. -0.46828E+01 -0.19225E+02 0.28258E+01
  1925 + 1. -0.28433E+01 0.57114E+00 0.28305E+01
  1926 + 1. -0.88330E+00 0.99367E+01 0.28342E+01
  1927 + 1. -0.10612E+02 0.15422E+02 0.28439E+01
  1928 + 1. 0.20058E+01 -0.13316E+02 0.28467E+01
  1929 + 1. 0.11445E+02 0.59065E+01 0.28546E+01
  1930 + 1. -0.10640E+02 -0.11592E+02 0.28608E+01
  1931 + 1. 0.71881E+01 -0.14586E+02 0.28694E+01
  1932 + 1. -0.18809E+02 -0.33211E+00 0.28767E+01
  1933 + 1. -0.15019E+02 0.11504E+02 0.28857E+01
  1934 + 1. 0.97087E+01 0.10453E+02 0.28926E+01
  1935 + 1. 0.82465E+01 -0.12651E+02 0.28951E+01
  1936 + 1. -0.15697E+02 -0.46430E+01 0.29006E+01
  1937 + 1. 0.99166E+01 -0.16735E+02 0.29094E+01
  1938 + 1. 0.14821E+02 0.70569E+01 0.29161E+01
  1939 + 1. -0.21396E+01 0.19875E+02 0.29260E+01
  1940 + 1. 0.62990E+01 0.90152E+01 0.29321E+01
  1941 + 1. 0.52390E+00 -0.17279E+02 0.29369E+01
  1942 + 1. 0.28061E+00 -0.11455E+02 0.29439E+01
  1943 + 1. 0.13198E+02 -0.10737E+02 0.29480E+01
  1944 + 1. -0.18494E+01 -0.14729E+02 0.29568E+01
  1945 + 1. -0.60073E+01 0.11908E+02 0.29665E+01
  1946 + 1. 0.15733E+02 0.97219E+00 0.29675E+01
  1947 + 1. -0.15228E+02 -0.11621E+02 0.29779E+01
  1948 + 1. -0.11354E+02 0.24404E+01 0.29850E+01
  1949 + 1. 0.81726E+01 -0.56397E+01 0.29873E+01
  1950 + 1. 0.95693E+01 -0.20185E+01 0.29938E+01
  1951 + 1. -0.19876E+01 0.14623E+02 0.30034E+01
  1952 + 1. 0.27537E+01 0.19773E+02 0.30078E+01
  1953 + 1. -0.11882E+02 0.45864E+01 0.30166E+01
  1954 + 1. 0.28131E+01 0.10155E+02 0.30265E+01
  1955 + 1. -0.12530E+02 -0.15239E+02 0.30332E+01
  1956 + 1. 0.10098E+02 -0.65581E+01 0.30386E+01
  1957 + 1. -0.90779E+01 0.11031E+01 0.30418E+01
  1958 + 1. -0.32689E+01 -0.79323E+01 0.30490E+01
  1959 + 1. 0.33186E+01 0.70269E+01 0.30573E+01
  1960 + 1. -0.11569E+02 -0.80732E+01 0.30621E+01
  1961 + 1. 0.60583E+01 -0.63004E+01 0.30710E+01
  1962 + 1. -0.62785E+01 -0.29723E+01 0.30755E+01
  1963 + 1. 0.21201E+01 0.23203E+01 0.30840E+01
  1964 + 1. 0.26479E+01 -0.50621E+01 0.30920E+01
  1965 + 1. 0.13124E+02 -0.13727E+02 0.30960E+01
  1966 + 1. -0.80884E+01 0.78197E+01 0.31011E+01
  1967 + 1. 0.13312E+01 0.14733E+02 0.31070E+01
  1968 + 1. -0.13106E+02 0.80749E+01 0.31149E+01
  1969 + 1. 0.43977E+01 -0.10069E+02 0.31219E+01
  1970 + 1. 0.13356E+02 -0.24245E+01 0.31330E+01
  1971 + 1. 0.19854E+02 0.11587E+01 0.31337E+01
  1972 + 1. 0.15841E+02 -0.10885E+02 0.31444E+01
  1973 + 1. -0.83532E+01 0.17922E+02 0.31475E+01
  1974 + 1. 0.13449E+02 -0.67740E+01 0.31564E+01
  1975 + 1. 0.10144E+02 0.16785E+02 0.31627E+01
  1976 + 1. 0.93468E+01 0.13062E+01 0.31723E+01
  1977 + 1. 0.86329E+01 -0.86652E+01 0.31765E+01
  1978 + 1. -0.85711E+01 -0.78868E+01 0.31820E+01
  1979 + 1. 0.50200E+00 -0.10723E+01 0.31893E+01
  1980 + 1. -0.13357E+02 0.25404E+01 0.31999E+01
  1981 + 1. -0.12382E+02 -0.14741E+01 0.32064E+01
  1982 + 1. -0.51129E+01 0.97384E+01 0.32096E+01
  1983 + 1. -0.96108E+01 0.12566E+02 0.32196E+01
  1984 + 1. 0.21073E+01 0.12568E+02 0.32235E+01
  1985 + 1. -0.26028E+01 -0.26405E+01 0.32274E+01
  1986 + 1. -0.22651E+00 0.43610E+01 0.32362E+01
  1987 + 1. 0.93359E+01 -0.14602E+02 0.32405E+01
  1988 + 1. 0.50355E+01 -0.12255E+01 0.32488E+01
  1989 + 1. -0.17168E+02 -0.10163E+02 0.32544E+01
  1990 + 1. 0.16435E+02 -0.12161E+01 0.32649E+01
  1991 + 1. 0.11286E+02 0.11891E+02 0.32689E+01
  1992 + 1. -0.86888E+00 -0.19865E+02 0.32787E+01
  1993 + 1. -0.11804E+02 0.12386E+02 0.32816E+01
  1994 + 1. -0.84513E+01 -0.18010E+02 0.32871E+01
  1995 + 1. 0.18722E+02 0.67674E+01 0.32952E+01
  1996 + 1. -0.66976E+01 -0.61500E+01 0.33031E+01
  1997 + 1. -0.44618E+01 0.17063E+02 0.33103E+01
  1998 + 1. -0.14171E+02 -0.68801E+01 0.33195E+01
  1999 + 1. 0.94226E+01 0.14919E+02 0.33221E+01
  2000 + 1. -0.11480E+02 0.99443E+01 0.33306E+01
  2001 + 1. -0.34928E+01 0.24126E+01 0.33398E+01
  2002 + 1. 0.19069E+00 -0.15341E+02 0.33433E+01
  2003 + 1. 0.11446E+02 0.84671E+01 0.33469E+01
  2004 + 1. 0.68542E+01 0.67636E+01 0.33572E+01
  2005 + 1. -0.71807E-01 -0.77101E+01 0.33610E+01
  2006 + 1. 0.10614E+02 0.30148E+01 0.33719E+01
  2007 + 1. -0.32618E+01 -0.58775E+01 0.33775E+01
  2008 + 1. -0.38065E+01 -0.10974E+02 0.33828E+01
  2009 + 1. -0.85089E+01 -0.30943E+01 0.33873E+01
  2010 + 1. 0.54609E+01 -0.13576E+02 0.33964E+01
  2011 + 1. -0.18621E+02 0.69901E+01 0.34041E+01
  2012 + 1. 0.35582E+01 -0.17216E+02 0.34110E+01
  2013 + 1. -0.12092E+02 -0.10155E+02 0.34137E+01
  2014 + 1. 0.79815E+01 0.39831E+01 0.34257E+01
  2015 + 1. 0.72104E+01 0.10749E+02 0.34307E+01
  2016 + 1. 0.64899E+01 -0.11772E+02 0.34354E+01
  2017 + 1. -0.16964E+02 -0.80348E+01 0.34422E+01
  2018 + 1. 0.35876E+01 -0.28444E+01 0.34523E+01
  2019 + 1. 0.49800E-01 0.13609E+01 0.34560E+01
  2020 + 1. -0.16802E+02 0.89484E+01 0.34616E+01
  2021 + 1. 0.14706E+02 0.11669E+02 0.34699E+01
  2022 + 1. 0.19592E+02 0.38912E+01 0.34780E+01
  2023 + 1. -0.19786E+02 -0.19731E+01 0.34826E+01
  2024 + 1. -0.14756E+02 0.55716E+01 0.34882E+01
  2025 + 1. -0.87913E+01 -0.90671E+00 0.34998E+01
  2026 + 1. -0.97784E+01 -0.15831E+02 0.35060E+01
  2027 + 1. -0.88465E+01 0.37619E+01 0.35103E+01
  2028 + 1. 0.46353E+01 0.11183E+02 0.35133E+01
  2029 + 1. 0.71258E+01 -0.16597E+02 0.35233E+01
  2030 + 1. -0.27136E+01 0.44191E+01 0.35292E+01
  2031 + 1. -0.17576E+02 -0.52954E+01 0.35363E+01
  2032 + 1. 0.15992E+02 0.91820E+01 0.35415E+01
  2033 + 1. -0.34370E+01 -0.12944E+02 0.35511E+01
  2034 + 1. 0.96474E+01 -0.10917E+02 0.35570E+01
  2035 + 1. 0.11201E+02 -0.97363E+00 0.35660E+01
  2036 + 1. 0.69128E+01 0.14835E+01 0.35693E+01
  2037 + 1. 0.13648E+02 0.85810E+01 0.35760E+01
  2038 + 1. -0.58314E+01 -0.16597E+02 0.35814E+01
  2039 + 1. -0.10112E+02 -0.64320E+01 0.35901E+01
  2040 + 1. -0.77932E+01 -0.12691E+02 0.35969E+01
  2041 + 1. -0.16346E+02 0.29773E+01 0.36009E+01
  2042 + 1. 0.90604E+01 -0.38896E+01 0.36118E+01
  2043 + 1. -0.66577E+01 0.62703E+01 0.36147E+01
  2044 + 1. -0.76907E+01 0.11004E+02 0.36226E+01
  2045 + 1. -0.17286E+02 -0.17338E+01 0.36286E+01
  2046 + 1. 0.39318E+00 -0.31110E+01 0.36366E+01
  2047 + 1. -0.10899E+02 0.64246E+01 0.36430E+01
  2048 + 1. 0.11207E+02 -0.88555E+01 0.36473E+01
  2049 + 1. -0.45085E+01 -0.72715E+00 0.36568E+01
  2050 + 1. -0.24816E+01 0.16574E+02 0.36655E+01
  2051 + 1. -0.19425E+02 0.43655E+01 0.36673E+01
  2052 + 1. 0.17137E+02 0.49085E+01 0.36794E+01
  2053 + 1. 0.51243E+01 -0.81151E+01 0.36838E+01
  2054 + 1. 0.35361E+01 0.99607E+00 0.36893E+01
  2055 + 1. -0.28429E+01 -0.19261E+02 0.36967E+01
  2056 + 1. 0.13311E+02 0.48852E+01 0.37004E+01
  2057 + 1. 0.28749E+01 0.16338E+02 0.37083E+01
  2058 + 1. 0.11289E+01 0.76456E+01 0.37133E+01
  2059 + 1. -0.14789E+02 0.13330E+02 0.37260E+01
  2060 + 1. -0.21336E+00 0.18968E+02 0.37332E+01
  2061 + 1. 0.21164E+01 -0.15845E+02 0.37391E+01
  2062 + 1. 0.77844E+01 0.12876E+02 0.37401E+01
  2063 + 1. 0.29854E+01 0.46678E+01 0.37475E+01
  2064 + 1. -0.42133E+01 0.13897E+02 0.37535E+01
  2065 + 1. -0.25057E+01 0.10963E+02 0.37640E+01
  2066 + 1. -0.11639E+02 -0.13550E+02 0.37716E+01
  2067 + 1. 0.11321E+02 -0.14896E+02 0.37758E+01
  2068 + 1. 0.43943E+01 -0.19064E+02 0.37844E+01
  2069 + 1. -0.18831E+02 0.23718E+01 0.37930E+01
  2070 + 1. 0.39867E+00 0.11520E+02 0.37984E+01
  2071 + 1. 0.17230E+02 -0.38277E+01 0.38012E+01
  2072 + 1. 0.13071E+02 0.26012E+01 0.38121E+01
  2073 + 1. -0.49318E+01 0.19286E+02 0.38165E+01
  2074 + 1. -0.12225E+02 -0.38140E+01 0.38202E+01
  2075 + 1. -0.74097E+01 0.20249E+01 0.38309E+01
  2076 + 1. 0.12945E+02 0.10559E+02 0.38360E+01
  2077 + 1. 0.57397E+01 0.17474E+02 0.38440E+01
  2078 + 1. 0.19439E+02 -0.29056E+01 0.38501E+01
  2079 + 1. 0.50140E+01 0.77706E+01 0.38569E+01
  2080 + 1. -0.53567E+00 0.13349E+02 0.38603E+01
  2081 + 1. -0.14884E+01 -0.51965E+00 0.38706E+01
  2082 + 1. -0.12122E+01 -0.16833E+02 0.38779E+01
  2083 + 1. -0.22901E+01 0.89006E+01 0.38850E+01
  2084 + 1. -0.15360E+01 -0.12153E+02 0.38901E+01
  2085 + 1. 0.64707E+01 -0.28752E+01 0.38953E+01
  2086 + 1. 0.17847E+02 0.44621E+00 0.39056E+01
  2087 + 1. 0.12970E+02 0.70104E-01 0.39107E+01
  2088 + 1. 0.39819E+01 0.14640E+02 0.39180E+01
  2089 + 1. 0.11434E+02 -0.11780E+02 0.39214E+01
  2090 + 1. 0.97207E+01 0.75886E+01 0.39272E+01
  2091 + 1. 0.38055E+01 0.18332E+02 0.39342E+01
  2092 + 1. 0.82844E+01 0.17022E+02 0.39402E+01
  2093 + 1. -0.90483E+01 0.14625E+02 0.39509E+01
  2094 + 1. 0.14306E+00 -0.53330E+01 0.39557E+01
  2095 + 1. 0.13892E+02 0.14149E+02 0.39629E+01
  2096 + 1. -0.13895E+02 -0.90039E+01 0.39714E+01
  2097 + 1. -0.68171E+01 -0.85069E+01 0.39746E+01
  2098 + 1. 0.17920E+02 0.86509E+01 0.39853E+01
  2099 + 1. -0.14798E+02 0.93057E+01 0.39876E+01
  2100 + 1. -0.14922E+02 0.14292E+01 0.39963E+01
  2101 + 1. 0.17451E+02 -0.85469E+01 0.40037E+01
  2102 + 1. 0.16124E+02 -0.56488E+01 0.40085E+01
  2103 + 1. 0.15449E+02 -0.90764E+01 0.40199E+01
  2104 + 1. 0.17509E+01 0.18151E+02 0.40225E+01
  2105 + 1. 0.65252E+01 -0.98550E+01 0.40295E+01
  2106 + 1. -0.12910E+02 -0.11987E+02 0.40389E+01
  2107 + 1. 0.13256E+02 -0.48521E+01 0.40430E+01
  2108 + 1. 0.10083E+02 0.49620E+01 0.40505E+01
  2109 + 1. -0.10077E+02 -0.95996E+01 0.40573E+01
  2110 + 1. -0.63243E+01 0.16847E+02 0.40620E+01
  2111 + 1. 0.27630E+01 -0.10674E+01 0.40700E+01
  2112 + 1. -0.10253E+02 -0.43920E+01 0.40768E+01
  2113 + 1. -0.64823E+01 0.85027E+01 0.40826E+01
  2114 + 1. 0.18891E+01 -0.87425E+01 0.40868E+01
  2115 + 1. 0.91982E-01 -0.13421E+02 0.40993E+01
  2116 + 1. 0.12141E+02 0.15643E+02 0.41014E+01
  2117 + 1. 0.35756E+01 -0.68182E+01 0.41077E+01
  2118 + 1. 0.14123E+02 -0.12321E+02 0.41136E+01
  2119 + 1. 0.30508E+01 -0.11417E+02 0.41216E+01
  2120 + 1. -0.68604E+01 -0.14532E+02 0.41317E+01
  2121 + 1. -0.66218E+00 0.65206E+01 0.41365E+01
  2122 + 1. 0.53397E+01 0.26881E+01 0.41455E+01
  2123 + 1. -0.37458E+01 -0.14993E+02 0.41527E+01
  2124 + 1. -0.35909E+01 0.63568E+01 0.41542E+01
  2125 + 1. -0.12421E+02 0.14238E+02 0.41621E+01
  2126 + 1. -0.39437E+01 -0.41340E+01 0.41676E+01
  2127 + 1. 0.16553E+02 0.25238E+01 0.41749E+01
  2128 + 1. 0.57465E+01 0.51689E+01 0.41831E+01
  2129 + 1. -0.64921E+01 0.13565E+02 0.41925E+01
  2130 + 1. -0.13438E+02 0.11619E+02 0.41970E+01
  2131 + 1. -0.16437E+02 0.10933E+02 0.42061E+01
  2132 + 1. 0.49349E+01 -0.15397E+02 0.42078E+01
  2133 + 1. 0.44649E+01 -0.49314E+01 0.42169E+01
  2134 + 1. 0.10827E+02 -0.31402E+01 0.42237E+01
  2135 + 1. -0.14712E+02 -0.13533E+02 0.42316E+01
  2136 + 1. -0.14639E+01 0.24646E+01 0.42375E+01
  2137 + 1. -0.14106E+02 -0.29044E+01 0.42406E+01
  2138 + 1. -0.65360E+01 -0.19806E+00 0.42530E+01
  2139 + 1. -0.13388E+02 0.15814E+00 0.42552E+01
  2140 + 1. -0.87562E+01 0.60112E+01 0.42649E+01
  2141 + 1. -0.18512E+00 0.15765E+02 0.42685E+01
  2142 + 1. -0.56736E+01 0.29157E+01 0.42751E+01
  2143 + 1. 0.74879E+01 -0.18476E+02 0.42820E+01
  2144 + 1. 0.15250E+02 0.52699E+01 0.42897E+01
  2145 + 1. -0.64193E+00 -0.97361E+01 0.42992E+01
  2146 + 1. 0.18199E+02 -0.56508E+01 0.43031E+01
  2147 + 1. 0.19905E+02 -0.48703E+00 0.43092E+01
  2148 + 1. -0.67716E+01 -0.10864E+02 0.43162E+01
  2149 + 1. -0.16308E+02 0.72106E+01 0.43214E+01
  2150 + 1. 0.69592E+01 0.15306E+02 0.43295E+01
  2151 + 1. -0.65060E+01 -0.18355E+02 0.43354E+01
  2152 + 1. -0.18351E+02 -0.34904E+01 0.43428E+01
  2153 + 1. -0.10078E+02 0.17219E+02 0.43469E+01
  2154 + 1. -0.12254E+02 -0.66496E+01 0.43548E+01
  2155 + 1. -0.49346E+01 -0.65079E+01 0.43636E+01
  2156 + 1. -0.39012E+01 -0.17601E+02 0.43679E+01
  2157 + 1. 0.10867E+02 0.13574E+02 0.43748E+01
  2158 + 1. -0.25167E+01 0.18501E+02 0.43810E+01
  2159 + 1. -0.96711E+01 0.80350E+01 0.43869E+01
  2160 + 1. -0.73540E+01 -0.44324E+01 0.43951E+01
  2161 + 1. -0.52522E+01 0.48770E+01 0.44020E+01
  2162 + 1. -0.89145E+01 -0.11231E+02 0.44082E+01
  2163 + 1. 0.91814E+01 -0.35350E+00 0.44190E+01
  2164 + 1. 0.13369E+02 -0.91272E+01 0.44251E+01
  2165 + 1. 0.75807E+01 -0.71277E+01 0.44283E+01
  2166 + 1. 0.40658E+00 -0.18733E+02 0.44380E+01
  2167 + 1. -0.42280E+01 -0.90147E+01 0.44430E+01
  2168 + 1. 0.14577E+01 0.58016E+01 0.44503E+01
  2169 + 1. 0.11900E+02 -0.63470E+01 0.44551E+01
  2170 + 1. -0.13422E+02 0.42842E+01 0.44636E+01
  2171 + 1. -0.17859E+01 -0.69751E+01 0.44682E+01
  2172 + 1. -0.10554E+02 -0.22500E+01 0.44746E+01
  2173 + 1. 0.31863E+01 0.85749E+01 0.44834E+01
  2174 + 1. 0.66583E+01 -0.50259E+01 0.44925E+01
  2175 + 1. 0.95818E+01 -0.12996E+02 0.44957E+01
  2176 + 1. -0.16562E+02 0.48676E+01 0.45052E+01
  2177 + 1. 0.76852E+01 0.88567E+01 0.45070E+01
  2178 + 1. -0.45574E+01 0.11863E+02 0.45134E+01
  2179 + 1. -0.14301E+02 -0.49983E+01 0.45225E+01
  2180 + 1. 0.31650E+01 -0.13543E+02 0.45318E+01
  2181 + 1. -0.18718E+02 -0.67564E+01 0.45344E+01
  2182 + 1. 0.68686E+01 -0.70480E+00 0.45447E+01
  2183 + 1. -0.98466E+01 0.10418E+02 0.45521E+01
  2184 + 1. 0.55583E+01 0.12957E+02 0.45557E+01
  2185 + 1. 0.14519E+02 -0.13550E+01 0.45602E+01
  2186 + 1. -0.12926E+02 0.66142E+01 0.45703E+01
  2187 + 1. 0.14571E+02 0.12812E+01 0.45750E+01
  2188 + 1. 0.21375E+01 -0.37426E+01 0.45820E+01
  2189 + 1. -0.11254E+02 -0.56813E-01 0.45894E+01
  2190 + 1. 0.12101E+02 0.69907E+01 0.45941E+01
  2191 + 1. -0.92368E+01 -0.14136E+02 0.46043E+01
  2192 + 1. 0.88470E+01 -0.16242E+02 0.46121E+01
  2193 + 1. -0.98487E+01 0.22918E+01 0.46173E+01
  2194 + 1. -0.15491E+02 -0.10458E+02 0.46208E+01
  2195 + 1. -0.68918E+01 0.18726E+02 0.46321E+01
  2196 + 1. -0.16194E+02 -0.66075E+01 0.46339E+01
  2197 + 1. -0.10508E+02 0.42645E+01 0.46437E+01
  2198 + 1. 0.16731E+02 0.71084E+01 0.46533E+01
  2199 + 1. -0.17902E+02 0.43332E+00 0.46584E+01
  2200 + 1. -0.15270E+02 -0.91046E+00 0.46629E+01
  2201 + 1. 0.90963E+01 0.27549E+01 0.46700E+01
  2202 + 1. 0.11216E+02 0.14641E+01 0.46751E+01
  2203 + 1. -0.52401E+01 -0.12732E+02 0.46864E+01
  2204 + 1. 0.14047E+01 0.95485E+01 0.46928E+01
  2205 + 1. 0.23446E+01 -0.18180E+02 0.46983E+01
  2206 + 1. 0.51573E+01 0.96497E+01 0.47058E+01
  2207 + 1. 0.18974E+02 0.24043E+01 0.47075E+01
  2208 + 1. 0.88290E+01 0.10655E+02 0.47166E+01
  2209 + 1. 0.10050E+02 -0.52644E+01 0.47226E+01
  2210 + 1. -0.19664E+01 -0.44296E+01 0.47291E+01
  2211 + 1. 0.72784E+01 -0.13275E+02 0.47336E+01
  2212 + 1. 0.80307E+01 0.56025E+01 0.47412E+01
  2213 + 1. 0.13358E+02 -0.14864E+02 0.47521E+01
  2214 + 1. 0.54604E+01 -0.17296E+02 0.47534E+01
  2215 + 1. -0.80569E+01 -0.16588E+02 0.47644E+01
  2216 + 1. -0.80696E+01 -0.64154E+01 0.47671E+01
  2217 + 1. -0.16028E+02 -0.30428E+01 0.47796E+01
  2218 + 1. -0.34767E+01 0.68691E+00 0.47819E+01
  2219 + 1. -0.75791E+01 -0.19847E+01 0.47901E+01
  2220 + 1. 0.18473E+01 0.82793E+00 0.47943E+01
  2221 + 1. 0.96860E+00 0.27866E+01 0.48024E+01
  2222 + 1. 0.30673E+01 0.11547E+02 0.48128E+01
  2223 + 1. -0.26630E+01 0.13105E+02 0.48181E+01
  2224 + 1. 0.13327E+02 0.12265E+02 0.48265E+01
  2225 + 1. 0.14971E+02 -0.34545E+01 0.48274E+01
  2226 + 1. 0.49546E+01 0.13882E+00 0.48390E+01
  2227 + 1. 0.10765E+02 0.10051E+02 0.48442E+01
  2228 + 1. -0.47496E+01 0.78372E+01 0.48468E+01
  2229 + 1. -0.10797E+02 0.13289E+02 0.48591E+01
  2230 + 1. 0.84003E+01 -0.98775E+01 0.48611E+01
  2231 + 1. 0.14329E+02 -0.74192E+01 0.48722E+01
  2232 + 1. 0.18741E+02 0.54297E+01 0.48789E+01
  2233 + 1. -0.54971E+01 -0.24861E+01 0.48808E+01
  2234 + 1. -0.11607E+02 0.84282E+01 0.48879E+01
  2235 + 1. 0.69249E+01 0.18751E+02 0.48980E+01
  2236 + 1. 0.11653E+01 0.13139E+02 0.49033E+01
  2237 + 1. -0.53689E+01 0.15161E+02 0.49111E+01
  2238 + 1. 0.13892E+01 -0.65668E+01 0.49185E+01
  2239 + 1. -0.86002E+00 0.10424E+02 0.49222E+01
  2240 + 1. -0.11816E+02 -0.16127E+02 0.49305E+01
  2241 + 1. -0.61556E+01 0.10640E+02 0.49334E+01
  2242 + 1. -0.11975E+02 0.26214E+01 0.49462E+01
  2243 + 1. 0.17033E+02 0.10378E+02 0.49522E+01
  2244 + 1. 0.10331E+02 0.15859E+02 0.49590E+01
  2245 + 1. -0.87979E+01 0.50541E+00 0.49662E+01
  2246 + 1. 0.16000E+02 -0.11724E+02 0.49696E+01
  2247 + 1. 0.14860E+02 0.33535E+01 0.49781E+01
  2248 + 1. -0.86587E+01 0.12919E+02 0.49816E+01
  2249 + 1. -0.10678E+02 0.15398E+02 0.49925E+01
  2250 + 1. 0.12040E+01 -0.11413E+02 0.49958E+01
  2251 + 1. 0.17532E+02 -0.14838E+01 0.50037E+01
  2252 + 1. -0.35752E+01 -0.18943E+01 0.50131E+01
  2253 + 1. -0.74140E+01 0.37066E+01 0.50136E+01
  2254 + 1. 0.12768E+02 -0.28607E+01 0.50233E+01
  2255 + 1. 0.11830E+02 0.46584E+01 0.50319E+01
  2256 + 1. -0.16495E+01 -0.14505E+02 0.50397E+01
  2257 + 1. 0.14553E+02 0.71379E+01 0.50425E+01
  2258 + 1. -0.14204E+01 0.45689E+01 0.50492E+01
  2259 + 1. 0.48907E+01 -0.11295E+02 0.50592E+01
  2260 + 1. -0.17917E+02 0.84880E+01 0.50648E+01
  2261 + 1. -0.25493E+01 -0.10470E+02 0.50699E+01
  2262 + 1. -0.39871E+01 0.98479E+01 0.50745E+01
  2263 + 1. -0.11258E+02 -0.82623E+01 0.50853E+01
  2264 + 1. -0.17050E+02 -0.92153E+01 0.50923E+01
  2265 + 1. -0.10877E+02 -0.11231E+02 0.50965E+01
  2266 + 1. -0.33734E+01 0.15289E+02 0.51018E+01
  2267 + 1. 0.37991E+01 -0.92525E+01 0.51071E+01
  2268 + 1. -0.18984E+02 0.60159E+01 0.51183E+01
  2269 + 1. 0.19252E+01 0.19869E+02 0.51245E+01
  2270 + 1. 0.71303E+01 0.28287E+01 0.51268E+01
  2271 + 1. 0.37260E+01 0.63706E+01 0.51356E+01
  2272 + 1. 0.44518E+01 -0.21820E+01 0.51420E+01
  2273 + 1. 0.68429E+01 -0.15282E+02 0.51533E+01
  2274 + 1. -0.89798E+00 -0.26070E+01 0.51598E+01
  2275 + 1. -0.74596E+01 0.15566E+02 0.51630E+01
  2276 + 1. 0.20005E+01 0.15211E+02 0.51711E+01
  2277 + 1. -0.16813E+01 -0.18442E+02 0.51784E+01
  2278 + 1. -0.61505E+00 0.17496E+02 0.51830E+01
  2279 + 1. 0.16297E+02 0.26930E+00 0.51922E+01
  2280 + 1. -0.49109E+01 0.17780E+02 0.51997E+01
  2281 + 1. 0.52761E+01 -0.65452E+01 0.52019E+01
  2282 + 1. 0.12435E+02 0.88986E+01 0.52079E+01
  2283 + 1. -0.43647E+01 -0.19379E+02 0.52197E+01
  2284 + 1. 0.29259E+00 -0.16582E+02 0.52244E+01
  2285 + 1. 0.90902E+00 -0.90663E+00 0.52324E+01
  2286 + 1. -0.82495E+01 -0.91099E+01 0.52355E+01
  2287 + 1. 0.94675E+01 -0.78973E+01 0.52454E+01
  2288 + 1. -0.19145E+02 -0.12594E+01 0.52493E+01
  2289 + 1. 0.42712E+01 0.41979E+01 0.52540E+01
  2290 + 1. 0.10942E+02 -0.10162E+02 0.52630E+01
  2291 + 1. -0.31606E+01 0.28700E+01 0.52727E+01
  2292 + 1. 0.11834E+02 -0.13534E+02 0.52735E+01
  2293 + 1. 0.11229E+02 -0.16320E+02 0.52847E+01
  2294 + 1. 0.89253E+01 0.13573E+02 0.52929E+01
  2295 + 1. -0.15269E+02 0.31127E+01 0.52950E+01
  2296 + 1. -0.13336E+02 -0.14521E+02 0.53038E+01
  2297 + 1. 0.15028E+02 0.10147E+02 0.53077E+01
  2298 + 1. 0.50252E+01 0.16319E+02 0.53180E+01
  2299 + 1. 0.80075E+01 -0.35334E+01 0.53223E+01
  2300 + 1. 0.63451E+01 0.74362E+01 0.53290E+01
  2301 + 1. 0.33442E+01 -0.16246E+02 0.53357E+01
  2302 + 1. -0.69828E+00 0.93557E+00 0.53435E+01
  2303 + 1. 0.16801E+02 -0.70368E+01 0.53487E+01
  2304 + 1. -0.11767E+02 0.11028E+02 0.53564E+01
  2305 + 1. -0.12502E+02 -0.21116E+01 0.53617E+01
  2306 + 1. -0.14203E+02 -0.75803E+01 0.53713E+01
  2307 + 1. -0.73656E+01 0.71645E+01 0.53785E+01
  2308 + 1. -0.18225E+02 0.39502E+01 0.53822E+01
  2309 + 1. 0.14529E+01 -0.14514E+02 0.53922E+01
  2310 + 1. -0.17822E+00 0.85486E+01 0.54000E+01
  2311 + 1. -0.23054E+01 0.73483E+01 0.54036E+01
  2312 + 1. -0.13088E+02 -0.10236E+02 0.54123E+01
  2313 + 1. 0.53070E+01 -0.13412E+02 0.54142E+01
  2314 + 1. -0.78381E+01 0.92708E+01 0.54239E+01
  2315 + 1. 0.13485E+02 -0.10851E+02 0.54324E+01
  2316 + 1. -0.13953E+02 0.81907E+01 0.54345E+01
  2317 + 1. 0.34828E+01 0.20872E+01 0.54445E+01
  2318 + 1. -0.19869E+02 0.93699E+00 0.54526E+01
  2319 + 1. -0.37943E+00 -0.81158E+01 0.54595E+01
  2320 + 1. 0.70156E+01 -0.11315E+02 0.54612E+01
  2321 + 1. 0.18554E+02 -0.38739E+01 0.54715E+01
  2322 + 1. 0.28557E+01 0.17294E+02 0.54766E+01
  2323 + 1. -0.14378E+02 -0.11926E+02 0.54827E+01
  2324 + 1. -0.54102E+01 -0.15537E+02 0.54882E+01
  2325 + 1. 0.65431E+01 0.10949E+02 0.54956E+01
  2326 + 1. 0.77465E+01 0.82053E+00 0.55030E+01
  2327 + 1. -0.10807E+02 -0.58672E+01 0.55075E+01
  2328 + 1. -0.15465E+02 0.12589E+02 0.55186E+01
  2329 + 1. -0.19215E+02 -0.50573E+01 0.55243E+01
  2330 + 1. -0.98988E+01 -0.17259E+02 0.55317E+01
  2331 + 1. 0.11910E+02 -0.81447E+01 0.55383E+01
  2332 + 1. 0.58105E+01 -0.85733E+01 0.55410E+01
  2333 + 1. -0.14537E+01 0.14699E+02 0.55494E+01
  2334 + 1. -0.50934E+01 -0.10785E+02 0.55534E+01
  2335 + 1. 0.10933E+02 -0.13541E+01 0.55625E+01
  2336 + 1. 0.17247E+02 -0.10080E+02 0.55703E+01
  2337 + 1. -0.14886E+02 0.58015E+01 0.55752E+01
  2338 + 1. 0.15608E+02 0.12062E+02 0.55845E+01
  2339 + 1. 0.17248E+02 0.38851E+01 0.55899E+01
  2340 + 1. -0.89985E+01 -0.40145E+01 0.55935E+01
  2341 + 1. -0.23464E+01 -0.16603E+02 0.56041E+01
  2342 + 1. -0.13709E+02 0.13657E+02 0.56106E+01
  2343 + 1. -0.75945E+01 -0.12197E+02 0.56161E+01
  2344 + 1. 0.10114E+02 0.11997E+02 0.56249E+01
  2345 + 1. 0.14770E+02 -0.53870E+01 0.56271E+01
  2346 + 1. -0.62799E+01 -0.74153E+01 0.56356E+01
  2347 + 1. 0.10346E+02 0.62643E+01 0.56416E+01
  2348 + 1. 0.10053E+02 -0.14651E+02 0.56491E+01
  2349 + 1. -0.72674E-01 0.19615E+02 0.56595E+01
  2350 + 1. 0.58054E+01 -0.19117E+02 0.56665E+01
  2351 + 1. -0.29872E+01 -0.12750E+02 0.56720E+01
  2352 + 1. -0.10652E+02 0.68428E+01 0.56768E+01
  2353 + 1. -0.34609E+01 -0.74682E+01 0.56833E+01
  2354 + 1. 0.13686E+02 0.54051E+01 0.56912E+01
  2355 + 1. 0.28874E+01 -0.53099E+01 0.56961E+01
  2356 + 1. -0.13722E+02 0.18418E+01 0.57020E+01
  2357 + 1. 0.20799E+01 0.74191E+01 0.57102E+01
  2358 + 1. -0.14140E+02 0.10263E+02 0.57170E+01
  2359 + 1. -0.16352E+02 -0.49332E+01 0.57239E+01
  2360 + 1. -0.67925E+00 0.12491E+02 0.57311E+01
  2361 + 1. 0.49922E+01 0.18400E+02 0.57366E+01
  2362 + 1. 0.41495E+01 0.13763E+02 0.57412E+01
  2363 + 1. -0.66399E+01 0.16505E+01 0.57494E+01
  2364 + 1. 0.95077E+00 0.11287E+02 0.57534E+01
  2365 + 1. 0.94892E+01 0.83576E+01 0.57605E+01
  2366 + 1. 0.35929E+00 -0.45137E+01 0.57698E+01
  2367 + 1. -0.51492E+00 -0.12140E+02 0.57769E+01
  2368 + 1. -0.10826E+02 -0.13210E+02 0.57834E+01
  2369 + 1. -0.36451E+01 0.19456E+02 0.57897E+01
  2370 + 1. 0.13021E+02 0.21941E+01 0.57978E+01
  2371 + 1. -0.16885E+02 0.20252E+01 0.58043E+01
  2372 + 1. 0.22176E+01 0.43149E+01 0.58085E+01
  2373 + 1. 0.73774E+01 0.16963E+02 0.58164E+01
  2374 + 1. -0.52985E+01 -0.50907E+01 0.58221E+01
  2375 + 1. 0.19708E+02 0.82542E+00 0.58291E+01
  2376 + 1. 0.80989E+01 -0.55110E+01 0.58375E+01
  2377 + 1. 0.11608E+02 -0.46412E+01 0.58441E+01
  2378 + 1. -0.11729E+02 -0.40399E+01 0.58486E+01
  2379 + 1. -0.34844E+01 0.52421E+01 0.58549E+01
  2380 + 1. -0.19387E+01 -0.91815E+00 0.58660E+01
  2381 + 1. -0.17082E+02 -0.12215E+01 0.58694E+01
  2382 + 1. 0.54765E+01 -0.39663E+01 0.58793E+01
  2383 + 1. -0.52316E+01 -0.61956E+00 0.58842E+01
  2384 + 1. 0.26718E+01 -0.19817E+02 0.58890E+01
  2385 + 1. 0.12427E+02 0.14007E+02 0.58938E+01
  2386 + 1. 0.98056E+00 -0.95433E+01 0.59015E+01
  2387 + 1. -0.45411E+01 0.13489E+02 0.59077E+01
  2388 + 1. -0.86104E+01 0.17911E+02 0.59154E+01
  2389 + 1. 0.19739E+02 -0.22903E+01 0.59232E+01
  2390 + 1. 0.70754E+01 0.13004E+02 0.59320E+01
  2391 + 1. 0.16647E+02 -0.30510E+01 0.59336E+01
  2392 + 1. -0.55670E+01 0.63560E+01 0.59444E+01
  2393 + 1. 0.12793E+02 -0.62270E+00 0.59472E+01
  2394 + 1. 0.80994E+01 -0.14094E+01 0.59574E+01
  2395 + 1. 0.26377E+01 -0.17491E+01 0.59644E+01
  2396 + 1. 0.75263E+01 -0.17294E+02 0.59713E+01
  2397 + 1. 0.10164E+02 0.39043E+01 0.59789E+01
  2398 + 1. 0.14740E+02 -0.13348E+02 0.59832E+01
  2399 + 1. 0.17553E+02 0.86217E+01 0.59900E+01
  2400 + 1. 0.14992E+02 -0.95256E+01 0.59985E+01
  2401 + 1. 0.33897E+01 0.98651E+01 0.60043E+01
  2402 + 1. -0.97236E+01 -0.93512E+00 0.60077E+01
  2403 + 1. -0.15937E+02 0.87263E+01 0.60158E+01
  2404 + 1. -0.31300E+01 -0.54562E+01 0.60257E+01
  2405 + 1. -0.73176E+01 -0.15108E+02 0.60280E+01
  2406 + 1. -0.17283E+02 0.65833E+01 0.60390E+01
  2407 + 1. -0.12281E+02 0.52046E+01 0.60432E+01
  2408 + 1. -0.68129E+01 0.12169E+02 0.60468E+01
  2409 + 1. 0.30643E+00 0.49330E+01 0.60560E+01
  2410 + 1. 0.12061E+02 0.11212E+02 0.60621E+01
  2411 + 1. 0.18658E+02 -0.64733E+01 0.60679E+01
  2412 + 1. 0.96805E+01 0.12204E+01 0.60751E+01
  2413 + 1. 0.27104E+01 -0.76285E+01 0.60816E+01
  2414 + 1. 0.44125E+01 0.81280E+01 0.60928E+01
  2415 + 1. -0.96010E+01 -0.74183E+01 0.60999E+01
  2416 + 1. -0.10176E+02 -0.15175E+02 0.61017E+01
  2417 + 1. -0.31831E+01 0.17265E+02 0.61099E+01
  2418 + 1. -0.15655E+02 0.41544E+00 0.61194E+01
  2419 + 1. -0.10846E+02 0.11911E+01 0.61250E+01
  2420 + 1. 0.89562E+01 -0.11885E+02 0.61313E+01
  2421 + 1. 0.95682E+01 0.17398E+02 0.61368E+01
  2422 + 1. 0.65529E+01 0.54176E+01 0.61452E+01
  2423 + 1. -0.90539E+01 0.44267E+01 0.61483E+01
  2424 + 1. -0.29879E+01 0.11210E+02 0.61551E+01
  2425 + 1. -0.50176E+01 0.36248E+01 0.61640E+01
  2426 + 1. -0.98132E+01 0.11606E+02 0.61669E+01
  2427 + 1. -0.99200E+01 0.89945E+01 0.61795E+01
  2428 + 1. -0.14608E+02 -0.27542E+01 0.61863E+01
  2429 + 1. 0.28338E+01 -0.11288E+02 0.61915E+01
  2430 + 1. -0.69468E+01 -0.33772E+01 0.61988E+01
  2431 + 1. -0.76308E+01 -0.17957E+02 0.62050E+01
  2432 + 1. -0.17288E+02 -0.75009E+01 0.62111E+01
  2433 + 1. 0.53419E+01 0.22028E+01 0.62179E+01
  2434 + 1. -0.54891E+01 -0.17570E+02 0.62234E+01
  2435 + 1. -0.59478E+01 0.90567E+01 0.62328E+01
  2436 + 1. 0.98855E+00 0.16657E+02 0.62373E+01
  2437 + 1. 0.13034E+02 -0.63975E+01 0.62452E+01
  2438 + 1. -0.41204E+01 -0.34640E+01 0.62487E+01
  2439 + 1. -0.86186E-01 -0.19787E+02 0.62547E+01
  2440 + 1. 0.16884E+02 0.57703E+01 0.62632E+01
  2441 + 1. 0.95768E+01 -0.17323E+02 0.62683E+01
  2442 + 1. 0.60696E+01 0.14756E+02 0.62742E+01
  2443 + 1. -0.13567E+02 -0.18238E+00 0.62860E+01
  2444 + 1. -0.12928E+02 -0.60536E+01 0.62928E+01
  2445 + 1. 0.60360E+01 -0.17241E+01 0.62936E+01
  2446 + 1. -0.97082E+00 -0.98923E+01 0.63036E+01
  2447 + 1. 0.18684E+02 0.69763E+01 0.63129E+01
  2448 + 1. 0.98192E+01 -0.35963E+01 0.63189E+01
  2449 + 1. -0.91287E+01 0.15709E+02 0.63257E+01
  2450 + 1. 0.14490E+02 0.13766E+02 0.63302E+01
  2451 + 1. -0.18870E+02 -0.32561E+01 0.63344E+01
  2452 + 1. -0.88930E+01 -0.10720E+02 0.63440E+01
  2453 + 1. 0.75502E+01 -0.78256E+01 0.63482E+01
  2454 + 1. 0.82264E+01 0.42991E+01 0.63561E+01
  2455 + 1. -0.16431E+02 -0.11120E+02 0.63654E+01
  2456 + 1. -0.16354E+02 0.10737E+02 0.63681E+01
  2457 + 1. -0.62453E+01 0.16714E+02 0.63771E+01
  2458 + 1. 0.39570E+01 -0.18361E+02 0.63812E+01
  2459 + 1. 0.11993E+02 0.15896E+02 0.63910E+01
  2460 + 1. -0.72940E+01 -0.13621E+00 0.63982E+01
  2461 + 1. -0.11087E+01 -0.61001E+01 0.64028E+01
  2462 + 1. 0.50592E+01 -0.15678E+02 0.64084E+01
  2463 + 1. 0.15210E+02 0.19635E+01 0.64177E+01
  2464 + 1. 0.18813E+01 -0.17181E+02 0.64217E+01
  2465 + 1. 0.17502E+02 0.20754E+01 0.64304E+01
  2466 + 1. 0.42949E+00 0.14381E+02 0.64397E+01
  2467 + 1. 0.78398E+01 0.97331E+01 0.64452E+01
  2468 + 1. 0.32212E+01 0.24793E+00 0.64475E+01
  2469 + 1. 0.15541E+02 0.84640E+01 0.64537E+01
  2470 + 1. -0.56291E+01 -0.13634E+02 0.64664E+01
  2471 + 1. -0.71802E+01 -0.54305E+01 0.64729E+01
  2472 + 1. 0.19266E+02 0.38814E+01 0.64772E+01
  2473 + 1. -0.85429E+01 0.19716E+01 0.64828E+01
  2474 + 1. -0.68898E+01 -0.10009E+02 0.64894E+01
  2475 + 1. 0.14749E+02 -0.20862E+01 0.64947E+01
  2476 + 1. -0.13285E+01 0.30371E+01 0.65017E+01
  2477 + 1. 0.12738E+02 0.70961E+01 0.65126E+01
  2478 + 1. -0.88189E+01 -0.13541E+02 0.65154E+01
  2479 + 1. -0.11470E+02 0.14207E+02 0.65204E+01
  2480 + 1. -0.49297E+01 -0.88500E+01 0.65330E+01
  2481 + 1. 0.32860E+01 -0.13420E+02 0.65354E+01
  2482 + 1. -0.32942E+01 -0.14579E+02 0.65422E+01
  2483 + 1. 0.16618E+02 -0.50928E+01 0.65474E+01
  2484 + 1. -0.12205E+02 -0.11726E+02 0.65551E+01
  2485 + 1. 0.33118E+00 0.69044E+01 0.65624E+01
  2486 + 1. 0.13975E+01 0.16948E+01 0.65727E+01
  2487 + 1. -0.19741E+02 0.31229E+01 0.65740E+01
  2488 + 1. 0.10713E+02 -0.63275E+01 0.65815E+01
  2489 + 1. 0.84060E+01 0.15339E+02 0.65874E+01
  2490 + 1. -0.27949E+01 -0.19377E+02 0.65996E+01
  2491 + 1. -0.13543E+02 0.37036E+01 0.66016E+01
  2492 + 1. 0.13563E+02 -0.39381E+01 0.66118E+01
  2493 + 1. 0.33081E+01 0.19461E+02 0.66178E+01
  2494 + 1. -0.55872E+01 0.19031E+02 0.66243E+01
  2495 + 1. -0.12900E+02 -0.84732E+01 0.66310E+01
  2496 + 1. -0.48478E+00 -0.14202E+02 0.66382E+01
  2497 + 1. -0.15485E+01 -0.38916E+01 0.66419E+01
  2498 + 1. -0.14568E+02 -0.48542E+01 0.66531E+01
  2499 + 1. -0.14639E+02 -0.98736E+01 0.66578E+01
  2500 + 1. 0.10989E+02 -0.11783E+02 0.66636E+01
  2501 + 1. -0.16874E+01 0.92729E+01 0.66669E+01
  2502 + 1. 0.18427E+02 -0.84109E+00 0.66747E+01
  2503 + 1. 0.70659E+01 -0.13697E+02 0.66825E+01
  2504 + 1. 0.26221E+01 0.12418E+02 0.66876E+01
  2505 + 1. -0.12856E+02 0.12065E+02 0.66985E+01
  2506 + 1. -0.39582E+01 0.76726E+01 0.67050E+01
  2507 + 1. -0.40202E+01 0.80039E+00 0.67077E+01
  2508 + 1. -0.66713E+01 0.14089E+02 0.67166E+01
  2509 + 1. 0.10233E+02 0.14509E+02 0.67237E+01
  2510 + 1. 0.12051E+02 -0.15203E+02 0.67283E+01
  2511 + 1. -0.18043E+02 0.35617E+00 0.67363E+01
  2512 + 1. 0.97553E+01 0.10267E+02 0.67425E+01
  2513 + 1. 0.11833E+01 0.92794E+01 0.67484E+01
  2514 + 1. -0.10718E+02 -0.99656E+01 0.67567E+01
  2515 + 1. -0.67088E+01 0.48222E+01 0.67639E+01
  2516 + 1. -0.12204E+02 0.90323E+01 0.67708E+01
  2517 + 1. 0.30695E+00 -0.22944E+01 0.67761E+01
  2518 + 1. 0.23547E+01 -0.37154E+01 0.67856E+01
  2519 + 1. -0.10548E+02 -0.26072E+01 0.67909E+01
  2520 + 1. -0.26611E+01 -0.89302E+01 0.67979E+01
  2521 + 1. -0.16683E+02 -0.30111E+01 0.68061E+01
  2522 + 1. -0.16712E+02 0.43761E+01 0.68087E+01
  2523 + 1. 0.79945E+01 0.66878E+01 0.68174E+01
  2524 + 1. -0.17133E+01 0.56240E+01 0.68205E+01
  2525 + 1. 0.62042E+01 0.43980E+00 0.68321E+01
  2526 + 1. 0.86951E+01 -0.95428E+01 0.68390E+01
  2527 + 1. -0.10981E+02 0.38704E+01 0.68434E+01
  2528 + 1. 0.11318E+02 0.86565E+01 0.68496E+01
  2529 + 1. 0.12757E+02 0.40062E+01 0.68571E+01
  2530 + 1. 0.45639E+01 -0.99242E+01 0.68657E+01
  2531 + 1. 0.13368E+02 -0.85871E+01 0.68709E+01
  2532 + 1. 0.45900E+01 0.11669E+02 0.68734E+01
  2533 + 1. -0.51052E+01 0.11325E+02 0.68801E+01
  2534 + 1. -0.16710E+01 0.18507E+02 0.68927E+01
  2535 + 1. -0.90358E+01 0.65495E+01 0.68951E+01
  2536 + 1. -0.14551E+02 -0.13673E+02 0.69025E+01
  2537 + 1. -0.83945E+00 -0.17045E+02 0.69118E+01
  2538 + 1. -0.92430E+01 0.13737E+02 0.69162E+01
  2539 + 1. 0.16895E+02 -0.84024E+01 0.69258E+01
  2540 + 1. -0.46274E+01 0.15323E+02 0.69295E+01
  2541 + 1. 0.57089E+01 0.97497E+01 0.69394E+01
  2542 + 1. -0.81475E+01 0.10711E+02 0.69460E+01
  2543 + 1. 0.84756E+01 -0.15294E+02 0.69512E+01
  2544 + 1. 0.31491E+01 0.15123E+02 0.69540E+01
  2545 + 1. 0.17001E+02 0.10374E+02 0.69641E+01
  2546 + 1. 0.11945E+02 -0.23592E+01 0.69713E+01
  2547 + 1. -0.12055E+02 -0.14351E+02 0.69738E+01
  2548 + 1. 0.13035E+02 0.96915E+01 0.69830E+01
  2549 + 1. -0.26370E+01 0.13939E+02 0.69910E+01
  2550 + 1. 0.16306E+02 -0.11321E+02 0.69974E+01
  2551 + 1. -0.13167E+02 0.71784E+01 0.70033E+01
  2552 + 1. -0.17932E+02 -0.57730E+01 0.70083E+01
  2553 + 1. 0.14363E+02 0.11429E+02 0.70179E+01
  2554 + 1. 0.41817E+01 0.55249E+01 0.70204E+01
  2555 + 1. 0.77441E+01 0.23850E+01 0.70333E+01
  2556 + 1. 0.47923E+01 -0.55932E+01 0.70374E+01
  2557 + 1. 0.55163E+01 -0.11802E+02 0.70414E+01
  2558 + 1. 0.76688E+00 -0.11186E+02 0.70492E+01
  2559 + 1. -0.11581E+02 0.16276E+02 0.70568E+01
  2560 + 1. 0.11159E+02 0.22868E+01 0.70619E+01
  2561 + 1. 0.15107E+02 0.63048E+01 0.70693E+01
  2562 + 1. 0.14887E+02 0.41725E+01 0.70737E+01
  2563 + 1. 0.89822E+00 -0.72387E+01 0.70812E+01
  2564 + 1. 0.10988E+02 0.86812E-01 0.70867E+01
  2565 + 1. 0.25365E+01 -0.15317E+02 0.70986E+01
  2566 + 1. -0.17690E+02 0.86544E+01 0.71001E+01
  2567 + 1. -0.15232E+02 -0.79207E+01 0.71079E+01
  2568 + 1. -0.17693E+02 -0.93090E+01 0.71175E+01
  2569 + 1. 0.38158E+01 0.32294E+01 0.71223E+01
  2570 + 1. -0.11534E+01 0.16433E+02 0.71313E+01
  2571 + 1. 0.12756E+02 -0.13140E+02 0.71371E+01
  2572 + 1. 0.87512E+01 0.12212E+02 0.71403E+01
  2573 + 1. 0.42040E+01 0.16874E+02 0.71485E+01
  2574 + 1. 0.95943E+00 0.18551E+02 0.71565E+01
  2575 + 1. -0.20309E+01 -0.11451E+02 0.71651E+01
  2576 + 1. 0.48739E+01 -0.78389E+01 0.71688E+01
  2577 + 1. 0.81245E+00 -0.35497E+00 0.71748E+01
  2578 + 1. 0.75238E+01 0.18445E+02 0.71802E+01
  2579 + 1. 0.15076E+02 -0.69331E+01 0.71918E+01
  2580 + 1. -0.38225E+01 -0.16874E+02 0.71970E+01
  2581 + 1. -0.46779E+01 -0.11912E+02 0.72066E+01
  2582 + 1. -0.11407E+02 -0.72490E+01 0.72133E+01
  2583 + 1. -0.18800E+02 0.55395E+01 0.72193E+01
  2584 + 1. 0.12594E+02 -0.10625E+02 0.72236E+01
  2585 + 1. -0.17055E+01 0.11583E+01 0.72315E+01
  2586 + 1. -0.15385E+02 0.23821E+01 0.72375E+01
  2587 + 1. -0.33479E+01 -0.17415E+01 0.72427E+01
  2588 + 1. -0.79805E+01 -0.80710E+01 0.72484E+01
  2589 + 1. 0.18813E+02 -0.47591E+01 0.72550E+01
  2590 + 1. 0.16180E+02 0.30569E+00 0.72646E+01
  2591 + 1. -0.81728E+01 -0.18574E+01 0.72715E+01
  2592 + 1. 0.70765E+01 -0.33099E+01 0.72740E+01
  2593 + 1. -0.12276E+02 0.22880E+01 0.72811E+01
  2594 + 1. -0.15823E+02 0.71531E+01 0.72882E+01
  2595 + 1. -0.14361E+02 0.88030E+01 0.72961E+01
  2596 + 1. -0.19510E+02 -0.10001E+01 0.73007E+01
  2597 + 1. -0.11960E+02 -0.79937E+00 0.73094E+01
  2598 + 1. 0.40469E+01 -0.23706E+01 0.73193E+01
  2599 + 1. 0.68709E+01 -0.18697E+02 0.73256E+01
  2600 + 1. -0.43816E+01 -0.67739E+01 0.73330E+01
  2601 + 1. -0.69516E+01 0.72598E+01 0.73378E+01
  2602 + 1. -0.90325E+01 -0.52342E+01 0.73459E+01
  2603 + 1. -0.86551E+01 -0.16459E+02 0.73492E+01
  2604 + 1. 0.21491E+01 0.61509E+01 0.73577E+01
  2605 + 1. 0.10693E+02 -0.95488E+01 0.73609E+01
  2606 + 1. 0.96162E+01 0.53497E+01 0.73688E+01
  2607 + 1. 0.11250E+02 0.12820E+02 0.73789E+01
  2608 + 1. -0.70063E+01 0.29311E+01 0.73855E+01
  2609 + 1. -0.35496E+01 0.28672E+01 0.73871E+01
  2610 + 1. -0.13067E+01 0.11119E+02 0.73944E+01
  2611 + 1. 0.64482E+01 -0.91572E+01 0.74042E+01
  2612 + 1. 0.14029E+02 -0.37702E-01 0.74109E+01
  2613 + 1. -0.57988E+01 -0.15949E+02 0.74165E+01
  2614 + 1. -0.15464E+02 -0.11044E+01 0.74226E+01
  2615 + 1. 0.56714E+01 0.72955E+01 0.74317E+01
  2616 + 1. 0.56699E+01 0.39247E+01 0.74386E+01
  2617 + 1. 0.12854E+01 -0.18837E+02 0.74404E+01
  2618 + 1. -0.15243E+02 0.12104E+02 0.74493E+01
  2619 + 1. 0.82874E+01 0.33892E-01 0.74598E+01
  2620 + 1. 0.99152E+01 -0.13407E+02 0.74628E+01
  2621 + 1. -0.12968E+02 -0.38780E+01 0.74704E+01
  2622 + 1. -0.61641E+01 -0.16383E+01 0.74793E+01
  2623 + 1. 0.67100E+01 -0.59931E+01 0.74805E+01
  2624 + 1. 0.17888E+02 -0.26294E+01 0.74915E+01
  2625 + 1. 0.94228E+01 -0.20019E+01 0.74990E+01
  2626 + 1. -0.17815E+02 0.28075E+01 0.75030E+01
  2627 + 1. 0.24544E+00 0.12650E+02 0.75090E+01
  2628 + 1. -0.39483E+01 0.96767E+01 0.75178E+01
  2629 + 1. -0.94372E+01 0.45710E+00 0.75239E+01
  2630 + 1. -0.47182E+01 0.51443E+01 0.75282E+01
  2631 + 1. -0.13960E+02 -0.11868E+02 0.75399E+01
  2632 + 1. 0.26155E+01 -0.90998E+01 0.75425E+01
  2633 + 1. -0.96969E+01 0.17460E+02 0.75498E+01
  2634 + 1. -0.11073E+02 0.10888E+02 0.75557E+01
  2635 + 1. -0.11115E+02 0.60850E+01 0.75618E+01
  2636 + 1. -0.47703E+01 -0.19390E+02 0.75687E+01
  2637 + 1. -0.74355E+01 -0.11726E+02 0.75791E+01
  2638 + 1. -0.13581E+02 0.14264E+02 0.75822E+01
  2639 + 1. 0.19700E+02 0.19639E+01 0.75887E+01
  2640 + 1. 0.28221E+01 -0.59546E+01 0.75943E+01
  2641 + 1. 0.99889E+00 0.34162E+01 0.76043E+01
  2642 + 1. -0.10893E+02 -0.45146E+01 0.76104E+01
  2643 + 1. 0.58236E+01 0.13120E+02 0.76150E+01
  2644 + 1. 0.63295E+01 0.16554E+02 0.76204E+01
  2645 + 1. -0.75066E+01 0.15714E+02 0.76310E+01
  2646 + 1. 0.69413E+01 0.11429E+02 0.76354E+01
  2647 + 1. 0.52941E+01 -0.17282E+02 0.76435E+01
  2648 + 1. 0.16667E+02 0.34571E+01 0.76487E+01
  2649 + 1. 0.90239E+01 -0.64450E+01 0.76555E+01
  2650 + 1. 0.30890E+01 0.85297E+01 0.76623E+01
  2651 + 1. -0.85577E+01 0.86930E+01 0.76690E+01
  2652 + 1. -0.14463E+02 0.54314E+01 0.76771E+01
  2653 + 1. -0.10261E+02 -0.11951E+02 0.76838E+01
  2654 + 1. 0.77422E+01 -0.11396E+02 0.76890E+01
  2655 + 1. -0.11111E+02 -0.16502E+02 0.76986E+01
  2656 + 1. 0.14637E+02 -0.12296E+02 0.77063E+01
  2657 + 1. -0.58127E+01 0.81714E+00 0.77086E+01
  2658 + 1. -0.89649E+00 -0.81883E+01 0.77197E+01
  2659 + 1. -0.72194E+01 0.18388E+02 0.77207E+01
  2660 + 1. -0.42137E+01 0.17932E+02 0.77326E+01
  2661 + 1. 0.16360E+01 -0.13036E+02 0.77389E+01
  2662 + 1. 0.13241E+02 0.13077E+02 0.77462E+01
  2663 + 1. 0.13646E+02 0.20778E+01 0.77482E+01
  2664 + 1. 0.10843E+02 -0.16640E+02 0.77549E+01
  2665 + 1. 0.50255E+01 0.19305E+02 0.77618E+01
  2666 + 1. 0.97016E+01 0.78647E+01 0.77668E+01
  2667 + 1. 0.16925E+02 0.77694E+01 0.77772E+01
  2668 + 1. 0.50181E+01 -0.14076E+02 0.77826E+01
  2669 + 1. -0.49430E+01 -0.46813E+01 0.77907E+01
  2670 + 1. -0.10013E+02 0.23716E+01 0.77947E+01
  2671 + 1. -0.19722E+02 0.94273E+00 0.78032E+01
  2672 + 1. 0.15549E+02 -0.34575E+01 0.78113E+01
  2673 + 1. -0.10919E+01 -0.18932E+02 0.78184E+01
  2674 + 1. -0.53313E+01 0.13092E+02 0.78219E+01
  2675 + 1. 0.12325E+02 -0.53408E+01 0.78276E+01
  2676 + 1. -0.19813E+01 -0.15391E+02 0.78386E+01
  2677 + 1. -0.72713E+01 -0.14200E+02 0.78466E+01
  2678 + 1. 0.27967E+00 -0.50122E+01 0.78472E+01
  2679 + 1. -0.16098E+02 -0.54483E+01 0.78579E+01
  2680 + 1. 0.65117E+01 -0.15425E+02 0.78629E+01
  2681 + 1. 0.31041E+01 0.10754E+02 0.78678E+01
  2682 + 1. -0.19712E+01 0.73681E+01 0.78782E+01
  2683 + 1. 0.14182E+02 0.79178E+01 0.78820E+01
  2684 + 1. 0.83854E+01 -0.17177E+02 0.78867E+01
  2685 + 1. 0.17824E+02 -0.66685E+01 0.78976E+01
  2686 + 1. 0.10477E+02 0.16507E+02 0.79010E+01
  2687 + 1. 0.44169E+01 0.12638E+01 0.79126E+01
  2688 + 1. 0.18395E+02 0.53923E+01 0.79135E+01
  2689 + 1. 0.74991E+01 0.83651E+01 0.79219E+01
  2690 + 1. 0.23484E+01 0.17101E+02 0.79313E+01
  2691 + 1. 0.11236E+02 0.64206E+01 0.79384E+01
  2692 + 1. -0.24053E+01 -0.64508E+01 0.79463E+01
  2693 + 1. -0.12358E+02 -0.10076E+02 0.79495E+01
  2694 + 1. -0.14995E+01 -0.71630E+00 0.79541E+01
  2695 + 1. -0.13596E+02 -0.70152E+01 0.79654E+01
  2696 + 1. -0.64606E+01 0.99676E+01 0.79693E+01
  2697 + 1. 0.14695E+02 -0.96965E+01 0.79779E+01
  2698 + 1. -0.16496E+02 0.75219E+00 0.79860E+01
  2699 + 1. -0.65284E+01 -0.68852E+01 0.79876E+01
  2700 + 1. 0.10410E+02 -0.46407E+01 0.79941E+01
  2701 + 1. -0.72814E+01 0.12512E+02 0.80054E+01
  2702 + 1. -0.17589E+02 -0.13138E+01 0.80086E+01
  2703 + 1. 0.12995E+02 0.15101E+02 0.80161E+01
  2704 + 1. -0.78250E+01 -0.37582E+01 0.80234E+01
  2705 + 1. 0.11609E+02 0.10654E+02 0.80281E+01
  2706 + 1. -0.14397E+02 0.52135E+00 0.80346E+01
  2707 + 1. 0.73495E+01 0.50017E+01 0.80450E+01
  2708 + 1. 0.11935E+02 -0.77315E+01 0.80476E+01
  2709 + 1. 0.64606E+00 0.15905E+02 0.80586E+01
  2710 + 1. 0.19972E+02 -0.98587E+00 0.80611E+01
  2711 + 1. 0.76810E+01 0.14145E+02 0.80725E+01
  2712 + 1. -0.61621E+01 -0.17992E+02 0.80751E+01
  2713 + 1. 0.53792E+01 -0.10381E+01 0.80842E+01
  2714 + 1. -0.10397E+02 0.80103E+01 0.80884E+01
  2715 + 1. -0.18499E+02 -0.74231E+01 0.80989E+01
  2716 + 1. 0.81529E+00 -0.16815E+02 0.81044E+01
  2717 + 1. -0.99988E+01 0.15227E+02 0.81126E+01
  2718 + 1. 0.32984E+01 -0.17368E+02 0.81166E+01
  2719 + 1. -0.84944E+00 -0.12854E+02 0.81261E+01
  2720 + 1. -0.39974E+01 -0.10092E+02 0.81323E+01
  2721 + 1. 0.19358E+01 0.13810E+02 0.81379E+01
  2722 + 1. -0.21086E+01 0.40758E+01 0.81443E+01
  2723 + 1. 0.13154E+02 0.58252E+01 0.81469E+01
  2724 + 1. -0.94102E+01 0.11887E+02 0.81570E+01
  2725 + 1. 0.96480E+01 0.33189E+01 0.81602E+01
  2726 + 1. -0.18275E+02 -0.41171E+01 0.81729E+01
  2727 + 1. -0.95474E+01 0.49442E+01 0.81780E+01
  2728 + 1. 0.61031E+00 -0.95210E+01 0.81815E+01
  2729 + 1. -0.34285E+01 0.11572E+02 0.81898E+01
  2730 + 1. -0.97191E+00 0.14546E+02 0.81997E+01
  2731 + 1. -0.37294E+00 0.19820E+02 0.82023E+01
  2732 + 1. 0.34833E+01 -0.11745E+02 0.82092E+01
  2733 + 1. -0.45290E+01 -0.14186E+02 0.82153E+01
  2734 + 1. 0.52975E+01 -0.38454E+01 0.82203E+01
  2735 + 1. -0.95534E+01 -0.14773E+02 0.82296E+01
  2736 + 1. 0.17899E+02 0.11525E+01 0.82346E+01
  2737 + 1. -0.26012E+01 0.19731E+02 0.82425E+01
  2738 + 1. 0.38728E+00 0.80855E+01 0.82494E+01
  2739 + 1. 0.17184E+02 -0.10014E+02 0.82546E+01
  2740 + 1. 0.82981E+01 -0.46079E+01 0.82604E+01
  2741 + 1. 0.23625E+01 0.11011E+01 0.82701E+01
  2742 + 1. -0.14604E+02 -0.29336E+01 0.82773E+01
  2743 + 1. -0.41030E+00 0.51258E+01 0.82848E+01
  2744 + 1. -0.14050E+02 0.10545E+02 0.82913E+01
  2745 + 1. 0.17086E+01 -0.22770E+01 0.82933E+01
  2746 + 1. -0.27342E+01 -0.43150E+01 0.83014E+01
  2747 + 1. -0.96932E+01 -0.71513E+01 0.83101E+01
  2748 + 1. -0.15703E+02 -0.94466E+01 0.83185E+01
  2749 + 1. -0.93572E+01 -0.97315E+01 0.83240E+01
  2750 + 1. -0.17724E+02 0.69333E+01 0.83293E+01
  2751 + 1. 0.13636E+02 -0.19408E+01 0.83352E+01
  2752 + 1. -0.16234E+02 -0.11445E+02 0.83451E+01
  2753 + 1. 0.15144E+02 0.96230E+01 0.83527E+01
  2754 + 1. 0.47106E+01 -0.19237E+02 0.83562E+01
  2755 + 1. 0.17267E+00 0.10123E+02 0.83659E+01
  2756 + 1. 0.84727E+01 0.10148E+02 0.83683E+01
  2757 + 1. -0.57877E+01 0.16701E+02 0.83775E+01
  2758 + 1. 0.80359E+01 -0.13249E+02 0.83841E+01
  2759 + 1. -0.19314E+02 0.38632E+01 0.83898E+01
  2760 + 1. 0.10003E+02 0.12584E+01 0.83966E+01
  2761 + 1. -0.23919E+01 0.17405E+02 0.84051E+01
  2762 + 1. -0.16141E+02 0.92843E+01 0.84133E+01
  2763 + 1. 0.84388E+01 0.16649E+02 0.84198E+01
  2764 + 1. -0.51868E+01 0.77779E+01 0.84231E+01
  2765 + 1. 0.47060E+01 0.14805E+02 0.84308E+01
  2766 + 1. 0.14665E+02 -0.52184E+01 0.84387E+01
  2767 + 1. -0.62448E+01 -0.10072E+02 0.84424E+01
  2768 + 1. 0.20743E+01 0.19872E+02 0.84526E+01
  2769 + 1. -0.82712E+01 -0.18114E+02 0.84590E+01
  2770 + 1. 0.13349E+02 -0.14555E+02 0.84626E+01
  2771 + 1. -0.10140E+02 -0.12598E+01 0.84668E+01
  2772 + 1. 0.62761E+01 0.21009E+01 0.84756E+01
  2773 + 1. 0.15760E+02 0.12146E+02 0.84854E+01
  2774 + 1. 0.11553E+02 0.41830E+01 0.84903E+01
  2775 + 1. -0.47538E+00 -0.31657E+01 0.84997E+01
  2776 + 1. -0.81935E+01 0.16816E+01 0.85046E+01
  2777 + 1. -0.33805E+01 0.15099E+02 0.85121E+01
  2778 + 1. 0.17354E+02 -0.75941E+00 0.85133E+01
  2779 + 1. -0.11381E+02 0.13511E+02 0.85266E+01
  2780 + 1. 0.10211E+02 -0.11225E+02 0.85311E+01
  2781 + 1. -0.73898E+01 -0.35999E+00 0.85349E+01
  2782 + 1. 0.75027E+01 -0.75789E+01 0.85418E+01
  2783 + 1. 0.16778E+00 0.98004E+00 0.85508E+01
  2784 + 1. 0.97667E+01 -0.15151E+02 0.85557E+01
  2785 + 1. -0.31224E+01 0.58692E+01 0.85628E+01
  2786 + 1. -0.21445E+01 0.96754E+01 0.85721E+01
  2787 + 1. -0.12330E+02 0.45739E+01 0.85786E+01
  2788 + 1. 0.19444E+02 0.36888E+01 0.85802E+01
  2789 + 1. 0.15830E+02 0.18503E+01 0.85877E+01
  2790 + 1. 0.16893E+02 -0.49179E+01 0.85950E+01
  2791 + 1. 0.19571E+02 -0.31481E+01 0.86030E+01
  2792 + 1. -0.15734E+02 0.39372E+01 0.86114E+01
  2793 + 1. 0.12401E+02 0.41399E+00 0.86138E+01
  2794 + 1. 0.30419E+01 0.44771E+01 0.86224E+01
  2795 + 1. 0.81062E+00 -0.14704E+02 0.86273E+01
  2796 + 1. -0.75435E+01 0.55941E+01 0.86344E+01
  2797 + 1. -0.19782E+02 -0.26265E+01 0.86426E+01
  2798 + 1. -0.13759E+02 0.29716E+01 0.86487E+01
  2799 + 1. -0.50252E+01 0.34303E+01 0.86582E+01
  2800 + 1. -0.35703E+01 0.11452E+01 0.86617E+01
  2801 + 1. 0.39464E+01 0.12849E+02 0.86673E+01
  2802 + 1. 0.31059E+01 -0.37371E+01 0.86778E+01
  2803 + 1. 0.99114E+01 -0.82490E+01 0.86816E+01
  2804 + 1. -0.13057E+02 -0.14977E+02 0.86928E+01
  2805 + 1. -0.25777E+01 -0.13684E+02 0.86993E+01
  2806 + 1. -0.13596E+02 0.12562E+02 0.87009E+01
  2807 + 1. 0.10184E+02 0.14296E+02 0.87131E+01
  2808 + 1. 0.12352E+02 0.89158E+01 0.87179E+01
  2809 + 1. 0.36173E+01 0.64589E+01 0.87260E+01
  2810 + 1. -0.11448E+01 -0.10313E+02 0.87280E+01
  2811 + 1. 0.16088E+02 -0.80428E+01 0.87385E+01
  2812 + 1. 0.24707E+01 -0.19838E+02 0.87461E+01
  2813 + 1. -0.12802E+02 0.84040E+01 0.87523E+01
  2814 + 1. -0.12162E+02 0.69224E+00 0.87589E+01
  2815 + 1. -0.11803E+02 -0.13289E+02 0.87665E+01
  2816 + 1. -0.21053E+01 -0.17359E+02 0.87674E+01
  2817 + 1. -0.45376E+01 -0.24767E+01 0.87775E+01
  2818 + 1. 0.47420E+01 0.90735E+01 0.87851E+01
  2819 + 1. -0.14037E+02 -0.51713E+01 0.87916E+01
  2820 + 1. -0.28598E+01 -0.19346E+02 0.87958E+01
  2821 + 1. 0.16654E+02 0.59181E+01 0.88051E+01
  2822 + 1. 0.30707E+01 -0.82041E+00 0.88119E+01
  2823 + 1. 0.72751E+01 -0.16224E+01 0.88193E+01
  2824 + 1. -0.16196E+02 -0.72166E+01 0.88206E+01
  2825 + 1. -0.28778E+01 -0.84625E+01 0.88309E+01
  2826 + 1. 0.11382E+02 -0.13329E+02 0.88357E+01
  2827 + 1. 0.49754E+01 -0.90011E+01 0.88413E+01
  2828 + 1. 0.11767E+02 -0.32951E+01 0.88503E+01
  2829 + 1. -0.10996E+02 -0.86311E+01 0.88588E+01
  2830 + 1. -0.14473E+02 0.72257E+01 0.88653E+01
  2831 + 1. -0.12323E+02 -0.22710E+01 0.88702E+01
  2832 + 1. -0.60282E+01 -0.12597E+02 0.88757E+01
  2833 + 1. -0.42699E+00 0.17886E+02 0.88800E+01
  2834 + 1. -0.85115E+01 0.14052E+02 0.88921E+01
  2835 + 1. 0.84072E+01 -0.98582E+01 0.88992E+01
  2836 + 1. 0.13651E+02 0.11438E+02 0.89042E+01
  2837 + 1. 0.61196E+01 -0.10724E+02 0.89109E+01
  2838 + 1. 0.43680E+01 -0.69144E+01 0.89154E+01
  2839 + 1. -0.11975E+02 -0.61034E+01 0.89216E+01
  2840 + 1. 0.10887E+02 -0.11614E+01 0.89305E+01
  2841 + 1. 0.29241E+01 -0.14326E+02 0.89376E+01
  2842 + 1. 0.98643E+01 0.11923E+02 0.89454E+01
  2843 + 1. -0.17467E+02 0.49272E+01 0.89494E+01
  2844 + 1. 0.39043E+01 0.18131E+02 0.89553E+01
  2845 + 1. 0.14010E+02 -0.72096E+01 0.89664E+01
  2846 + 1. 0.60271E+01 -0.12810E+02 0.89689E+01
  2847 + 1. 0.16875E+01 -0.11259E+02 0.89743E+01
  2848 + 1. -0.16450E+02 -0.37883E+01 0.89860E+01
  2849 + 1. 0.16118E+01 -0.70353E+01 0.89871E+01
  2850 + 1. 0.86836E+01 0.62250E+01 0.89971E+01
  2851 + 1. 0.56099E+01 0.60596E+01 0.90048E+01
  2852 + 1. -0.86625E+01 0.10197E+02 0.90120E+01
  2853 + 1. -0.14479E+02 -0.13319E+02 0.90152E+01
  2854 + 1. 0.10313E+02 0.94707E+01 0.90260E+01
  2855 + 1. -0.77003E+01 -0.56401E+01 0.90332E+01
  2856 + 1. -0.51788E+01 -0.82968E+01 0.90356E+01
  2857 + 1. -0.27837E+01 -0.11649E+02 0.90407E+01
  2858 + 1. -0.25380E+01 -0.24280E+01 0.90468E+01
  2859 + 1. 0.12476E+02 -0.97108E+01 0.90573E+01
  2860 + 1. 0.16096E+01 0.11760E+02 0.90617E+01
  2861 + 1. 0.12991E+02 -0.11880E+02 0.90703E+01
  2862 + 1. -0.61023E+01 0.14588E+02 0.90773E+01
  2863 + 1. -0.57913E+00 -0.67364E+01 0.90838E+01
  2864 + 1. 0.69533E+01 0.18205E+02 0.90890E+01
  2865 + 1. -0.12056E+02 0.15586E+02 0.90997E+01
  2866 + 1. 0.53428E+01 0.11300E+02 0.91001E+01
  2867 + 1. -0.42019E+01 -0.17671E+02 0.91101E+01
  2868 + 1. 0.14602E+02 0.47885E+01 0.91182E+01
  2869 + 1. -0.99896E+01 -0.33509E+01 0.91208E+01
  2870 + 1. 0.46596E+01 -0.15946E+02 0.91290E+01
  2871 + 1. -0.16801E+01 0.12338E+02 0.91370E+01
  2872 + 1. 0.15076E+02 -0.17921E+00 0.91460E+01
  2873 + 1. -0.18182E+01 0.20350E+01 0.91522E+01
  2874 + 1. 0.19178E+02 -0.56516E+01 0.91599E+01
  2875 + 1. -0.77034E+01 0.76088E+01 0.91664E+01
  2876 + 1. -0.11162E+02 0.95951E+01 0.91730E+01
  2877 + 1. -0.82598E+01 0.17206E+02 0.91786E+01
  2878 + 1. 0.65992E+01 -0.17164E+02 0.91824E+01
  2879 + 1. -0.54070E+01 -0.51633E+00 0.91920E+01
  2880 + 1. -0.97580E+01 -0.16997E+02 0.91979E+01
  2881 + 1. 0.16813E+01 0.67816E+01 0.92007E+01
  2882 + 1. -0.53158E+01 0.19251E+02 0.92072E+01
  2883 + 1. -0.14004E+02 -0.10448E+02 0.92175E+01
  2884 + 1. -0.17527E+02 -0.93361E+01 0.92257E+01
  2885 + 1. -0.11481E+02 0.26819E+01 0.92299E+01
  2886 + 1. 0.19026E+01 0.94157E+01 0.92371E+01
  2887 + 1. 0.27865E+01 0.15512E+02 0.92429E+01
  2888 + 1. 0.15872E+02 -0.11941E+02 0.92493E+01
  2889 + 1. 0.40484E+01 0.28446E+01 0.92572E+01
  2890 + 1. -0.18697E+02 0.18786E+01 0.92633E+01
  2891 + 1. -0.73498E+01 -0.16409E+02 0.92720E+01
  2892 + 1. 0.78136E+01 0.10291E+01 0.92758E+01
  2893 + 1. 0.12350E+02 0.24167E+01 0.92832E+01
  2894 + 1. 0.90779E+01 -0.29582E+01 0.92894E+01
  2895 + 1. 0.79133E+01 -0.15537E+02 0.92993E+01
  2896 + 1. 0.90078E+01 -0.58004E+00 0.93023E+01
  2897 + 1. -0.79884E+01 0.35124E+01 0.93116E+01
  2898 + 1. -0.80398E+01 -0.85047E+01 0.93163E+01
  2899 + 1. 0.18292E+02 0.76823E+01 0.93239E+01
  2900 + 1. -0.43707E+01 -0.63726E+01 0.93327E+01
  2901 + 1. 0.11872E+02 -0.15663E+02 0.93384E+01
  2902 + 1. -0.16323E+02 0.11107E+02 0.93407E+01
  2903 + 1. 0.11966E+02 0.12903E+02 0.93483E+01
  2904 + 1. 0.32996E+00 -0.10246E+01 0.93583E+01
  2905 + 1. -0.19681E+02 -0.44055E+00 0.93623E+01
  2906 + 1. -0.15362E+02 0.19477E+01 0.93680E+01
  2907 + 1. -0.15043E+02 -0.12882E+01 0.93763E+01
  2908 + 1. 0.16760E+02 -0.27779E+01 0.93860E+01
  2909 + 1. 0.44343E+01 -0.23746E+01 0.93920E+01
  2910 + 1. -0.38794E+01 0.13234E+02 0.93996E+01
  2911 + 1. 0.33120E+00 0.13320E+02 0.94060E+01
  2912 + 1. -0.89777E+01 -0.13086E+02 0.94102E+01
  2913 + 1. 0.17787E+02 0.28096E+01 0.94135E+01
  2914 + 1. -0.57988E+01 0.11397E+02 0.94229E+01
  2915 + 1. 0.75511E+01 0.12193E+02 0.94293E+01
  2916 + 1. -0.17963E+02 0.87564E+01 0.94367E+01
  2917 + 1. 0.71310E+00 -0.18415E+02 0.94400E+01
  2918 + 1. -0.37113E+01 0.86771E+01 0.94491E+01
  2919 + 1. 0.18127E+01 0.26752E+01 0.94596E+01
  2920 + 1. -0.18865E+02 -0.57931E+01 0.94653E+01
  2921 + 1. 0.63747E+01 0.15286E+02 0.94698E+01
  2922 + 1. 0.14183E+02 0.13942E+02 0.94775E+01
  2923 + 1. 0.10319E+02 -0.63735E+01 0.94848E+01
  2924 + 1. 0.17231E+02 0.95350E+01 0.94923E+01
  2925 + 1. -0.51427E+01 0.52625E+01 0.94981E+01
  2926 + 1. 0.14923E+02 0.68598E+01 0.95041E+01
  2927 + 1. 0.68297E+01 0.37414E+01 0.95105E+01
  2928 + 1. -0.10715E+02 -0.10785E+02 0.95188E+01
  2929 + 1. -0.10223E+02 0.16701E+02 0.95263E+01
  2930 + 1. 0.21583E+01 -0.92355E+01 0.95276E+01
  2931 + 1. -0.64442E+01 -0.36629E+01 0.95350E+01
  2932 + 1. -0.58087E+01 0.17985E+01 0.95426E+01
  2933 + 1. -0.34571E+01 -0.15754E+02 0.95519E+01
  2934 + 1. 0.65394E+01 -0.59382E+01 0.95545E+01
  2935 + 1. 0.23387E+01 -0.16322E+02 0.95642E+01
  2936 + 1. -0.99534E+01 0.65662E+01 0.95709E+01
  2937 + 1. 0.19757E+02 0.36934E+00 0.95735E+01
  2938 + 1. 0.94945E+01 -0.16938E+02 0.95816E+01
  2939 + 1. -0.77168E+01 -0.10824E+02 0.95904E+01
  2940 + 1. -0.10695E+01 0.65673E+01 0.95964E+01
  2941 + 1. 0.11601E+02 0.15641E+02 0.96009E+01
  2942 + 1. -0.94415E+00 -0.15089E+02 0.96095E+01
  2943 + 1. 0.15326E+01 -0.48095E+01 0.96140E+01
  2944 + 1. 0.98785E+01 0.17372E+02 0.96259E+01
  2945 + 1. -0.10054E+02 0.76689E+00 0.96315E+01
  2946 + 1. 0.68498E+01 -0.36130E+01 0.96375E+01
  2947 + 1. -0.11528E+02 0.11575E+02 0.96453E+01
  2948 + 1. 0.15972E+01 0.18040E+02 0.96511E+01
  2949 + 1. 0.10551E+02 0.73303E+01 0.96585E+01
  2950 + 1. 0.14278E+02 -0.33016E+01 0.96627E+01
  2951 + 1. -0.12282E+00 0.33089E+01 0.96702E+01
  2952 + 1. -0.96634E+01 -0.55717E+01 0.96750E+01
  2953 + 1. 0.70241E+01 0.95811E+01 0.96836E+01
  2954 + 1. 0.50711E+01 0.59407E+00 0.96930E+01
  2955 + 1. -0.58938E+01 -0.14641E+02 0.96963E+01
  2956 + 1. -0.13228E+02 -0.79932E+01 0.97007E+01
  2957 + 1. -0.16326E+02 0.64602E+01 0.97121E+01
  2958 + 1. -0.11326E+02 -0.15860E+02 0.97191E+01
  2959 + 1. -0.13775E+02 0.14410E+02 0.97248E+01
  2960 + 1. -0.12094E+02 -0.42679E+01 0.97269E+01
  2961 + 1. -0.23223E+01 0.84320E-02 0.97381E+01
  2962 + 1. 0.41375E+00 -0.12887E+02 0.97446E+01
  2963 + 1. -0.14077E+01 0.16111E+02 0.97513E+01
  2964 + 1. -0.41466E+01 0.16942E+02 0.97548E+01
  2965 + 1. 0.12822E+02 -0.50795E+01 0.97659E+01
  2966 + 1. -0.97512E+00 -0.19447E+02 0.97689E+01
  2967 + 1. -0.12576E+02 0.65046E+01 0.97788E+01
  2968 + 1. -0.14408E+02 0.90919E+01 0.97804E+01
  2969 + 1. -0.85749E+01 -0.19920E+01 0.97920E+01
  2970 + 1. -0.14501E+02 0.53353E+01 0.97952E+01
  2971 + 1. 0.10518E+02 0.52865E+01 0.98027E+01
  2972 + 1. 0.86208E+01 0.81712E+01 0.98129E+01
  2973 + 1. -0.34374E+01 0.40442E+01 0.98198E+01
  2974 + 1. 0.19050E+02 0.53330E+01 0.98242E+01
  2975 + 1. 0.46557E+01 -0.50319E+01 0.98298E+01
  2976 + 1. 0.18167E+02 -0.75301E+01 0.98390E+01
  2977 + 1. -0.15235E+01 -0.47868E+01 0.98443E+01
  2978 + 1. -0.83172E+01 0.12299E+02 0.98484E+01
  2979 + 1. 0.14366E+02 -0.10592E+02 0.98551E+01
  2980 + 1. 0.36922E+01 -0.18330E+02 0.98641E+01
  2981 + 1. -0.60953E+01 0.91315E+01 0.98733E+01
  2982 + 1. -0.17199E+02 -0.21445E+01 0.98795E+01
  2983 + 1. 0.84098E+01 -0.11618E+02 0.98826E+01
  2984 + 1. -0.57023E+01 -0.19010E+02 0.98888E+01
  2985 + 1. 0.85363E+01 0.15040E+02 0.98954E+01
  2986 + 1. -0.16991E+02 0.27072E+00 0.99043E+01
  2987 + 1. 0.14573E+02 -0.13492E+02 0.99107E+01
  2988 + 1. 0.13045E+02 0.74086E+01 0.99198E+01
  2989 + 1. 0.19066E+02 -0.15403E+01 0.99205E+01
  2990 + 1. 0.13229E+01 0.48428E+01 0.99269E+01
  2991 + 1. -0.28709E+00 -0.89428E+01 0.99370E+01
  2992 + 1. -0.18864E+02 0.65966E+01 0.99441E+01
  2993 + 1. -0.43471E+01 -0.13196E+02 0.99473E+01
  2994 + 1. -0.12647E+02 -0.11787E+02 0.99568E+01
  2995 + 1. -0.47721E+01 -0.10785E+02 0.99631E+01
  2996 + 1. 0.14267E+02 0.28735E+01 0.99670E+01
  2997 + 1. 0.40853E+01 -0.10600E+02 0.99797E+01
  2998 + 1. -0.71554E+00 0.86857E+01 0.99816E+01
  2999 + 1. 0.10411E+02 0.24616E+01 0.99929E+01
  3000 + 1. -0.10791E+02 0.44438E+01 0.99945E+01
... ...
etaGold.txt 0 → 100644
  1 +++ a/etaGold.txt
  1 +lambda n k
  2 +1.937 0.92 13.78
  3 +1.610 0.56 11.21
  4 +1.393 0.43 9.519
  5 +1.216 0.35 8.145
  6 +1.088 0.27 7.150
  7 +0.9840 0.22 6.350
  8 +0.8920 0.17 5.663
  9 +0.8211 0.16 5.083
  10 +0.7560 0.14 4.542
  11 +0.7045 0.13 4.103
  12 +0.6595 0.14 3.697
  13 +0.6168 0.21 3.272
  14 +0.5821 0.29 2.863
  15 +0.5486 0.43 2.455
  16 +0.5209 0.62 2.081
  17 +0.4959 1.04 1.833
  18 +0.4714 1.31 1.849
  19 +0.4509 1.38 1.914
  20 +0.4305 1.45 1.948
  21 +0.4133 1.46 1.958
  22 +0.3974 1.47 1.952
  23 +0.3815 1.46 1.933
  24 +0.3679 1.48 1.895
  25 +0.3542 1.50 1.866
  26 +0.3425 1.48 1.871
  27 +0.3315 1.48 1.883
  28 +0.3204 1.54 1.898
  29 +0.3107 1.53 1.893
  30 +0.3009 1.53 1.889
  31 +0.2924 1.49 1.878
  32 +0.2844 1.47 1.869
  33 +0.2761 1.43 1.847
  34 +0.2689 1.38 1.803
  35 +0.2616 1.35 1.749
  36 +0.2551 1.33 1.688
  37 +0.2490 1.33 1.631
  38 +0.2426 1.32 1.577
  39 +0.2371 1.32 1.536
  40 +0.2313 1.30 1.497
  41 +0.2262 1.31 1.460
  42 +0.2214 1.30 1.427
  43 +0.2164 1.30 1.387
  44 +0.2119 1.30 1.350
  45 +0.2073 1.30 1.304
  46 +0.2033 1.33 1.277
  47 +0.1993 1.33 1.251
  48 +0.1953 1.34 1.226
  49 +0.1916 1.32 1.203
  50 +0.1879 1.28 1.188
... ...
etaSilver.txt 0 → 100644
  1 +++ a/etaSilver.txt
  1 +lambda n k
  2 +1.937 0.24 14.08
  3 +1.610 0.15 11.85
  4 +1.393 0.13 10.10
  5 +1.216 0.09 8.828
  6 +1.088 0.04 7.795
  7 +0.9840 0.04 6.992
  8 +0.8920 0.04 6.312
  9 +0.8211 0.04 5.727
  10 +0.7560 0.03 5.242
  11 +0.7045 0.04 4.838
  12 +0.6595 0.05 4.483
  13 +0.6168 0.06 4.152
  14 +0.5821 0.05 3.858
  15 +0.5486 0.06 3.586
  16 +0.5209 0.05 3.324
  17 +0.4959 0.05 3.093
  18 +0.4714 0.05 2.869
  19 +0.4509 0.04 2.657
  20 +0.4305 0.04 2.462
  21 +0.4133 0.05 2.275
  22 +0.3974 0.05 2.070
  23 +0.3815 0.05 1.864
  24 +0.3679 0.07 1.657
  25 +0.3542 0.10 1.419
  26 +0.3425 0.14 1.142
  27 +0.3315 0.17 0.829
  28 +0.3204 0.81 0.392
  29 +0.3107 1.13 0.616
  30 +0.3009 1.34 0.964
  31 +0.2924 1.39 1.161
  32 +0.2844 1.41 1.264
  33 +0.2761 1.41 1.331
  34 +0.2689 1.38 1.372
  35 +0.2616 1.35 1.387
  36 +0.2551 1.33 1.393
  37 +0.2490 1.31 1.389
  38 +0.2426 1.30 1.378
  39 +0.2371 1.28 1.367
  40 +0.2313 1.28 1.357
  41 +0.2262 1.26 1.344
  42 +0.2214 1.25 1.342
  43 +0.2164 1.22 1.336
  44 +0.2119 1.20 1.325
  45 +0.2073 1.18 1.312
  46 +0.2033 1.15 1.296
  47 +0.1993 1.14 1.277
  48 +0.1953 1.12 1.255
  49 +0.1916 1.10 1.232
  50 +0.1879 1.07 1.212
0 51 \ No newline at end of file
... ...
mpidefs-parallel.f90 0 → 100644
  1 +++ a/mpidefs-parallel.f90
  1 +!
  2 +! MPI alias definitions for parallel machines.
  3 +!
  4 +!
  5 +! last revised: 15 January 2011
  6 +!
  7 + module mpidefs
  8 + use mpi
  9 + implicit none
  10 + integer :: ms_mpi_comm_world,ms_mpi_sum,ms_mpi_max,ms_mpi_min
  11 +
  12 + contains
  13 +
  14 + subroutine ms_mpi(mpi_command,mpi_recv_buf_i,mpi_recv_buf_r,mpi_recv_buf_c,mpi_recv_buf_dp, &
  15 + mpi_recv_buf_dc,mpi_send_buf_i,mpi_send_buf_r,mpi_send_buf_c, &
  16 + mpi_send_buf_dp,mpi_send_buf_dc,mpi_number,mpi_comm,mpi_group,mpi_rank,mpi_size,&
  17 + mpi_new_comm,mpi_new_group,mpi_new_group_list,mpi_operation)
  18 + integer, optional :: mpi_number,mpi_recv_buf_i(*),mpi_send_buf_i(*),mpi_comm,mpi_group,mpi_rank, &
  19 + mpi_size,mpi_new_comm,mpi_new_group,mpi_new_group_list(*),mpi_operation
  20 + integer :: stat(MPI_STATUS_SIZE)
  21 + real(4), optional :: mpi_recv_buf_r(*),mpi_send_buf_r(*)
  22 + real(8), optional :: mpi_recv_buf_dp(*),mpi_send_buf_dp(*)
  23 + complex(4), optional :: mpi_recv_buf_c(*),mpi_send_buf_c(*)
  24 + complex(8), optional :: mpi_recv_buf_dc(*),mpi_send_buf_dc(*)
  25 + character(*) :: mpi_command
  26 + integer :: type,ierr,comm,size,rank,group,newcomm
  27 +
  28 + if(mpi_command.eq.'init') then
  29 + call mpi_init(ierr)
  30 + ms_mpi_comm_world=mpi_comm_world
  31 + ms_mpi_sum=mpi_sum
  32 + ms_mpi_max=mpi_max
  33 + ms_mpi_min=mpi_min
  34 + return
  35 + endif
  36 + if(mpi_command.eq.'finalize') then
  37 + call mpi_finalize(ierr)
  38 + return
  39 + endif
  40 + if(present(mpi_comm)) then
  41 + comm=mpi_comm
  42 + else
  43 + comm=mpi_comm_world
  44 + endif
  45 + if(mpi_command.eq.'size') then
  46 + call mpi_comm_size(comm,size,ierr)
  47 + mpi_size=size
  48 + return
  49 + endif
  50 + if(mpi_command.eq.'rank') then
  51 + call mpi_comm_rank(comm,rank,ierr)
  52 + mpi_rank=rank
  53 + return
  54 + endif
  55 + if(mpi_command.eq.'group') then
  56 + call mpi_comm_group(comm,group,ierr)
  57 + mpi_group=group
  58 + return
  59 + endif
  60 + if(mpi_command.eq.'incl') then
  61 + call mpi_group_incl(mpi_group,mpi_size,mpi_new_group_list,group,ierr)
  62 + mpi_new_group=group
  63 + return
  64 + endif
  65 + if(mpi_command.eq.'create') then
  66 + call mpi_comm_create(comm,mpi_group,newcomm,ierr)
  67 + mpi_new_comm=newcomm
  68 + return
  69 + endif
  70 + if(mpi_command.eq.'barrier') then
  71 + call mpi_barrier (comm,ierr)
  72 + return
  73 + endif
  74 +
  75 + if(present(mpi_recv_buf_i).or.present(mpi_send_buf_i)) then
  76 + type=mpi_integer
  77 + if(mpi_command.eq.'bcast') then
  78 + call MPI_BCAST (mpi_send_buf_i,mpi_number,type,mpi_rank,comm,ierr)
  79 + return
  80 + endif
  81 + if(mpi_command.eq.'send') then
  82 + call mpi_send(mpi_send_buf_i,mpi_number,type,mpi_rank,1,comm,ierr)
  83 + return
  84 + endif
  85 + if(mpi_command.eq.'recv') then
  86 + call mpi_recv(mpi_recv_buf_i,mpi_number,type,mpi_rank,1,comm,stat,ierr)
  87 + return
  88 + endif
  89 + if(mpi_command.eq.'reduce') then
  90 + if(present(mpi_send_buf_i)) then
  91 + call mpi_reduce(mpi_send_buf_i,mpi_recv_buf_i,mpi_number,type,mpi_operation, &
  92 + mpi_rank,comm,ierr)
  93 + else
  94 + call mpi_reduce(mpi_in_place,mpi_recv_buf_i,mpi_number,type,mpi_operation, &
  95 + mpi_rank,comm,ierr)
  96 + endif
  97 + return
  98 + endif
  99 + if(mpi_command.eq.'allreduce') then
  100 + if(present(mpi_send_buf_i)) then
  101 + call mpi_allreduce(mpi_send_buf_i,mpi_recv_buf_i,mpi_number,type,mpi_operation, &
  102 + comm,ierr)
  103 + else
  104 + call mpi_allreduce(mpi_in_place,mpi_recv_buf_i,mpi_number,type,mpi_operation, &
  105 + comm,ierr)
  106 + endif
  107 + return
  108 + endif
  109 + endif
  110 +
  111 + if(present(mpi_recv_buf_r).or.present(mpi_send_buf_r)) then
  112 + type=mpi_real
  113 + if(mpi_command.eq.'bcast') then
  114 + call MPI_BCAST (mpi_send_buf_r,mpi_number,type,mpi_rank,comm,ierr)
  115 + return
  116 + endif
  117 + if(mpi_command.eq.'send') then
  118 + call mpi_send(mpi_send_buf_r,mpi_number,type,mpi_rank,1,comm,ierr)
  119 + return
  120 + endif
  121 + if(mpi_command.eq.'recv') then
  122 + call mpi_recv(mpi_recv_buf_r,mpi_number,type,mpi_rank,1,comm,stat,ierr)
  123 + return
  124 + endif
  125 + if(mpi_command.eq.'reduce') then
  126 + if(present(mpi_send_buf_r)) then
  127 + call mpi_reduce(mpi_send_buf_r,mpi_recv_buf_r,mpi_number,type,mpi_operation, &
  128 + mpi_rank,comm,ierr)
  129 + else
  130 + call mpi_reduce(mpi_in_place,mpi_recv_buf_r,mpi_number,type,mpi_operation, &
  131 + mpi_rank,comm,ierr)
  132 + endif
  133 + return
  134 + endif
  135 + if(mpi_command.eq.'allreduce') then
  136 + if(present(mpi_send_buf_r)) then
  137 + call mpi_allreduce(mpi_send_buf_r,mpi_recv_buf_r,mpi_number,type,mpi_operation, &
  138 + comm,ierr)
  139 + else
  140 + call mpi_allreduce(mpi_in_place,mpi_recv_buf_r,mpi_number,type,mpi_operation, &
  141 + comm,ierr)
  142 + endif
  143 + return
  144 + endif
  145 + endif
  146 +
  147 + if(present(mpi_recv_buf_c).or.present(mpi_send_buf_c)) then
  148 + type=mpi_complex
  149 + if(mpi_command.eq.'bcast') then
  150 + call MPI_BCAST (mpi_send_buf_c,mpi_number,type,mpi_rank,comm,ierr)
  151 + return
  152 + endif
  153 + if(mpi_command.eq.'send') then
  154 + call mpi_send(mpi_send_buf_c,mpi_number,type,mpi_rank,1,comm,ierr)
  155 + return
  156 + endif
  157 + if(mpi_command.eq.'recv') then
  158 + call mpi_recv(mpi_recv_buf_c,mpi_number,type,mpi_rank,1,comm,stat,ierr)
  159 + return
  160 + endif
  161 + if(mpi_command.eq.'reduce') then
  162 + if(present(mpi_send_buf_c)) then
  163 + call mpi_reduce(mpi_send_buf_c,mpi_recv_buf_c,mpi_number,type,mpi_operation, &
  164 + mpi_rank,comm,ierr)
  165 + else
  166 + call mpi_reduce(mpi_in_place,mpi_recv_buf_c,mpi_number,type,mpi_operation, &
  167 + mpi_rank,comm,ierr)
  168 + endif
  169 + return
  170 + endif
  171 + if(mpi_command.eq.'allreduce') then
  172 + if(present(mpi_send_buf_c)) then
  173 + call mpi_allreduce(mpi_send_buf_c,mpi_recv_buf_c,mpi_number,type,mpi_operation, &
  174 + comm,ierr)
  175 + else
  176 + call mpi_allreduce(mpi_in_place,mpi_recv_buf_c,mpi_number,type,mpi_operation, &
  177 + comm,ierr)
  178 + endif
  179 + return
  180 + endif
  181 + endif
  182 +
  183 + if(present(mpi_recv_buf_dp).or.present(mpi_send_buf_dp)) then
  184 + type=mpi_double_precision
  185 + if(mpi_command.eq.'bcast') then
  186 + call MPI_BCAST (mpi_send_buf_dp,mpi_number,type,mpi_rank,comm,ierr)
  187 + return
  188 + endif
  189 + if(mpi_command.eq.'send') then
  190 + call mpi_send(mpi_send_buf_dp,mpi_number,type,mpi_rank,1,comm,ierr)
  191 + return
  192 + endif
  193 + if(mpi_command.eq.'recv') then
  194 + call mpi_recv(mpi_recv_buf_dp,mpi_number,type,mpi_rank,1,comm,stat,ierr)
  195 + return
  196 + endif
  197 + if(mpi_command.eq.'reduce') then
  198 + if(present(mpi_send_buf_dp)) then
  199 + call mpi_reduce(mpi_send_buf_dp,mpi_recv_buf_dp,mpi_number,type,mpi_operation, &
  200 + mpi_rank,comm,ierr)
  201 + else
  202 + call mpi_reduce(mpi_in_place,mpi_recv_buf_dp,mpi_number,type,mpi_operation, &
  203 + mpi_rank,comm,ierr)
  204 + endif
  205 + return
  206 + endif
  207 + if(mpi_command.eq.'allreduce') then
  208 + if(present(mpi_send_buf_dp)) then
  209 + call mpi_allreduce(mpi_send_buf_dp,mpi_recv_buf_dp,mpi_number,type,mpi_operation, &
  210 + comm,ierr)
  211 + else
  212 + call mpi_allreduce(mpi_in_place,mpi_recv_buf_dp,mpi_number,type,mpi_operation, &
  213 + comm,ierr)
  214 + endif
  215 + return
  216 + endif
  217 + endif
  218 +
  219 + if(present(mpi_recv_buf_dc).or.present(mpi_send_buf_dc)) then
  220 + type=mpi_double_complex
  221 + if(mpi_command.eq.'bcast') then
  222 + call MPI_BCAST (mpi_send_buf_dc,mpi_number,type,mpi_rank,comm,ierr)
  223 + return
  224 + endif
  225 + if(mpi_command.eq.'send') then
  226 + call mpi_send(mpi_send_buf_dc,mpi_number,type,mpi_rank,1,comm,ierr)
  227 + return
  228 + endif
  229 + if(mpi_command.eq.'recv') then
  230 + call mpi_recv(mpi_recv_buf_dc,mpi_number,type,mpi_rank,1,comm,stat,ierr)
  231 + return
  232 + endif
  233 + if(mpi_command.eq.'reduce') then
  234 + if(present(mpi_send_buf_dc)) then
  235 + call mpi_reduce(mpi_send_buf_dc,mpi_recv_buf_dc,mpi_number,type,mpi_operation, &
  236 + mpi_rank,comm,ierr)
  237 + else
  238 + call mpi_reduce(mpi_in_place,mpi_recv_buf_dc,mpi_number,type,mpi_operation, &
  239 + mpi_rank,comm,ierr)
  240 + endif
  241 + return
  242 + endif
  243 + if(mpi_command.eq.'allreduce') then
  244 + if(present(mpi_send_buf_dc)) then
  245 + call mpi_allreduce(mpi_send_buf_dc,mpi_recv_buf_dc,mpi_number,type,mpi_operation, &
  246 + comm,ierr)
  247 + else
  248 + call mpi_allreduce(mpi_in_place,mpi_recv_buf_dc,mpi_number,type,mpi_operation, &
  249 + comm,ierr)
  250 + endif
  251 + return
  252 + endif
  253 + endif
  254 +
  255 + end subroutine ms_mpi
  256 + end module mpidefs
... ...
mpidefs-serial.f90 0 → 100644
  1 +++ a/mpidefs-serial.f90
  1 +!
  2 +! MPI alias definitions for serial machines.
  3 +!
  4 +!
  5 +! last revised: 15 January 2011
  6 +!
  7 + module mpidefs
  8 + implicit none
  9 + integer :: mpi_comm_world,ms_mpi_comm_world,ms_mpi_sum,ms_mpi_max,ms_mpi_min
  10 +
  11 + contains
  12 +
  13 + subroutine ms_mpi(mpi_command,mpi_recv_buf_i,mpi_recv_buf_r,mpi_recv_buf_c,mpi_recv_buf_dp, &
  14 + mpi_recv_buf_dc,mpi_send_buf_i,mpi_send_buf_r,mpi_send_buf_c, &
  15 + mpi_send_buf_dp,mpi_send_buf_dc,mpi_number,mpi_comm,mpi_group,mpi_rank,mpi_size, &
  16 + mpi_new_comm,mpi_new_group,mpi_new_group_list,mpi_operation)
  17 + integer, optional :: mpi_number,mpi_recv_buf_i(*),mpi_send_buf_i(*),mpi_comm,mpi_group,mpi_rank, &
  18 + mpi_size,mpi_new_comm,mpi_new_group,mpi_new_group_list(*),mpi_operation
  19 + integer :: stat(1)
  20 + real(4), optional :: mpi_recv_buf_r(*),mpi_send_buf_r(*)
  21 + real(8), optional :: mpi_recv_buf_dp(*),mpi_send_buf_dp(*)
  22 + complex(4), optional :: mpi_recv_buf_c(*),mpi_send_buf_c(*)
  23 + complex(8), optional :: mpi_recv_buf_dc(*),mpi_send_buf_dc(*)
  24 + character(*) :: mpi_command
  25 + integer :: type,ierr,comm,size,rank,group,newcomm
  26 +
  27 + if(mpi_command.eq.'init') then
  28 + mpi_comm_world=1
  29 + return
  30 + endif
  31 + if(mpi_command.eq.'finalize') then
  32 + return
  33 + endif
  34 + if(present(mpi_comm)) then
  35 + comm=mpi_comm
  36 + else
  37 + comm=mpi_comm_world
  38 + endif
  39 + if(mpi_command.eq.'size') then
  40 + mpi_size=1
  41 + return
  42 + endif
  43 + if(mpi_command.eq.'rank') then
  44 + mpi_rank=0
  45 + return
  46 + endif
  47 + if(mpi_command.eq.'group') then
  48 + return
  49 + endif
  50 + if(mpi_command.eq.'incl') then
  51 + mpi_new_group=0
  52 + return
  53 + endif
  54 + if(mpi_command.eq.'create') then
  55 + mpi_new_comm=1
  56 + return
  57 + endif
  58 + if(mpi_command.eq.'barrier') then
  59 + return
  60 + endif
  61 +
  62 + if(present(mpi_recv_buf_i).or.present(mpi_send_buf_i)) then
  63 + if(mpi_command.eq.'bcast'.or.mpi_command.eq.'send'.or.mpi_command.eq.'recv') then
  64 + return
  65 + endif
  66 + if(mpi_command.eq.'reduce'.or.mpi_command.eq.'allreduce') then
  67 + if(present(mpi_send_buf_i)) then
  68 + mpi_recv_buf_i(1:mpi_number)=mpi_send_buf_i(1:mpi_number)
  69 + endif
  70 + endif
  71 + return
  72 + endif
  73 +
  74 + if(present(mpi_recv_buf_r).or.present(mpi_send_buf_r)) then
  75 + if(mpi_command.eq.'bcast'.or.mpi_command.eq.'send'.or.mpi_command.eq.'recv') then
  76 + return
  77 + endif
  78 + if(mpi_command.eq.'reduce'.or.mpi_command.eq.'allreduce') then
  79 + if(present(mpi_send_buf_r)) then
  80 + mpi_recv_buf_r(1:mpi_number)=mpi_send_buf_r(1:mpi_number)
  81 + endif
  82 + endif
  83 + return
  84 + endif
  85 +
  86 + if(present(mpi_recv_buf_c).or.present(mpi_send_buf_c)) then
  87 + if(mpi_command.eq.'bcast'.or.mpi_command.eq.'send'.or.mpi_command.eq.'recv') then
  88 + return
  89 + endif
  90 + if(mpi_command.eq.'reduce'.or.mpi_command.eq.'allreduce') then
  91 + if(present(mpi_send_buf_c)) then
  92 + mpi_recv_buf_c(1:mpi_number)=mpi_send_buf_c(1:mpi_number)
  93 + endif
  94 + endif
  95 + return
  96 + endif
  97 +
  98 + if(present(mpi_recv_buf_dp).or.present(mpi_send_buf_dp)) then
  99 + if(mpi_command.eq.'bcast'.or.mpi_command.eq.'send'.or.mpi_command.eq.'recv') then
  100 + return
  101 + endif
  102 + if(mpi_command.eq.'reduce'.or.mpi_command.eq.'allreduce') then
  103 + if(present(mpi_send_buf_dp)) then
  104 + mpi_recv_buf_dp(1:mpi_number)=mpi_send_buf_dp(1:mpi_number)
  105 + endif
  106 + endif
  107 + return
  108 + endif
  109 +
  110 + if(present(mpi_recv_buf_dc).or.present(mpi_send_buf_dc)) then
  111 + if(mpi_command.eq.'bcast'.or.mpi_command.eq.'send'.or.mpi_command.eq.'recv') then
  112 + return
  113 + endif
  114 + if(mpi_command.eq.'reduce'.or.mpi_command.eq.'allreduce') then
  115 + if(present(mpi_send_buf_dc)) then
  116 + mpi_recv_buf_dc(1:mpi_number)=mpi_send_buf_dc(1:mpi_number)
  117 + endif
  118 + endif
  119 + return
  120 + endif
  121 +
  122 + end subroutine ms_mpi
  123 + end module mpidefs
... ...
msinput.inp 0 → 100644
  1 +++ a/msinput.inp
  1 +number_spheres
  2 +27
  3 +sphere_position_file
  4 +cube27.pos
  5 +output_file
  6 +test.dat
  7 +run_print_file
  8 +
  9 +length_scale_factor
  10 +2
  11 +real_ref_index_scale_factor
  12 +1.4
  13 +imag_ref_index_scale_factor
  14 +.1
  15 +real_chiral_factor
  16 +0.d0
  17 +imag_chiral_factor
  18 +0.d0
  19 +mie_epsilon
  20 +1.d-4
  21 +translation_epsilon
  22 +1.d-6
  23 +solution_epsilon
  24 +1.d-7
  25 +max_number_iterations
  26 +5000
  27 +max_memory_per_processor
  28 +1500
  29 +store_translation_matrix
  30 +1
  31 +near_field_distance
  32 +-1.
  33 +iterations_per_correction
  34 +20
  35 +min_scattering_angle_deg
  36 +0.d0
  37 +max_scattering_angle_deg
  38 +180.d0
  39 +number_scattering_angles
  40 +181
  41 +normalize_scattering_matrix
  42 +1
  43 +gaussian_beam_constant
  44 +0.0d0
  45 +gaussian_beam_focal_point
  46 +0.d0,0.d0,0.d0
  47 +fixed_or_random_orientation
  48 +0
  49 +incident_azimuth_angle_deg
  50 +0.d0
  51 +incident_polar_angle_deg
  52 +0.d0
  53 +scattering_plane_angle_deg
  54 +0.d0
  55 +calculate_scattering_coefficients
  56 +1
  57 +scattering_coefficient_file
  58 +amn_temp.dat
  59 +track_iterations
  60 +1
  61 +calculate_near_field
  62 +1
  63 +near_field_plane_coord
  64 +1
  65 +near_field_plane_position
  66 +0.d0
  67 +near_field_plane_vertices
  68 +-20.d0,-20.d0,20.d0,20.d0
  69 +spacial_step_size
  70 +.2d0
  71 +polarization_angle_deg
  72 +0.d0
  73 +near_field_output_file
  74 +nf-temp.dat
  75 +near_field_output_data
  76 +2
  77 +plane_wave_epsilon
  78 +0.01d0
  79 +calculate_t_matrix
  80 +1
  81 +t_matrix_file
  82 +tmatrix-temp.dat
  83 +t_matrix_convergence_epsilon
  84 +1.d-9
  85 +sphere_sizes_and_positions
  86 +10. 0. 0. 0.
  87 +5. 0. 0. 15.
  88 +2. 0. 0. -12.
  89 +8. 18. 0. 0.
  90 +end_of_options
... ...
mstm-generic-main-v2.2.f90 0 → 100644
  1 +++ a/mstm-generic-main-v2.2.f90
  1 +!
  2 +! generic mstm calling program.
  3 +!
  4 +! this code is intended for user modification. It does not employ input files, command line arguments, etc.
  5 +!
  6 +! all parameters must be hardwired. read the code for the basic ideas.
  7 +!
  8 + program main
  9 + use mpidefs
  10 + use mpidata
  11 + use intrinsics
  12 + use spheredata
  13 + use numconstants
  14 + use specialfuncs
  15 + use miecoefdata
  16 + use translation
  17 + use solver
  18 + use scatprops
  19 + use nearfield
  20 + implicit none
  21 + integer :: nsphere,neqns,nodrmax,nodrt,i,k,niter,istat,numtheta, &
  22 + nblkt,nodrg,m,n,p,l,q,mn,kl,m1,n1,l1,k1,q1,w,klm,mnm,ikm, &
  23 + fixedorrandom,numargs,calctmatrix,maxiter,nodrta(1),calcnf, &
  24 + calcamn,ip1,ip2,ma,na,nsend,nfplane,nfoutunit,nfoutdata, &
  25 + maxmbperproc,trackiterations,nonactive,normalizesm, &
  26 + storetranmat,calcsm,niterstep,fftranpresent
  27 + integer, allocatable :: nodr(:),ntran(:),sphereblk(:),sphereoff(:)
  28 + real (8) :: alphadeg,betadeg,alpha,beta,epsmie,epstran,epssoln, &
  29 + qexttot,qabstot,xv,scalefac,qscatot,asymparm, &
  30 + rireal,riimag,phideg,theta1d,theta2d,thetad,costheta,phi, &
  31 + sm(4,4),time1,time2,fc1,fc2,fc3,fc4,epstcon,qabslm,absrat, &
  32 + cbeam,gbfocus(3),maxerr,nfplanepos,nfplanevert(2,2), &
  33 + deltax,gammadeg,epspw,gamma,qexttotpar,qexttotper, &
  34 + qabstotpar,qabstotper,qscatotpar,qscatotper,cphi,sphi,s11, &
  35 + nfdistance
  36 + real(8), allocatable :: xsp(:), rpos(:,:),qext(:,:),qabs(:,:), &
  37 + qsca(:,:),smc(:,:,:),smt(:,:,:)
  38 + complex(8) :: sa(4),chiralfactor
  39 + complex(8), allocatable :: amnp(:,:),amnp0(:,:,:,:),ri(:,:), &
  40 + gmn(:),amnp1(:,:,:),amnp2(:,:,:)
  41 + character*30 :: inputfile,spherefile,parmfile,outfile,tmatrixfile,&
  42 + amnfile,nfoutfile,runfile
  43 + complex(8), allocatable :: pmnp0(:,:,:,:)
  44 + integer :: ierr,rank,printinputdata,runprintunit,numprocs
  45 +!
  46 +! this main program was set up to perform a loop of T matrix calculations,
  47 +! all involving scaled sphere positions from the file 'ran200fvp5.pos'
  48 +!
  49 +!
  50 +! extra variable declarations go here
  51 +!
  52 + integer :: case,numcases
  53 + real(8) :: xsp0,rpos0(3,200),rotang,volfrac,volfrac0,volfrac1,posscale
  54 + complex(8) :: ri0
  55 +!
  56 +! define the sphere properties and run parameters
  57 +!
  58 + nsphere=200
  59 + xsp0=3.d0
  60 + ri0=(1.31d0,0.0d0)
  61 + chiralfactor=0.d0
  62 + volfrac0=0.1d0
  63 + volfrac1=0.5d0
  64 +
  65 + allocate(xsp(nsphere),rpos(3,nsphere),nodr(nsphere),ntran(nsphere), &
  66 + ri(2,nsphere),sphereblk(nsphere),sphereoff(nsphere+1))
  67 + spherefile='ran200fvp5.pos'
  68 + open(1,file=spherefile)
  69 + do i=1,nsphere
  70 + read(1,*) xsp(i),rpos0(:,i)
  71 + enddo
  72 + close(1)
  73 +
  74 + outfile='test.dat'
  75 + runfile=' '
  76 + xsp=xsp0
  77 + xv=xsp0*dble(nsphere)**.3333d0
  78 + ri=ri0
  79 + epsmie=1.d-4
  80 + epstran=1.d-6
  81 + epssoln=1.d-10
  82 + niter=2000
  83 + fixedorrandom=1
  84 + theta1d=0.
  85 + theta2d=180.
  86 + numtheta=181
  87 + maxmbperproc=1500.
  88 + storetranmat=1
  89 + nfdistance=10000.
  90 + normalizesm=0
  91 + calcamn=1
  92 + amnfile='amn-temp.dat'
  93 + phideg=0.d0
  94 + alphadeg=0.d0
  95 + betadeg=0.d0
  96 + trackiterations=0
  97 + calcnf=0
  98 + cbeam=0.d0
  99 + nfplane=1
  100 + nfplanepos=0.d0
  101 + deltax=0.2d0
  102 + nfplanevert=reshape((/-40.d0,-40.d0,40.d0,40.d0/),(/2,2/))
  103 + gammadeg=0.d0
  104 + nfoutfile='nftest2b.dat'
  105 + nfoutunit=2
  106 + nfoutdata=1
  107 + epspw=0.01d0
  108 + calctmatrix=1
  109 + tmatrixfile='tmatrix-temp.dat'
  110 + epstcon=1.d-6
  111 +!
  112 +! this erases the output file: the code runs a loop where
  113 +! output values are appended to the file
  114 +!
  115 + open(1,file=outfile)
  116 + close(1,status='delete')
  117 + if(runfile.ne.' ') then
  118 + runprintunit=4
  119 + open(runprintunit,file=runfile)
  120 + else
  121 + runprintunit=6
  122 + endif
  123 + call setrunparameters(run_print_unit=runprintunit)
  124 +!
  125 +! initialize mpi
  126 +!
  127 + call ms_mpi(mpi_command='init')
  128 +!
  129 +! this is the main variable loop. In this example the volume fraction of the spheres
  130 +! is changed with each case.
  131 +!
  132 + numcases=20
  133 + do case=1,numcases-1
  134 + volfrac=volfrac0+(volfrac1-volfrac0)*dble(case-1)/dble(numcases-1)
  135 + posscale=(volfrac1/volfrac)**.33333d0
  136 + rpos=rpos0*posscale*xsp0
  137 + write(runprintunit,'('' case, fv:'',i5,f8.2)') case, volfrac
  138 +!
  139 +! the rest of the code is basically the same as the mstm
  140 +! main program, without the getrunparameter calls.
  141 +!
  142 + if(numtheta.gt.0) then
  143 + if(allocated(smt)) deallocate(smt)
  144 + allocate(smt(4,4,numtheta))
  145 + endif
  146 +!
  147 +! determine if optical activity is present
  148 +!
  149 + nonactive=1
  150 + do i=1,nsphere
  151 + if(cdabs(ri(1,i)-ri(2,i)).gt.1.d-10) then
  152 + nonactive=0
  153 + exit
  154 + endif
  155 + enddo
  156 +!
  157 +! calculation of sphere mie coefficients, order limits
  158 +!
  159 + call miecoefcalc(nsphere,xsp,ri,epsmie)
  160 + call getmiedata(sphere_order=nodr,max_order=nodrmax,number_equations=neqns, &
  161 + sphere_block=sphereblk,sphere_block_offset=sphereoff)
  162 +!
  163 +! determine the size of the parallel run and set it up
  164 +!
  165 + call ms_mpi(mpi_command='size',mpi_size=numprocs)
  166 + call ms_mpi(mpi_command='rank',mpi_rank=rank)
  167 + call ms_mpi(mpi_command='barrier')
  168 + call mpisetup(nsphere,nodr,rpos,fixedorrandom,maxmbperproc,storetranmat, &
  169 + nfdistance,fftranpresent,runprintunit)
  170 + call ms_mpi(mpi_command='barrier')
  171 +!
  172 +! this was an option for moving the GB focal point
  173 +!
  174 + gbfocus=(/0.d0,dble(case-1),0.d0/)*.5d0
  175 + gbfocus=0.d0
  176 +!
  177 +! translation matrix calculation
  178 +!
  179 + call mpirottranmtrxsetup(nsphere,nodr,rpos,(1.d0,0.d0),storetranmat, &
  180 + nfdistance,runprintunit)
  181 + call ms_mpi(mpi_command='barrier')
  182 +!
  183 +! determine orders required to expand scattered fields about target origin
  184 +!
  185 + call tranorders(nsphere,nodr,rpos,epstran,ntran,nodrt)
  186 +!
  187 +! report the size of the run
  188 +!
  189 + if(rank.eq.0) then
  190 + write(runprintunit,'('' maximum sphere order:'',i5)') nodrmax
  191 + write(runprintunit,'('' estimated T matrix order:'',i5)') nodrt
  192 + write(runprintunit,'('' number of equations:'',i9)') neqns
  193 + call flush(runprintunit)
  194 + endif
  195 +!
  196 +! the main calculations
  197 +!
  198 + if(fixedorrandom.eq.1) then
  199 +!
  200 +! random orientation option
  201 +!
  202 + if(allocated(qext)) deallocate(qext,qabs,qsca)
  203 + allocate(qext(nsphere,1), qabs(nsphere,1), qsca(nsphere,1))
  204 + if(calctmatrix.ge.1) then
  205 +!
  206 +! this option calculates the T matrix either from the beginning or where left off
  207 +!
  208 + if(rank.eq.0) time1=mytime()
  209 + call tmatrixsoln(neqns,nsphere,nodr,nodrt,xsp,rpos,epssoln,epstcon,niter,&
  210 + calctmatrix,tmatrixfile,fftranpresent,niterstep,qext,qabs,qsca,istat)
  211 + if(rank.eq.0) then
  212 + time2=mytime()-time1
  213 + call timewrite(runprintunit,' execution time:',time2)
  214 + endif
  215 + call rottranmtrxclear()
  216 + else
  217 +!
  218 +! and this has the T matrix already calculated and stored in the file.
  219 +!
  220 +! read the order of the T matrix and broadcast to the processors.
  221 +!
  222 + if(rank.eq.0) then
  223 + open(3,file=tmatrixfile)
  224 + read(3,*) nodrt
  225 + close(3)
  226 + write(runprintunit,'('' t matrix order:'',i5)') nodrt
  227 + call flush(runprintunit)
  228 + endif
  229 + nodrta(1)=nodrt
  230 + call ms_mpi(mpi_command='bcast',mpi_send_buf_i=nodrta,mpi_number=1,mpi_rank=0)
  231 + nodrt=nodrta(1)
  232 + call ms_mpi(mpi_command='barrier')
  233 + endif
  234 +!
  235 +! the T matrix is available; calculate the random orientation scattering matrix
  236 +!
  237 + nblkt=nodrt*(nodrt+2)
  238 + nodrg=nodrt*2
  239 + if(allocated(smc)) deallocate(smc)
  240 + allocate(smc(4,4,0:nodrg))
  241 + call ranorientscatmatrix(xv,nsphere,nodrt,nodrg,cbeam,tmatrixfile,smc,qext, &
  242 + qabs,qsca)
  243 + if(rank.eq.0) then
  244 + qexttot=sum(qext(:,1)*xsp*xsp)/xv/xv
  245 + qabstot=sum(qabs(:,1)*xsp*xsp)/xv/xv
  246 + qscatot=qexttot-qabstot
  247 + asymparm=dble(smc(1,1,1)/smc(1,1,0))/3.d0
  248 + call ranorienscatmatrixcalc(numtheta,theta1d,theta2d,1,smc,nodrg,smt)
  249 + endif
  250 + else
  251 +!
  252 +! fixed orientation option
  253 +!
  254 + alpha=alphadeg*pi/180.d0
  255 + beta=betadeg*pi/180.d0
  256 + phi=phideg*pi/180.d0
  257 + if(allocated(amnp)) deallocate(amnp)
  258 + allocate(amnp(neqns,2))
  259 + if(allocated(qext)) deallocate(qext,qabs,qsca)
  260 + allocate(qext(nsphere,3), qabs(nsphere,3), qsca(nsphere,3))
  261 + if(calcamn.eq.1) then
  262 +!
  263 +! this option calculates the scattering coefficients
  264 +!
  265 + if(rank.eq.0) time1=mytime()
  266 + call fixedorsoln(neqns,nsphere,nodr,alpha,beta,cbeam,xsp,rpos,epssoln,&
  267 + epstran,niter,amnp,qext,qabs,qsca,maxerr,maxiter,trackiterations, &
  268 + fftranpresent,niterstep,istat)
  269 +!
  270 +! write the scattering coefficients to the file
  271 +!
  272 + if(rank.eq.0) then
  273 + time2=mytime()-time1
  274 + write(runprintunit,'('' max iterations, soln error:'',i6,e13.5)') &
  275 + maxiter,maxerr
  276 + call timewrite(runprintunit,' execution time:',time2)
  277 + open(3,file=amnfile)
  278 + do i=1,nsphere
  279 + write(3,'(6e13.5)') qext(i,:),qabs(i,:),qsca(i,:)
  280 + allocate(amnp1(0:nodr(i)+1,nodr(i),2),amnp2(0:nodr(i)+1,nodr(i),2))
  281 + ip1=sphereoff(i)+1
  282 + ip2=sphereoff(i)+sphereblk(i)
  283 + amnp1=reshape(amnp(ip1:ip2,1),(/nodr(i)+2,nodr(i),2/))
  284 + amnp2=reshape(amnp(ip1:ip2,2),(/nodr(i)+2,nodr(i),2/))
  285 + do n=1,nodr(i)
  286 + do m=-n,n
  287 + if(m.le.-1) then
  288 + ma=n+1
  289 + na=-m
  290 + else
  291 + ma=m
  292 + na=n
  293 + endif
  294 + write(3,'(4e17.9)') amnp1(ma,na,1),amnp2(ma,na,1)
  295 + write(3,'(4e17.9)') amnp1(ma,na,2),amnp2(ma,na,2)
  296 + enddo
  297 + enddo
  298 + deallocate(amnp1,amnp2)
  299 + enddo
  300 + close(3)
  301 + endif
  302 + else
  303 +!
  304 +! this option reads the scattering coefficients from the file
  305 +!
  306 + if(rank.eq.0) then
  307 + open(3,file=amnfile)
  308 + do i=1,nsphere
  309 + read(3,'(6e13.5)') qext(i,:),qabs(i,:),qsca(i,:)
  310 + allocate(amnp1(0:nodr(i)+1,nodr(i),2),amnp2(0:nodr(i)+1,nodr(i),2))
  311 + do n=1,nodr(i)
  312 + do m=-n,n
  313 + if(m.le.-1) then
  314 + ma=n+1
  315 + na=-m
  316 + else
  317 + ma=m
  318 + na=n
  319 + endif
  320 + read(3,'(4e17.9)') amnp1(ma,na,1),amnp2(ma,na,1)
  321 + read(3,'(4e17.9)') amnp1(ma,na,2),amnp2(ma,na,2)
  322 + enddo
  323 + enddo
  324 + ip1=sphereoff(i)+1
  325 + ip2=sphereoff(i)+sphereblk(i)
  326 + amnp(ip1:ip2,1)=reshape(amnp1(0:nodr(i)+1,1:nodr(i),1:2),(/sphereblk(i)/))
  327 + amnp(ip1:ip2,2)=reshape(amnp2(0:nodr(i)+1,1:nodr(i),1:2),(/sphereblk(i)/))
  328 + deallocate(amnp1,amnp2)
  329 + enddo
  330 + close(3)
  331 + endif
  332 +!
  333 +! broadcast the scattering coefficients to the other processors
  334 +!
  335 + nsend=neqns*2
  336 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dc=amnp,mpi_number=nsend,mpi_rank=0)
  337 + endif
  338 +!
  339 +! calculate the efficiency factors
  340 +!
  341 + cphi=cos(phi)
  342 + sphi=sin(phi)
  343 + qexttotpar=sum((qext(:,1)*cphi*cphi+2.d0*qext(:,3)*cphi*sphi+qext(:,2)*sphi*sphi) &
  344 + *xsp*xsp)/xv/xv
  345 + qexttotper=sum((qext(:,1)*sphi*sphi-2.d0*qext(:,3)*cphi*sphi+qext(:,2)*cphi*cphi) &
  346 + *xsp*xsp)/xv/xv
  347 + qabstotpar=sum((qabs(:,1)*cphi*cphi+2.d0*qabs(:,3)*cphi*sphi+qabs(:,2)*sphi*sphi) &
  348 + *xsp*xsp)/xv/xv
  349 + qabstotper=sum((qabs(:,1)*sphi*sphi-2.d0*qabs(:,3)*cphi*sphi+qabs(:,2)*cphi*cphi) &
  350 + *xsp*xsp)/xv/xv
  351 + qscatotpar=qexttotpar-qabstotpar
  352 + qscatotper=qexttotper-qabstotper
  353 + qexttot=(qexttotpar+qexttotper)*.5d0
  354 + qabstot=(qabstotpar+qabstotper)*.5d0
  355 + qscatot=(qscatotpar+qscatotper)*.5d0
  356 + qext(:,1)=(qext(:,1)+qext(:,2))*.5d0
  357 + qabs(:,1)=(qabs(:,1)+qabs(:,2))*.5d0
  358 + qsca(:,1)=(qsca(:,1)+qsca(:,2))*.5d0
  359 + call rottranmtrxclear()
  360 +!
  361 +! calculate the target-based expansion and rotate to the incident field frame
  362 +!
  363 + allocate(amnp0(0:nodrt+1,nodrt,2,2),pmnp0(0:nodrt+1,nodrt,2,2))
  364 + do k=1,2
  365 + call amncommonorigin(neqns,nsphere,nodr,ntran,nodrt,rpos, &
  366 + amnp(1:neqns,k),amnp0(0:,1:,1:,k))
  367 + call rotvec(alpha,beta,0.d0,nodrt,nodrt,amnp0(0:,1:,1:,k),1)
  368 + enddo
  369 +!
  370 +! calculate the asymmetry parameter and the scattering matrix
  371 +!
  372 + allocate(gmn(0:2))
  373 + call s11expansion(amnp0,nodrt,0,1,gmn)
  374 + asymparm=dble(gmn(1)/gmn(0))/3.d0
  375 + do i=1,numtheta
  376 + thetad=theta1d+(theta2d-theta1d)*(i-1)/max(1.d0,dble(numtheta-1))
  377 + costheta=cos(thetad*pi/180.d0)
  378 + call scatteringmatrix(amnp0,nodrt,xv,costheta,phi,sa,smt(:,:,i))
  379 + enddo
  380 + deallocate(amnp0,pmnp0,gmn)
  381 + endif
  382 +!
  383 +! output file operations
  384 +!
  385 + if(rank.eq.0) then
  386 + open(1,file=outfile,position='append')
  387 + if(nonactive.eq.0) then
  388 + write(1,'('' sphere S.P., pos. (x,y,z), ref. index (L,R), Qext, Qsca, Qabs, Qabs/Qabs,LM'')')
  389 + else
  390 + write(1,'('' sphere S.P., pos. (x,y,z), ref. index, Qext, Qsca, Qabs, Qabs/Qabs,LM'')')
  391 + endif
  392 + do i=1,nsphere
  393 + call getmiedata(which_sphere=i,sphere_qabs=qabslm)
  394 + if(dimag(ri(1,i)).eq.0.d0.and.dimag(ri(2,i)).eq.0.d0) then
  395 + absrat=1.d0
  396 + else
  397 + absrat=qabs(i,1)/qabslm
  398 + endif
  399 + if(nonactive.eq.0) then
  400 + write(1,'(i5,4f10.4,4f10.6,3e13.5,f8.4)') i, xsp(i),rpos(:,i)+gbfocus, ri(:,i), &
  401 + qext(i,1),qsca(i,1),qabs(i,1),absrat
  402 + else
  403 + write(1,'(i5,4f10.4,2f10.6,3e13.5,f8.4)') i, xsp(i),rpos(:,i)+gbfocus, ri(1,i), &
  404 + qext(i,1),qsca(i,1),qabs(i,1),absrat
  405 + endif
  406 + enddo
  407 + if(fixedorrandom.eq.1) then
  408 + write(1,'('' total ext, abs, scat efficiencies, w.r.t. xv, and asym. parm'')')
  409 + write(1,'(6e13.5)') qexttot,qabstot,qscatot,asymparm
  410 + else
  411 + write(1,'('' unpolarized total ext, abs, scat efficiencies, w.r.t. xv, and asym. parm'')')
  412 + write(1,'(6e13.5)') qexttot,qabstot,qscatot,asymparm
  413 + write(1,'('' parallel total ext, abs, scat efficiencies'')')
  414 + write(1,'(6e13.5)') qexttotpar,qabstotpar,qscatotpar
  415 + write(1,'('' perpendicular total ext, abs, scat efficiencies'')')
  416 + write(1,'(6e13.5)') qexttotper,qabstotper,qscatotper
  417 + endif
  418 +
  419 + write(1,'('' scattering matrix elements'')')
  420 + if(normalizesm.eq.0) then
  421 + write(1,'('' theta s11 s22 s33'',&
  422 + &'' s44'',&
  423 + &'' s21 s32 s43 s31'',&
  424 + &'' s42 s41'')')
  425 + do i=1,numtheta
  426 + thetad=theta1d+(theta2d-theta1d)*(i-1)/max(1.d0,dble(numtheta-1))
  427 + write(1,'(f8.2,10e12.4)') thetad,smt(1,1,i),smt(2,2,i),smt(3,3,i), &
  428 + smt(4,4,i),smt(1,2,i),smt(2,3,i),smt(3,4,i),smt(1,3,i), &
  429 + smt(2,4,i),smt(1,4,i)
  430 + enddo
  431 + else
  432 + write(1,'('' theta s11 s22/s11 s33'',&
  433 + &''/s11 s44'',&
  434 + &''/s11 s21/s11 s32/s11 s43/s11 s31'',&
  435 + &''/s11 s42/s11 s41/s11'')')
  436 + do i=1,numtheta
  437 + thetad=theta1d+(theta2d-theta1d)*(i-1)/max(1.d0,dble(numtheta-1))
  438 + s11=smt(1,1,i)
  439 + write(1,'(f8.2,10e12.4)') thetad,smt(1,1,i),smt(2,2,i)/s11,smt(3,3,i)/s11, &
  440 + smt(4,4,i)/s11,smt(1,2,i)/s11,smt(2,3,i)/s11,smt(3,4,i)/s11,smt(1,3,i)/s11, &
  441 + smt(2,4,i)/s11,smt(1,4,i)/s11
  442 + enddo
  443 + endif
  444 + if(fixedorrandom.eq.1) then
  445 + write(1,'('' scattering matrix expansion coefficients'')')
  446 + write(1,'('' w a11 a22 a33 '',&
  447 + &''a23 a32 a44 a12 '',&
  448 + &''a34 a13 a24 a14'')')
  449 + do w=0,nodrg
  450 + write(1,'(i5,11e12.4)') w,smc(1,1,w),smc(2,2,w),&
  451 + smc(3,3,w),smc(2,3,w),smc(3,2,w),smc(4,4,w),&
  452 + smc(1,2,w),smc(3,4,w),smc(1,3,w),smc(2,4,w),&
  453 + smc(1,4,w)
  454 + enddo
  455 + endif
  456 + close(1)
  457 + endif
  458 +!
  459 +! near field calculation options
  460 +!
  461 + if(fixedorrandom.eq.0.and.calcnf.eq.1) then
  462 +!
  463 +! this was a modification to the main: the near field file
  464 +! is opened for appending
  465 +!
  466 + if(rank.eq.0) then
  467 + open(nfoutunit,file=nfoutfile,position='append')
  468 + endif
  469 + gamma=gammadeg*pi/180.d0
  470 + call nearfieldgridcalc(neqns,nsphere,nodr,alpha,beta,cbeam,xsp,rpos,ri,amnp, &
  471 + nfplane,nfplanepos,nfplanevert,gbfocus,deltax,gamma,nfoutunit,epspw, &
  472 + nfoutdata,runprintunit)
  473 + if(rank.eq.0) then
  474 + close(nfoutunit)
  475 + endif
  476 + endif
  477 +!
  478 +! all done!
  479 +!
  480 +!
  481 +! and this ends the main variable loop.
  482 +!
  483 + enddo
  484 +!
  485 +! time to go home
  486 +!
  487 + call ms_mpi(mpi_command='finalize')
  488 + end
... ...
mstm-gui.py 0 → 100644
  1 +++ a/mstm-gui.py
  1 +#!/usr/bin/python
  2 +
  3 +from mstm_materials import *
  4 +from mstm_parameters import *
  5 +from mstm_simparser import *
  6 +import time
  7 +import sys
  8 +
  9 +#PyQt4 libraries
  10 +from PyQt4 import QtGui
  11 +from PyQt4 import QtCore
  12 +from PyQt4 import uic
  13 +
  14 +class GuiWindow(QtGui.QMainWindow):
  15 +
  16 + params = ParameterClass('msinput.inp')
  17 +
  18 + def setParams(self):
  19 + #update the Gui based on values in the parameters structure
  20 + self.ui.spinStartLambda.setValue(self.params.minLambda)
  21 + self.ui.spinEndLambda.setValue(self.params.maxLambda)
  22 + self.ui.spinNumSamples.setValue(self.params.nSamples)
  23 + self.ui.spinNumSpheres.setValue(int(self.params['number_spheres']))
  24 + #self.ui.spinAlpha.setValue(float(self.params['incident_azimuth_angle_deg']))
  25 + #self.ui.spinBeta.setValue(float(self.params['incident_polar_angle_deg']))
  26 +
  27 + fi = QtCore.QFileInfo(self.params.matFilename)
  28 + self.ui.txtMaterial.setText(fi.baseName())
  29 +
  30 + #update global parameters for the dimer simulation
  31 + self.ui.spinSpacing.setValue(d)
  32 +
  33 + def getParams(self):
  34 + self.params.minLambda = self.ui.spinStartLambda.value()
  35 + self.params.maxLambda = self.ui.spinEndLambda.value()
  36 + self.params.nSamples = self.ui.spinNumSamples.value()
  37 + self.params.nSpheres = self.ui.spinNumSpheres.value()
  38 + self.params['incident_azimuth_angle_deg'] = self.ui.spinAlpha.value()
  39 + self.params['incident_polar_angle_deg'] = self.ui.spinBeta.value()
  40 +
  41 +
  42 + #global parameters for dimers
  43 + d = self.ui.spinSpacing.value()
  44 +
  45 + return self.params
  46 +
  47 + def simulate(self):
  48 + self.results = RunSimulation(self.params)
  49 +
  50 + def saveresults(self):
  51 + fileName = QtGui.QFileDialog.getSaveFileName(w, 'Save Spectral Results', '', 'DAT data files (*.dat)')
  52 + if fileName:
  53 + self.results.saveFile(fileName)
  54 +
  55 + def loadmaterial(self):
  56 + fileName = QtGui.QFileDialog.getOpenFileName(w, 'Load Material Refractive Index', '', 'TXT data files (*.txt)')
  57 + if fileName:
  58 + self.params.matFilename = fileName
  59 +
  60 + fi = QtCore.QFileInfo(fileName)
  61 + self.ui.txtMaterial.setText(fi.baseName())
  62 +
  63 + def __init__(self):
  64 + QtGui.QWidget.__init__(self)
  65 +
  66 + #dimer-specific settings
  67 + self.params['number_spheres'] = 2
  68 + self.params['sphere_position_file'] = ''
  69 +
  70 + #load the UI window
  71 + self.ui = uic.loadUi('mstm_guiwindow.ui')
  72 + #update the displayed parameters
  73 + self.setParams()
  74 + #display the UI
  75 + self.ui.show()
  76 +
  77 + #simulation button
  78 + self.connect(self.ui.btnSimulate, QtCore.SIGNAL("clicked()"), self.simulate)
  79 + self.connect(self.ui.mnuSaveResults, QtCore.SIGNAL("triggered()"), self.saveresults)
  80 + self.connect(self.ui.mnuLoadMaterial, QtCore.SIGNAL("triggered()"), self.loadmaterial)
  81 +
  82 +class ProgressBar(QtGui.QWidget):
  83 + def __init__(self, parent=None, total=20):
  84 + super(ProgressBar, self).__init__(parent)
  85 + self.name_line = QtGui.QLineEdit()
  86 +
  87 + self.progressbar = QtGui.QProgressBar()
  88 + self.progressbar.setMinimum(1)
  89 + self.progressbar.setMaximum(total)
  90 +
  91 + main_layout = QtGui.QGridLayout()
  92 + main_layout.addWidget(self.progressbar, 0, 0)
  93 +
  94 + self.setLayout(main_layout)
  95 + self.setWindowTitle("Progress")
  96 +
  97 + def update_progressbar(self, val):
  98 + self.progressbar.setValue(val)
  99 +
  100 +
  101 +def RunSimulation(parameters):
  102 +
  103 + #load the material
  104 + material = MaterialClass(parameters.matFilename)
  105 +
  106 + #add water if necessary
  107 + if parameters.inWater:
  108 + material.addSolution(1.33)
  109 +
  110 + #set the parameters based on the UI
  111 + parameters = w.getParams()
  112 +
  113 + #range for simulation
  114 + minLambda = parameters.minLambda
  115 + maxLambda = parameters.maxLambda
  116 + nSamples = parameters.nSamples
  117 +
  118 + #store the simulation results
  119 + results = SimParserClass()
  120 +
  121 + #create a progress bar
  122 + pbar = ProgressBar(total=nSamples)
  123 + pbar.show()
  124 +
  125 + #for each wavelength in the material
  126 + for i in range(nSamples):
  127 +
  128 + l = minLambda + i*(maxLambda - minLambda)/(nSamples - 1)
  129 +
  130 +
  131 +
  132 + #set the computed parameters
  133 + m = material[l]
  134 + n = m.n
  135 + parameters['real_ref_index_scale_factor'] = n.real
  136 + parameters['imag_ref_index_scale_factor'] = n.imag
  137 + parameters['length_scale_factor'] = (2.0 * 3.14159)/l
  138 + parameters['scattering_plane_angle_deg'] = gamma;
  139 +
  140 +
  141 + parameters.clearSpheres()
  142 + parameters.addSphere(a, -(d + 2*a)/2, 0, 0)
  143 + parameters.addSphere(a, (d + 2*a)/2, 0, 0)
  144 +
  145 + #save the scripted input file
  146 + parameters.saveFile('scriptParams.inp')
  147 +
  148 + #run the binary
  149 + from subprocess import call
  150 + devnull = open('/dev/null', 'w')
  151 + call(["./ms-tmatrix", "scriptParams.inp"], stdout=devnull)
  152 +
  153 + results.parseSimFile(l, 'test.dat')
  154 +
  155 + #update the progress bar
  156 + pbar.update_progressbar(i+1)
  157 +
  158 +
  159 + #plot results of interest
  160 + import matplotlib.pyplot as plt
  161 + wl = results['lambda']
  162 + unpol = results['extinction_unpolarized']
  163 + para = results['extinction_parallel']
  164 + perp = results['extinction_perpendicular']
  165 + plt.plot(wl, unpol, 'r-', wl, para, 'g-', wl, perp, 'b-')
  166 + plt.ylabel('Extinction')
  167 + plt.xlabel('Wavelength (um)')
  168 + plt.show()
  169 +
  170 + #return the results
  171 + return results;
  172 +
  173 +
  174 +
  175 +
  176 +
  177 +
  178 +#input template file name
  179 +inpFilename = 'msinput.inp'
  180 +
  181 +#output spectral file name
  182 +outFilename = 'spectralOut.txt'
  183 +
  184 +#sphere radii
  185 +a = 0.025
  186 +#distance between spheres
  187 +d = 0.002
  188 +#incident light directions
  189 +alpha = 0
  190 +beta = 0
  191 +gamma = 0
  192 +
  193 +#results stored for each spectral sample
  194 +resultLabels = {'lambda', 'extinction_unpolarized', 'extinction_parallel', 'extinction_perpendicular'}
  195 +
  196 +
  197 +
  198 +
  199 +
  200 +outFile = open(outFilename, 'w')
  201 +
  202 +#number of characters in the progress bar
  203 +pb_max = 50
  204 +
  205 +
  206 +
  207 +#create a Qt window
  208 +app = QtGui.QApplication(sys.argv)
  209 +w = GuiWindow()
  210 +sys.exit(app.exec_())
  211 +
  212 +
  213 +
  214 +
  215 +
... ...
mstm-intrinsics.f90 0 → 100644
  1 +++ a/mstm-intrinsics.f90
  1 + module intrinsics
  2 +!
  3 +! compiler-dependent intrinsic functions.
  4 +!
  5 +!
  6 +! last revised: 15 January 2011
  7 +!
  8 +
  9 + implicit none
  10 + contains
  11 +!
  12 +! system clock
  13 +!
  14 + real function mytime()
  15 + implicit none
  16 + real :: etime
  17 + real(4), parameter :: x=0.
  18 + real :: t(2)
  19 +! mytime=secnds(x)
  20 + mytime=etime(t)
  21 + end function mytime
  22 +
  23 +! flush is one of the best named functions in fortran, although it does not do what I think it should. This function flushes
  24 +! the buffer to print unit i, so when the unit is flushed, all data written to the open file will appear in the file.
  25 +! Not all compilers have this function.
  26 +
  27 + subroutine flush(i)
  28 + implicit none
  29 + integer :: i
  30 + flush(i)
  31 + end subroutine flush
  32 +!
  33 +! number of command-line arguments.
  34 +!
  35 + integer function mstm_nargs()
  36 + implicit none
  37 + integer nargs
  38 +! mstm_nargs=nargs()
  39 + mstm_nargs=iargc()
  40 + end function mstm_nargs
  41 +!
  42 +! command line argument retrieval
  43 +!
  44 + subroutine mstm_getarg(char)
  45 + implicit none
  46 + integer :: istat
  47 + character(*) :: char
  48 +! call getarg(1,char,istat)
  49 + call getarg(1,char)
  50 + end subroutine mstm_getarg
  51 +
  52 + end module intrinsics
... ...
mstm-main-v2.2.f90 0 → 100644
  1 +++ a/mstm-main-v2.2.f90
  1 +!
  2 +! mstm main program
  3 +!
  4 +!
  5 +! original release: 15 January 2011
  6 +! 21 February 2011: modifications to fixed orientation efficiency factor
  7 +!
  8 + program main
  9 + use mpidefs
  10 + use mpidata
  11 + use intrinsics
  12 + use spheredata
  13 + use numconstants
  14 + use specialfuncs
  15 + use miecoefdata
  16 + use translation
  17 + use solver
  18 + use scatprops
  19 + use nearfield
  20 + implicit none
  21 + integer :: nsphere,neqns,nodrmax,nodrt,i,k,niter,istat,numtheta, &
  22 + nblkt,nodrg,m,n,p,l,q,mn,kl,m1,n1,l1,k1,q1,w,klm,mnm,ikm, &
  23 + fixedorrandom,numargs,calctmatrix,maxiter,nodrta(1),calcnf, &
  24 + calcamn,ip1,ip2,ma,na,nsend,nfplane,nfoutunit,nfoutdata, &
  25 + maxmbperproc,trackiterations,nonactive,normalizesm,storetranmat, &
  26 + fftranpresent,niterstep
  27 + integer, allocatable :: nodr(:),ntran(:),sphereblk(:),sphereoff(:)
  28 + real (8) :: alphadeg,betadeg,alpha,beta,epsmie,epstran,epssoln, &
  29 + qexttot,qabstot,xv,scalefac,qscatot,asymparm, &
  30 + rireal,riimag,phideg,theta1d,theta2d,thetad,costheta,phi, &
  31 + sm(4,4),time1,time2,fc1,fc2,fc3,fc4,epstcon,qabslm,absrat, &
  32 + cbeam,gbfocus(3),maxerr,nfplanepos,nfplanevert(2,2), &
  33 + deltax,gammadeg,epspw,gamma,qexttotpar,qexttotper, &
  34 + qabstotpar,qabstotper,qscatotpar,qscatotper,cphi,sphi,s11, &
  35 + nfdistance
  36 + real(8), allocatable :: xsp(:), rpos(:,:),qext(:,:),qabs(:,:), &
  37 + qsca(:,:),smc(:,:,:),smt(:,:,:)
  38 + complex(8) :: sa(4)
  39 + complex(8), allocatable :: amnp(:,:),amnp0(:,:,:,:),ri(:,:), &
  40 + gmn(:),amnp1(:,:,:),amnp2(:,:,:)
  41 + character*30 :: inputfile,spherefile,parmfile,outfile,tmatrixfile,&
  42 + amnfile,nfoutfile
  43 + complex(8), allocatable :: pmnp0(:,:,:,:)
  44 + integer :: ierr,rank,printinputdata,runprintunit,numprocs
  45 +!
  46 +! command line argument retrieval for input file
  47 +!
  48 + printinputdata=1
  49 + numargs=mstm_nargs()
  50 + if(numargs.eq.0) then
  51 + inputfile='msinput.inp'
  52 + else
  53 + call mstm_getarg(inputfile)
  54 + endif
  55 + call inputdata(inputfile,printinputdata)
  56 +!
  57 +! reading of run and sphere data, setting up of arrays
  58 +!
  59 + call getspheredata(number_spheres=nsphere)
  60 + allocate(xsp(nsphere),rpos(3,nsphere),nodr(nsphere),ntran(nsphere), &
  61 + ri(2,nsphere),sphereblk(nsphere),sphereoff(nsphere+1))
  62 + call getspheredata(sphere_size_parameters=xsp,sphere_positions=rpos, &
  63 + sphere_refractive_indices=ri,volume_size_parameter=xv)
  64 + call getrunparameters(mie_epsilon=epsmie,translation_epsilon=epstran, &
  65 + solution_epsilon=epssoln,max_number_iterations=niter, &
  66 + fixed_or_random_orientation=fixedorrandom,output_file=outfile, &
  67 + min_scattering_angle_deg=theta1d,max_scattering_angle_deg=theta2d, &
  68 + number_scattering_angles=numtheta,gaussian_beam_constant=cbeam, &
  69 + gaussian_beam_focal_point=gbfocus,run_print_unit=runprintunit, &
  70 + max_memory_per_processor=maxmbperproc, &
  71 + normalize_scattering_matrix=normalizesm, &
  72 + store_translation_matrix=storetranmat, &
  73 + near_field_distance=nfdistance, &
  74 + iterations_per_correction=niterstep)
  75 + if(numtheta.gt.0) then
  76 + allocate(smt(4,4,numtheta))
  77 + endif
  78 +!
  79 +! determine if optical activity is present
  80 +!
  81 + nonactive=1
  82 + do i=1,nsphere
  83 + if(cdabs(ri(1,i)-ri(2,i)).gt.1.d-10) then
  84 + nonactive=0
  85 + exit
  86 + endif
  87 + enddo
  88 +!
  89 +! calculation of sphere mie coefficients, order limits
  90 +!
  91 + call miecoefcalc(nsphere,xsp,ri,epsmie)
  92 + call getmiedata(sphere_order=nodr,max_order=nodrmax,number_equations=neqns, &
  93 + sphere_block=sphereblk,sphere_block_offset=sphereoff)
  94 +!
  95 +! determine the size of the parallel run and set it up
  96 +!
  97 + call ms_mpi(mpi_command='init')
  98 + call ms_mpi(mpi_command='size',mpi_size=numprocs)
  99 + call ms_mpi(mpi_command='rank',mpi_rank=rank)
  100 + call ms_mpi(mpi_command='barrier')
  101 + call mpisetup(nsphere,nodr,rpos,fixedorrandom,maxmbperproc,storetranmat, &
  102 + nfdistance,fftranpresent,runprintunit)
  103 + call ms_mpi(mpi_command='barrier')
  104 + call mpirottranmtrxsetup(nsphere,nodr,rpos,(1.d0,0.d0),storetranmat,&
  105 + nfdistance,runprintunit)
  106 + call ms_mpi(mpi_command='barrier')
  107 +!
  108 +! determine orders required to expand scattered fields about target origin
  109 +!
  110 + call tranorders(nsphere,nodr,rpos,epstran,ntran,nodrt)
  111 +!
  112 +! report the size of the run
  113 +!
  114 + if(rank.eq.0) then
  115 + write(runprintunit,'('' maximum sphere order:'',i5)') nodrmax
  116 + write(runprintunit,'('' estimated T matrix order:'',i5)') nodrt
  117 + write(runprintunit,'('' number of equations:'',i9)') neqns
  118 + call flush(runprintunit)
  119 + endif
  120 +!
  121 + if(fixedorrandom.eq.1) then
  122 +!
  123 +! random orientation option
  124 +!
  125 + call getrunparameters(calculate_t_matrix=calctmatrix,t_matrix_file=tmatrixfile, &
  126 + t_matrix_convergence_epsilon=epstcon)
  127 + allocate(qext(nsphere,1), qabs(nsphere,1), qsca(nsphere,1))
  128 + if(calctmatrix.ge.1) then
  129 +!
  130 +! this option calculates the T matrix either from the beginning or where left off
  131 +!
  132 + if(rank.eq.0) time1=mytime()
  133 + call tmatrixsoln(neqns,nsphere,nodr,nodrt,xsp,rpos,epssoln,epstcon,niter,&
  134 + calctmatrix,tmatrixfile,fftranpresent,niterstep,qext,qabs,qsca,istat)
  135 + if(rank.eq.0) then
  136 + time2=mytime()-time1
  137 + call timewrite(runprintunit,' execution time:',time2)
  138 + endif
  139 + call rottranmtrxclear()
  140 + else
  141 +!
  142 +! and this has the T matrix already calculated and stored in the file.
  143 +!
  144 +! read the order of the T matrix and broadcast to the processors.
  145 +!
  146 + if(rank.eq.0) then
  147 + open(3,file=tmatrixfile)
  148 + read(3,*) nodrt
  149 + close(3)
  150 + write(runprintunit,'('' t matrix order:'',i5)') nodrt
  151 + call flush(runprintunit)
  152 + endif
  153 + nodrta(1)=nodrt
  154 + call ms_mpi(mpi_command='bcast',mpi_send_buf_i=nodrta,mpi_number=1,mpi_rank=0)
  155 + nodrt=nodrta(1)
  156 + call ms_mpi(mpi_command='barrier')
  157 + endif
  158 +!
  159 +! the T matrix is available; calculate the random orientation scattering matrix
  160 +!
  161 + nblkt=nodrt*(nodrt+2)
  162 + nodrg=nodrt*2
  163 + allocate(smc(4,4,0:nodrg))
  164 + call ranorientscatmatrix(xv,nsphere,nodrt,nodrg,cbeam,tmatrixfile,smc,qext, &
  165 + qabs,qsca)
  166 + if(rank.eq.0) then
  167 + qexttot=sum(qext(:,1)*xsp*xsp)/xv/xv
  168 + qabstot=sum(qabs(:,1)*xsp*xsp)/xv/xv
  169 + qscatot=qexttot-qabstot
  170 + asymparm=dble(smc(1,1,1)/smc(1,1,0))/3.d0
  171 + call ranorienscatmatrixcalc(numtheta,theta1d,theta2d,1,smc,nodrg,smt)
  172 + endif
  173 + else
  174 +!
  175 +! fixed orientation option
  176 +!
  177 + call getrunparameters(calculate_scattering_coefficients=calcamn, &
  178 + scattering_coefficient_file=amnfile, &
  179 + scattering_plane_angle_deg=phideg, &
  180 + incident_azimuth_angle_deg=alphadeg, &
  181 + incident_polar_angle_deg=betadeg, &
  182 + track_iterations=trackiterations)
  183 + alpha=alphadeg*pi/180.d0
  184 + beta=betadeg*pi/180.d0
  185 + phi=phideg*pi/180.d0
  186 + allocate(amnp(neqns,2))
  187 + allocate(qext(nsphere,3), qabs(nsphere,3), qsca(nsphere,3))
  188 + if(calcamn.eq.1) then
  189 +!
  190 +! this option calculates the scattering coefficients
  191 +!
  192 + if(rank.eq.0) time1=mytime()
  193 + call fixedorsoln(neqns,nsphere,nodr,alpha,beta,cbeam,xsp,rpos,epssoln,&
  194 + epstran,niter,amnp,qext,qabs,qsca,maxerr,maxiter,trackiterations, &
  195 + fftranpresent,niterstep,istat)
  196 +!
  197 +! write the scattering coefficients to the file
  198 +!
  199 + if(rank.eq.0) then
  200 + time2=mytime()-time1
  201 + write(runprintunit,'('' max iterations, soln error:'',i6,e13.5)') &
  202 + maxiter,maxerr
  203 + call timewrite(runprintunit,' execution time:',time2)
  204 + open(3,file=amnfile)
  205 + do i=1,nsphere
  206 + write(3,'(6e13.5)') qext(i,:),qabs(i,:),qsca(i,:)
  207 + allocate(amnp1(0:nodr(i)+1,nodr(i),2),amnp2(0:nodr(i)+1,nodr(i),2))
  208 + ip1=sphereoff(i)+1
  209 + ip2=sphereoff(i)+sphereblk(i)
  210 + amnp1=reshape(amnp(ip1:ip2,1),(/nodr(i)+2,nodr(i),2/))
  211 + amnp2=reshape(amnp(ip1:ip2,2),(/nodr(i)+2,nodr(i),2/))
  212 + do n=1,nodr(i)
  213 + do m=-n,n
  214 + if(m.le.-1) then
  215 + ma=n+1
  216 + na=-m
  217 + else
  218 + ma=m
  219 + na=n
  220 + endif
  221 + write(3,'(4e17.9)') amnp1(ma,na,1),amnp2(ma,na,1)
  222 + write(3,'(4e17.9)') amnp1(ma,na,2),amnp2(ma,na,2)
  223 + enddo
  224 + enddo
  225 + deallocate(amnp1,amnp2)
  226 + enddo
  227 + close(3)
  228 + endif
  229 + else
  230 +!
  231 +! this option reads the scattering coefficients from the file
  232 +!
  233 + if(rank.eq.0) then
  234 + open(3,file=amnfile)
  235 + do i=1,nsphere
  236 + read(3,'(6e13.5)') qext(i,:),qabs(i,:),qsca(i,:)
  237 + allocate(amnp1(0:nodr(i)+1,nodr(i),2),amnp2(0:nodr(i)+1,nodr(i),2))
  238 + do n=1,nodr(i)
  239 + do m=-n,n
  240 + if(m.le.-1) then
  241 + ma=n+1
  242 + na=-m
  243 + else
  244 + ma=m
  245 + na=n
  246 + endif
  247 + read(3,'(4e17.9)') amnp1(ma,na,1),amnp2(ma,na,1)
  248 + read(3,'(4e17.9)') amnp1(ma,na,2),amnp2(ma,na,2)
  249 + enddo
  250 + enddo
  251 + ip1=sphereoff(i)+1
  252 + ip2=sphereoff(i)+sphereblk(i)
  253 + amnp(ip1:ip2,1)=reshape(amnp1(0:nodr(i)+1,1:nodr(i),1:2),(/sphereblk(i)/))
  254 + amnp(ip1:ip2,2)=reshape(amnp2(0:nodr(i)+1,1:nodr(i),1:2),(/sphereblk(i)/))
  255 + deallocate(amnp1,amnp2)
  256 + enddo
  257 + close(3)
  258 + endif
  259 +!
  260 +! broadcast the scattering coefficients to the other processors
  261 +!
  262 + nsend=neqns*2
  263 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dc=amnp,mpi_number=nsend,mpi_rank=0)
  264 + endif
  265 +!
  266 +! calculate the efficiency factors
  267 +!
  268 +
  269 + cphi=cos(phi)
  270 + sphi=sin(phi)
  271 + qexttotpar=sum((qext(:,1)*cphi*cphi+2.d0*qext(:,3)*cphi*sphi+qext(:,2)*sphi*sphi) &
  272 + *xsp*xsp)/xv/xv
  273 + qexttotper=sum((qext(:,1)*sphi*sphi-2.d0*qext(:,3)*cphi*sphi+qext(:,2)*cphi*cphi) &
  274 + *xsp*xsp)/xv/xv
  275 + qabstotpar=sum((qabs(:,1)*cphi*cphi+2.d0*qabs(:,3)*cphi*sphi+qabs(:,2)*sphi*sphi) &
  276 + *xsp*xsp)/xv/xv
  277 + qabstotper=sum((qabs(:,1)*sphi*sphi-2.d0*qabs(:,3)*cphi*sphi+qabs(:,2)*cphi*cphi) &
  278 + *xsp*xsp)/xv/xv
  279 + qscatotpar=qexttotpar-qabstotpar
  280 + qscatotper=qexttotper-qabstotper
  281 + qexttot=(qexttotpar+qexttotper)*.5d0
  282 + qabstot=(qabstotpar+qabstotper)*.5d0
  283 + qscatot=(qscatotpar+qscatotper)*.5d0
  284 + qext(:,1)=(qext(:,1)+qext(:,2))*.5d0
  285 + qabs(:,1)=(qabs(:,1)+qabs(:,2))*.5d0
  286 + qsca(:,1)=(qsca(:,1)+qsca(:,2))*.5d0
  287 + call rottranmtrxclear()
  288 +!
  289 +! calculate the target-based expansion and rotate to the incident field frame
  290 +!
  291 + allocate(amnp0(0:nodrt+1,nodrt,2,2),pmnp0(0:nodrt+1,nodrt,2,2))
  292 + if(rank.eq.0) then
  293 + do k=1,2
  294 + call amncommonorigin(neqns,nsphere,nodr,ntran,nodrt,rpos, &
  295 + amnp(1:neqns,k),amnp0(0:,1:,1:,k))
  296 + call rotvec(alpha,beta,0.d0,nodrt,nodrt,amnp0(0:,1:,1:,k),1)
  297 + enddo
  298 + endif
  299 + nsend=4*nodrt*(nodrt+2)
  300 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dc=amnp0,mpi_number=nsend,mpi_rank=0)
  301 +
  302 +!
  303 +! calculate the asymmetry parameter and the scattering matrix
  304 +!
  305 + allocate(gmn(0:2))
  306 + call s11expansion(amnp0,nodrt,0,1,gmn)
  307 + asymparm=dble(gmn(1)/gmn(0))/3.d0
  308 + do i=1,numtheta
  309 + thetad=theta1d+(theta2d-theta1d)*(i-1)/max(1.d0,dble(numtheta-1))
  310 + costheta=cos(thetad*pi/180.d0)
  311 + call scatteringmatrix(amnp0,nodrt,xv,costheta,phi,sa,smt(:,:,i))
  312 + enddo
  313 + deallocate(amnp0,pmnp0,gmn)
  314 + endif
  315 +!
  316 +! output file operations
  317 +!
  318 + if(rank.eq.0) then
  319 + open(1,file=outfile,position='append')
  320 + if(nonactive.eq.0) then
  321 + write(1,'('' sphere S.P., pos. (x,y,z), ref. index (L,R), Qext, Qsca, Qabs, Qabs/Qabs,LM'')')
  322 + else
  323 + write(1,'('' sphere S.P., pos. (x,y,z), ref. index, Qext, Qsca, Qabs, Qabs/Qabs,LM'')')
  324 + endif
  325 + do i=1,nsphere
  326 + call getmiedata(which_sphere=i,sphere_qabs=qabslm)
  327 + if(dimag(ri(1,i)).eq.0.d0.and.dimag(ri(2,i)).eq.0.d0) then
  328 + absrat=1.d0
  329 + else
  330 + absrat=qabs(i,1)/qabslm
  331 + endif
  332 + if(nonactive.eq.0) then
  333 + write(1,'(i5,4f10.4,4f10.6,3e13.5,f8.4)') i, xsp(i),rpos(:,i)+gbfocus, ri(:,i), &
  334 + qext(i,1),qsca(i,1),qabs(i,1),absrat
  335 + else
  336 + write(1,'(i5,4f10.4,2f10.6,3e13.5,f8.4)') i, xsp(i),rpos(:,i)+gbfocus, ri(1,i), &
  337 + qext(i,1),qsca(i,1),qabs(i,1),absrat
  338 + endif
  339 + enddo
  340 + if(fixedorrandom.eq.1) then
  341 + write(1,'('' total ext, abs, scat efficiencies, w.r.t. xv, and asym. parm'')')
  342 + write(1,'(6e13.5)') qexttot,qabstot,qscatot,asymparm
  343 + else
  344 + write(1,'('' unpolarized total ext, abs, scat efficiencies, w.r.t. xv, and asym. parm'')')
  345 + write(1,'(6e13.5)') qexttot,qabstot,qscatot,asymparm
  346 + write(1,'('' parallel total ext, abs, scat efficiencies'')')
  347 + write(1,'(6e13.5)') qexttotpar,qabstotpar,qscatotpar
  348 + write(1,'('' perpendicular total ext, abs, scat efficiencies'')')
  349 + write(1,'(6e13.5)') qexttotper,qabstotper,qscatotper
  350 + endif
  351 +
  352 + write(1,'('' scattering matrix elements'')')
  353 + if(normalizesm.eq.0) then
  354 + write(1,'('' theta s11 s22 s33'',&
  355 + &'' s44'',&
  356 + &'' s21 s32 s43 s31'',&
  357 + &'' s42 s41'')')
  358 + do i=1,numtheta
  359 + thetad=theta1d+(theta2d-theta1d)*(i-1)/max(1.d0,dble(numtheta-1))
  360 + write(1,'(f8.2,10e12.4)') thetad,smt(1,1,i),smt(2,2,i),smt(3,3,i), &
  361 + smt(4,4,i),smt(1,2,i),smt(2,3,i),smt(3,4,i),smt(1,3,i), &
  362 + smt(2,4,i),smt(1,4,i)
  363 + enddo
  364 + else
  365 + write(1,'('' theta s11 s22/s11 s33'',&
  366 + &''/s11 s44'',&
  367 + &''/s11 s21/s11 s32/s11 s43/s11 s31'',&
  368 + &''/s11 s42/s11 s41/s11'')')
  369 + do i=1,numtheta
  370 + thetad=theta1d+(theta2d-theta1d)*(i-1)/max(1.d0,dble(numtheta-1))
  371 + s11=smt(1,1,i)
  372 + write(1,'(f8.2,10e12.4)') thetad,smt(1,1,i),smt(2,2,i)/s11,smt(3,3,i)/s11, &
  373 + smt(4,4,i)/s11,smt(1,2,i)/s11,smt(2,3,i)/s11,smt(3,4,i)/s11,smt(1,3,i)/s11, &
  374 + smt(2,4,i)/s11,smt(1,4,i)/s11
  375 + enddo
  376 + endif
  377 + if(fixedorrandom.eq.1) then
  378 + write(1,'('' scattering matrix expansion coefficients'')')
  379 + write(1,'('' w a11 a22 a33 '',&
  380 + &''a23 a32 a44 a12 '',&
  381 + &''a34 a13 a24 a14'')')
  382 + do w=0,nodrg
  383 + write(1,'(i5,11e12.4)') w,smc(1,1,w),smc(2,2,w),&
  384 + smc(3,3,w),smc(2,3,w),smc(3,2,w),smc(4,4,w),&
  385 + smc(1,2,w),smc(3,4,w),smc(1,3,w),smc(2,4,w),&
  386 + smc(1,4,w)
  387 + enddo
  388 + endif
  389 + endif
  390 +!
  391 +! near field calculation options
  392 +!
  393 + if(fixedorrandom.eq.0) call getrunparameters(calculate_near_field=calcnf)
  394 + if(fixedorrandom.eq.0.and.calcnf.eq.1) then
  395 + call getrunparameters(near_field_plane_coord=nfplane, &
  396 + near_field_plane_position=nfplanepos,near_field_plane_vertices=nfplanevert, &
  397 + spacial_step_size=deltax,polarization_angle_deg=gammadeg, &
  398 + near_field_output_file=nfoutfile,near_field_output_data=nfoutdata, &
  399 + plane_wave_epsilon=epspw)
  400 + nfoutunit=2
  401 + if(rank.eq.0) then
  402 + open(nfoutunit,file=nfoutfile)
  403 + endif
  404 + gamma=gammadeg*pi/180.d0
  405 + call nearfieldgridcalc(neqns,nsphere,nodr,alpha,beta,cbeam,xsp,rpos,ri,amnp, &
  406 + nfplane,nfplanepos,nfplanevert,gbfocus,deltax,gamma,nfoutunit,epspw, &
  407 + nfoutdata,runprintunit)
  408 + if(rank.eq.0) then
  409 + close(nfoutunit)
  410 + endif
  411 + endif
  412 +!
  413 +! all done!
  414 +!
  415 + if(rank.eq.0) close(1)
  416 + call ms_mpi(mpi_command='finalize')
  417 + end
... ...
mstm-manual-2011-v2.2.pdf 0 → 100644
No preview for this file type
mstm-modules-v2.2.f90 0 → 100644
Changes suppressed. Click to show
  1 +++ a/mstm-modules-v2.2.f90
  1 +!
  2 +! numerical constants
  3 +!
  4 +!
  5 +! last revised: 15 January 2011
  6 +!
  7 + module numconstants
  8 + implicit none
  9 + integer :: print_intermediate_results
  10 + integer, allocatable :: monen(:)
  11 + integer, private :: nmax=0
  12 + real(8) :: pi
  13 + real(8), allocatable :: bcof(:,:),fnr(:),vwh_coef(:,:,:,:)
  14 + real(8), allocatable :: vcc_const(:,:,:),fnm1_const(:,:),fn_const(:,:),fnp1_const(:,:)
  15 + data pi/3.141592653589793/
  16 +
  17 + contains
  18 +
  19 + subroutine init(notd)
  20 + implicit none
  21 + integer :: notd,l,n,ierr,nbc,m,mm1,mp1,np1,nm1,nn1,mn
  22 + real(8) :: fnorm1,fnorm2
  23 +!
  24 +! bcof(n,l)=((n+l)!/(n!l!))^(1/2)
  25 +!
  26 + if(notd.le.nmax) return
  27 + nmax=max(nmax,notd)
  28 + nbc=6*notd+6
  29 + if(allocated(fnr)) deallocate(monen,fnr,bcof)
  30 + allocate (monen(0:2*notd),bcof(0:nbc,0:nbc),fnr(0:2*nbc),stat=ierr)
  31 +! write(*,'('' nmax, bcof status:'',2i5)') nmax,ierr
  32 + do n=0,2*notd
  33 + monen(n)=(-1)**n
  34 + enddo
  35 + fnr(0)=0.d0
  36 + do n=1,2*nbc
  37 + fnr(n)=dsqrt(dble(n))
  38 + enddo
  39 + bcof(0,0)=1.d0
  40 + do n=0,nbc-1
  41 + do l=n+1,nbc
  42 + bcof(n,l)=fnr(n+l)*bcof(n,l-1)/fnr(l)
  43 + bcof(l,n)=bcof(n,l)
  44 + enddo
  45 + bcof(n+1,n+1)=fnr(n+n+2)*fnr(n+n+1)*bcof(n,n)/fnr(n+1)/fnr(n+1)
  46 + enddo
  47 + if(allocated(vwh_coef)) deallocate(vwh_coef)
  48 + allocate(vwh_coef(-notd:notd,1:notd,-1:1,-1:1))
  49 +!
  50 +! constants used for calculation of svwf functions.
  51 +!
  52 + do n=1,notd
  53 + nn1=n*(n+1)
  54 + np1=n+1
  55 + nm1=n-1
  56 + fnorm1=-.5d0/fnr(n+n+1)/fnr(n)/fnr(n+1)
  57 + fnorm2=-.5d0*fnr(n+n+1)/fnr(n)/fnr(n+1)
  58 + m=-n
  59 + mp1=m+1
  60 + mm1=m-1
  61 + vwh_coef(m,n, 1, 1)=-fnorm1*n*fnr(np1+m)*fnr(np1+mp1)
  62 + vwh_coef(m,n, 1,-1)=fnorm1*np1*fnr(n-m)*fnr(nm1-m)
  63 + vwh_coef(m,n,-1, 1)=fnorm1*n*fnr(np1-m)*fnr(np1-mm1)
  64 + vwh_coef(m,n,-1,-1)=0.d0
  65 + vwh_coef(m,n, 0, 1)=fnorm1*n*fnr(np1+m)*fnr(np1-m)
  66 + vwh_coef(m,n, 0,-1)=0.d0
  67 + vwh_coef(m,n, 1, 0)=-fnorm2*fnr(n-m)*fnr(np1+m)
  68 + vwh_coef(m,n,-1, 0)=-0.d0
  69 + vwh_coef(m,n, 0, 0)=-fnorm2*m
  70 + do m=-n+1,-1
  71 + mp1=m+1
  72 + mm1=m-1
  73 + vwh_coef(m,n, 1, 1)=-fnorm1*n*fnr(np1+m)*fnr(np1+mp1)
  74 + vwh_coef(m,n, 1,-1)=fnorm1*np1*fnr(n-m)*fnr(nm1-m)
  75 + vwh_coef(m,n,-1, 1)=fnorm1*n*fnr(np1-m)*fnr(np1-mm1)
  76 + vwh_coef(m,n,-1,-1)=-fnorm1*np1*fnr(n+m)*fnr(nm1+m)
  77 + vwh_coef(m,n, 0, 1)=fnorm1*n*fnr(np1+m)*fnr(np1-m)
  78 + vwh_coef(m,n, 0,-1)=fnorm1*np1*fnr(n+m)*fnr(n-m)
  79 + vwh_coef(m,n, 1, 0)=-fnorm2*fnr(n-m)*fnr(np1+m)
  80 + vwh_coef(m,n,-1, 0)=-fnorm2*fnr(n+m)*fnr(np1-m)
  81 + vwh_coef(m,n, 0, 0)=-fnorm2*m
  82 + enddo
  83 + do m=0,n-1
  84 + mp1=m+1
  85 + mm1=m-1
  86 + vwh_coef(m,n, 1, 1)=-fnorm1*n*fnr(np1+m)*fnr(np1+mp1)
  87 + vwh_coef(m,n, 1,-1)=fnorm1*np1*fnr(n-m)*fnr(nm1-m)
  88 + vwh_coef(m,n,-1, 1)=fnorm1*n*fnr(np1-m)*fnr(np1-mm1)
  89 + vwh_coef(m,n,-1,-1)=-fnorm1*np1*fnr(n+m)*fnr(nm1+m)
  90 + vwh_coef(m,n, 0, 1)=fnorm1*n*fnr(np1+m)*fnr(np1-m)
  91 + vwh_coef(m,n, 0,-1)=fnorm1*np1*fnr(n+m)*fnr(n-m)
  92 + vwh_coef(m,n, 1, 0)=-fnorm2*fnr(n-m)*fnr(np1+m)
  93 + vwh_coef(m,n,-1, 0)=-fnorm2*fnr(n+m)*fnr(np1-m)
  94 + vwh_coef(m,n, 0, 0)=-fnorm2*m
  95 + enddo
  96 + m=n
  97 + mp1=m+1
  98 + mm1=m-1
  99 + vwh_coef(m,n, 1, 1)=-fnorm1*n*fnr(np1+m)*fnr(np1+mp1)
  100 + vwh_coef(m,n, 1,-1)=0.d0
  101 + vwh_coef(m,n,-1, 1)=fnorm1*n*fnr(np1-m)*fnr(np1-mm1)
  102 + vwh_coef(m,n,-1,-1)=-fnorm1*np1*fnr(n+m)*fnr(nm1+m)
  103 + vwh_coef(m,n, 0, 1)=fnorm1*n*fnr(np1+m)*fnr(np1-m)
  104 + vwh_coef(m,n, 0,-1)=0.d0
  105 + vwh_coef(m,n, 1, 0)=-0.d0
  106 + vwh_coef(m,n,-1, 0)=-fnorm2*fnr(n+m)*fnr(np1-m)
  107 + vwh_coef(m,n, 0, 0)=-fnorm2*m
  108 + enddo
  109 + end subroutine init
  110 +
  111 + end module numconstants
  112 +!
  113 +! special function for the multiple sphere problem
  114 +!
  115 + module specialfuncs
  116 + implicit none
  117 + contains
  118 +
  119 + subroutine timewrite(iunit,char1,time)
  120 + use intrinsics
  121 + implicit none
  122 + integer :: iunit
  123 + real(8) :: time,time2
  124 + character(*) :: char1
  125 + if(time.gt.3600.d0) then
  126 + time2=time/3600.d0
  127 + write(iunit,'(a,f9.3,'' hours'')') char1,time2
  128 + elseif(time.gt.60.d0) then
  129 + time2=time/60.d0
  130 + write(iunit,'(a,f9.2,'' min'')') char1,time2
  131 + else
  132 + write(iunit,'(a,f9.2,'' sec'')') char1,time
  133 + endif
  134 + call flush(iunit)
  135 + end subroutine timewrite
  136 +!
  137 +! ricatti-bessel function psi(n), real argument
  138 +!
  139 + subroutine ricbessel(n,ds,eps,nmax,psi)
  140 + implicit none
  141 + integer :: n,nmax,ns,i
  142 + real(8) :: ds,dns,sn,psi(0:n),psit,ds2,sum,eps,err
  143 + if(int(ds).lt.n) then
  144 + ns=nint(ds+4.*(ds**.3333d0)+17)
  145 + ns=max(n+10,ns)
  146 + dns=0.d0
  147 + do i=ns-1,n,-1
  148 + sn=dble(i+1)/ds
  149 + dns=sn-1.d0/(dns+sn)
  150 + enddo
  151 + psi(n)=dns
  152 + psi(n-1)=dble(n)/ds-1.d0/(dns+dble(n)/ds)
  153 + do i=n-2,1,-1
  154 + sn=dble(i+1)/ds
  155 + psi(i)=sn-1.d0/(psi(i+1)+sn)
  156 + enddo
  157 + psit=dsin(ds)
  158 + psi(0)=psit
  159 + ds2=ds*ds
  160 + sum=psit*psit/ds2
  161 + do i=1,n
  162 + psit=psit/(dble(i)/ds+psi(i))
  163 + sum=sum+dble(i+i+1)*psit*psit/ds2
  164 + err=dabs(1.d0-sum)
  165 + psi(i)=psit
  166 + if(err.lt.eps) then
  167 + nmax=i
  168 + return
  169 + endif
  170 + enddo
  171 + nmax=n
  172 + else
  173 + psi(0)=dsin(ds)
  174 + psi(1)=psi(0)/ds-dcos(ds)
  175 + do i=1,n-1
  176 + sn=dble(i+i+1)/ds
  177 + psi(i+1)=sn*psi(i)-psi(i-1)
  178 + enddo
  179 + nmax=n
  180 + endif
  181 + end subroutine ricbessel
  182 +!
  183 +! ricatti-hankel function xi(n), real argument
  184 +!
  185 +!
  186 +! last revised: 15 January 2011
  187 +!
  188 + subroutine richankel(n,ds,xi)
  189 + implicit none
  190 + integer :: n,i,ns
  191 + real(8) :: ds,dns,sn,chi0,chi1,chi2,psi,psi0,psi1
  192 + complex(8) :: xi(0:n)
  193 + if(int(ds).lt.n) then
  194 + ns=nint(ds+4.*(ds**.3333)+17)
  195 + ns=max(n+10,ns)
  196 + dns=0.d0
  197 + do i=ns-1,n,-1
  198 + sn=dble(i+1)/ds
  199 + dns=sn-1.d0/(dns+sn)
  200 + enddo
  201 + xi(n)=dns
  202 + xi(n-1)=dble(n)/ds-1.d0/(dns+dble(n)/ds)
  203 + do i=n-2,1,-1
  204 + sn=dble(i+1)/ds
  205 + xi(i)=sn-1.d0/(xi(i+1)+sn)
  206 + enddo
  207 + chi0=-dcos(ds)
  208 + psi=dsin(ds)
  209 + chi1=chi0/ds-psi
  210 + xi(0)=dcmplx(psi,chi0)
  211 + do i=1,n
  212 + chi2=dble(i+i+1)/ds*chi1-chi0
  213 + psi=psi/(dble(i)/ds+xi(i))
  214 + xi(i)=dcmplx(psi,chi1)
  215 + chi0=chi1
  216 + chi1=chi2
  217 + enddo
  218 + return
  219 + else
  220 + chi0=-dcos(ds)
  221 + psi0=dsin(ds)
  222 + chi1=chi0/ds-psi0
  223 + psi1=psi0/ds+chi0
  224 + xi(0)=dcmplx(psi0,chi0)
  225 + xi(1)=dcmplx(psi1,chi1)
  226 + do i=1,n-1
  227 + sn=dble(i+i+1)/ds
  228 + xi(i+1)=sn*xi(i)-xi(i-1)
  229 + enddo
  230 + return
  231 + endif
  232 + end subroutine richankel
  233 +!
  234 +! ricatti-bessel function psi(n), complex argument
  235 +!
  236 +!
  237 +! last revised: 15 January 2011
  238 +!
  239 + subroutine cricbessel(n,ds,psi)
  240 + implicit none
  241 + integer :: n,i
  242 + complex(8) :: ds,psi(0:n),chi(0:n)
  243 + call cspherebessel(n,ds,psi,chi)
  244 + do i=0,n
  245 + psi(i)=psi(i)*ds
  246 + enddo
  247 + return
  248 + end subroutine cricbessel
  249 +!
  250 +! ricatti-hankel function psi(n), complex argument
  251 +!
  252 +!
  253 +! last revised: 15 January 2011
  254 +! 7 october 2011: forces upwards recurrence for real argument ds
  255 +!
  256 + subroutine crichankel(n,ds,xi)
  257 + implicit none
  258 + integer :: n,i,i1
  259 + complex(8) :: ds,psi(0:n),chi(0:n),xi(0:n),ci
  260 + data ci/(0.d0,1.d0)/
  261 + xi(0)=-ci*cdexp(ci*ds)
  262 + xi(1)=-cdexp(ci*ds)*(ci+ds)/ds
  263 + if(dimag(ds).eq.0.d0) then
  264 + do i=1,n-1
  265 + i1=i+1
  266 + xi(i1)=dble(i+i1)/ds*xi(i)-xi(i-1)
  267 + enddo
  268 + return
  269 + endif
  270 + if(cdabs(xi(0)).lt.1.d-10) then
  271 + do i=1,n-1
  272 + i1=i+1
  273 + xi(i1)=dble(i+i1)/ds*xi(i)-xi(i-1)
  274 + enddo
  275 + return
  276 + else
  277 + call cspherebessel(n,ds,psi,chi)
  278 + do i=1,n-1
  279 + i1=i+1
  280 + xi(i1)=(psi(i1)+ci*chi(i1))*ds
  281 + enddo
  282 + return
  283 + endif
  284 + end subroutine crichankel
  285 +!
  286 +! ==========================================================
  287 +! Purpose: Compute spherical Bessel functions jn(z) & yn(z)
  288 +! for a complex argument
  289 +! Input : z --- Complex argument
  290 +! n --- Order of jn(z) & yn(z) ( n = 0,1,2,... )
  291 +! Output: CSJ(n) --- jn(z)
  292 +! CSY(n) --- yn(z)
  293 +! NM --- Highest order computed
  294 +! Routines called:
  295 +! MSTA1 and MSTA2 for computing the starting
  296 +! point for backward recurrence
  297 +! ==========================================================
  298 +!
  299 +! obtained from, and copywrited by, Jian-Ming Jin
  300 +! http://jin.ece.uiuc.edu/
  301 +!
  302 +!
  303 +! last revised: 15 January 2011
  304 +!
  305 + subroutine cspherebessel(n,z,csj,csy)
  306 + implicit none
  307 + integer :: n,nm,k,m
  308 + real(8) :: a0
  309 + complex(8) :: z,csj(0:n),csy(0:n),csa,csb,cs,cf0,cf1,cf
  310 + a0=cdabs(z)
  311 + nm=n
  312 + if (a0.lt.1.0d-60) then
  313 + csj=(0.d0,0.d0)
  314 + csy=(-1.d300,0.d0)
  315 + csy(0)=(1.d0,0.d0)
  316 + return
  317 + endif
  318 + csj=(0.d0,0.d0)
  319 + csj(0)=cdsin(z)/z
  320 + csj(1)=(csj(0)-cdcos(z))/z
  321 + if (n.ge.2) then
  322 + csa=csj(0)
  323 + csb=csj(1)
  324 + m=msta1(a0,200)
  325 + if (m.lt.n) then
  326 + nm=m
  327 + else
  328 + m=msta2(a0,n,15)
  329 + endif
  330 + cf0=0.0d0
  331 + cf1=1.0d0-100
  332 + do k=m,0,-1
  333 + cf=(2.0d0*k+3.0d0)*cf1/z-cf0
  334 + if (k.le.nm) csj(k)=cf
  335 + cf0=cf1
  336 + cf1=cf
  337 + enddo
  338 + if (cdabs(csa).gt.cdabs(csb)) cs=csa/cf
  339 + if (cdabs(csa).le.cdabs(csb)) cs=csb/cf0
  340 + do k=0,min(nm,n)
  341 + csj(k)=cs*csj(k)
  342 + enddo
  343 + endif
  344 + csy=(1.d200,0.d0)
  345 + csy(0)=-cdcos(z)/z
  346 + csy(1)=(csy(0)-cdsin(z))/z
  347 + do k=2,min(nm,n)
  348 + if (cdabs(csj(k-1)).gt.cdabs(csj(k-2))) then
  349 + csy(k)=(csj(k)*csy(k-1)-1.0d0/(z*z))/csj(k-1)
  350 + else
  351 + csy(k)=(csj(k)*csy(k-2)-(2.0d0*k-1.0d0)/z**3)/csj(k-2)
  352 + endif
  353 + enddo
  354 + end subroutine cspherebessel
  355 +!
  356 +! ===================================================
  357 +! Purpose: Determine the starting point for backward
  358 +! recurrence such that the magnitude of
  359 +! Jn(x) at that point is about 10^(-MP)
  360 +! Input : x --- Argument of Jn(x)
  361 +! MP --- Value of magnitude
  362 +! Output: MSTA1 --- Starting point
  363 +! ===================================================
  364 +!
  365 +!
  366 +! last revised: 15 January 2011
  367 +!
  368 + integer function msta1(x,mp)
  369 + implicit none
  370 + integer :: mp,n0,n1,it,nn
  371 + real(8) :: x, a0,f1,f,f0
  372 + a0=dabs(x)
  373 + n0=int(1.1*a0)+1
  374 + f0=envj(n0,a0)-mp
  375 + n1=n0+5
  376 + f1=envj(n1,a0)-mp
  377 + do it=1,20
  378 + nn=n1-(n1-n0)/(1.0d0-f0/f1)
  379 + f=envj(nn,a0)-mp
  380 + if(abs(nn-n1).lt.1) exit
  381 + n0=n1
  382 + f0=f1
  383 + n1=nn
  384 + f1=f
  385 + enddo
  386 + msta1=nn
  387 + end function msta1
  388 +!
  389 +! ===================================================
  390 +! Purpose: Determine the starting point for backward
  391 +! recurrence such that all Jn(x) has MP
  392 +! significant digits
  393 +! Input : x --- Argument of Jn(x)
  394 +! n --- Order of Jn(x)
  395 +! MP --- Significant digit
  396 +! Output: MSTA2 --- Starting point
  397 +! ===================================================
  398 +!
  399 +!
  400 +! last revised: 15 January 2011
  401 +!
  402 + integer function msta2(x,n,mp)
  403 + implicit none
  404 + integer :: n,mp,n0,n1,it,nn
  405 + real(8) :: x,a0,hmp,ejn,obj,f0,f1,f
  406 + a0=dabs(x)
  407 + hmp=0.5d0*dble(mp)
  408 + ejn=envj(n,a0)
  409 + if (ejn.le.hmp) then
  410 + obj=mp
  411 + n0=int(1.1*a0)
  412 + else
  413 + obj=hmp+ejn
  414 + n0=n
  415 + endif
  416 + f0=envj(n0,a0)-obj
  417 + n1=n0+5
  418 + f1=envj(n1,a0)-obj
  419 + do it=1,20
  420 + nn=n1-(n1-n0)/(1.0d0-f0/f1)
  421 + f=envj(nn,a0)-obj
  422 + if (abs(nn-n1).lt.1) exit
  423 + n0=n1
  424 + f0=f1
  425 + n1=nn
  426 + f1=f
  427 + enddo
  428 + msta2=nn+10
  429 + end function msta2
  430 +
  431 + real(8) function envj(n,x)
  432 + implicit none
  433 + integer :: n
  434 + real(8) :: x
  435 + n=max(1,abs(n))
  436 + envj=0.5d0*dlog10(6.28d0*n)-n*dlog10(1.36d0*x/n)
  437 + end function envj
  438 +!
  439 +! vector coupling coefficients vc(w) = C(m,n|k,l|m+k,w), w = |n-l|,... n+l
  440 +! uses downwards and upwards recurrence
  441 +!
  442 +!
  443 +! last revised: 15 January 2011
  444 +!
  445 + subroutine vcfunc(m,n,k,l,vcn)
  446 + use numconstants
  447 + implicit none
  448 + integer :: m,n,k,l,wmax,wmin,w,mk
  449 + real(8) :: vcn(0:n+l),t1,t2,t3,vcmax,vctest,rat
  450 + vcn=0.d0
  451 + wmax=n+l
  452 + wmin=max(abs(n-l),abs(m+k))
  453 + vcn(wmax)=bcof(n+m,l+k)*bcof(n-m,l-k)/bcof(n+n,l+l)
  454 + if(wmin.eq.wmax) return
  455 + vcn(wmax-1)=vcn(wmax)*(l*m-k*n)*fnr(2*(l+n)-1)/fnr(l)/fnr(n)&
  456 + & /fnr(n+l+m+k)/fnr(n+l-m-k)
  457 + if(wmin.eq.wmax-1) return
  458 + mk=m+k
  459 + vcmax=abs(vcn(wmax))+abs(vcn(wmax-1))
  460 +!
  461 +! a downwards recurrence is used initially
  462 +!
  463 + do w=wmax,wmin+2,-1
  464 + t1=2*w*fnr(w+w+1)*fnr(w+w-1)/(fnr(w+mk)*fnr(w-mk)&
  465 + & *fnr(n-l+w)*fnr(l-n+w)*fnr(n+l-w+1)*fnr(n+l+w+1))
  466 + t2=dble((m-k)*w*(w-1)-mk*n*(n+1)+mk*l*(l+1))&
  467 + & /dble(2*w*(w-1))
  468 + t3=fnr(w-mk-1)*fnr(w+mk-1)*fnr(l-n+w-1)*fnr(n-l+w-1)&
  469 + & *fnr(n+l-w+2)*fnr(n+l+w)/(dble(2*(w-1))*fnr(2*w-3)&
  470 + & *fnr(2*w-1))
  471 + vcn(w-2)=(t2*vcn(w-1)-vcn(w)/t1)/t3
  472 + if(mod(wmax-w,2).eq.1) then
  473 + vctest=abs(vcn(w-2))+abs(vcn(w-1))
  474 + vcmax=max(vcmax,vctest)
  475 + rat=vctest/vcmax
  476 +!
  477 +! if/when the coefficients start to decrease in magnitude, an upwards recurrence takes over
  478 +!
  479 + if(rat.lt.0.01d0) exit
  480 + endif
  481 + enddo
  482 + if(w-2.gt.wmin) then
  483 + wmax=w-3
  484 + call vcfuncuprec(m,n,k,l,wmax,vcn)
  485 + endif
  486 + end subroutine vcfunc
  487 +!
  488 +! upwards VC coefficient recurrence
  489 +!
  490 +!
  491 +! last revised: 15 January 2011
  492 +!
  493 + subroutine vcfuncuprec(m,n,k,l,wmax,vcn)
  494 + use numconstants
  495 + implicit none
  496 + integer :: m,n,k,l,wmax,wmin,w,mk,nl,m1,n1,l1,k1,w1,w2
  497 + real(8) :: vcn(0:n+l),t1,t2,t3,vc1
  498 + mk=abs(m+k)
  499 + nl=abs(n-l)
  500 + if(nl.ge.mk) then
  501 + w=nl
  502 + if(n.ge.l) then
  503 + m1=m
  504 + n1=n
  505 + l1=l
  506 + k1=k
  507 + else
  508 + m1=k
  509 + n1=l
  510 + k1=m
  511 + l1=n
  512 + endif
  513 + vc1=(-1)**(k1+l1)*bcof(l1+k1,w-m1-k1) &
  514 + *bcof(l1-k1,w+m1+k1)/bcof(l1+l1,w+w+1)
  515 + else
  516 + w=mk
  517 + if(m+k.ge.0) then
  518 + vc1=(-1)**(n+m)*bcof(n-l+w,l-k)*bcof(l-n+w,n-m) &
  519 + /bcof(w+w+1,n+l-w)
  520 + else
  521 + vc1=(-1)**(l+k)*bcof(n-l+w,l+k)*bcof(l-n+w,n+m) &
  522 + /bcof(w+w+1,n+l-w)
  523 + endif
  524 + endif
  525 + w1=w
  526 + vcn(w)=vc1
  527 + w=w1+1
  528 + mk=m+k
  529 + w2=min(wmax,n+l)
  530 + if(w2.gt.w1) then
  531 + t1=2*w*fnr(w+w+1)*fnr(w+w-1)/(fnr(w+mk)*fnr(w-mk) &
  532 + *fnr(n-l+w)*fnr(l-n+w)*fnr(n+l-w+1)*fnr(n+l+w+1))
  533 + if(w1.eq.0) then
  534 + t2=.5*dble(m-k)
  535 + else
  536 + t2=dble((m-k)*w*(w-1)-mk*n*(n+1)+mk*l*(l+1)) &
  537 + /dble(2*w*(w-1))
  538 + endif
  539 + vcn(w)=t1*t2*vcn(w1)
  540 + endif
  541 + do w=w1+2,w2
  542 + t1=2*w*fnr(w+w+1)*fnr(w+w-1)/(fnr(w+mk)*fnr(w-mk) &
  543 + *fnr(n-l+w)*fnr(l-n+w)*fnr(n+l-w+1)*fnr(n+l+w+1))
  544 + t2=dble((m-k)*w*(w-1)-mk*n*(n+1)+mk*l*(l+1)) &
  545 + /dble(2*w*(w-1))
  546 + t3=fnr(w-mk-1)*fnr(w+mk-1)*fnr(l-n+w-1)*fnr(n-l+w-1) &
  547 + *fnr(n+l-w+2)*fnr(n+l+w)/(dble(2*(w-1))*fnr(2*w-3) &
  548 + *fnr(2*w-1))
  549 + vcn(w)=t1*(t2*vcn(w-1)-t3*vcn(w-2))
  550 + enddo
  551 + end subroutine vcfuncuprec
  552 +!
  553 +! Normalized associated legendre functions
  554 +!
  555 +!
  556 +! last revised: 15 January 2011
  557 +!
  558 + subroutine normalizedlegendre(cbe,mmax,nmax,dc)
  559 + use numconstants
  560 + implicit none
  561 + integer :: nmax,mmax,m,n,np1,nm1,im
  562 + real(8) :: dc(-mmax:mmax,0:nmax),cbe,sbe
  563 + sbe=dsqrt((1.d0+cbe)*(1.d0-cbe))
  564 + dc=0.d0
  565 + do m=0,mmax
  566 + dc(m,m)=(-1)**m*(0.5d0*sbe)**m*bcof(m,m)
  567 + if(m.eq.nmax) exit
  568 + dc(m,m+1)=fnr(m+m+1)*cbe*dc(m,m)
  569 + do n=m+1,nmax-1
  570 + dc(m,n+1)=(-fnr(n-m)*fnr(n+m)*dc(m,n-1)+dble(n+n+1)*cbe*dc(m,n)) &
  571 + /(fnr(n+1-m)*fnr(n+1+m))
  572 + enddo
  573 + enddo
  574 + do m=1,mmax
  575 + im=(-1)**m
  576 + do n=m,nmax
  577 + dc(-m,n)=im*dc(m,n)
  578 + enddo
  579 + enddo
  580 + end subroutine normalizedlegendre
  581 +!
  582 +! Generalized spherical functions
  583 +!
  584 +! dc(m,n*(n+1)+k)=(-1)^(m + k)((n - k)!(n + k)!/(n - m)!/(n + m)!)^(1/2)
  585 +! ((1 + x)/2)^((m + k)/2)((1 - x)/2)^((k - m)/2)JacobiP[n - k, k - m, k + m, x]
  586 +!
  587 +! for |m| <= kmax, n=0,1,...nmax, |k| <= n
  588 +!
  589 +!
  590 +! last revised: 15 January 2011
  591 +!
  592 + subroutine rotcoef(cbe,kmax,nmax,dc)
  593 + use numconstants
  594 + implicit none
  595 + integer :: kmax,nmax,k,m,in,n,knmax,nn1,kn,im,m1
  596 + real(8) :: cbe,sbe,dc(-kmax:kmax,0:nmax*(nmax+2)),cbe2,sbe2,dk0(-nmax-1:nmax+1),&
  597 + dk01(-nmax-1:nmax+1),sben,dkt,fmn,dkm0,dkm1,dkn1
  598 + sbe=dsqrt((1.d0+cbe)*(1.d0-cbe))
  599 + cbe2=.5d0*(1.d0+cbe)
  600 + sbe2=.5d0*(1.d0-cbe)
  601 + in=1
  602 + dk0(0)=1.d0
  603 + sben=1.d0
  604 + dc(0,0)=1.d0
  605 + dk01(0)=0.
  606 + do n=1,nmax
  607 + knmax=min(n,kmax)
  608 + nn1=n*(n+1)
  609 + in=-in
  610 + sben=sben*sbe/2.d0
  611 + dk0(n)=in*sben*bcof(n,n)
  612 + dk0(-n)=in*dk0(n)
  613 + dk01(n)=0.
  614 + dk01(-n)=0.
  615 + dc(0,nn1+n)=dk0(n)
  616 + dc(0,nn1-n)=dk0(-n)
  617 + do k=-n+1,n-1
  618 + kn=nn1+k
  619 + dkt=dk01(k)
  620 + dk01(k)=dk0(k)
  621 + dk0(k)=(cbe*dble(n+n-1)*dk01(k)-fnr(n-k-1)*fnr(n+k-1)*dkt)&
  622 + /(fnr(n+k)*fnr(n-k))
  623 + dc(0,kn)=dk0(k)
  624 + enddo
  625 + im=1
  626 + do m=1,knmax
  627 + im=-im
  628 + fmn=1.d0/fnr(n-m+1)/fnr(n+m)
  629 + m1=m-1
  630 + dkm0=0.
  631 + do k=-n,n
  632 + kn=nn1+k
  633 + dkm1=dkm0
  634 + dkm0=dc(m1,kn)
  635 + if(k.eq.n) then
  636 + dkn1=0.
  637 + else
  638 + dkn1=dc(m1,kn+1)
  639 + endif
  640 + dc(m,kn)=(fnr(n+k)*fnr(n-k+1)*cbe2*dkm1 &
  641 + -fnr(n-k)*fnr(n+k+1)*sbe2*dkn1 &
  642 + -dble(k)*sbe*dc(m1,kn))*fmn
  643 + dc(-m,nn1-k)=dc(m,kn)*(-1)**(k)*im
  644 + enddo
  645 + enddo
  646 + enddo
  647 + end subroutine rotcoef
  648 +
  649 + subroutine rotcoefvecarg(narg,cbe,kmax,nmax,dc)
  650 + use numconstants
  651 + implicit none
  652 + integer :: kmax,nmax,k,m,in,n,knmax,nn1,kn,im,m1,narg
  653 + real(8) :: cbe(narg),sbe(narg),dc(-kmax:kmax,0:nmax*(nmax+2),narg), &
  654 + cbe2(narg),sbe2(narg),dk0(-nmax-1:nmax+1,narg),&
  655 + dk01(-nmax-1:nmax+1,narg),sben(narg),dkt(narg), &
  656 + fmn,dkm0(narg),dkm1(narg),dkn1(narg)
  657 + sbe=sqrt((1.d0+cbe)*(1.d0-cbe))
  658 + cbe2=.5d0*(1.d0+cbe)
  659 + sbe2=.5d0*(1.d0-cbe)
  660 + in=1
  661 + dk0(0,:)=1.d0
  662 + sben=1.d0
  663 + dc(0,0,:)=1.d0
  664 + dk01(0,:)=0.
  665 + do n=1,nmax
  666 + knmax=min(n,kmax)
  667 + nn1=n*(n+1)
  668 + in=-in
  669 + sben=sben*sbe/2.d0
  670 + dk0(n,:)=in*sben(:)*bcof(n,n)
  671 + dk0(-n,:)=in*dk0(n,:)
  672 + dk01(n,:)=0.
  673 + dk01(-n,:)=0.
  674 + dc(0,nn1+n,:)=dk0(n,:)
  675 + dc(0,nn1-n,:)=dk0(-n,:)
  676 + do k=-n+1,n-1
  677 + kn=nn1+k
  678 + dkt(:)=dk01(k,:)
  679 + dk01(k,:)=dk0(k,:)
  680 + dk0(k,:)=(cbe(:)*dble(n+n-1)*dk01(k,:)-fnr(n-k-1)*fnr(n+k-1)*dkt(:)) &
  681 + /(fnr(n+k)*fnr(n-k))
  682 + dc(0,kn,:)=dk0(k,:)
  683 + enddo
  684 + im=1
  685 + do m=1,knmax
  686 + im=-im
  687 + fmn=1.d0/fnr(n-m+1)/fnr(n+m)
  688 + m1=m-1
  689 + dkm0=0.
  690 + do k=-n,n
  691 + kn=nn1+k
  692 + dkm1=dkm0
  693 + dkm0(:)=dc(m1,kn,:)
  694 + if(k.eq.n) then
  695 + dkn1=0.
  696 + else
  697 + dkn1(:)=dc(m1,kn+1,:)
  698 + endif
  699 + dc(m,kn,:)=(fnr(n+k)*fnr(n-k+1)*cbe2(:)*dkm1(:) &
  700 + -fnr(n-k)*fnr(n+k+1)*sbe2(:)*dkn1(:) &
  701 + -dble(k)*sbe(:)*dc(m1,kn,:))*fmn
  702 + dc(-m,nn1-k,:)=dc(m,kn,:)*(-1)**(k)*im
  703 + enddo
  704 + enddo
  705 + enddo
  706 + end subroutine rotcoefvecarg
  707 +!
  708 +! tau are the vector spherical harmonic functions, normalized
  709 +!
  710 +!
  711 +! last revised: 15 January 2011
  712 +!
  713 + subroutine taufunc(cb,nmax,tau)
  714 + use numconstants
  715 + implicit none
  716 + integer :: nmax,n,m,p,nn1,mn
  717 + real(8) :: drot(-1:1,0:nmax*(nmax+2)),tau(0:nmax+1,nmax,2),cb,fnm
  718 + call rotcoef(cb,1,nmax,drot)
  719 + do n=1,nmax
  720 + nn1=n*(n+1)
  721 + fnm=sqrt(dble(n+n+1)/2.d0)/4.d0
  722 + do m=-n,-1
  723 + mn=nn1+m
  724 + tau(n+1,-m,1)=-fnm*(-drot(-1,mn)+drot(1,mn))
  725 + tau(n+1,-m,2)=-fnm*(drot(-1,mn)+drot(1,mn))
  726 + enddo
  727 + do m=0,n
  728 + mn=nn1+m
  729 + tau(m,n,1)=-fnm*(-drot(-1,mn)+drot(1,mn))
  730 + tau(m,n,2)=-fnm*(drot(-1,mn)+drot(1,mn))
  731 + enddo
  732 + enddo
  733 + end subroutine taufunc
  734 +!
  735 +! vector spherical harmonic function
  736 +! november 2011
  737 +!
  738 +
  739 + subroutine pifunc(cb,ephi,nmax,ndim,pivec)
  740 + use numconstants
  741 + implicit none
  742 + integer :: nmax,n,m,p,nn1,mn,ndim
  743 + real(8) :: drot(-1:1,0:nmax*(nmax+2)),tau(2),cb,fnm
  744 + complex(8) :: pivec(0:ndim+1,ndim,2),ephi,ephim(-nmax:nmax),cin
  745 + call rotcoef(cb,1,nmax,drot)
  746 + ephim(0)=1.d0
  747 + do m=1,nmax
  748 + ephim(m)=ephi*ephim(m-1)
  749 + ephim(-m)=dconjg(ephim(m))
  750 + enddo
  751 + do n=1,nmax
  752 + cin=(0.d0,-1.d0)**(n+1)
  753 + nn1=n*(n+1)
  754 + fnm=sqrt(dble(n+n+1)/2.d0)/4.d0
  755 + do m=-n,-1
  756 + mn=nn1+m
  757 + tau(1)=-fnm*(-drot(-1,mn)+drot(1,mn))
  758 + tau(2)=-fnm*(drot(-1,mn)+drot(1,mn))
  759 + pivec(n+1,-m,1)=cin*tau(1)*ephim(m)
  760 + pivec(n+1,-m,2)=cin*tau(2)*ephim(m)
  761 + enddo
  762 + do m=0,n
  763 + mn=nn1+m
  764 + tau(1)=-fnm*(-drot(-1,mn)+drot(1,mn))
  765 + tau(2)=-fnm*(drot(-1,mn)+drot(1,mn))
  766 + pivec(m,n,1)=cin*tau(1)*ephim(m)
  767 + pivec(m,n,2)=cin*tau(2)*ephim(m)
  768 + enddo
  769 + enddo
  770 + end subroutine pifunc
  771 +!
  772 +! regular vswf expansion coefficients for a plane wave.
  773 +! alpha, beta: incident azimuth and polar angles.
  774 +!
  775 +!
  776 +! last revised: 15 January 2011
  777 +!
  778 + subroutine planewavecoef(alpha,beta,nodr,pmnp0)
  779 + use numconstants
  780 + implicit none
  781 + integer :: nodr,m,n,p,k,ierr
  782 + real(8) :: alpha,beta,cb,sb,ca,sa
  783 + real(8), allocatable :: tau(:,:,:)
  784 + complex(8) :: ealpha,ci,cin
  785 + complex(8), allocatable :: ealpham(:)
  786 + complex(8) :: pmnp0(0:nodr+1,nodr,2,2)
  787 + data ci/(0.d0,1.d0)/
  788 + call init(nodr)
  789 + allocate(ealpham(-nodr:nodr))
  790 + allocate(tau(0:nodr+1,nodr,2))
  791 + cb=cos(beta)
  792 + sb=sqrt((1.d0-cb)*(1.d0+cb))
  793 + ca=cos(alpha)
  794 + sa=sin(alpha)
  795 + ealpha=dcmplx(ca,sa)
  796 + call taufunc(cb,nodr,tau)
  797 + call ephicoef(ealpha,nodr,ealpham)
  798 + do n=1,nodr
  799 + cin=4.d0*ci**(n+1)
  800 + do p=1,2
  801 + do m=-n,-1
  802 + pmnp0(n+1,-m,p,1)=-cin*tau(n+1,-m,p)*ealpham(-m)
  803 + pmnp0(n+1,-m,p,2)=ci*cin*tau(n+1,-m,3-p)*ealpham(-m)
  804 + enddo
  805 + do m=0,n
  806 + pmnp0(m,n,p,1)=-cin*tau(m,n,p)*ealpham(-m)
  807 + pmnp0(m,n,p,2)=ci*cin*tau(m,n,3-p)*ealpham(-m)
  808 + enddo
  809 + enddo
  810 + enddo
  811 + deallocate(ealpham,tau)
  812 + end subroutine planewavecoef
  813 +!
  814 +! regular vswf expansion coefficients for a gaussian beam, localized approximation.
  815 +! cbeam = 1/(k omega)
  816 +!
  817 +!
  818 +! last revised: 15 January 2011
  819 +!
  820 + subroutine gaussianbeamcoef(alpha,beta,cbeam,nodr,pmnp0)
  821 + use numconstants
  822 + implicit none
  823 + integer :: nodr,m,n,p,k,ierr
  824 + real(8) :: alpha,beta,cbeam,gbn
  825 + complex(8) :: pmnp0(0:nodr+1,nodr,2,2)
  826 + call planewavecoef(alpha,beta,nodr,pmnp0)
  827 + do n=1,nodr
  828 + gbn=dexp(-((dble(n)+.5d0)*cbeam)**2.)
  829 + do p=1,2
  830 + do k=1,2
  831 + do m=-n,-1
  832 + pmnp0(n+1,-m,p,k)=pmnp0(n+1,-m,p,k)*gbn
  833 + enddo
  834 + do m=0,n
  835 + pmnp0(m,n,p,k)=pmnp0(m,n,p,k)*gbn
  836 + enddo
  837 + enddo
  838 + enddo
  839 + enddo
  840 + end subroutine gaussianbeamcoef
  841 +!
  842 +! plane wave expansion coefficients at sphere origins. uses a phase shift.
  843 +!
  844 +!
  845 +! last revised: 15 January 2011
  846 +!
  847 + subroutine sphereplanewavecoef(nsphere,neqns,nodr,nodrmax,alpha,beta,rpos,pmnp)
  848 + implicit none
  849 + integer :: m,n,p,nsphere,i,l,nodr(nsphere),nblk,nboff,nodrmax,neqns,k
  850 + real(8) :: alpha,beta,cb,sb,ca,sa,rpos(3,nsphere)
  851 + complex(8) :: ci,phasefac, pmnp(neqns,2)
  852 + complex(8) :: pmnp0(0:nodrmax+1,nodrmax,2,2)
  853 + data ci/(0.d0,1.d0)/
  854 + call planewavecoef(alpha,beta,nodrmax,pmnp0)
  855 + cb=cos(beta)
  856 + sb=sqrt((1.d0-cb)*(1.d0+cb))
  857 + ca=cos(alpha)
  858 + sa=sin(alpha)
  859 + l=0
  860 + do i=1,nsphere
  861 + phasefac=cdexp(ci*((ca*rpos(1,i)+sa*rpos(2,i))*sb+rpos(3,i)*cb))
  862 + do p=1,2
  863 + do n=1,nodr(i)
  864 + do m=0,nodr(i)+1
  865 + l=l+1
  866 + do k=1,2
  867 + pmnp(l,k)=phasefac*pmnp0(m,n,p,k)
  868 + enddo
  869 + enddo
  870 + enddo
  871 + enddo
  872 + enddo
  873 + end subroutine sphereplanewavecoef
  874 +!
  875 +! this computes the normalized translation coefficients for an
  876 +! axial translation of positive distance r. For itype=1 or 3, the translation
  877 +! uses the spherical Bessel or Hankel functions as a basis function,
  878 +! respectively. They are related to the coefficients appearing in
  879 +! M&M JOSA 96 by
  880 +!
  881 +! J^{ij}_{mnp mlq} = (E_{ml}/E_{mn})^(1/2) ac(s,n,l*(l+1)+m)
  882 +!
  883 +! where
  884 +!
  885 +! E_{mn} = n(n+1)(n+m)!/((2n+1)(n-m)!)
  886 +! s=mod(p+q,2)+1 (i.e., s=1 for the A coefficient, =2 for the B
  887 +! coefficient)
  888 +!
  889 +! The calculation procedure is based on the derivation
  890 +! of the addition theorem for vector harmonics, appearing in
  891 +! Fuller and Mackowski, proc. Light Scattering by Nonspherical
  892 +! Particles, NASA/GISS Sept. 1998.
  893 +!
  894 +! revised: 10 october 2011: used F90 vector arithmetic and precalculation
  895 +! of various constants.
  896 +!
  897 + subroutine axialtrancoef(itype,r,ri,nmax,lmax,ac)
  898 + use numconstants
  899 + implicit none
  900 + integer :: itype,nmax,lmax,n,l,m,p,w,n21,ll1,nlmin,lblk,wmin,wmax,ml
  901 + integer :: iadd,nlmax
  902 + integer, save :: nlmax0
  903 + real(8) :: r
  904 + complex(8) :: ri,ci,z,xi(0:nmax+lmax)
  905 + complex(8) :: ac(nmax,lmax*(lmax+3)/2,2)
  906 + data ci,nlmax0/(0.d0,1.d0),0/
  907 + nlmax=max(nmax,lmax)
  908 + if(nlmax.gt.nlmax0) then
  909 + nlmax0=nlmax
  910 + call axialtrancoefinit(nlmax)
  911 + endif
  912 + if(r.eq.0.d0) then
  913 + ac=(0.d0,0.d0)
  914 + if(itype.ne.1) return
  915 + do m=0,min(nmax,lmax)
  916 + do n=max(1,m),min(nmax,lmax)
  917 + iadd=atcadd(m,n,lmax)
  918 + ac(n,iadd,l)=1.
  919 + enddo
  920 + enddo
  921 + return
  922 + endif
  923 + z=r*ri
  924 + if(itype.eq.1) then
  925 + call cricbessel(nmax+lmax,z,xi)
  926 + else
  927 + call crichankel(nmax+lmax,z,xi)
  928 + endif
  929 + xi=xi/z
  930 + do n=1,nmax
  931 + do l=1,lmax
  932 + wmin=abs(n-l)
  933 + wmax=n+l
  934 + do m=0,min(n,l)
  935 + iadd=atcadd(m,l,lmax)
  936 + ml=l*(l+1)/2+m
  937 + ac(n,iadd,1)=sum(vcc_const(n,ml,wmin:wmax:2)*xi(wmin:wmax:2))
  938 + ac(n,iadd,2)=ci*sum(vcc_const(n,ml,wmin+1:wmax-1:2)*xi(wmin+1:wmax-1:2))
  939 + enddo
  940 + enddo
  941 + enddo
  942 + end subroutine axialtrancoef
  943 +!
  944 +! axial translation coefficients calculated by the diamond recurrence formula
  945 +! new: 10 october 2011
  946 +!
  947 + subroutine axialtrancoefrecurrence(itype,r,ri,nmax,lmax,ac)
  948 + use numconstants
  949 + implicit none
  950 + integer :: itype,nmax,lmax,n,l,m,p,q,w,n21,ll1,nlmin,lblk, &
  951 + wmin,wmax,ml,m1,np1,nm1,iaddp1,iaddm1,lm1,lp1
  952 + integer :: iadd,nlmax,iadd0,iadd1
  953 + integer, save :: nlmax0
  954 + real(8) :: r,fnp1,fn,fnm1,flp1,fl,flm1
  955 + complex(8) :: ri,ci,z,xi(0:nmax+lmax)
  956 + complex(8) :: ac(nmax,lmax*(lmax+3)/2,2)
  957 + data ci,nlmax0/(0.d0,1.d0),0/
  958 + nlmax=max(nmax,lmax)
  959 + nlmin=min(nmax,lmax)
  960 + if(nlmax.gt.nlmax0) then
  961 + nlmax0=nlmax
  962 + call axialtrancoefinit(nlmax)
  963 + endif
  964 +
  965 + if(r.eq.0.d0) then
  966 + ac=(0.d0,0.d0)
  967 + if(itype.ne.1) return
  968 + do m=0,nlmin
  969 + m1=max(1,m)
  970 + do n=m1,nlmin
  971 + iadd=atcadd(m,n,lmax)
  972 + ac(n,iadd,l)=1.
  973 + enddo
  974 + enddo
  975 + return
  976 + endif
  977 + z=r*ri
  978 + if(itype.eq.1) then
  979 + call cricbessel(nmax+lmax,z,xi)
  980 + else
  981 + call crichankel(nmax+lmax,z,xi)
  982 + endif
  983 + xi=xi/z
  984 +
  985 + lm1=lmax-1
  986 + do m=0,nlmin
  987 + m1=max(1,abs(m))
  988 + lp1=m1+1
  989 + iadd0=atcadd(m,m1,lmax)
  990 + iadd1=atcadd(m,lmax,lmax)
  991 + iaddp1=iadd0+1
  992 + iaddm1=iadd1-1
  993 +
  994 + iadd=iadd0-1
  995 + n=m1
  996 + do l=m1,lmax
  997 + wmin=abs(n-l)
  998 + wmax=n+l
  999 + iadd=iadd+1
  1000 + ml=l*(l+1)/2+m
  1001 + ac(n,iadd,1)=sum(vcc_const(n,ml,wmin:wmax:2)*xi(wmin:wmax:2))
  1002 + ac(n,iadd,2)=ci*sum(vcc_const(n,ml,wmin+1:wmax-1:2)*xi(wmin+1:wmax-1:2))
  1003 + enddo
  1004 + l=lmax
  1005 + iadd=iadd1
  1006 + ml=l*(l+1)/2+m
  1007 + do n=m1+1,nmax
  1008 + wmin=abs(n-l)
  1009 + wmax=n+l
  1010 + ac(n,iadd,1)=sum(vcc_const(n,ml,wmin:wmax:2)*xi(wmin:wmax:2))
  1011 + ac(n,iadd,2)=ci*sum(vcc_const(n,ml,wmin+1:wmax-1:2)*xi(wmin+1:wmax-1:2))
  1012 + enddo
  1013 + if(m1.eq.nlmin) cycle
  1014 +
  1015 + do n=m1,nmax-1
  1016 + np1=n+1
  1017 + nm1=n-1
  1018 + do p=1,2
  1019 + q=3-p
  1020 + ac(np1,iadd0:iaddm1,p)= &
  1021 + - ac(n,iaddp1:iadd1,p)*fnp1_const(m,m1:lm1) &
  1022 + + (fn_const(m,m1:lm1)-fn_const(m,n))*ci*ac(n,iadd0:iaddm1,q)
  1023 + ac(np1,iaddp1:iaddm1,p)=ac(np1,iaddp1:iaddm1,p) &
  1024 + + ac(n,iadd0:iadd1-2,p)*fnm1_const(m,lp1:lm1)
  1025 + if(n.gt.m1) then
  1026 + ac(np1,iadd0:iaddm1,p)=ac(np1,iadd0:iaddm1,p) &
  1027 + + ac(nm1,iadd0:iaddm1,p)*fnm1_const(m,n)
  1028 + endif
  1029 + ac(np1,iadd0:iaddm1,p)=ac(np1,iadd0:iaddm1,p)/fnp1_const(m,n)
  1030 + enddo
  1031 + enddo
  1032 + enddo
  1033 + end subroutine axialtrancoefrecurrence
  1034 +!
  1035 +! constants for translation coefficient calculation
  1036 +!
  1037 + subroutine axialtrancoefinit(nmax)
  1038 + use numconstants
  1039 + implicit none
  1040 + integer :: nmax,m,n,l,w,n21,ml,ll1,wmin,wmax,nlmin,lp1,lm1
  1041 + real(8) :: c1,c2,vc1(0:2*nmax),vc2(0:2*nmax),alnw
  1042 + complex(8) :: ci,inlw
  1043 + data ci/(0.d0,1.d0)/
  1044 + if(allocated(vcc_const)) deallocate(vcc_const,fnm1_const,fn_const,fnp1_const)
  1045 + allocate(vcc_const(nmax,nmax*(nmax+1)/2+nmax,0:2*nmax),fnm1_const(0:nmax,nmax), &
  1046 + fn_const(0:nmax,nmax),fnp1_const(0:nmax,nmax))
  1047 + do n=1,nmax
  1048 + n21=n+n+1
  1049 + do l=1,nmax
  1050 + c1=fnr(n21)*fnr(l+l+1)
  1051 + ll1=l*(l+1)/2
  1052 + call vcfunc(-1,n,1,l,vc2)
  1053 + wmin=abs(n-l)
  1054 + wmax=n+l
  1055 + nlmin=min(l,n)
  1056 + do m=0,nlmin
  1057 + ml=ll1+m
  1058 + c2=-c1*(-1)**m
  1059 + call vcfunc(-m,n,m,l,vc1)
  1060 + do w=wmin,wmax
  1061 + inlw=ci**(n-l+w)
  1062 + vcc_const(n,ml,w)=c2*vc1(w)*vc2(w)*(dble(inlw)+dimag(inlw))
  1063 + enddo
  1064 + enddo
  1065 + enddo
  1066 + enddo
  1067 + fnm1_const=0.
  1068 + fn_const=0.
  1069 + fnp1_const=0.
  1070 + do m=0,nmax
  1071 + do l=max(1,m),nmax
  1072 + lp1=l+1
  1073 + lm1=l-1
  1074 + fnm1_const(m,l)=fnr(lm1)*fnr(lp1)*fnr(l-m)*fnr(l+m)/fnr(lm1+l)/fnr(l+lp1)/dble(l)
  1075 + fn_const(m,l)=dble(m)/dble(l)/dble(lp1)
  1076 + fnp1_const(m,l)=fnr(l)*fnr(l+2)*fnr(lp1-m)*fnr(lp1+m)/fnr(l+lp1)/fnr(l+l+3)/dble(lp1)
  1077 + enddo
  1078 + enddo
  1079 + end subroutine axialtrancoefinit
  1080 +!
  1081 +! test to determine convergence of regular vswf addition theorem for max. order lmax
  1082 +! and translation distance r w/ refractive index ri.
  1083 +!
  1084 +!
  1085 +! last revised: 15 January 2011
  1086 +!
  1087 + subroutine tranordertest(r,ri,lmax,eps,nmax)
  1088 + use numconstants
  1089 + implicit none
  1090 + integer :: itype,nmax,lmax,n,l,m,p,w,n21,ll1,nlmin,lblk,wmin,wmax
  1091 + integer, parameter :: nlim=200
  1092 + integer :: iadd
  1093 + real(8) :: r,alnw,sum,eps
  1094 + real(8) :: vc1(0:nlim+lmax)
  1095 + complex(8) :: ri,ci,z,a,b,c
  1096 + complex(8) :: xi(0:nlim+lmax)
  1097 + data ci/(0.d0,1.d0)/
  1098 + if(r.eq.0.d0) then
  1099 + nmax=lmax
  1100 + return
  1101 + endif
  1102 + z=r*ri
  1103 + sum=0.d0
  1104 + do n=1,nlim
  1105 + call init(n+lmax)
  1106 + call cricbessel(n+lmax,z,xi)
  1107 + do l=0,n+lmax
  1108 + xi(l)=xi(l)/z*ci**l
  1109 + enddo
  1110 + n21=n+n+1
  1111 + l=lmax
  1112 + c=fnr(n21)*fnr(l+l+1)*ci**(n-l)
  1113 + call vcfunc(-1,n,1,l,vc1)
  1114 + wmin=abs(n-l)
  1115 + wmax=n+l
  1116 + m=1
  1117 + a=0.
  1118 + b=0.
  1119 + do w=wmin,wmax
  1120 + alnw=vc1(w)*vc1(w)
  1121 + if(mod(n+l+w,2).eq.0) then
  1122 + a=a+alnw*xi(w)
  1123 + else
  1124 + b=b+alnw*xi(w)
  1125 + endif
  1126 + enddo
  1127 + a=c*a
  1128 + b=c*b
  1129 + sum=sum+a*conjg(a)+b*conjg(b)
  1130 + if(abs(1.d0-sum).lt.eps) exit
  1131 + enddo
  1132 + nmax=min(n,nlim)
  1133 + nmax=max(nmax,lmax)
  1134 + end subroutine tranordertest
  1135 +!
  1136 +! address for axial translation coefficient
  1137 +!
  1138 +!
  1139 +! last revised: 15 January 2011
  1140 +!
  1141 + integer function atcadd(m,n,ntot)
  1142 + implicit none
  1143 + integer :: m,n,ntot
  1144 + atcadd=n-ntot+(max(1,m)*(1+2*ntot-max(1,m)))/2+ntot*min(1,m)
  1145 + end function atcadd
  1146 +!
  1147 +! gentrancoef: calculates the vwh translation coefficients for
  1148 +! a general translation from one origin to another
  1149 +!
  1150 +! input: itype: integer, =1, regular, =3, outgoing type harmonics
  1151 +! xptran: real, dim 3 vector: x,y,z components of translation, in units
  1152 +! of 1/k
  1153 +! ri: complex, refractive index of medium
  1154 +! nrow0,nrow1,ncol0,ncol1: integer, starting and stopping row and column order
  1155 +! iaddrow0,iaddcol0: address offset for row and column order (see below)
  1156 +! output: ac(p,mn,kl): complex translation matrix. calculated for mode p=1,2 (A or B type),
  1157 +! order n=nrow0,nrow1, degree m=-n,n
  1158 +! order l=ncol0,ncol1, degree k=-n,n
  1159 +! address is given by
  1160 +! mn=m+n*(n+1)-(nrow0-1)*(nrow0+1)+iaddrow0
  1161 +! kl=k+l*(l+1)-(ncol0-1)*(ncol0+1)+iaddcol0
  1162 +! that is, if iaddrow0=0 the address is mn=1 for n=nrow0 and m=-n.
  1163 +!
  1164 +!
  1165 +! last revised: 15 January 2011
  1166 +!
  1167 + subroutine gentrancoef(itype,xptran,ri,nrow0,nrow1,ncol0,ncol1, &
  1168 + iaddrow0,iaddcol0,ac)
  1169 + use numconstants
  1170 + implicit none
  1171 + integer :: itype,nrow0,nrow1,ncol0,ncol1,iaddrow0,iaddcol0,kmax
  1172 + integer :: ntot,nblkr0,nblkr1,nblkc0,nblkc1
  1173 + integer :: v,vw,w,wmax,wmin,n,l,m,k,p,nn1,ll1,mn,kl,m1m
  1174 + real(8) :: vc1(0:nrow1+ncol1),vc2(0:nrow1+ncol1),&
  1175 + xptran(3),r,ct,ct0
  1176 + real(8) :: drot(0:0,0:(nrow1+ncol1)*(nrow1+ncol1+2))
  1177 + complex(8) :: ri,ci,ephi,ac(2,nrow1*(nrow1+2)-(nrow0-1)*(nrow0+1)-iaddrow0,&
  1178 + ncol1*(ncol1+2)-(ncol0-1)*(ncol0+1)-iaddcol0),&
  1179 + z,c,a,b
  1180 + complex(8) :: ephim(-(nrow1+ncol1):nrow1+ncol1),jnc(0:nrow1+ncol1)
  1181 + data ci/(0.d0,1.d0)/
  1182 + call cartosphere(xptran,r,ct,ephi)
  1183 + ntot=nrow1+ncol1
  1184 + nblkr0=(nrow0-1)*(nrow0+1)
  1185 + nblkr1=nrow1*(nrow1+2)
  1186 + nblkc0=(ncol0-1)*(ncol0+1)
  1187 + nblkc1=ncol1*(ncol1+2)
  1188 + if(r.eq.0.d0) then
  1189 + do n=nblkr0+1,nblkr1
  1190 + mn=n-nblkr0+iaddrow0
  1191 + do l=nblkc0+1,nblkc1
  1192 + kl=l-nblkc0+iaddcol0
  1193 + do p=1,2
  1194 + ac(p,mn,kl)=0.d0
  1195 + enddo
  1196 + enddo
  1197 + if(n.gt.nblkc0.and.n.le.nblkc1.and.itype.eq.1) then
  1198 + ac(1,mn,n-nblkc0+iaddcol0)=1.d0
  1199 + endif
  1200 + enddo
  1201 + return
  1202 + endif
  1203 + kmax=0
  1204 + ct0=ct
  1205 + call rotcoef(ct0,kmax,ntot,drot)
  1206 + call ephicoef(ephi,ntot,ephim)
  1207 + z=ri*r
  1208 + if(itype.eq.1) then
  1209 + call cricbessel(ntot,z,jnc)
  1210 + else
  1211 + call crichankel(ntot,z,jnc)
  1212 + endif
  1213 + do n=0,ntot
  1214 + c=ci**n
  1215 + jnc(n)=c*jnc(n)/z
  1216 + enddo
  1217 + do l=ncol0,ncol1
  1218 + ll1=l*(l+1)
  1219 + do n=nrow0,nrow1
  1220 + nn1=n*(n+1)
  1221 + wmax=n+l
  1222 + call vcfunc(-1,n,1,l,vc2)
  1223 + c=-ci**(n-l)*fnr(n+n+1)*fnr(l+l+1)
  1224 + do k=-l,l
  1225 + kl=ll1+k-nblkc0+iaddcol0
  1226 + do m=-n,n
  1227 + m1m=(-1)**m
  1228 + mn=nn1+m-nblkr0+iaddrow0
  1229 + v=k-m
  1230 + call vcfunc(-m,n,k,l,vc1)
  1231 + a=0.
  1232 + b=0.
  1233 + wmin=max(abs(v),abs(n-l))
  1234 + do w=wmax,wmin,-1
  1235 + vw=w*(w+1)+v
  1236 + if(mod(wmax-w,2).eq.0) then
  1237 + a=a+vc1(w)*vc2(w)*jnc(w)*drot(0,vw)
  1238 + else
  1239 + b=b+vc1(w)*vc2(w)*jnc(w)*drot(0,vw)
  1240 + endif
  1241 + enddo
  1242 + ac(1,mn,kl)=a*c*m1m*ephim(v)
  1243 + ac(2,mn,kl)=b*c*m1m*ephim(v)
  1244 + enddo
  1245 + enddo
  1246 + enddo
  1247 + enddo
  1248 + return
  1249 + end subroutine gentrancoef
  1250 +!
  1251 +! cartosphere takes the cartesian point (x,y,z) = xp(1), xp(2), xp(3)
  1252 +! and converts to polar form: r: radius, ct: cos(theta), ep = exp(i phi)
  1253 +!
  1254 +!
  1255 +! last revised: 15 January 2011
  1256 +!
  1257 + subroutine cartosphere(xp,r,ct,ep)
  1258 + implicit none
  1259 + real(8) :: xp(3),r,ct
  1260 + complex(8) :: ep
  1261 + r=xp(1)*xp(1)+xp(2)*xp(2)+xp(3)*xp(3)
  1262 + if(r.eq.0.d0) then
  1263 + ct=1.d0
  1264 + ep=(1.d0,0.d0)
  1265 + return
  1266 + endif
  1267 + r=sqrt(r)
  1268 + ct=xp(3)/r
  1269 + if(xp(1).eq.0.d0.and.xp(2).eq.0.d0) then
  1270 + ep=(1.d0,0.d0)
  1271 + else
  1272 + ep=dcmplx(xp(1),xp(2))/sqrt(xp(1)*xp(1)+xp(2)*xp(2))
  1273 + endif
  1274 + return
  1275 + end subroutine cartosphere
  1276 +!
  1277 +! ephicoef returns the complex array epm(m) = exp(i m phi) for
  1278 +! m=-nodr,nodr. ep =exp(i phi), and epm is dimensioned epm(-nd:nd)
  1279 +!
  1280 +!
  1281 +! last revised: 15 January 2011
  1282 +!
  1283 + subroutine ephicoef(ep,nodr,epm)
  1284 + implicit none
  1285 + integer :: nodr,m
  1286 + complex(8) :: ep,epm(-nodr:nodr)
  1287 + epm(0)=(1.d0,0.d0)
  1288 + do m=1,nodr
  1289 + epm(m)=ep*epm(m-1)
  1290 + epm(-m)=dconjg(epm(m))
  1291 + enddo
  1292 + return
  1293 + end subroutine ephicoef
  1294 +!
  1295 +! test to determine max order of vswf expansion of a plane wave at distance r
  1296 +!
  1297 +!
  1298 +! last revised: 15 January 2011
  1299 +!
  1300 + subroutine planewavetruncationorder(r,eps,nodr)
  1301 + implicit none
  1302 + integer :: nodr,n1,n
  1303 + real(8) :: r,eps,err
  1304 + real(8), allocatable :: jn(:)
  1305 + complex(8) :: sum, ci,eir
  1306 + data ci/(0.d0,1.d0)/
  1307 + n1=max(10,int(3.*r+1))
  1308 + allocate(jn(0:n1))
  1309 + call ricbessel(n1,r,-1.d0,n1,jn)
  1310 + jn(0:n1)=jn(0:n1)/r
  1311 + eir=cdexp(-ci*r)
  1312 + sum=jn(0)*eir
  1313 + do n=1,n1
  1314 + sum=sum+ci**n*dble(n+n+1)*jn(n)*eir
  1315 + err=cdabs(1.d0-sum)
  1316 + if(err.lt.eps) then
  1317 + nodr=n
  1318 + deallocate(jn)
  1319 + return
  1320 + endif
  1321 + enddo
  1322 + nodr=n1
  1323 + deallocate(jn)
  1324 + end subroutine planewavetruncationorder
  1325 +!
  1326 +! calculates the cartesian components of the vswf at position rpos, in ref. index ri.
  1327 +!
  1328 +!
  1329 +! original: 15 January 2011
  1330 +! revised: 23 February 2011: multiplied by root 2
  1331 +!
  1332 + subroutine vwhcalc(rpos,ri,nodr,itype,vwh)
  1333 + use numconstants
  1334 + implicit none
  1335 + integer :: nodr,itype,m,n,p,nodrp1,nodrm1,nn1,mn,np1,nm1,mp1,mm1,ndim, &
  1336 + nblkp
  1337 + integer, save :: nodrmax
  1338 + real(8) :: rpos(3),r,ct,fnorm1,fnorm2
  1339 + real(8) pmn(0:0,0:(nodr+1)*(nodr+3))
  1340 + complex(8) :: ci,vwh(3,2,1:*),ri,ephi,a,b,a1,b1,z1,a2,b2,z2
  1341 + complex(8) :: a1vec(-nodr:nodr), &
  1342 + b1vec(-nodr:nodr),z1vec(-nodr:nodr),a2vec(-nodr:nodr), &
  1343 + b2vec(-nodr:nodr),z2vec(-nodr:nodr)
  1344 + complex(8) :: umn(-nodr-2:nodr+2,0:nodr+1), hn(0:nodr+1), ephim(-nodr-1:nodr+1)
  1345 + data ci,nodrmax/(0.d0,1.d0),0/
  1346 + if(nodr.gt.nodrmax) then
  1347 + nodrmax=nodr
  1348 + call init(nodr+2)
  1349 + endif
  1350 + call cartosphere(rpos,r,ct,ephi)
  1351 + if(r.le.1.d-4) then
  1352 + vwh(:,:,1:nodr*(nodr+1))=(0.d0,0.d0)
  1353 + if(itype.eq.3) return
  1354 + vwh(1,1,1)=.5d0*fnr(2)/fnr(3)
  1355 + vwh(2,1,1)=-.5d0*ci*fnr(2)/fnr(3)
  1356 + vwh(3,1,2)=1.d0*fnr(2)/fnr(6)
  1357 + vwh(1,1,3)=-.5d0*fnr(2)/fnr(3)
  1358 + vwh(2,1,3)=-.5d0*ci*fnr(2)/fnr(3)
  1359 + return
  1360 + endif
  1361 + nodrp1=nodr+1
  1362 + nodrm1=nodr-1
  1363 + a=ri*r
  1364 + if(itype.eq.1) then
  1365 + call cricbessel(nodrp1,a,hn)
  1366 + else
  1367 + call crichankel(nodrp1,a,hn)
  1368 + endif
  1369 + hn(0:nodrp1)=hn(0:nodrp1)/a
  1370 + call rotcoef(ct,0,nodrp1,pmn)
  1371 + call ephicoef(ephi,nodrp1,ephim)
  1372 + umn=0.d0
  1373 + umn(0,0)=hn(0)*fnr(2)
  1374 + do n=1,nodrp1
  1375 + nn1=n*(n+1)
  1376 + umn(-n:n,n)=fnr(2)*pmn(0,nn1-n:nn1+n)*ephim(-n:n)*hn(n)
  1377 + umn(-n-1,n)=0.d0
  1378 + umn(n+1,n)=0.d0
  1379 + enddo
  1380 + do n=1,nodr
  1381 + nn1=n*(n+1)
  1382 + np1=n+1
  1383 + nm1=n-1
  1384 + a1vec(-n:n)=vwh_coef(-n:n,n,1,1)*umn(-nm1:np1,np1) &
  1385 + +vwh_coef(-n:n,n,1,-1)*umn(-nm1:np1,nm1)
  1386 + b1vec(-n:n)=vwh_coef(-n:n,n,-1,1)*umn(-np1:nm1,np1) &
  1387 + +vwh_coef(-n:n,n,-1,-1)*umn(-np1:nm1,nm1)
  1388 + z1vec(-n:n)=vwh_coef(-n:n,n,0,1)*umn(-n:n,np1) &
  1389 + +vwh_coef(-n:n,n,0,-1)*umn(-n:n,nm1)
  1390 + a2vec(-n:n)=vwh_coef(-n:n,n,1,0)*umn(-nm1:np1,n)
  1391 + b2vec(-n:n)=vwh_coef(-n:n,n,-1,0)*umn(-np1:nm1,n)
  1392 + z2vec(-n:n)=vwh_coef(-n:n,n,0,0)*umn(-n:n,n)
  1393 + vwh(1,1,nn1-n:nn1+n)=-0.5d0*(a1vec(-n:n)+b1vec(-n:n))
  1394 + vwh(2,1,nn1-n:nn1+n)=-0.5d0*ci*(-a1vec(-n:n)+b1vec(-n:n))
  1395 + vwh(3,1,nn1-n:nn1+n)=-z1vec(-n:n)
  1396 + vwh(1,2,nn1-n:nn1+n)=-0.5d0*ci*(a2vec(-n:n)+b2vec(-n:n))
  1397 + vwh(2,2,nn1-n:nn1+n)=-0.5d0*(a2vec(-n:n)-b2vec(-n:n))
  1398 + vwh(3,2,nn1-n:nn1+n)=-ci*z2vec(-n:n)
  1399 + enddo
  1400 + end subroutine vwhcalc
  1401 +!
  1402 +! svwf calculation for an axial translation
  1403 +!
  1404 +!
  1405 +! original: 15 January 2011
  1406 +! revised: 23 February 2011: multiplied by root 2
  1407 +!
  1408 + subroutine vwhaxialcalc(rpos,ri,nodr,itype,vwh)
  1409 + use numconstants
  1410 + implicit none
  1411 + integer :: nodr,itype,m,n,p,nodrp1,nodrm1,nn1,mn,np1,nm1,mp1,mm1,ndim, &
  1412 + nblkp
  1413 + integer, save :: nodrmax
  1414 + real(8) :: rpos(3),r,ct
  1415 + real(8) pmn(-2:2,0:nodr+1)
  1416 + complex(8) :: ci,vwh(3,2,2,1:nodr),ri,ephi,a,b,a1,b1,z1,a2,b2,z2
  1417 + complex(8) :: umn(-2:2,0:nodr+1), hn(0:nodr+1), ephim(-2:2)
  1418 + data ci,nodrmax/(0.d0,1.d0),0/
  1419 + if(nodr.gt.nodrmax) then
  1420 + nodrmax=nodr
  1421 + call init(nodr+2)
  1422 + endif
  1423 + call cartosphere(rpos,r,ct,ephi)
  1424 + if(r.le.1.d-4) then
  1425 + vwh(:,:,:,1:nodr)=(0.d0,0.d0)
  1426 + if(itype.eq.3) return
  1427 + vwh(1,1,1,1)=.5d0*fnr(2)/fnr(3)
  1428 + vwh(2,1,1,1)=-.5d0*ci*fnr(2)/fnr(3)
  1429 + vwh(1,1,2,1)=-.5d0*fnr(2)/fnr(3)
  1430 + vwh(2,1,2,1)=-.5d0*ci*fnr(2)/fnr(3)
  1431 + return
  1432 + endif
  1433 + nodrp1=nodr+1
  1434 + nodrm1=nodr-1
  1435 + a=ri*r
  1436 + if(itype.eq.1) then
  1437 + call cricbessel(nodrp1,a,hn)
  1438 + else
  1439 + call crichankel(nodrp1,a,hn)
  1440 + endif
  1441 + hn(0:nodrp1)=hn(0:nodrp1)/a
  1442 + call normalizedlegendre(ct,2,nodrp1,pmn)
  1443 + call ephicoef(ephi,2,ephim)
  1444 + umn(-2:2,0:nodrp1)=0.d0
  1445 + umn(0,0)=hn(0)*fnr(2)
  1446 + do n=1,nodrp1
  1447 + p=min(n,2)
  1448 + do m=-p,p
  1449 + umn(m,n)=fnr(2)*pmn(m,n)*ephim(m)*hn(n)
  1450 + enddo
  1451 + enddo
  1452 + vwh(:,:,:,1:nodr)=0.d0
  1453 + do n=1,nodr
  1454 + np1=n+1
  1455 + nm1=n-1
  1456 + m=-1
  1457 + mp1=m+1
  1458 + mm1=m-1
  1459 + a1=vwh_coef(m,n,1,1)*umn(mp1,np1) &
  1460 + +vwh_coef(m,n,1,-1)*umn(mp1,nm1)
  1461 + b1=vwh_coef(m,n,-1,1)*umn(mm1,np1) &
  1462 + +vwh_coef(m,n,-1,-1)*umn(mm1,nm1)
  1463 + z1=vwh_coef(m,n,0,1)*umn(m,np1) &
  1464 + +vwh_coef(m,n,0,-1)*umn(m,nm1)
  1465 + a2=vwh_coef(m,n,1,0)*umn(mp1,n)
  1466 + b2=vwh_coef(m,n,-1,0)*umn(mm1,n)
  1467 + z2=vwh_coef(m,n,0,0)*umn(m,n)
  1468 + vwh(1,1,1,n)=-0.5d0*(a1+b1)
  1469 + vwh(2,1,1,n)=-0.5d0*ci*(-a1+b1)
  1470 + vwh(3,1,1,n)=-z1
  1471 + vwh(1,2,1,n)=-0.5d0*ci*(a2+b2)
  1472 + vwh(2,2,1,n)=-0.5d0*(a2-b2)
  1473 + vwh(3,2,1,n)=-ci*z2
  1474 + m=1
  1475 + mp1=m+1
  1476 + mm1=m-1
  1477 + a1=vwh_coef(m,n,1,1)*umn(mp1,np1) &
  1478 + +vwh_coef(m,n,1,-1)*umn(mp1,nm1)
  1479 + b1=vwh_coef(m,n,-1,1)*umn(mm1,np1) &
  1480 + +vwh_coef(m,n,-1,-1)*umn(mm1,nm1)
  1481 + z1=vwh_coef(m,n,0,1)*umn(m,np1) &
  1482 + +vwh_coef(m,n,0,-1)*umn(m,nm1)
  1483 + a2=vwh_coef(m,n,1,0)*umn(mp1,n)
  1484 + b2=vwh_coef(m,n,-1,0)*umn(mm1,n)
  1485 + z2=vwh_coef(m,n,0,0)*umn(m,n)
  1486 + vwh(1,1,2,n)=-0.5d0*(a1+b1)
  1487 + vwh(2,1,2,n)=-0.5d0*ci*(-a1+b1)
  1488 + vwh(3,1,2,n)=-z1
  1489 + vwh(1,2,2,n)=-0.5d0*ci*(a2+b2)
  1490 + vwh(2,2,2,n)=-0.5d0*(a2-b2)
  1491 + vwh(3,2,2,n)=-ci*z2
  1492 + enddo
  1493 + return
  1494 + end subroutine vwhaxialcalc
  1495 +
  1496 + end module specialfuncs
  1497 +!
  1498 +! module mpidata
  1499 +!
  1500 +!
  1501 +! last revised: 15 January 2011
  1502 +!
  1503 + module mpidata
  1504 + implicit none
  1505 + integer :: group_comm,root_group_comm,base_rank,group_rank,root_group_rank, &
  1506 + base_group,number_groups,proc_per_group,number_proc
  1507 + integer, allocatable :: mpi_sphere_index(:), mpi_sphere_number(:)
  1508 +
  1509 + contains
  1510 +!
  1511 +! allocates the processors into groups
  1512 +!
  1513 +! last revised: 15 January 2011: original
  1514 +! 20 April 2011: fixedorran=0 now looks for 2 groups.
  1515 +! 10 october 2011: option for not storing matrices. If fixorran=0, 2 groups, else
  1516 +! nproc groups
  1517 +! november 2011: near and far field translation differentiation
  1518 +!
  1519 + subroutine mpisetup(nsphere,nodr,rpos,fixorran,maxmbperproc,istore, &
  1520 + nfdistance,fftranpresent,iunit)
  1521 + use mpidefs
  1522 + use intrinsics
  1523 + use specialfuncs
  1524 + implicit none
  1525 + integer :: nsphere,numprocs,ierr,i,iunit,nodr(nsphere),fixorran, &
  1526 + nodrmax,nodrmin,temp_comm,newgroup,j,rank,maxmbperproc, &
  1527 + istore,nfspheres,fftranpresent,ffspheres
  1528 + integer, allocatable :: grouplist1(:),grouplist2(:)
  1529 + real(8) :: memrow(nsphere),memtot,maxmemproc,memperproc
  1530 + real(8) :: fp,sum,rpos(3,*),nfdistance,rij(3),r,avenfspheres,rmax, &
  1531 + nfdistancei,aveffspheres
  1532 + maxmemproc=maxmbperproc*1.d6
  1533 + call ms_mpi(mpi_command='size',mpi_size=numprocs)
  1534 + call ms_mpi(mpi_command='rank',mpi_rank=rank)
  1535 + call ms_mpi(mpi_command='group',mpi_group=base_group)
  1536 + base_rank=rank
  1537 + number_proc=numprocs
  1538 + memrow=0.d0
  1539 + memtot=0.d0
  1540 +!
  1541 +! compute the memory storage requirements
  1542 +!
  1543 + avenfspheres=0.
  1544 + aveffspheres=0.
  1545 + rmax=0.
  1546 + if(1.eq.1) then
  1547 + do i=1,nsphere
  1548 + nfspheres=0
  1549 + do j=1,nsphere
  1550 + rij(:)=rpos(:,i)-rpos(:,j)
  1551 + if(j.ne.i) then
  1552 + if(nfdistance.lt.0.) then
  1553 + nfdistancei=(.5*dble(nodr(i)+nodr(j)))**2.
  1554 + else
  1555 + nfdistancei=nfdistance
  1556 + endif
  1557 + r=sqrt(dot_product(rij,rij))
  1558 + rmax=max(rmax,r)
  1559 + if(r.le.nfdistancei) then
  1560 + nfspheres=nfspheres+1
  1561 + nodrmax=max(nodr(j),nodr(i))
  1562 + nodrmin=min(nodr(j),nodr(i))
  1563 + memrow(i)=memrow(i)+(2*nodrmin+1)*(1+nodrmax*(nodrmax+2))*8.d0
  1564 + memrow(i)=memrow(i)+nodr(i)*nodr(j)*(nodr(j)+3)*16.d0
  1565 + memrow(i)=memrow(i)+(2*nodrmax+1)*16.d0
  1566 + endif
  1567 + if(r.gt.nfdistancei.and.istore.eq.2) then
  1568 + memrow(i)=memrow(i)+2*nodrmax*(nodrmax+2)*16.d0
  1569 + endif
  1570 + endif
  1571 + enddo
  1572 + ffspheres=nsphere-1-nfspheres
  1573 + avenfspheres=avenfspheres+nfspheres
  1574 + aveffspheres=aveffspheres+ffspheres
  1575 + memtot=memtot+memrow(i)
  1576 + enddo
  1577 + if(aveffspheres.eq.0) then
  1578 + fftranpresent=0
  1579 + else
  1580 + fftranpresent=1
  1581 + endif
  1582 + proc_per_group=ceiling(memtot/maxmemproc)
  1583 + proc_per_group=min(proc_per_group,numprocs)
  1584 + proc_per_group=max(proc_per_group,1)
  1585 + do
  1586 + if(mod(numprocs,proc_per_group).eq.0) exit
  1587 + if(proc_per_group.eq.numprocs) exit
  1588 + proc_per_group=proc_per_group+1
  1589 + enddo
  1590 + endif
  1591 + avenfspheres=avenfspheres/dble(nsphere)
  1592 + if(rank.eq.0) then
  1593 + write(iunit,'('' average near field translations per sphere:'', f10.1)') avenfspheres
  1594 + call flush(iunit)
  1595 + endif
  1596 +!
  1597 +! no-store option
  1598 +!
  1599 + if(istore.eq.0) then
  1600 + if(fixorran.eq.0) then
  1601 + proc_per_group=max(floor(dble(numprocs)/2.),1)
  1602 + else
  1603 + proc_per_group=1
  1604 + endif
  1605 + memrow=1.d0
  1606 + memtot=dble(nsphere)
  1607 + else
  1608 +!
  1609 +! only one or two groups for fixed orientation
  1610 +!
  1611 + if(fixorran.eq.0) proc_per_group=max(floor(dble(numprocs)/2.),proc_per_group)
  1612 + endif
  1613 + number_groups=numprocs/proc_per_group
  1614 + if(allocated(mpi_sphere_index)) deallocate(mpi_sphere_index)
  1615 + if(allocated(mpi_sphere_number)) deallocate(mpi_sphere_number)
  1616 + allocate(mpi_sphere_index(0:proc_per_group-1),mpi_sphere_number(0:proc_per_group-1), &
  1617 + grouplist1(proc_per_group),grouplist2(number_groups))
  1618 + memperproc=memtot/dble(proc_per_group)
  1619 +!
  1620 +! associate the spheres with the processors in a group
  1621 +!
  1622 + mpi_sphere_index(0)=0
  1623 + do j=1,proc_per_group-1
  1624 + memtot=0.d0
  1625 + do i=1,nsphere
  1626 + memtot=memtot+memrow(i)
  1627 + if(memtot.gt.dble(j)*memperproc) then
  1628 + mpi_sphere_index(j)=i-1
  1629 + exit
  1630 + endif
  1631 + enddo
  1632 + enddo
  1633 + do i=0,proc_per_group-2
  1634 + mpi_sphere_number(i)=mpi_sphere_index(i+1)-mpi_sphere_index(i)
  1635 + enddo
  1636 + mpi_sphere_number(proc_per_group-1)=nsphere-mpi_sphere_index(proc_per_group-1)
  1637 +!
  1638 +! assign the sphere-based groups
  1639 +!
  1640 + do i=0,number_groups-1
  1641 + do j=0,proc_per_group-1
  1642 + grouplist1(j+1)=i*proc_per_group+j
  1643 + enddo
  1644 + call ms_mpi(mpi_command='incl',mpi_group=base_group,mpi_size=proc_per_group, &
  1645 + mpi_new_group_list=grouplist1,mpi_new_group=newgroup)
  1646 + call ms_mpi(mpi_command='create',mpi_group=newgroup,mpi_new_comm=temp_comm)
  1647 + if(rank.ge.grouplist1(1).and.rank.le.grouplist1(proc_per_group)) then
  1648 + group_comm=temp_comm
  1649 + endif
  1650 + grouplist2(i+1)=i*proc_per_group
  1651 + enddo
  1652 +!
  1653 +! make a group associated with the rank 0 members of the sphere groups
  1654 +!
  1655 + call ms_mpi(mpi_command='incl',mpi_group=base_group,mpi_size=number_groups, &
  1656 + mpi_new_group_list=grouplist2,mpi_new_group=newgroup)
  1657 + call ms_mpi(mpi_command='create',mpi_group=newgroup,mpi_new_comm=temp_comm)
  1658 + group_rank=mod(rank,proc_per_group)
  1659 + root_group_rank=floor(dble(rank)/dble(proc_per_group))
  1660 + if(group_rank.eq.0) root_group_comm=temp_comm
  1661 + if(rank.eq.0) then
  1662 + if(istore.ge.1) then
  1663 + write(iunit,'('' number of processors, number groups, mb mem/processor:'',2i5,f9.3)') &
  1664 + numprocs,number_groups,memperproc*1.d-6
  1665 + if(memperproc.gt.maxmemproc) then
  1666 + write(iunit,'('' warning: set maximum memory/processor is exceeded!!'')')
  1667 + endif
  1668 + else
  1669 + write(iunit,'('' number of processors, number groups:'',2i5)') &
  1670 + numprocs,number_groups
  1671 + endif
  1672 + call flush(iunit)
  1673 + endif
  1674 + deallocate(grouplist1,grouplist2)
  1675 + end subroutine mpisetup
  1676 +
  1677 + end module mpidata
  1678 +
  1679 +!
  1680 +! module spheredata: used to 1) input sphere data, 2) dimension sphere data
  1681 +! arrays, and 3) provide common access to the data in other subroutines.
  1682 +!
  1683 +!
  1684 +! last revised: 15 January 2011
  1685 +!
  1686 +! 30 March 2011: added optical activity
  1687 +!
  1688 + module spheredata
  1689 + use specialfuncs
  1690 + use mpidata
  1691 + implicit none
  1692 + integer, private :: numberspheres,numberiterations,fixedorrandom,numbertheta, &
  1693 + calcnf,nfplane,calctmatrix,runprintunit,calcamn,maxmemperproc, &
  1694 + trackiterations,nfoutdata,normalizesm,storetranmat,niterstep, &
  1695 + fftranpresent
  1696 + real(8), private :: lengthscalefactor,realriscalefactor,imriscalefactor,epsmie, &
  1697 + epstran,epssoln,phideg,thetamindeg,thetamaxdeg,alphadeg, &
  1698 + betadeg,epstcon,nfplanepos,nfplanevert(2,2),deltax,gammadeg,epspw, &
  1699 + cgaussbeam,gaussbeamfocus(3),realchiralfactor,imchiralfactor,nfdistance
  1700 + character(30), private :: positionfile,outputfile,nfoutputfile,tmatrixfile,printfile, &
  1701 + amnfile
  1702 + real(8), private :: xspmax,xvsp
  1703 + real(8), private, allocatable :: rpos(:,:),xsp(:)
  1704 + complex(8), private, allocatable :: ri(:,:)
  1705 + data numberiterations,fixedorrandom,numbertheta/2000,0,181/
  1706 + data calcamn,trackiterations,niterstep/1,1,20/
  1707 + data lengthscalefactor,realriscalefactor,imriscalefactor,epsmie, &
  1708 + epstran,epssoln,phideg,thetamindeg,thetamaxdeg,alphadeg, &
  1709 + betadeg,epstcon/1.d0,1.d0,1.d0,1.d-4,1.d-6,1.d-10,0.d0,0.d0, &
  1710 + 180.d0,0.d0,0.d0,1.d-6/
  1711 + data realchiralfactor,imchiralfactor/0.d0,0.d0/
  1712 + data normalizesm,storetranmat,nfdistance/0,1,-1.d0/
  1713 + data maxmemperproc/1500/
  1714 + data cgaussbeam/0.d0/
  1715 + data gaussbeamfocus/0.d0,0.d0,0.d0/
  1716 + data calcnf,calctmatrix,nfoutdata/0,1,1/
  1717 + data runprintunit/6/
  1718 + data positionfile,outputfile,tmatrixfile,printfile/'at_bottom','test.dat','tmatrix-temp.dat',' '/
  1719 + data nfoutputfile/'nf-temp.dat'/
  1720 + data amnfile/'amn-temp.dat'/
  1721 +
  1722 + contains
  1723 +!
  1724 +! Find the number of data points in input unit iunit, and reposition the unit to the
  1725 +! point after record containing parmid
  1726 +!
  1727 +!
  1728 +! last revised: 15 January 2011
  1729 +!
  1730 + subroutine numberinrecord(iunit,parmid,numrec)
  1731 + implicit none
  1732 + integer :: numrec,iunit
  1733 + character*1 :: a
  1734 + character*35 :: parmid
  1735 + character*10 :: rec
  1736 + numrec=0
  1737 + do
  1738 + read(iunit,"(a)",advance="no",err=100,eor=100) a
  1739 + if(a.ne.' '.and.a.ne.',') then
  1740 +!
  1741 +! start of a number
  1742 +!
  1743 + numrec=numrec+1
  1744 +!
  1745 +! look for the delimeter
  1746 +!
  1747 + do
  1748 + read(iunit,"(a)",advance="no",err=100,eor=100) a
  1749 + if(a.eq.' '.or.a.eq.',') exit
  1750 + enddo
  1751 + endif
  1752 + enddo
  1753 +100 if(parmid.eq.'rewind') then
  1754 + rewind(iunit)
  1755 + else
  1756 + backspace(iunit)
  1757 + backspace(iunit)
  1758 + backspace(iunit)
  1759 + do
  1760 + read(iunit,'(a10)') rec
  1761 + if(rec.eq.parmid(1:10)) exit
  1762 + enddo
  1763 + endif
  1764 + end subroutine numberinrecord
  1765 +!
  1766 +! inputdata: reads parameters from inputfile
  1767 +! reads sphere data from position file
  1768 +!
  1769 +!
  1770 +! original: 15 January 2011
  1771 +! revised: 21 February 2011: fix output file initialization.
  1772 +! 30 March 2011: added optical activity
  1773 +!
  1774 +!
  1775 + subroutine inputdata(inputfile,printdata)
  1776 + integer :: imax,i,j,ierr,iunit,numrec,nsphere,printdata
  1777 + real(8) :: rmax,rtoi,rposmean(3),rireal,riimag,dtemp,betareal,betaimag, &
  1778 + rij,xij(3),rijmax
  1779 + real(8), allocatable :: sdat(:)
  1780 + complex(8) :: ribulk,beta
  1781 + character*35 :: parmid
  1782 + character*30 :: inputfile
  1783 +!
  1784 +! cycle through parameter input operations
  1785 +!
  1786 + open(1,file=inputfile)
  1787 + do
  1788 + read(1,'(a)',end=10) parmid
  1789 + parmid=parmid(:index(parmid,' '))
  1790 + if(parmid.eq.'number_spheres') then
  1791 + read(1,*) numberspheres
  1792 + cycle
  1793 + endif
  1794 + if(parmid.eq.'sphere_position_file') then
  1795 + read(1,'(a)') positionfile
  1796 + positionfile=positionfile(:index(positionfile,' '))
  1797 + cycle
  1798 + endif
  1799 + if(parmid.eq.'output_file') then
  1800 + read(1,'(a)') outputfile
  1801 + outputfile=outputfile(:index(outputfile,' '))
  1802 + cycle
  1803 + endif
  1804 + if(parmid.eq.'run_print_file') then
  1805 + read(1,'(a)') printfile
  1806 + printfile=printfile(:index(printfile,' '))
  1807 + if(printdata.eq.1) then
  1808 + if((printfile.eq.' '.or.printfile.eq.'console')) then
  1809 + printfile=' '
  1810 + runprintunit=6
  1811 + else
  1812 + runprintunit=4
  1813 + open(runprintunit,file=printfile)
  1814 + endif
  1815 + else
  1816 + runprintunit=6
  1817 + endif
  1818 + cycle
  1819 + endif
  1820 + if(parmid.eq.'length_scale_factor') then
  1821 + read(1,*) lengthscalefactor
  1822 + cycle
  1823 + endif
  1824 + if(parmid.eq.'real_ref_index_scale_factor') then
  1825 + read(1,*) realriscalefactor
  1826 + cycle
  1827 + endif
  1828 + if(parmid.eq.'imag_ref_index_scale_factor') then
  1829 + read(1,*) imriscalefactor
  1830 + cycle
  1831 + endif
  1832 + if(parmid.eq.'real_chiral_factor') then
  1833 + read(1,*) realchiralfactor
  1834 + cycle
  1835 + endif
  1836 + if(parmid.eq.'imag_chiral_factor') then
  1837 + read(1,*) imchiralfactor
  1838 + cycle
  1839 + endif
  1840 + if(parmid.eq.'mie_epsilon') then
  1841 + read(1,*) epsmie
  1842 + cycle
  1843 + endif
  1844 + if(parmid.eq.'translation_epsilon') then
  1845 + read(1,*) epstran
  1846 + cycle
  1847 + endif
  1848 + if(parmid.eq.'solution_epsilon') then
  1849 + read(1,*) epssoln
  1850 + cycle
  1851 + endif
  1852 + if(parmid.eq.'max_number_iterations') then
  1853 + read(1,*) numberiterations
  1854 + cycle
  1855 + endif
  1856 + if(parmid.eq.'max_memory_per_processor') then
  1857 + read(1,*) maxmemperproc
  1858 + cycle
  1859 + endif
  1860 + if(parmid.eq.'store_translation_matrix') then
  1861 + read(1,*) storetranmat
  1862 + cycle
  1863 + endif
  1864 + if(parmid.eq.'near_field_distance') then
  1865 + read(1,*) nfdistance
  1866 + cycle
  1867 + endif
  1868 + if(parmid.eq.'iterations_per_correction') then
  1869 + read(1,*) niterstep
  1870 + cycle
  1871 + endif
  1872 + if(parmid.eq.'fixed_or_random_orientation') then
  1873 + read(1,*) fixedorrandom
  1874 + cycle
  1875 + endif
  1876 + if(parmid.eq.'scattering_plane_angle_deg') then
  1877 + read(1,*) phideg
  1878 + cycle
  1879 + endif
  1880 + if(parmid.eq.'min_scattering_angle_deg') then
  1881 + read(1,*) thetamindeg
  1882 + cycle
  1883 + endif
  1884 + if(parmid.eq.'max_scattering_angle_deg') then
  1885 + read(1,*) thetamaxdeg
  1886 + cycle
  1887 + endif
  1888 + if(parmid.eq.'number_scattering_angles') then
  1889 + read(1,*) numbertheta
  1890 + cycle
  1891 + endif
  1892 + if(parmid.eq.'normalize_scattering_matrix') then
  1893 + read(1,*) normalizesm
  1894 + cycle
  1895 + endif
  1896 + if(parmid.eq.'incident_azimuth_angle_deg') then
  1897 + read(1,*) alphadeg
  1898 + cycle
  1899 + endif
  1900 + if(parmid.eq.'incident_polar_angle_deg') then
  1901 + read(1,*) betadeg
  1902 + cycle
  1903 + endif
  1904 + if(parmid.eq.'calculate_scattering_coefficients') then
  1905 + read(1,*) calcamn
  1906 + cycle
  1907 + endif
  1908 + if(parmid.eq.'scattering_coefficient_file') then
  1909 + read(1,'(a)') amnfile
  1910 + if(amnfile.eq.' ') then
  1911 + amnfile='amn-temp.dat'
  1912 + else
  1913 + amnfile=amnfile(:index(amnfile,' '))
  1914 + endif
  1915 + cycle
  1916 + endif
  1917 + if(parmid.eq.'track_iterations') then
  1918 + read(1,*) trackiterations
  1919 + cycle
  1920 + endif
  1921 + if(parmid.eq.'calculate_near_field') then
  1922 + read(1,*) calcnf
  1923 + cycle
  1924 + endif
  1925 + if(parmid.eq.'near_field_plane_coord') then
  1926 + read(1,*) nfplane
  1927 + cycle
  1928 + endif
  1929 + if(parmid.eq.'near_field_plane_position') then
  1930 + read(1,*) nfplanepos
  1931 + cycle
  1932 + endif
  1933 + if(parmid.eq.'near_field_plane_vertices') then
  1934 + read(1,*) nfplanevert
  1935 + cycle
  1936 + endif
  1937 + if(parmid.eq.'spacial_step_size') then
  1938 + read(1,*) deltax
  1939 + cycle
  1940 + endif
  1941 + if(parmid.eq.'polarization_angle_deg') then
  1942 + read(1,*) gammadeg
  1943 + cycle
  1944 + endif
  1945 + if(parmid.eq.'near_field_output_file') then
  1946 + read(1,'(a)') nfoutputfile
  1947 + if(nfoutputfile.eq.' ') then
  1948 + nfoutputfile='nf-temp.dat'
  1949 + else
  1950 + nfoutputfile=nfoutputfile(:index(nfoutputfile,' '))
  1951 + endif
  1952 + cycle
  1953 + endif
  1954 + if(parmid.eq.'near_field_output_data') then
  1955 + read(1,*) nfoutdata
  1956 + cycle
  1957 + endif
  1958 + if(parmid.eq.'plane_wave_epsilon') then
  1959 + read(1,*) epspw
  1960 + cycle
  1961 + endif
  1962 + if(parmid.eq.'gaussian_beam_constant') then
  1963 + read(1,*) cgaussbeam
  1964 + cycle
  1965 + endif
  1966 + if(parmid.eq.'gaussian_beam_focal_point') then
  1967 + read(1,*) gaussbeamfocus
  1968 + cycle
  1969 + endif
  1970 + if(parmid.eq.'t_matrix_convergence_epsilon') then
  1971 + read(1,*) epstcon
  1972 + cycle
  1973 + endif
  1974 + if(parmid.eq.'calculate_t_matrix') then
  1975 + read(1,*) calctmatrix
  1976 + cycle
  1977 + endif
  1978 + if(parmid.eq.'t_matrix_file') then
  1979 + read(1,'(a)') tmatrixfile
  1980 + if(tmatrixfile.eq.' ') then
  1981 + tmatrixfile='tmatrix-temp.dat'
  1982 + else
  1983 + tmatrixfile=tmatrixfile(:index(tmatrixfile,' '))
  1984 + endif
  1985 + cycle
  1986 + endif
  1987 + if(parmid.eq.'sphere_sizes_and_positions') exit
  1988 + if(parmid.eq.'end_of_options') exit
  1989 + write(*,'('' warning: unknown parameter ID:'',a35)') parmid
  1990 + enddo
  1991 +!
  1992 +! end of parameter input options. Input of sphere data follows
  1993 +!
  1994 +10 write(runprintunit,'('' input file is '',a30)') inputfile
  1995 + if(positionfile.ne.'at_bottom'.and.positionfile.ne.' ') then
  1996 + close(1)
  1997 + open(1,file=positionfile)
  1998 + parmid='rewind'
  1999 + endif
  2000 +!
  2001 +! find number of records in position file
  2002 +!
  2003 + call numberinrecord(1,parmid,numrec)
  2004 + if(printdata.eq.1) write(runprintunit,'('' position data has '',i3,'' records'')') numrec
  2005 + nsphere=numberspheres
  2006 + iunit=1
  2007 + allocate(sdat(numrec))
  2008 + allocate(xsp(0:nsphere),rpos(3,0:nsphere),ri(2,0:nsphere),stat=ierr)
  2009 + xvsp=0.d0
  2010 + do i=1,nsphere
  2011 + read(iunit,*,end=20) sdat
  2012 + xsp(i)=sdat(1)*lengthscalefactor
  2013 + rpos(1:3,i)=sdat(2:4)*lengthscalefactor
  2014 + if(numrec.gt.4) then
  2015 + rireal=sdat(5)*realriscalefactor
  2016 + riimag=sdat(6)*imriscalefactor
  2017 + else
  2018 + rireal=realriscalefactor
  2019 + riimag=imriscalefactor
  2020 + endif
  2021 + if(numrec.gt.6) then
  2022 + betareal=sdat(7)*realchiralfactor
  2023 + betaimag=sdat(8)*imchiralfactor
  2024 + else
  2025 + betareal=realchiralfactor
  2026 + betaimag=imchiralfactor
  2027 + endif
  2028 + ribulk=dcmplx(rireal,riimag)
  2029 + beta=dcmplx(betareal,betaimag)
  2030 + if(beta.eq.(0.d0,0.d0)) then
  2031 + ri(1,i)=ribulk
  2032 + ri(2,i)=ribulk
  2033 + else
  2034 + ri(1,i)=ribulk/(1.d0-beta*ribulk)
  2035 + ri(2,i)=ribulk/(1.d0+beta*ribulk)
  2036 + endif
  2037 + xvsp=xvsp+xsp(i)**3.d0
  2038 + enddo
  2039 +20 nsphere=min(nsphere,i-1)
  2040 + close(iunit)
  2041 + deallocate(sdat)
  2042 + if(nsphere.ne.numberspheres.and.printdata.eq.1) then
  2043 + write(runprintunit,'('' warning: insufficient position points in file.'')')
  2044 + write(runprintunit,'('' number of spheres truncated to:'',i5)') nsphere
  2045 + endif
  2046 +!
  2047 +! check for overlapping spheres, and find maximum translation
  2048 +!
  2049 + rijmax=0.
  2050 + do i=1,nsphere
  2051 + do j=i+1,nsphere
  2052 + xij=rpos(:,i)-rpos(:,j)
  2053 + rij=sqrt(dot_product(xij,xij))
  2054 + rijmax=max(rijmax,rij)
  2055 + if(rij/(xsp(i)+xsp(j)).lt..999d0) then
  2056 + write(runprintunit,'('' warning: spheres '',i4,'' and '',i4 '' overlap. '',&
  2057 + & '' scaled distance:'' f8.4)') i,j,rij/(xsp(i)+xsp(j))
  2058 + endif
  2059 + enddo
  2060 + enddo
  2061 + if(rijmax.gt.nfdistance) then
  2062 + fftranpresent=1
  2063 + else
  2064 + fftranpresent=0
  2065 + endif
  2066 + numberspheres=nsphere
  2067 + xvsp=xvsp**(1.d0/3.d0)
  2068 + gaussbeamfocus=gaussbeamfocus*lengthscalefactor
  2069 + if(nsphere.eq.1) then
  2070 + rposmean=rpos(:,1)
  2071 + rpos(:,1)=0.d0
  2072 + xspmax=xsp(1)
  2073 + else
  2074 + rposmean=0.d0
  2075 + do i=1,nsphere
  2076 + rposmean=rposmean+rpos(:,i)
  2077 + enddo
  2078 + rposmean=rposmean/dble(nsphere)
  2079 + rmax=0.d0
  2080 +!
  2081 +! the target origin is defined as the GB focal point.
  2082 +!
  2083 + do i=1,nsphere
  2084 +! rpos(1:3,i)=rpos(1:3,i)-rposmean(1:3)
  2085 + rpos(1:3,i)=rpos(1:3,i)-gaussbeamfocus(1:3)
  2086 + rtoi=dot_product(rpos(:,i),rpos(:,i))
  2087 + if(rtoi.gt.rmax) then
  2088 + rmax=rtoi
  2089 + imax=i
  2090 + endif
  2091 + enddo
  2092 + xspmax=sqrt(rmax)+xsp(imax)
  2093 + endif
  2094 +!
  2095 +! xsp(0) is the circumscribing sphere size parameter
  2096 +!
  2097 + xsp(0)=xspmax
  2098 + ri(1,0)=(1.d0,0.d0)
  2099 + ri(2,0)=(1.d0,0.d0)
  2100 + rpos(:,0)=0.d0
  2101 +!
  2102 +! write run data to run file and output file
  2103 +!
  2104 + if(printdata.eq.1) then
  2105 + call writerundata(runprintunit)
  2106 + call flush(runprintunit)
  2107 + open(1,file=outputfile,status='replace',action='write')
  2108 + call writerundata(1)
  2109 + close(1)
  2110 + endif
  2111 + end subroutine inputdata
  2112 +!
  2113 +! writes run data to output unit iunit
  2114 +!
  2115 +!
  2116 +! last revised: 15 January 2011
  2117 +! 30 March 2011: added optical activity
  2118 +!
  2119 + subroutine writerundata(iunit)
  2120 + implicit none
  2121 + integer :: iunit,i
  2122 + character*1 :: lf
  2123 + if(iunit.ne.1) then
  2124 + lf = ' '
  2125 + else
  2126 + lf = '/'
  2127 + endif
  2128 + write(iunit,'('' number of spheres, volume size parameter:'' '//lf//',i5,e13.5)') &
  2129 + numberspheres,xvsp
  2130 + write(iunit,'('' position file:'' '//lf//',a)') positionfile
  2131 + write(iunit,'('' output file:'' '//lf//',a)') outputfile
  2132 + write(iunit,'('' length, ref. indx. scale factors:'' '//lf//',3f8.3)') lengthscalefactor, &
  2133 + realriscalefactor,imriscalefactor
  2134 + write(iunit,'('' chiral factors:'' '//lf//',2e13.5)') &
  2135 + realchiralfactor,imchiralfactor
  2136 + write(iunit,'('' thetamin, thetamax, num. theta:'' '//lf//',2f9.1,i5)') &
  2137 + thetamindeg,thetamaxdeg,numbertheta
  2138 + write(iunit,'('' epsmie, epssoln, max number iterations:'' '//lf//',2e12.4,i5)') epsmie, &
  2139 + epssoln, numberiterations
  2140 + if(fftranpresent.eq.1) then
  2141 + write(iunit,'('' far field kr, iterations/correction:'' '//lf//',e12.4,i5)') &
  2142 + nfdistance,niterstep
  2143 + else
  2144 + write(iunit,'('' all translations computed exactly'' '//lf//')')
  2145 + endif
  2146 + if(cgaussbeam.ne.0.d0) then
  2147 + write(iunit,'('' gaussian incident beam: 1/width:'' '//lf//',f9.4,)') cgaussbeam
  2148 + write(iunit,'('' beam focal point:'' '//lf//',3f9.3,)') gaussbeamfocus
  2149 + else
  2150 + write(iunit,'('' plane wave incidence'')')
  2151 + endif
  2152 + if(fixedorrandom.eq.0) then
  2153 + write(iunit,'('' fixed orientation calculations'')')
  2154 + write(iunit,'('' scattering plane, incident alpha, beta:'' '//lf//',3f9.2)') &
  2155 + phideg,alphadeg,betadeg
  2156 + write(iunit,'('' common expansion epsilon:'' '//lf//',e12.4)') epstran
  2157 + if(calcamn.eq.0) then
  2158 + write(iunit,'('' scattering coefficients read from file '' '//lf//',a)') amnfile
  2159 + else
  2160 + write(iunit,'('' scattering coefficients calculated, stored in file '' '//lf//',a)') amnfile
  2161 + endif
  2162 + if(calcnf.eq.1) then
  2163 + write(iunit,'('' near field calculated, stored in file '' '//lf//',a)') nfoutputfile
  2164 + write(iunit,'('' near field data output option: '' '//lf//',i4)') nfoutdata
  2165 + write(iunit,'('' near field plane, position: '' '//lf//', i4,f9.3)') nfplane, nfplanepos
  2166 + write(iunit,'('' near field plane vertices: '' '//lf//',4f9.3)') nfplanevert
  2167 + write(iunit,'('' spacial step size:'' '//lf//',f9.4)') deltax
  2168 + write(iunit,'('' polarization angle, deg.:'' '//lf//',f9.2)') gammadeg
  2169 + write(iunit,'('' plane wave epsilon:'' '//lf//',e13.5)') epspw
  2170 + endif
  2171 + else
  2172 + write(iunit,'('' random orientation calculations'')')
  2173 + if(calctmatrix.eq.0) then
  2174 + write(iunit,'('' t matrix read from file '' '//lf//',a)') tmatrixfile
  2175 + elseif(calctmatrix.eq.1) then
  2176 + write(iunit,'('' t matrix calculated, stored in file '' '//lf//',a)') tmatrixfile
  2177 + write(iunit,'('' t matrix convergence epsilon:'' '//lf//',e12.4)') epstcon
  2178 + else
  2179 + write(iunit,'('' t matrix calculated from end of file '' '//lf//',a)') tmatrixfile
  2180 + write(iunit,'('' t matrix convergence epsilon:'' '//lf//',e12.4)') epstcon
  2181 + endif
  2182 + endif
  2183 + end subroutine writerundata
  2184 +!
  2185 +! getspheredata: retrieves sphere data
  2186 +!
  2187 +!
  2188 +! last revised: 15 January 2011
  2189 +! 30 March 2011: added optical activity
  2190 +!
  2191 + subroutine getspheredata(number_spheres, sphere_size_parameters, sphere_positions, &
  2192 + sphere_refractive_indices, volume_size_parameter)
  2193 + implicit none
  2194 + integer, optional :: number_spheres
  2195 + real(8), optional :: sphere_size_parameters(numberspheres), &
  2196 + sphere_positions(3,numberspheres), volume_size_parameter
  2197 + complex(8), optional :: sphere_refractive_indices(2,numberspheres)
  2198 + if (present(number_spheres)) number_spheres=numberspheres
  2199 + if (present(sphere_size_parameters)) sphere_size_parameters(1:numberspheres)=xsp(1:numberspheres)
  2200 + if (present(sphere_positions)) sphere_positions(:,1:numberspheres)=rpos(:,1:numberspheres)
  2201 + if (present(sphere_refractive_indices)) &
  2202 + sphere_refractive_indices(:,1:numberspheres)=ri(:,1:numberspheres)
  2203 + if (present(volume_size_parameter)) volume_size_parameter=xvsp
  2204 + end subroutine getspheredata
  2205 +
  2206 + subroutine getspheredataone(sphere,sphere_size_parameter, sphere_position, &
  2207 + sphere_refractive_index)
  2208 + implicit none
  2209 + integer :: sphere
  2210 + real(8), optional :: sphere_size_parameter,sphere_position(3)
  2211 + complex(8), optional :: sphere_refractive_index(2)
  2212 + if (present(sphere_size_parameter)) sphere_size_parameter=xsp(sphere)
  2213 + if (present(sphere_position)) sphere_position(:)=rpos(:,sphere)
  2214 + if (present(sphere_refractive_index)) &
  2215 + sphere_refractive_index(:)=ri(:,sphere)
  2216 + end subroutine getspheredataone
  2217 +!
  2218 +! setspheredata: sets sphere data
  2219 +!
  2220 + subroutine setspheredata(number_spheres, sphere_size_parameters, sphere_positions, &
  2221 + sphere_refractive_indices, volume_size_parameter)
  2222 + implicit none
  2223 + integer :: i
  2224 + integer, optional :: number_spheres
  2225 + real(8), optional :: sphere_size_parameters(*), &
  2226 + sphere_positions(3,*), volume_size_parameter
  2227 + complex(8), optional :: sphere_refractive_indices(2,*)
  2228 + if (present(number_spheres)) then
  2229 + numberspheres=number_spheres
  2230 + if(allocated(xsp)) deallocate(xsp,rpos,ri)
  2231 + allocate(xsp(0:numberspheres),rpos(3,0:numberspheres),ri(2,0:numberspheres))
  2232 + endif
  2233 + if (present(sphere_size_parameters)) xsp(1:numberspheres) =sphere_size_parameters(1:numberspheres)
  2234 + if (present(sphere_positions)) rpos(:,1:numberspheres) =sphere_positions(:,1:numberspheres)
  2235 + if (present(sphere_refractive_indices)) ri(:,1:numberspheres) =sphere_refractive_indices(:,1:numberspheres)
  2236 + if (present(volume_size_parameter)) xvsp =volume_size_parameter
  2237 + end subroutine setspheredata
  2238 +!
  2239 +! getrunparameters: retrieves run parameters read from input file
  2240 +!
  2241 +!
  2242 +! last revised: 15 January 2011
  2243 +! 30 March 2011: added optical activity
  2244 +!
  2245 + subroutine getrunparameters(number_spheres,sphere_position_file,output_file, &
  2246 + length_scale_factor,real_ref_index_scale_factor, &
  2247 + imag_ref_index_scale_factor,mie_epsilon,translation_epsilon,solution_epsilon, &
  2248 + max_number_iterations,fixed_or_random_orientation,scattering_plane_angle_deg, &
  2249 + min_scattering_angle_deg,max_scattering_angle_deg,number_scattering_angles, &
  2250 + incident_azimuth_angle_deg,incident_polar_angle_deg,calculate_near_field, &
  2251 + near_field_plane_coord,near_field_plane_position,near_field_plane_vertices, &
  2252 + spacial_step_size,polarization_angle_deg,near_field_output_file, &
  2253 + plane_wave_epsilon,t_matrix_convergence_epsilon,gaussian_beam_constant, &
  2254 + gaussian_beam_focal_point,calculate_t_matrix,t_matrix_file,run_print_file, &
  2255 + run_print_unit,calculate_scattering_coefficients,scattering_coefficient_file, &
  2256 + max_memory_per_processor,track_iterations,near_field_output_data, &
  2257 + real_chiral_factor,imag_chiral_factor,normalize_scattering_matrix, &
  2258 + store_translation_matrix,near_field_distance, &
  2259 + iterations_per_correction)
  2260 + implicit none
  2261 + integer, optional :: number_spheres,max_number_iterations,fixed_or_random_orientation, &
  2262 + number_scattering_angles,calculate_near_field,near_field_plane_coord, &
  2263 + calculate_t_matrix,run_print_unit,calculate_scattering_coefficients, &
  2264 + max_memory_per_processor,track_iterations,near_field_output_data, &
  2265 + normalize_scattering_matrix,store_translation_matrix, &
  2266 + iterations_per_correction
  2267 + real(8), optional :: length_scale_factor,real_ref_index_scale_factor, &
  2268 + imag_ref_index_scale_factor,mie_epsilon,translation_epsilon,solution_epsilon, &
  2269 + scattering_plane_angle_deg, &
  2270 + min_scattering_angle_deg,max_scattering_angle_deg, &
  2271 + incident_azimuth_angle_deg,incident_polar_angle_deg,t_matrix_convergence_epsilon, &
  2272 + near_field_plane_position,near_field_plane_vertices(2,2),spacial_step_size, &
  2273 + polarization_angle_deg,plane_wave_epsilon,gaussian_beam_constant, &
  2274 + gaussian_beam_focal_point(3),real_chiral_factor,imag_chiral_factor, &
  2275 + near_field_distance
  2276 + character*30, optional :: sphere_position_file,output_file,near_field_output_file, &
  2277 + t_matrix_file,run_print_file,scattering_coefficient_file
  2278 + if(present(number_spheres)) number_spheres =numberspheres
  2279 + if(present(sphere_position_file)) sphere_position_file =positionfile
  2280 + if(present(output_file)) output_file =outputfile
  2281 + if(present(length_scale_factor)) length_scale_factor =lengthscalefactor
  2282 + if(present(real_ref_index_scale_factor)) real_ref_index_scale_factor =realriscalefactor
  2283 + if(present(imag_ref_index_scale_factor)) imag_ref_index_scale_factor =imriscalefactor
  2284 + if(present(mie_epsilon)) mie_epsilon =epsmie
  2285 + if(present(translation_epsilon)) translation_epsilon =epstran
  2286 + if(present(solution_epsilon)) solution_epsilon =epssoln
  2287 + if(present(max_number_iterations)) max_number_iterations =numberiterations
  2288 + if(present(track_iterations)) track_iterations =trackiterations
  2289 + if(present(max_memory_per_processor)) max_memory_per_processor =maxmemperproc
  2290 + if(present(fixed_or_random_orientation)) fixed_or_random_orientation =fixedorrandom
  2291 + if(present(scattering_plane_angle_deg)) scattering_plane_angle_deg =phideg
  2292 + if(present(min_scattering_angle_deg)) min_scattering_angle_deg =thetamindeg
  2293 + if(present(max_scattering_angle_deg)) max_scattering_angle_deg =thetamaxdeg
  2294 + if(present(number_scattering_angles)) number_scattering_angles =numbertheta
  2295 + if(present(normalize_scattering_matrix)) normalize_scattering_matrix =normalizesm
  2296 + if(present(incident_azimuth_angle_deg)) incident_azimuth_angle_deg =alphadeg
  2297 + if(present(incident_polar_angle_deg)) incident_polar_angle_deg =betadeg
  2298 + if(present(t_matrix_convergence_epsilon)) t_matrix_convergence_epsilon =epstcon
  2299 + if(present(calculate_near_field)) calculate_near_field =calcnf
  2300 + if(present(near_field_plane_coord)) near_field_plane_coord =nfplane
  2301 + if(present(near_field_plane_position)) near_field_plane_position =nfplanepos
  2302 + if(present(near_field_plane_vertices)) near_field_plane_vertices =nfplanevert
  2303 + if(present(spacial_step_size)) spacial_step_size =deltax
  2304 + if(present(polarization_angle_deg)) polarization_angle_deg =gammadeg
  2305 + if(present(near_field_output_file)) near_field_output_file =nfoutputfile
  2306 + if(present(near_field_output_data)) near_field_output_data =nfoutdata
  2307 + if(present(plane_wave_epsilon)) plane_wave_epsilon =epspw
  2308 + if(present(gaussian_beam_constant)) gaussian_beam_constant =cgaussbeam
  2309 + if(present(gaussian_beam_focal_point)) gaussian_beam_focal_point =gaussbeamfocus
  2310 + if(present(t_matrix_file)) t_matrix_file =tmatrixfile
  2311 + if(present(calculate_t_matrix)) calculate_t_matrix =calctmatrix
  2312 + if(present(run_print_file)) run_print_file =printfile
  2313 + if(present(run_print_unit)) run_print_unit =runprintunit
  2314 + if(present(calculate_scattering_coefficients)) calculate_scattering_coefficients =calcamn
  2315 + if(present(scattering_coefficient_file)) scattering_coefficient_file =amnfile
  2316 + if(present(real_chiral_factor)) real_chiral_factor =realchiralfactor
  2317 + if(present(imag_chiral_factor)) imag_chiral_factor =imchiralfactor
  2318 + if(present(store_translation_matrix)) store_translation_matrix =storetranmat
  2319 + if(present(near_field_distance)) near_field_distance =nfdistance
  2320 + if(present(iterations_per_correction)) iterations_per_correction =niterstep
  2321 + end subroutine getrunparameters
  2322 +!
  2323 +! set run parameters: set run parameters
  2324 +!
  2325 +!
  2326 +! last revised: 15 January 2011
  2327 +! 30 March 2011: added optical activity
  2328 +!
  2329 + subroutine setrunparameters(number_spheres,sphere_position_file,output_file, &
  2330 + length_scale_factor,real_ref_index_scale_factor, &
  2331 + imag_ref_index_scale_factor,mie_epsilon,translation_epsilon,solution_epsilon, &
  2332 + max_number_iterations,fixed_or_random_orientation,scattering_plane_angle_deg, &
  2333 + min_scattering_angle_deg,max_scattering_angle_deg,number_scattering_angles, &
  2334 + incident_azimuth_angle_deg,incident_polar_angle_deg,calculate_near_field, &
  2335 + near_field_plane_coord,near_field_plane_position,near_field_plane_vertices, &
  2336 + spacial_step_size,polarization_angle_deg,near_field_output_file, &
  2337 + plane_wave_epsilon,t_matrix_convergence_epsilon,gaussian_beam_constant, &
  2338 + gaussian_beam_focal_point,calculate_t_matrix,t_matrix_file,run_print_file, &
  2339 + run_print_unit,calculate_scattering_coefficients,scattering_coefficient_file, &
  2340 + max_memory_per_processor,track_iterations,near_field_output_data, &
  2341 + real_chiral_factor,imag_chiral_factor,store_translation_matrix, &
  2342 + near_field_distance,iterations_per_correction)
  2343 + implicit none
  2344 + integer, optional :: number_spheres,max_number_iterations,fixed_or_random_orientation, &
  2345 + number_scattering_angles,calculate_near_field,near_field_plane_coord, &
  2346 + calculate_t_matrix,run_print_unit,calculate_scattering_coefficients, &
  2347 + max_memory_per_processor,track_iterations,near_field_output_data, &
  2348 + store_translation_matrix,iterations_per_correction
  2349 + real(8), optional :: length_scale_factor,real_ref_index_scale_factor, &
  2350 + imag_ref_index_scale_factor,mie_epsilon,translation_epsilon,solution_epsilon, &
  2351 + scattering_plane_angle_deg,near_field_distance,&
  2352 + min_scattering_angle_deg,max_scattering_angle_deg, &
  2353 + incident_azimuth_angle_deg,incident_polar_angle_deg,t_matrix_convergence_epsilon, &
  2354 + near_field_plane_position,near_field_plane_vertices(2,2),spacial_step_size, &
  2355 + polarization_angle_deg,plane_wave_epsilon,gaussian_beam_constant, &
  2356 + gaussian_beam_focal_point(3),real_chiral_factor,imag_chiral_factor
  2357 + character*30, optional :: sphere_position_file,output_file,near_field_output_file, &
  2358 + t_matrix_file,run_print_file,scattering_coefficient_file
  2359 +
  2360 + if(present(number_spheres)) numberspheres =number_spheres
  2361 + if(present(sphere_position_file)) positionfile =sphere_position_file
  2362 + if(present(output_file)) outputfile =output_file
  2363 + if(present(length_scale_factor)) lengthscalefactor =length_scale_factor
  2364 + if(present(real_ref_index_scale_factor)) realriscalefactor =real_ref_index_scale_factor
  2365 + if(present(imag_ref_index_scale_factor)) imriscalefactor =imag_ref_index_scale_factor
  2366 + if(present(mie_epsilon)) epsmie =mie_epsilon
  2367 + if(present(translation_epsilon)) epstran =translation_epsilon
  2368 + if(present(solution_epsilon)) epssoln =solution_epsilon
  2369 + if(present(max_number_iterations)) numberiterations =max_number_iterations
  2370 + if(present(track_iterations)) trackiterations =track_iterations
  2371 + if(present(max_memory_per_processor)) maxmemperproc =max_memory_per_processor
  2372 + if(present(fixed_or_random_orientation)) fixedorrandom =fixed_or_random_orientation
  2373 + if(present(scattering_plane_angle_deg)) phideg =scattering_plane_angle_deg
  2374 + if(present(min_scattering_angle_deg)) thetamindeg =min_scattering_angle_deg
  2375 + if(present(max_scattering_angle_deg)) thetamaxdeg =max_scattering_angle_deg
  2376 + if(present(number_scattering_angles)) numbertheta =number_scattering_angles
  2377 + if(present(incident_azimuth_angle_deg)) alphadeg =incident_azimuth_angle_deg
  2378 + if(present(incident_polar_angle_deg)) betadeg =incident_polar_angle_deg
  2379 + if(present(t_matrix_convergence_epsilon)) epstcon =t_matrix_convergence_epsilon
  2380 + if(present(calculate_near_field)) calcnf =calculate_near_field
  2381 + if(present(near_field_plane_coord)) nfplane =near_field_plane_coord
  2382 + if(present(near_field_plane_position)) nfplanepos =near_field_plane_position
  2383 + if(present(near_field_plane_vertices)) nfplanevert =near_field_plane_vertices
  2384 + if(present(spacial_step_size)) deltax =spacial_step_size
  2385 + if(present(polarization_angle_deg)) gammadeg =polarization_angle_deg
  2386 + if(present(near_field_output_file)) nfoutputfile =near_field_output_file
  2387 + if(present(near_field_output_data)) nfoutdata =near_field_output_data
  2388 + if(present(plane_wave_epsilon)) epspw =plane_wave_epsilon
  2389 + if(present(gaussian_beam_constant)) cgaussbeam =gaussian_beam_constant
  2390 + if(present(gaussian_beam_focal_point)) gaussbeamfocus =gaussian_beam_focal_point
  2391 + if(present(t_matrix_file)) tmatrixfile =t_matrix_file
  2392 + if(present(calculate_t_matrix)) calctmatrix =calculate_t_matrix
  2393 + if(present(run_print_file)) printfile =run_print_file
  2394 + if(present(run_print_unit)) runprintunit =run_print_unit
  2395 + if(present(calculate_scattering_coefficients)) calcamn =calculate_scattering_coefficients
  2396 + if(present(scattering_coefficient_file)) amnfile =scattering_coefficient_file
  2397 + if(present(real_chiral_factor)) realchiralfactor =real_chiral_factor
  2398 + if(present(imag_chiral_factor)) imchiralfactor =imag_chiral_factor
  2399 + if(present(store_translation_matrix)) storetranmat =store_translation_matrix
  2400 + if(present(near_field_distance)) nfdistance =near_field_distance
  2401 + if(present(iterations_per_correction)) niterstep =iterations_per_correction
  2402 + end subroutine setrunparameters
  2403 +
  2404 + end module spheredata
  2405 +!
  2406 +! module miecoefdata: used to 1) calculate single sphere mie coefficient values,
  2407 +! 2) store values in an allocated array, 3) provide common access to values, and
  2408 +! 4) perform multiplication of coefficient values with vectors containing VWH scattering
  2409 +! coefficients.
  2410 +!
  2411 +!
  2412 +! last revised: 15 January 2011
  2413 +! 30 March 2011: added optical activity
  2414 +!
  2415 + module miecoefdata
  2416 + implicit none
  2417 + integer, private :: numeqns,maxorder
  2418 + integer, allocatable, private :: nodr(:),nodroffset(:),nblk(:),nblkoffset(:)
  2419 + real(8), allocatable, private :: qextmie(:),qabsmie(:)
  2420 + complex(8), allocatable, private :: anmie(:,:,:),cnmie(:,:,:)
  2421 + interface getmiedata
  2422 + module procedure getmiedataall, getmiedataone
  2423 + end interface getmiedata
  2424 +
  2425 + contains
  2426 +!
  2427 +! calculation of the max order of sphere expansions and storage of mie coefficients
  2428 +!
  2429 +!
  2430 +! last revised: 15 January 2011
  2431 +! 30 March 2011: added optical activity
  2432 +!
  2433 + subroutine miecoefcalc(nsphere,xsp,ri,qeps)
  2434 + implicit none
  2435 + integer :: n,nodrn,nsphere,nodrtot,ierr,nblktot
  2436 + real(8) :: qext,qabs,qsca,qeps,xsp(nsphere)
  2437 + complex(8) :: ri(2,nsphere)
  2438 + complex(8), allocatable :: anp(:,:,:),cnp(:,:,:)
  2439 + if(allocated(nodr)) deallocate(nodr,nodroffset,nblk, &
  2440 + nblkoffset,qextmie,qabsmie)
  2441 + allocate(nodr(nsphere),nodroffset(nsphere+1), &
  2442 + nblk(nsphere),nblkoffset(nsphere+1), &
  2443 + qextmie(nsphere),qabsmie(nsphere),stat=ierr)
  2444 + if(ierr.ne.0) then
  2445 + write(*,'('' bad allocation in nodr: stat:'',i4)') ierr
  2446 + endif
  2447 + nodrtot=0
  2448 + nblktot=0
  2449 + maxorder=0
  2450 +!
  2451 +! calculate the order limits and efficiencies
  2452 +!
  2453 + do n=1,nsphere
  2454 + call mieoa(xsp(n),ri(1,n),nodrn,qeps,qext,qsca)
  2455 + nodroffset(n)=nodrtot
  2456 + nblkoffset(n)=nblktot
  2457 + nodr(n)=nodrn
  2458 + maxorder=max(maxorder,nodrn)
  2459 + nblk(n)=nodrn*(nodrn+2)*2
  2460 + nodrtot=nodrtot+nodrn
  2461 + nblktot=nblktot+nblk(n)
  2462 + qextmie(n)=qext
  2463 + qabsmie(n)=qext-qsca
  2464 + enddo
  2465 + nodroffset(nsphere+1)=nodrtot
  2466 + nblkoffset(nsphere+1)=nblktot
  2467 + numeqns=nblktot
  2468 +!
  2469 +! calculate the mie coefficients, and store in memory
  2470 +!
  2471 + if(allocated(anmie)) deallocate(anmie,cnmie)
  2472 + allocate(anmie(2,2,nodrtot),cnmie(2,2,nodrtot),stat=ierr)
  2473 + if(ierr.ne.0) then
  2474 + write(*,'('' bad allocation in anmie: stat:'',i4)') ierr
  2475 + endif
  2476 + do n=1,nsphere
  2477 + if(abs(ri(1,n)-ri(2,n)).eq.0) then
  2478 + allocate(anp(2,1,nodr(n)),cnp(2,1,nodr(n)))
  2479 + call mieregular(xsp(n),ri(1,n),nodrn,qeps,qext,qsca,anp_mie=anp,cnp_mie=cnp)
  2480 + anmie(1,1,nodroffset(n)+1:nodroffset(n+1))=anp(1,1,1:nodr(n))
  2481 + anmie(2,2,nodroffset(n)+1:nodroffset(n+1))=anp(2,1,1:nodr(n))
  2482 + anmie(1,2,nodroffset(n)+1:nodroffset(n+1))=0.d0
  2483 + anmie(2,1,nodroffset(n)+1:nodroffset(n+1))=0.d0
  2484 + cnmie(1,1,nodroffset(n)+1:nodroffset(n+1))=cnp(1,1,1:nodr(n))
  2485 + cnmie(2,2,nodroffset(n)+1:nodroffset(n+1))=cnp(2,1,1:nodr(n))
  2486 + cnmie(1,2,nodroffset(n)+1:nodroffset(n+1))=0.d0
  2487 + cnmie(2,1,nodroffset(n)+1:nodroffset(n+1))=0.d0
  2488 + deallocate(anp,cnp)
  2489 + else
  2490 + allocate(anp(2,2,nodr(n)),cnp(2,2,nodr(n)))
  2491 + call mieoa(xsp(n),ri(1,n),nodrn,qeps,qext,qsca,anp_mie=anp,cnp_mie=cnp)
  2492 + anmie(1:2,1:2,nodroffset(n)+1:nodroffset(n+1))=anp(1:2,1:2,1:nodr(n))
  2493 + cnmie(1:2,1:2,nodroffset(n)+1:nodroffset(n+1))=cnp(1:2,1:2,1:nodr(n))
  2494 + deallocate(anp,cnp)
  2495 + endif
  2496 + enddo
  2497 + end subroutine miecoefcalc
  2498 +!
  2499 +! retrieve the array of mie data
  2500 +!
  2501 +!
  2502 +! last revised: 15 January 2011
  2503 +! 30 March 2011: added optical activity
  2504 +!
  2505 + subroutine getmiedataall(sphere_order, sphere_block, &
  2506 + sphere_order_offset, sphere_block_offset, sphere_qext, &
  2507 + sphere_qabs, sphere_mie_coefficients, sphere_int_mie_coefficients, &
  2508 + number_equations, max_order)
  2509 + use spheredata
  2510 + implicit none
  2511 + integer, optional :: sphere_order(:), sphere_block(:), sphere_order_offset(:), &
  2512 + sphere_block_offset(:),number_equations, max_order
  2513 + integer :: i,nsphere
  2514 + real(8), optional :: sphere_qext(:), sphere_qabs(:)
  2515 + complex(8), optional :: sphere_mie_coefficients(:,:,:,:), &
  2516 + sphere_int_mie_coefficients(:,:,:,:)
  2517 + call getspheredata(number_spheres=nsphere)
  2518 + if(present(sphere_order)) sphere_order=nodr
  2519 + if(present(sphere_block)) sphere_block=nblk
  2520 + if(present(sphere_order_offset)) sphere_order_offset=nodroffset
  2521 + if(present(sphere_block_offset)) sphere_block_offset=nblkoffset
  2522 + if(present(sphere_qext)) sphere_qext=qextmie
  2523 + if(present(sphere_qabs)) sphere_qabs=qabsmie
  2524 + if(present(number_equations)) number_equations=numeqns
  2525 + if(present(max_order)) max_order=maxorder
  2526 + if(present(sphere_mie_coefficients)) then
  2527 + do i=1,nsphere
  2528 + sphere_mie_coefficients(1:2,1:2,1:nodr(i),i) &
  2529 + =anmie(1:2,1:2,nodroffset(i)+1:nodroffset(i+1))
  2530 + enddo
  2531 + endif
  2532 + if(present(sphere_int_mie_coefficients)) then
  2533 + do i=1,nsphere
  2534 + sphere_int_mie_coefficients(1:2,1:2,1:nodr(i),i) &
  2535 + =cnmie(1:2,1:2,nodroffset(i)+1:nodroffset(i+1))
  2536 + enddo
  2537 + endif
  2538 + end subroutine getmiedataall
  2539 +!
  2540 +! retrieve mie data for a single sphere
  2541 +!
  2542 +!
  2543 +! last revised: 15 January 2011
  2544 +! 30 March 2011: added optical activity
  2545 +!
  2546 + subroutine getmiedataone(which_sphere, sphere_order, sphere_block, &
  2547 + sphere_order_offset, sphere_block_offset, sphere_qext, &
  2548 + sphere_qabs, sphere_mie_coefficients, sphere_int_mie_coefficients, &
  2549 + number_equations, max_order)
  2550 + use spheredata
  2551 + implicit none
  2552 + integer, optional :: sphere_order, sphere_block, sphere_order_offset, &
  2553 + sphere_block_offset, number_equations, max_order
  2554 + integer :: which_sphere
  2555 + integer :: i,nsphere
  2556 + real(8), optional :: sphere_qext, sphere_qabs
  2557 + complex(8), optional :: sphere_mie_coefficients(:,:,:), sphere_int_mie_coefficients(:,:,:)
  2558 + i=which_sphere
  2559 + if(present(sphere_order)) sphere_order=nodr(i)
  2560 + if(present(sphere_block)) sphere_block=nblk(i)
  2561 + if(present(sphere_order_offset)) sphere_order_offset=nodroffset(i)
  2562 + if(present(sphere_block_offset)) sphere_block_offset=nblkoffset(i)
  2563 + if(present(sphere_qext)) sphere_qext=qextmie(i)
  2564 + if(present(sphere_qabs)) sphere_qabs=qabsmie(i)
  2565 + if(present(number_equations)) number_equations=numeqns
  2566 + if(present(max_order)) max_order=maxorder
  2567 + if(present(sphere_mie_coefficients)) &
  2568 + sphere_mie_coefficients(1:2,1:2,1:nodr(i)) &
  2569 + =anmie(1:2,1:2,nodroffset(i)+1:nodroffset(i+1))
  2570 + if(present(sphere_int_mie_coefficients)) &
  2571 + sphere_int_mie_coefficients(1:2,1:2,1:nodr(i)) &
  2572 + =cnmie(1:2,1:2,nodroffset(i)+1:nodroffset(i+1))
  2573 + end subroutine getmiedataone
  2574 +!
  2575 +! retrieve mie coefficients for sphere n
  2576 +! 30 March 2011: added optical activity
  2577 +!
  2578 + function miecoef(n)
  2579 + implicit none
  2580 + integer :: n
  2581 + complex(8), dimension(2,2,nodr(n)) :: miecoef
  2582 + miecoef=anmie(1:2,1:2,nodroffset(n)+1:nodroffset(n+1))
  2583 + end function miecoef
  2584 +
  2585 + function internalmiecoef(n)
  2586 + implicit none
  2587 + integer :: n
  2588 + complex(8), dimension(2,2,nodr(n)) :: internalmiecoef
  2589 + internalmiecoef=cnmie(1:2,1:2,nodroffset(n)+1:nodroffset(n+1))
  2590 + end function internalmiecoef
  2591 +!
  2592 +! multiples the solution vector cx by mie coefficients and returns in y
  2593 +! i1: starting sphere, i2: ending sphere
  2594 +!
  2595 +!
  2596 +! last revised: 15 January 2011
  2597 +! 30 March 2011: added optical activity
  2598 +!
  2599 + subroutine miecoeffmult(i1,i2,neqns,cx,cy)
  2600 + implicit none
  2601 + integer :: i1,i2,neqns,i,n,p,nodrvec(3),nodri,nblki,noffi,icon,q
  2602 + complex(8) :: cx(neqns),cy(neqns)
  2603 + complex(8), allocatable :: cxt(:,:,:),an1(:,:,:),cxtt(:,:,:)
  2604 +
  2605 + do i=i1,i2
  2606 + nodri=nodr(i)
  2607 + nblki=nblk(i)
  2608 + noffi=nblkoffset(i)
  2609 + allocate(cxt(0:nodri+1,nodri,2),cxtt(0:nodri+1,nodri,2),an1(2,2,nodri))
  2610 + cxt=reshape(cx(noffi+1:noffi+nblki),(/nodri+2,nodri,2/))
  2611 + cxtt=0.d0
  2612 + an1=miecoef(i)
  2613 + do n=1,nodri
  2614 + do p=1,2
  2615 + cxtt(n+1,n:1:-1,p)=an1(p,1,n)*cxt(n+1,n:1:-1,1)+an1(p,2,n)*cxt(n+1,n:1:-1,2)
  2616 + cxtt(0:n,n,p)=an1(p,1,n)*cxt(0:n,n,1)+an1(p,2,n)*cxt(0:n,n,2)
  2617 + enddo
  2618 + enddo
  2619 + cy(noffi+1:noffi+nblki)=reshape(cxtt(0:nodri+1,1:nodri,1:2),(/nblki/))
  2620 + deallocate(cxt,cxtt,an1)
  2621 + enddo
  2622 + end subroutine miecoeffmult
  2623 +
  2624 + subroutine internalmiecoeffmult(i1,i2,neqns,cx,cy)
  2625 + implicit none
  2626 + integer :: i1,i2,neqns,i,n,p,nodrvec(3),nodri,nblki,noffi,icon,q
  2627 + complex(8) :: cx(neqns),cy(neqns)
  2628 + complex(8), allocatable :: cxt(:,:,:),an1(:,:,:),cxtt(:,:,:)
  2629 +
  2630 + do i=i1,i2
  2631 + nodri=nodr(i)
  2632 + nblki=nblk(i)
  2633 + noffi=nblkoffset(i)
  2634 + allocate(cxt(0:nodri+1,nodri,2),cxtt(0:nodri+1,nodri,2),an1(2,2,nodri))
  2635 + cxt=reshape(cx(noffi+1:noffi+nblki),(/nodri+2,nodri,2/))
  2636 + cxtt=0.d0
  2637 + an1=internalmiecoef(n)
  2638 + do n=1,nodri
  2639 + do p=1,2
  2640 + cxtt(n+1,n:1:-1,p)=an1(p,1,n)*cxt(n+1,n:1:-1,1)+an1(p,2,n)*cxt(n+1,n:1:-1,2)
  2641 + cxtt(0:n,n,p)=an1(p,1,n)*cxt(0:n,n,1)+an1(p,2,n)*cxt(0:n,n,2)
  2642 + enddo
  2643 + enddo
  2644 + cy(noffi+1:noffi+nblki)=reshape(cxtt(0:nodri+1,1:nodri,1:2),(/nblki/))
  2645 + deallocate(cxt,cxtt,an1)
  2646 + enddo
  2647 + end subroutine internalmiecoeffmult
  2648 +!
  2649 +! single-sphere lorenz/mie coefficients
  2650 +!
  2651 +!
  2652 +! last revised: 15 January 2011
  2653 +!
  2654 + subroutine mieregular(x,ri,nstop,qeps,qext,qsca,anp_mie,cnp_mie)
  2655 + use specialfuncs
  2656 + implicit none
  2657 + integer :: nstop,n,iancalc
  2658 + real(8) :: x,qeps,qext,qsca,prn,prp,qext1,err
  2659 + complex(8), optional :: anp_mie(2,*), cnp_mie(2,*)
  2660 + complex(8) :: ri,y,pcp,xip,da,db,na,nb,an1,an2,cn1,cn2
  2661 + complex(8), allocatable :: pc(:),xi(:)
  2662 +!
  2663 +! modified LM criterion
  2664 +!
  2665 + if(qeps.gt.0.) nstop=nint(x+4.*x**(1./3.))+15
  2666 +!
  2667 +! user-set order limit
  2668 +!
  2669 + if(qeps.lt.0) nstop=-qeps
  2670 +!
  2671 +! basic calculations follow
  2672 +!
  2673 + allocate(pc(0:nstop),xi(0:nstop))
  2674 + y=x*ri
  2675 + call cricbessel(nstop,y,pc)
  2676 + call richankel(nstop,x,xi)
  2677 + qsca=0.0
  2678 + qext=0.0
  2679 + do n=1,nstop
  2680 + prn=dble(xi(n))
  2681 + pcp=pc(n-1)-n*pc(n)/y
  2682 + xip=xi(n-1)-n*xi(n)/x
  2683 + prp=dble(xip)
  2684 + da=ri*xip*pc(n)-xi(n)*pcp
  2685 + db=ri*xi(n)*pcp-xip*pc(n)
  2686 + na=ri*prp*pc(n)-prn*pcp
  2687 + nb=ri*prn*pcp-prp*pc(n)
  2688 + an1=-na/da
  2689 + an2=-nb/db
  2690 + cn1=-dcmplx(0.d0,1.d0)*ri/na
  2691 + cn2=dcmplx(0.d0,1.d0)*ri/nb
  2692 + if(present(anp_mie)) then
  2693 + anp_mie(1,n)=an1
  2694 + anp_mie(2,n)=an2
  2695 + endif
  2696 + if(present(cnp_mie)) then
  2697 + cnp_mie(1,n)=cn1
  2698 + cnp_mie(2,n)=cn2
  2699 + endif
  2700 + qsca=qsca+(n+n+1)*(cdabs(an1)*cdabs(an1) &
  2701 + +cdabs(an2)*cdabs(an2))
  2702 + qext1=-(n+n+1)*dble(an1+an2)
  2703 + qext=qext+qext1
  2704 + err=abs(qext1)/abs(qext)
  2705 + if(err.lt.qeps.or.n.eq.nstop) exit
  2706 + enddo
  2707 + nstop=n
  2708 + qsca=2./x/x*qsca
  2709 + qext=2./x/x*qext
  2710 + deallocate(pc,xi)
  2711 + end subroutine mieregular
  2712 +!
  2713 +! optically active lorenz/mie coefficients
  2714 +! 30 March 2011
  2715 +!
  2716 + subroutine mieoa(x,ri,nstop,qeps,qext,qsca,anp_mie,cnp_mie)
  2717 + use specialfuncs
  2718 + implicit none
  2719 + integer :: nstop
  2720 + real(8) :: x,qeps,qext,qsca,fn1,err
  2721 + complex(8) :: ri(2)
  2722 + complex(8), optional :: anp_mie(2,2,*),cnp_mie(2,2,*)
  2723 + integer :: n,i,p,q
  2724 + real(8) :: psi,psip,qext1
  2725 + complex (8) :: xri(2),xip,psicp,psic,wn(2),vn(2),an(2),bn(2), &
  2726 + den,xi,anct(2,2),cnct(2,2),ri0,ci
  2727 + complex(8), allocatable :: psicn(:,:),xin(:)
  2728 + data ci/(0.d0,1.d0)/
  2729 +
  2730 + ri0=2.d0/(1.d0/ri(1)+1.d0/ri(2))
  2731 + if(qeps.ge.0.) then
  2732 + nstop=nint(x+4.*x**(1./3.))+5.
  2733 + else
  2734 + nstop=-qeps
  2735 + endif
  2736 + allocate(psicn(0:nstop+1,2),xin(0:nstop+1))
  2737 + do i=1,2
  2738 + xri(i)=x*ri(i)
  2739 + call cricbessel(nstop+1,xri(i),psicn(0,i))
  2740 + enddo
  2741 + call richankel(nstop+1,x,xin)
  2742 + qsca=0.0
  2743 + qext=0.0
  2744 + do n=1,nstop
  2745 + do i=1,2
  2746 + psic=psicn(n,i)
  2747 + psicp=psicn(n-1,i)-dble(n)*psic/xri(i)
  2748 + xi=xin(n)
  2749 + xip=xin(n-1)-dble(n)*xi/x
  2750 + psi=dble(xi)
  2751 + psip=dble(xip)
  2752 + wn(i)=ri0*psic*xip-xi*psicp
  2753 + vn(i)=psic*xip-ri0*xi*psicp
  2754 + an(i)=ri0*psic*psip-psi*psicp
  2755 + bn(i)=psic*psip-ri0*psi*psicp
  2756 + enddo
  2757 + den=wn(1)*vn(2)+wn(2)*vn(1)
  2758 + anct(1,1)=-(vn(1)*an(2)+vn(2)*an(1))/den
  2759 + anct(2,2)=-(wn(1)*bn(2)+wn(2)*bn(1))/den
  2760 + anct(1,2)=(wn(1)*an(2)-wn(2)*an(1))/den
  2761 + anct(2,1)=anct(1,2)
  2762 + den=an(1)*bn(2)+an(2)*bn(1)
  2763 + cnct(1,1)=-ci*ri(1)*bn(2)/den
  2764 + cnct(1,2)=-ci*ri(1)*an(2)/den
  2765 + cnct(2,1)=ri(2)*ri0*bn(1)/den
  2766 + cnct(2,2)=-ri(2)*ri0*an(1)/den
  2767 + if(present(anp_mie)) then
  2768 + do p=1,2
  2769 + do q=1,2
  2770 + anp_mie(p,q,n)=anct(p,q)
  2771 + cnp_mie(p,q,n)=cnct(p,q)
  2772 + enddo
  2773 + enddo
  2774 + endif
  2775 + qext1=0.d0
  2776 + fn1=n+n+1
  2777 + do p=1,2
  2778 + do q=1,2
  2779 + qsca=qsca+fn1*cdabs(anct(p,q))*cdabs(anct(p,q))
  2780 + enddo
  2781 + qext1=qext1-fn1*dble(anct(p,p))
  2782 + enddo
  2783 + qext=qext+qext1
  2784 + err=abs(qext1)/abs(qext)
  2785 + if(err.lt.qeps.or.n.eq.nstop) exit
  2786 + enddo
  2787 + nstop=min(n,nstop)
  2788 + qsca=2./x/x*qsca
  2789 + qext=2./x/x*qext
  2790 + return
  2791 + end subroutine mieoa
  2792 +
  2793 + end module miecoefdata
  2794 +!
  2795 +! module translation contains subroutines for VSWF translation and rotation
  2796 +!
  2797 +!
  2798 +! last revised: 15 January 2011
  2799 +!
  2800 + module translation
  2801 + implicit none
  2802 + integer, private :: stored_max_order,store_tran_mat
  2803 + integer, allocatable, private :: nsizerot(:,:),nsizetran(:,:),nsizeephi(:,:), &
  2804 + noffrot(:,:),nofftran(:,:),noffephi(:,:)
  2805 + real(8), private :: near_field_distance
  2806 + real(8), allocatable, private :: sphere_position(:,:)
  2807 + real(8), target, allocatable, private :: rotmatstore(:)
  2808 + complex(8), target, allocatable, private :: tranmatstore(:), ephimatstore(:)
  2809 + complex(8), allocatable, private :: rvec_temp(:,:),tvec_temp(:,:),c_temp(:,:,:), &
  2810 + ct_temp(:,:,:),rvec2_temp(:,:),tvec2_temp(:,:),c2_temp(:,:,:), &
  2811 + ct2_temp(:,:,:)
  2812 +
  2813 + contains
  2814 +!
  2815 +! rotation of expansion coefficients amn by euler angles alpha,beta,gamma
  2816 +! idir=1: forward rotation, idir=-1, reverse rotation.
  2817 +!
  2818 +!
  2819 +! last revised: 15 January 2011
  2820 +!
  2821 + subroutine rotvec(alpha,beta,gamma,nmax,mmax,amn,idir)
  2822 + use numconstants
  2823 + use specialfuncs
  2824 + implicit none
  2825 + integer :: nmax,mmax,idir,k,n,m,in,kmax,kn,ka,na,p,im,m1
  2826 + real(8) :: dc(-nmax-1:nmax+1,-nmax-1:nmax+1),dk0(-nmax-1:nmax+1), &
  2827 + dk01(-nmax-1:nmax+1),sbe,cbe,sbe2,cbe2,sben,dkt, &
  2828 + fmn,dkm0,dkm1,alpha,beta,gamma
  2829 + complex(8) :: ealpha,amn(0:nmax+1,nmax,2),ealpham(-nmax:nmax), &
  2830 + amnt(2,-nmax:nmax),a,b,ci,egamma,egammam(-nmax:nmax)
  2831 + data ci/(0.d0,1.d0)/
  2832 + call init(nmax)
  2833 + dc=0.d0
  2834 + dk01=0.d0
  2835 + dk0=0.d0
  2836 + ealpha=cdexp(ci*alpha)
  2837 + egamma=cdexp(ci*gamma)
  2838 + cbe=cos(beta)
  2839 + sbe=sqrt((1.d0+cbe)*(1.d0-cbe))
  2840 + cbe2=.5d0*(1.d0+cbe)
  2841 + sbe2=.5d0*(1.d0-cbe)
  2842 + call ephicoef(ealpha,nmax,ealpham)
  2843 + call ephicoef(egamma,nmax,egammam)
  2844 + in=1
  2845 + dk0(0)=1.d0
  2846 + sben=1.d0
  2847 + dk01(0)=0.d0
  2848 + do n=1,nmax
  2849 + kmax=min(n,mmax)
  2850 + do k=-kmax,kmax
  2851 + if(k.le.-1) then
  2852 + ka=n+1
  2853 + na=-k
  2854 + else
  2855 + ka=k
  2856 + na=n
  2857 + endif
  2858 + if(idir.eq.1) then
  2859 + amnt(1,k)=amn(ka,na,1)*ealpham(k)
  2860 + amnt(2,k)=amn(ka,na,2)*ealpham(k)
  2861 + else
  2862 + amnt(1,-k)=amn(ka,na,1)*egammam(k)
  2863 + amnt(2,-k)=amn(ka,na,2)*egammam(k)
  2864 + endif
  2865 + enddo
  2866 + in=-in
  2867 + sben=sben*sbe/2.d0
  2868 + dk0(n)=in*sben*bcof(n,n)
  2869 + dk0(-n)=in*dk0(n)
  2870 + dk01(n)=0.d0
  2871 + dk01(-n)=0.d0
  2872 + dc(0,n)=dk0(n)
  2873 + dc(0,-n)=dk0(-n)
  2874 + do k=-n+1,n-1
  2875 + dkt=dk01(k)
  2876 + dk01(k)=dk0(k)
  2877 + dk0(k)=(cbe*(n+n-1)*dk01(k)-fnr(n-k-1)*fnr(n+k-1)*dkt) &
  2878 + /(fnr(n+k)*fnr(n-k))
  2879 + dc(0,k)=dk0(k)
  2880 + enddo
  2881 + im=1
  2882 + do m=1,kmax
  2883 + im=-im
  2884 + fmn=1./fnr(n-m+1)/fnr(n+m)
  2885 + m1=m-1
  2886 + dkm0=0.
  2887 + do k=-n,n
  2888 + dkm1=dkm0
  2889 + dkm0=dc(m1,k)
  2890 + dc(m,k)=(fnr(n+k)*fnr(n-k+1)*cbe2*dkm1 &
  2891 + -fnr(n-k)*fnr(n+k+1)*sbe2*dc(m1,k+1) &
  2892 + -k*sbe*dc(m1,k))*fmn
  2893 + dc(-m,-k)=dc(m,k)*(-1)**(k)*im
  2894 + enddo
  2895 + enddo
  2896 + do m=-n,n
  2897 + if(m.le.-1) then
  2898 + ka=n+1
  2899 + na=-m
  2900 + else
  2901 + ka=m
  2902 + na=n
  2903 + endif
  2904 + a=0.
  2905 + b=0.
  2906 + do k=-kmax,kmax
  2907 + a=a+dc(-k,-m)*amnt(1,k)
  2908 + b=b+dc(-k,-m)*amnt(2,k)
  2909 + enddo
  2910 + if(idir.eq.1) then
  2911 + amn(ka,na,1)=a*egammam(m)
  2912 + amn(ka,na,2)=b*egammam(m)
  2913 + else
  2914 + amn(ka,na,1)=a*ealpham(m)
  2915 + amn(ka,na,2)=b*ealpham(m)
  2916 + endif
  2917 + enddo
  2918 + enddo
  2919 + end subroutine rotvec
  2920 +!
  2921 +! sets up the stored translation matrices for mpi
  2922 +!
  2923 +!
  2924 +! last revised: 15 January 2011
  2925 +! november 2011: added near and far field translation
  2926 +!
  2927 + subroutine mpirottranmtrxsetup(nsphere,nodr,rpos,ri,istore,nfdistance,&
  2928 + runprintunit)
  2929 + use mpidefs
  2930 + use mpidata
  2931 + use intrinsics
  2932 + use numconstants
  2933 + use specialfuncs
  2934 + implicit none
  2935 + integer :: nsphere,nodr(nsphere),i,j,nodrmax,nodrmin,n,ntotrot,ntottran,ntotephi, &
  2936 + ierr,n1,n2,nt,rank,nsrank,runprintunit,isendok,tag,sendrank,numprocs,brank, &
  2937 + nsend,istore
  2938 + real(8) :: rpos(3,nsphere),xij(3),r,ct,memused(1),memusedmax(1),memusedmin(1), &
  2939 + nfdistance,nfdistancei
  2940 + real(8), allocatable :: rotmat(:,:)
  2941 + complex(8) :: ri,ephi
  2942 + complex(8), allocatable :: tranmat(:,:,:),ephimat(:),pivec(:,:,:)
  2943 + data isendok,tag/0,1/
  2944 + numprocs=proc_per_group
  2945 + rank=group_rank
  2946 + brank=base_rank
  2947 + nsrank=mpi_sphere_number(rank)
  2948 + nodrmax=maxval(nodr)
  2949 + call init(nodrmax)
  2950 + store_tran_mat=istore
  2951 + near_field_distance=nfdistance
  2952 + if(allocated(sphere_position)) deallocate(sphere_position)
  2953 + allocate(sphere_position(3,nsphere))
  2954 + sphere_position=rpos
  2955 + if(istore.eq.0) then
  2956 + return
  2957 + endif
  2958 + if(allocated(nsizerot)) deallocate(nsizerot,nsizetran,nsizeephi,noffrot,nofftran,noffephi)
  2959 + allocate(nsizerot(nsphere,nsphere),nsizetran(nsphere,nsphere),nsizeephi(nsphere,nsphere), &
  2960 + noffrot(nsphere,nsphere),nofftran(nsphere,nsphere),noffephi(nsphere,nsphere))
  2961 + if(allocated(rvec_temp)) deallocate(rvec_temp,tvec_temp,c_temp,ct_temp, &
  2962 + rvec2_temp,tvec2_temp,c2_temp,ct2_temp)
  2963 + allocate(rvec_temp(-nodrmax:nodrmax,2),tvec_temp(nodrmax,2), &
  2964 + c_temp(-nodrmax:nodrmax,nodrmax,2),ct_temp(nodrmax,2,2), &
  2965 + rvec2_temp(-nodrmax:nodrmax,2),tvec2_temp(nodrmax,2), &
  2966 + c2_temp(-nodrmax:nodrmax,nodrmax,2),ct2_temp(nodrmax,2,2))
  2967 + stored_max_order=nodrmax
  2968 +!
  2969 +! determine the memory requirements
  2970 +!
  2971 + ntotrot=0
  2972 + ntottran=0
  2973 + ntotephi=0
  2974 + do i=mpi_sphere_index(rank)+1,mpi_sphere_index(rank)+nsrank
  2975 + do j=1,nsphere
  2976 + xij(:)=rpos(:,i)-rpos(:,j)
  2977 + if(j.ne.i) then
  2978 + if(nfdistance.lt.0.) then
  2979 + nfdistancei=(.5*dble(nodr(i)+nodr(j)))**2.
  2980 + else
  2981 + nfdistancei=nfdistance
  2982 + endif
  2983 + r=sqrt(dot_product(xij,xij))
  2984 + if(r.le.nfdistancei) then
  2985 + nodrmax=max(nodr(j),nodr(i))
  2986 + nodrmin=min(nodr(j),nodr(i))
  2987 + noffrot(i,j)=ntotrot
  2988 + nofftran(i,j)=ntottran
  2989 + noffephi(i,j)=ntotephi
  2990 + nsizerot(i,j)=(2*nodrmin+1)*(1+nodrmax*(nodrmax+2))
  2991 + nsizetran(i,j)=nodr(i)*nodr(j)*(nodr(j)+3)
  2992 + nsizeephi(i,j)=2*nodrmax+1
  2993 + ntotrot=ntotrot+nsizerot(i,j)
  2994 + ntottran=ntottran+nsizetran(i,j)
  2995 + ntotephi=ntotephi+nsizeephi(i,j)
  2996 + endif
  2997 + if(r.gt.nfdistancei.and.istore.eq.2) then
  2998 + nodrmax=max(nodr(j),nodr(i))
  2999 + nofftran(i,j)=ntottran
  3000 + nsizetran(i,j)=2*nodrmax*(nodrmax+2)
  3001 + ntottran=ntottran+nsizetran(i,j)
  3002 + endif
  3003 + endif
  3004 + enddo
  3005 + enddo
  3006 + memused(1)=dble(8*ntotrot+16*(ntottran+ntotephi))*1.d-6
  3007 + nsend=1
  3008 + call ms_mpi(mpi_command='reduce',mpi_send_buf_dp=memused,mpi_recv_buf_dp=memusedmax,&
  3009 + mpi_number=1,mpi_rank=0,mpi_operation=ms_mpi_max)
  3010 + call ms_mpi(mpi_command='reduce',mpi_send_buf_dp=memused,mpi_recv_buf_dp=memusedmin,&
  3011 + mpi_number=1,mpi_rank=0,mpi_operation=ms_mpi_min)
  3012 + call ms_mpi(mpi_command='barrier')
  3013 + if(brank.eq.0) then
  3014 + write(runprintunit,'('' maximum translation matrix storage:'',f9.4,'' MB'')') memusedmax
  3015 + write(runprintunit,'('' minimum translation matrix storage:'',f9.4,'' MB'')') memusedmin
  3016 + call flush(runprintunit)
  3017 + endif
  3018 +!
  3019 +! calculate the matrices and store in memory
  3020 +!
  3021 + if(allocated(rotmatstore)) deallocate(rotmatstore,tranmatstore,ephimatstore)
  3022 + allocate(rotmatstore(ntotrot),stat=ierr)
  3023 + allocate(tranmatstore(ntottran),stat=ierr)
  3024 + allocate(ephimatstore(ntotephi),stat=ierr)
  3025 + do i=mpi_sphere_index(rank)+1,mpi_sphere_index(rank)+nsrank
  3026 + do j=1,nsphere
  3027 + if(j.ne.i) then
  3028 + nodrmax=max(nodr(j),nodr(i))
  3029 + nodrmin=min(nodr(j),nodr(i))
  3030 + xij=rpos(:,i)-rpos(:,j)
  3031 + call cartosphere(xij,r,ct,ephi)
  3032 + if(nfdistance.lt.0.) then
  3033 + nfdistancei=(.5*dble(nodr(i)+nodr(j)))**2.
  3034 + else
  3035 + nfdistancei=nfdistance
  3036 + endif
  3037 + if(r.le.nfdistancei) then
  3038 +!
  3039 +! rotation matrix
  3040 +!
  3041 + n1=noffrot(i,j)+1
  3042 + nt=nsizerot(i,j)
  3043 + n2=n1+nt-1
  3044 + allocate(rotmat(-nodrmin:nodrmin,0:nodrmax*(nodrmax+2)))
  3045 + call rotcoef(ct,nodrmin,nodrmax,rotmat)
  3046 + rotmatstore(n1:n2)=reshape(rotmat,(/nt/))
  3047 + deallocate(rotmat)
  3048 +!
  3049 +! axial translation matrix
  3050 +!
  3051 + n1=nofftran(i,j)+1
  3052 + nt=nsizetran(i,j)
  3053 + n2=n1+nt-1
  3054 + allocate(tranmat(nodr(i),nodr(j)*(nodr(j)+3)/2,2))
  3055 + call axialtrancoef(3,r,ri,nodr(i),nodr(j),tranmat)
  3056 + tranmatstore(n1:n2)=reshape(tranmat,(/nt/))
  3057 + deallocate(tranmat)
  3058 +!
  3059 +! ephi matrix
  3060 +!
  3061 + n1=noffephi(i,j)+1
  3062 + nt=nsizeephi(i,j)
  3063 + n2=n1+nt-1
  3064 + allocate(ephimat(-nodrmax:nodrmax))
  3065 + call ephicoef(ephi,nodrmax,ephimat)
  3066 + ephimatstore(n1:n2)=ephimat(-nodrmax:nodrmax)
  3067 + deallocate(ephimat)
  3068 +!
  3069 +! ff translation matrix storage
  3070 +!
  3071 + elseif(istore.eq.2) then
  3072 + n1=nofftran(i,j)+1
  3073 + nt=nsizetran(i,j)
  3074 + n2=n1+nt-1
  3075 + nodrmax=max(nodr(j),nodr(i))
  3076 + allocate(pivec(0:nodrmax+1,nodrmax,2))
  3077 + call pifunc(ct,ephi,nodrmax,nodrmax,pivec)
  3078 + tranmatstore(n1:n2)=reshape(pivec,(/nt/))
  3079 + deallocate(pivec)
  3080 + endif
  3081 + endif
  3082 + enddo
  3083 + enddo
  3084 + end subroutine mpirottranmtrxsetup
  3085 +!
  3086 +! clear the stored translation matrices
  3087 +!
  3088 +!
  3089 +! last revised: 15 January 2011
  3090 +!
  3091 + subroutine rottranmtrxclear()
  3092 + implicit none
  3093 + if(allocated(rotmatstore)) deallocate(rotmatstore,tranmatstore,ephimatstore)
  3094 + if(allocated(sphere_position)) deallocate(sphere_position)
  3095 + end subroutine rottranmtrxclear
  3096 +!
  3097 +! translation coefficient vector cx by xij in medium with ri by rotation-translation
  3098 +! itype: 1 or 3
  3099 +! icalc: =1, calculate matrices; = 0, use stored matrix
  3100 +! idir: =1, translation of xij, =-1, -xij (reverse)
  3101 +! itran=1, A(i-j) a(j), = -1, a(j) A(i-j)
  3102 +!
  3103 +!
  3104 +! last revised: 15 January 2011
  3105 +!
  3106 + subroutine rottran(cx,cy,xij,ri,nodrx,nodry,itype,icalc,idir,itran)
  3107 + use numconstants
  3108 + use specialfuncs
  3109 + implicit none
  3110 + integer :: nodrx,nodry,itype,icalc,idir,itran,nmax,nmin,n,m,p,nblk
  3111 + real(8) :: xij(3),r,ct
  3112 + complex(8) :: ri,ephi,cx(0:nodrx+1,nodrx,2),cy(0:nodry+1,nodry,2)
  3113 + real(8), allocatable, save :: rotmat(:,:)
  3114 + complex(8), allocatable, save :: ephimat(:), tranmat(:,:,:)
  3115 + if(icalc.eq.1) then
  3116 + nmax=max(nodrx,nodry)
  3117 + nmin=min(nodrx,nodry)
  3118 + call cartosphere(xij,r,ct,ephi)
  3119 + if(r.lt.1.d-4) then
  3120 + do p=1,2
  3121 + do n=1,nmin
  3122 + do m=0,nmin+1
  3123 + cy(m,n,p)=cy(m,n,p)+cx(m,n,p)
  3124 + enddo
  3125 + enddo
  3126 + enddo
  3127 + return
  3128 + endif
  3129 + if(allocated(ephimat)) deallocate(rotmat,ephimat,tranmat)
  3130 + if(nmax.gt.stored_max_order) then
  3131 + if(allocated(rvec_temp)) deallocate(rvec_temp,tvec_temp, &
  3132 + c_temp,ct_temp,rvec2_temp,tvec2_temp, &
  3133 + c2_temp,ct2_temp)
  3134 + allocate(rvec_temp(-nmax:nmax,2),tvec_temp(nmax,2), &
  3135 + c_temp(-nmax:nmax,nmax,2),ct_temp(nmax,2,2), &
  3136 + rvec2_temp(-nmax:nmax,2),tvec2_temp(nmax,2), &
  3137 + c2_temp(-nmax:nmax,nmax,2),ct2_temp(nmax,2,2))
  3138 + stored_max_order=nmax
  3139 + endif
  3140 + nblk=(nodrx*(nodrx+3))/2
  3141 + allocate(rotmat(-nmin:nmin,0:nmax*(nmax+2)))
  3142 + allocate(ephimat(-nmax:nmax))
  3143 + allocate(tranmat(1:nodry,1:nblk,1:2))
  3144 + call rotcoef(ct,nmin,nmax,rotmat)
  3145 +! call axialtrancoef(itype,r,ri,nodry,nodrx,tranmat)
  3146 + call axialtrancoefrecurrence(itype,r,ri,nodry,nodrx,tranmat)
  3147 + call ephicoef(ephi,nmax,ephimat)
  3148 + endif
  3149 + call rottranmtrx(cx,cy,idir,itran,nodrx,nodry,ephimat,rotmat,tranmat)
  3150 + return
  3151 + end subroutine rottran
  3152 +!
  3153 +! far field formula for outgoing SVWF translation
  3154 +! October 2011
  3155 +!
  3156 + subroutine farfieldtranslation(cx,cy,xij,ri,nodrx,nodry,icase, &
  3157 + stored_pivec_matrix)
  3158 + use numconstants
  3159 + use specialfuncs
  3160 + implicit none
  3161 + integer :: nodrx,nodry,itype,icalc,icase,nmax,nmin,n,m,p,nblk,im
  3162 + real(8) :: xij(3),r,ct,xijt(3)
  3163 + complex(8) :: ri,ephi,cx(0:nodrx+1,nodrx,2),cy(0:nodry+1,nodry,2), &
  3164 + cxt(0:nodrx+1,nodrx,2),cyt(0:nodry+1,nodry,2), &
  3165 + sumx(2),c1,pivec(0:max(nodrx,nodry)+1,max(nodrx,nodry),2)
  3166 + complex(8), optional :: stored_pivec_matrix(0:max(nodrx,nodry)+1,max(nodrx,nodry),2)
  3167 +
  3168 + call cartosphere(xij,r,ct,ephi)
  3169 + nmax=max(nodrx,nodry)
  3170 + if(present(stored_pivec_matrix)) then
  3171 + pivec=stored_pivec_matrix
  3172 + else
  3173 + call pifunc(ct,ephi,nmax,nmax,pivec)
  3174 + endif
  3175 + if(icase.eq.1) then
  3176 + sumx(1)=sum(pivec(0:nodrx+1,1:nodrx,1:2)*cx(0:nodrx+1,1:nodrx,1:2))
  3177 + sumx(2)=sum(pivec(0:nodrx+1,1:nodrx,2:1:-1)*cx(0:nodrx+1,1:nodrx,1:2))
  3178 + sumx=sumx*cdexp((0.d0,1.d0)*ri*r)/((0.d0,1.d0)*ri*r)*8.d0
  3179 + cyt(0:nodry+1,1:nodry,1) = conjg(pivec(0:nodry+1,1:nodry,1))*sumx(1) &
  3180 + +conjg(pivec(0:nodry+1,1:nodry,2))*sumx(2)
  3181 + cyt(0:nodry+1,1:nodry,2) = conjg(pivec(0:nodry+1,1:nodry,2))*sumx(1) &
  3182 + +conjg(pivec(0:nodry+1,1:nodry,1))*sumx(2)
  3183 + else
  3184 + do n=1,nodrx
  3185 + do p=1,2
  3186 + im=(-1)**(n+p)
  3187 + cxt(n+1,1:n,p)=im*cx(n+1,1:n,p)
  3188 + cxt(0:n,n,p)=im*cx(0:n,n,p)
  3189 + enddo
  3190 + enddo
  3191 + sumx(1)=sum(conjg(pivec(0:nodrx+1,1:nodrx,1:2))*cxt(0:nodrx+1,1:nodrx,1:2))
  3192 + sumx(2)=sum(conjg(pivec(0:nodrx+1,1:nodrx,2:1:-1))*cxt(0:nodrx+1,1:nodrx,1:2))
  3193 + sumx=sumx*cdexp((0.d0,1.d0)*ri*r)/((0.d0,1.d0)*ri*r)*8.d0
  3194 + cyt(0:nodry+1,1:nodry,1) = pivec(0:nodry+1,1:nodry,1)*sumx(1) &
  3195 + +pivec(0:nodry+1,1:nodry,2)*sumx(2)
  3196 + cyt(0:nodry+1,1:nodry,2) = pivec(0:nodry+1,1:nodry,2)*sumx(1) &
  3197 + +pivec(0:nodry+1,1:nodry,1)*sumx(2)
  3198 + do n=1,nodry
  3199 + do p=1,2
  3200 + im=(-1)**(n+p)
  3201 + cyt(n+1,1:n,p)=im*cyt(n+1,1:n,p)
  3202 + cyt(0:n,n,p)=im*cyt(0:n,n,p)
  3203 + enddo
  3204 + enddo
  3205 + endif
  3206 + cy=cy+cyt
  3207 + end subroutine farfieldtranslation
  3208 +!
  3209 +! far field translation: normal and transpose, for bcgm solution
  3210 +! october 2011
  3211 +!
  3212 + subroutine farfieldtranslationtwovec(cx1,cx2,cy1,cy2,xij,ri,nodrx,nodry, &
  3213 + stored_pivec_matrix)
  3214 + use numconstants
  3215 + use specialfuncs
  3216 + implicit none
  3217 + integer :: nodrx,nodry,itype,icalc,icase,nmax,nmin,n,m,p,nblk,im
  3218 + real(8) :: xij(3),r,ct,xijt(3)
  3219 + complex(8) :: ri,ephi,cx1(0:nodrx+1,nodrx,2),cy1(0:nodry+1,nodry,2), &
  3220 + cx2(0:nodrx+1,nodrx,2),cy2(0:nodry+1,nodry,2), &
  3221 + cxt(0:nodrx+1,nodrx,2),cyt1(0:nodry+1,nodry,2), &
  3222 + cyt2(0:nodry+1,nodry,2), &
  3223 + sumx(2),c1,phasefunc, &
  3224 + pivec(0:max(nodrx,nodry)+1,max(nodrx,nodry),2)
  3225 + complex(8), optional :: stored_pivec_matrix(0:max(nodrx,nodry)+1,max(nodrx,nodry),2)
  3226 +
  3227 + call cartosphere(xij,r,ct,ephi)
  3228 + nmax=max(nodrx,nodry)
  3229 + if(present(stored_pivec_matrix)) then
  3230 + pivec=stored_pivec_matrix
  3231 + else
  3232 + call pifunc(ct,ephi,nmax,nmax,pivec)
  3233 + endif
  3234 + phasefunc=cdexp((0.d0,1.d0)*ri*r)/((0.d0,1.d0)*ri*r)*8.d0
  3235 + sumx(1)=sum(pivec(0:nodrx+1,1:nodrx,1:2)*cx1(0:nodrx+1,1:nodrx,1:2))
  3236 + sumx(2)=sum(pivec(0:nodrx+1,1:nodrx,2:1:-1)*cx1(0:nodrx+1,1:nodrx,1:2))
  3237 + sumx=sumx*phasefunc
  3238 + cyt1(0:nodry+1,1:nodry,1) = conjg(pivec(0:nodry+1,1:nodry,1))*sumx(1) &
  3239 + +conjg(pivec(0:nodry+1,1:nodry,2))*sumx(2)
  3240 + cyt1(0:nodry+1,1:nodry,2) = conjg(pivec(0:nodry+1,1:nodry,2))*sumx(1) &
  3241 + +conjg(pivec(0:nodry+1,1:nodry,1))*sumx(2)
  3242 + do n=1,nodrx
  3243 + do p=1,2
  3244 + im=(-1)**(n+p)
  3245 + cxt(n+1,1:n,p)=im*cx2(n+1,1:n,p)
  3246 + cxt(0:n,n,p)=im*cx2(0:n,n,p)
  3247 + enddo
  3248 + enddo
  3249 + sumx(1)=sum(conjg(pivec(0:nodrx+1,1:nodrx,1:2))*cxt(0:nodrx+1,1:nodrx,1:2))
  3250 + sumx(2)=sum(conjg(pivec(0:nodrx+1,1:nodrx,2:1:-1))*cxt(0:nodrx+1,1:nodrx,1:2))
  3251 + sumx=sumx*phasefunc
  3252 + cyt2(0:nodry+1,1:nodry,1) = pivec(0:nodry+1,1:nodry,1)*sumx(1) &
  3253 + +pivec(0:nodry+1,1:nodry,2)*sumx(2)
  3254 + cyt2(0:nodry+1,1:nodry,2) = pivec(0:nodry+1,1:nodry,2)*sumx(1) &
  3255 + +pivec(0:nodry+1,1:nodry,1)*sumx(2)
  3256 + do n=1,nodry
  3257 + do p=1,2
  3258 + im=(-1)**(n+p)
  3259 + cyt2(n+1,1:n,p)=im*cyt2(n+1,1:n,p)
  3260 + cyt2(0:n,n,p)=im*cyt2(0:n,n,p)
  3261 + enddo
  3262 + enddo
  3263 + cy1=cy1+cyt1
  3264 + cy2=cy2+cyt2
  3265 + end subroutine farfieldtranslationtwovec
  3266 +!
  3267 +! correction term for hybrid bcgm solution: difference between exact and
  3268 +! ff translation field
  3269 +! november 2011
  3270 +!
  3271 + subroutine fftranslationerror(cx,cy,jx,iy,nodrx,nodry)
  3272 + use numconstants
  3273 + use specialfuncs
  3274 + implicit none
  3275 + integer :: nodrx,nodry,idir,itran,iy,jx,istore
  3276 + integer :: nr1,nr2,nt1,nt2,ne1,ne2
  3277 + real(8) :: xj(3),xi(3),xij(3),rij,nfdist
  3278 + complex(8) :: cx(0:nodrx+1,nodrx,2),cy(0:nodry+1,nodry,2), &
  3279 + cyt(0:nodry+1,nodry,2)
  3280 + xj(:)=sphere_position(:,jx)
  3281 + xi(:)=sphere_position(:,iy)
  3282 + xij=xi-xj
  3283 + rij=sqrt(dot_product(xij,xij))
  3284 + if(near_field_distance.lt.0.) then
  3285 + nfdist=(.5*(nodrx+nodry))**2.
  3286 + else
  3287 + nfdist=near_field_distance
  3288 + endif
  3289 + if(rij.gt.nfdist) then
  3290 + cyt=0.d0
  3291 + call farfieldtranslation(cx,cyt,xij,(1.d0,0.d0),nodrx,nodry,1)
  3292 + cyt=-cyt
  3293 + call rottran(cx,cyt,xij,(1.d0,0.d0),nodrx,nodry,3,1,1,1)
  3294 + cy=cy+cyt
  3295 + endif
  3296 + end subroutine fftranslationerror
  3297 +!
  3298 +! translation via stored or calculated matrices (replaces rottranstoredmatrix)
  3299 +!
  3300 +! 12 October 2011.
  3301 +! if rij> near_field_distance, the far field formula is
  3302 +! applied.
  3303 +!
  3304 + subroutine rottranjtoi(cx,cy,jx,iy,nodrx,nodry,idir,itran)
  3305 + use numconstants
  3306 + use specialfuncs
  3307 + implicit none
  3308 + integer :: nodrx,nodry,idir,itran,iy,jx,istore
  3309 + integer :: nr1,nr2,nt1,nt2,ne1,ne2
  3310 + real(8) :: xj(3),xi(3),xij(3),rij,nfdist
  3311 + complex(8) :: cx(0:nodrx+1,nodrx,2),cy(0:nodry+1,nodry,2)
  3312 + xj(:)=sphere_position(:,jx)
  3313 + xi(:)=sphere_position(:,iy)
  3314 + xij=xi-xj
  3315 + rij=sqrt(dot_product(xij,xij))
  3316 + if(near_field_distance.lt.0.) then
  3317 + nfdist=(.5*(nodrx+nodry))**2.
  3318 + else
  3319 + nfdist=near_field_distance
  3320 + endif
  3321 + if(rij.gt.nfdist) then
  3322 + if(store_tran_mat.eq.2) then
  3323 + nt1=nofftran(iy,jx)+1
  3324 + nt2=nt1+nsizetran(iy,jx)-1
  3325 + call farfieldtranslation(cx,cy,xij,(1.d0,0.d0),nodrx,nodry,itran, &
  3326 + stored_pivec_matrix=tranmatstore(nt1:nt2))
  3327 + else
  3328 + call farfieldtranslation(cx,cy,xij,(1.d0,0.d0),nodrx,nodry,itran)
  3329 + endif
  3330 + else
  3331 + if(store_tran_mat.eq.0) then
  3332 + call rottran(cx,cy,xij,(1.d0,0.d0),nodrx,nodry,3,1,idir,itran)
  3333 + else
  3334 + nr1=noffrot(iy,jx)+1
  3335 + nr2=nr1+nsizerot(iy,jx)-1
  3336 + nt1=nofftran(iy,jx)+1
  3337 + nt2=nt1+nsizetran(iy,jx)-1
  3338 + ne1=noffephi(iy,jx)+1
  3339 + ne2=ne1+nsizeephi(iy,jx)-1
  3340 + call rottranmtrx(cx,cy,idir,itran,nodrx,nodry,ephimatstore(ne1:ne2), &
  3341 + rotmatstore(nr1:nr2),tranmatstore(nt1:nt2))
  3342 + endif
  3343 + endif
  3344 + end subroutine rottranjtoi
  3345 +!
  3346 +! normal and transpose translation, for bcgm
  3347 +! november 2011
  3348 +!
  3349 + subroutine rottrantwojtoi(cx1,cx2,cy1,cy2,jx,iy,nodrx,nodry)
  3350 + use numconstants
  3351 + use specialfuncs
  3352 + implicit none
  3353 + integer :: nodrx,nodry,idir,itran,iy,jx,istore
  3354 + integer :: nr1,nr2,nt1,nt2,ne1,ne2
  3355 + real(8) :: xj(3),xi(3),xij(3),rij,nfdist
  3356 + complex(8) :: cx1(0:nodrx+1,nodrx,2),cy1(0:nodry+1,nodry,2), &
  3357 + cx2(0:nodrx+1,nodrx,2),cy2(0:nodry+1,nodry,2)
  3358 + xj(:)=sphere_position(:,jx)
  3359 + xi(:)=sphere_position(:,iy)
  3360 + xij=xi-xj
  3361 + rij=sqrt(dot_product(xij,xij))
  3362 + if(near_field_distance.lt.0.) then
  3363 + nfdist=(.5*(nodrx+nodry))**2.
  3364 + else
  3365 + nfdist=near_field_distance
  3366 + endif
  3367 + if(rij.gt.nfdist) then
  3368 + if(store_tran_mat.eq.2) then
  3369 + nt1=nofftran(iy,jx)+1
  3370 + nt2=nt1+nsizetran(iy,jx)-1
  3371 + call farfieldtranslationtwovec(cx1,cx2,cy1,cy2,xij,(1.d0,0.d0),nodrx,nodry, &
  3372 + stored_pivec_matrix=tranmatstore(nt1:nt2))
  3373 + else
  3374 + call farfieldtranslationtwovec(cx1,cx2,cy1,cy2,xij,(1.d0,0.d0),nodrx,nodry)
  3375 + endif
  3376 + else
  3377 + if(store_tran_mat.eq.0) then
  3378 + call rottran(cx1,cy1,xij,(1.d0,0.d0),nodrx,nodry,3,1,1,1)
  3379 + call rottran(cx2,cy2,xij,(1.d0,0.d0),nodrx,nodry,3,0,-1,-1)
  3380 + else
  3381 + nr1=noffrot(iy,jx)+1
  3382 + nr2=nr1+nsizerot(iy,jx)-1
  3383 + nt1=nofftran(iy,jx)+1
  3384 + nt2=nt1+nsizetran(iy,jx)-1
  3385 + ne1=noffephi(iy,jx)+1
  3386 + ne2=ne1+nsizeephi(iy,jx)-1
  3387 + call rottranmtrxtwovec(cx1,cx2,cy1,cy2,nodrx,nodry,ephimatstore(ne1:ne2), &
  3388 + rotmatstore(nr1:nr2),tranmatstore(nt1:nt2))
  3389 + endif
  3390 + endif
  3391 + end subroutine rottrantwojtoi
  3392 +!
  3393 +! the vectorized rotation-translation-rotation operation
  3394 +!
  3395 +!
  3396 +! last revised: 15 January 2011
  3397 +!
  3398 + subroutine rottranmtrx(cx,cy,idir,itran,nodrx,nodry,ephimat,rotmat,tranmat)
  3399 + use numconstants
  3400 + use specialfuncs
  3401 + implicit none
  3402 + integer :: nodrx,nodry,itype,icalc,idir,itran,nmax,nmin
  3403 + integer :: m,n,k,l,nn1,nn2,ll1,mn,kl,m1,p,n1,addr(2)
  3404 + real(8), target :: rotmat(-min(nodrx,nodry):min(nodrx,nodry), &
  3405 + 0:max(nodrx,nodry)*(max(nodrx,nodry)+2))
  3406 + real(8), pointer :: rmat(:,:)
  3407 + complex(8) :: cx(0:nodrx+1,nodrx,2),cy(0:nodry+1,nodry,2), &
  3408 + ephimat(-max(nodrx,nodry):max(nodrx,nodry))
  3409 + complex(8), target :: tranmat(nodry,nodrx*(nodrx+3)/2,2)
  3410 + complex(8), pointer :: tmat1(:,:),tmat2(:,:)
  3411 + c_temp=(0.d0,0.d0)
  3412 + nmin=min(nodrx,nodry)
  3413 +!
  3414 +! rotation to origin of target
  3415 +!
  3416 + do n=1,nodrx
  3417 + nn1=n*(n+1)-n
  3418 + nn2=nn1+(2*n+1)-1
  3419 + n1=min(n,nodry)
  3420 + rmat=>rotmat(-n1:n1,nn1:nn2)
  3421 + do p=1,2
  3422 + rvec_temp(-n:-1,p)=cx(n+1,n:1:-1,p)
  3423 + rvec_temp(0:n,p)=cx(0:n,n,p)
  3424 + if(itran.eq.1) then
  3425 + rvec_temp(-n:n,p)=rvec_temp(-n:n,p)*ephimat(-n:n)
  3426 + else
  3427 + rvec_temp(-n:n,p)=rvec_temp(-n:n,p)*conjg(ephimat(-n:n))
  3428 + endif
  3429 + enddo
  3430 + c_temp(-n1:n1,n,1:2)=matmul(rmat,rvec_temp(-n:n,1:2))
  3431 + enddo
  3432 +!
  3433 +! axial translation to target
  3434 +!
  3435 + do m=0,nmin
  3436 + m1=max(1,m)
  3437 + nn1=atcadd(m,m1,nodrx)
  3438 + nn2=atcadd(m,nodrx,nodrx)
  3439 + tmat1=>tranmat(m1:nodry,nn1:nn2,1)
  3440 + tmat2=>tranmat(m1:nodry,nn1:nn2,2)
  3441 + tvec_temp(m1:nodrx,1)=idir*c_temp(m,m1:nodrx,1)
  3442 + tvec_temp(m1:nodrx,2)=c_temp(m,m1:nodrx,2)
  3443 + if(itran*idir.eq.-1) then
  3444 + tvec_temp(m1:nodrx,1)=tvec_temp(m1:nodrx,1)*monen(m1:nodrx)
  3445 + tvec_temp(m1:nodrx,2)=tvec_temp(m1:nodrx,2)*monen(m1:nodrx)
  3446 + endif
  3447 + ct_temp=(0.d0,0.d0)
  3448 + ct_temp(m1:nodry,1,1:2)=matmul(tmat1,tvec_temp(m1:nodrx,1:2))
  3449 + ct_temp(m1:nodry,2,1:2)=matmul(tmat2,tvec_temp(m1:nodrx,1:2))
  3450 + c_temp(m,m1:nodry,1)=idir*(ct_temp(m1:nodry,1,1)+ct_temp(m1:nodry,2,2))
  3451 + c_temp(m,m1:nodry,2)=ct_temp(m1:nodry,2,1)+ct_temp(m1:nodry,1,2)
  3452 + if(itran*idir.eq.-1) then
  3453 + c_temp(m,m1:nodry,1)=c_temp(m,m1:nodry,1)*monen(m1:nodry)
  3454 + c_temp(m,m1:nodry,2)=c_temp(m,m1:nodry,2)*monen(m1:nodry)
  3455 + endif
  3456 + if(m.gt.0) then
  3457 + tvec_temp(m1:nodrx,1)=idir*c_temp(-m,m1:nodrx,1)
  3458 + tvec_temp(m1:nodrx,2)=c_temp(-m,m1:nodrx,2)
  3459 + if(itran*idir.eq.-1) then
  3460 + tvec_temp(m1:nodrx,1)=tvec_temp(m1:nodrx,1)*monen(m1:nodrx)
  3461 + tvec_temp(m1:nodrx,2)=tvec_temp(m1:nodrx,2)*monen(m1:nodrx)
  3462 + endif
  3463 + ct_temp=(0.d0,0.d0)
  3464 + ct_temp(m1:nodry,1,1:2)=matmul(tmat1,tvec_temp(m1:nodrx,1:2))
  3465 + ct_temp(m1:nodry,2,1:2)=matmul(tmat2,tvec_temp(m1:nodrx,1:2))
  3466 + c_temp(-m,m1:nodry,1)=idir*(ct_temp(m1:nodry,1,1)-ct_temp(m1:nodry,2,2))
  3467 + c_temp(-m,m1:nodry,2)=-ct_temp(m1:nodry,2,1)+ct_temp(m1:nodry,1,2)
  3468 + if(itran*idir.eq.-1) then
  3469 + c_temp(-m,m1:nodry,1)=c_temp(-m,m1:nodry,1)*monen(m1:nodry)
  3470 + c_temp(-m,m1:nodry,2)=c_temp(-m,m1:nodry,2)*monen(m1:nodry)
  3471 + endif
  3472 + endif
  3473 + enddo
  3474 +!
  3475 +! rotation back to original frame
  3476 +!
  3477 + do n=1,nodry
  3478 + rvec_temp=(0.d0,0.d0)
  3479 + m1=min(n,nmin)
  3480 + nn1=n*(n+1)-n
  3481 + nn2=n*(n+1)+n
  3482 + rmat=>rotmat(-m1:m1,nn1:nn2)
  3483 + do p=1,2
  3484 + if(itran.eq.1) then
  3485 + rvec_temp(-n:n,p)=matmul(c_temp(-m1:m1,n,p),rmat)*conjg(ephimat(-n:n))
  3486 + else
  3487 + rvec_temp(-n:n,p)=matmul(c_temp(-m1:m1,n,p),rmat)*ephimat(-n:n)
  3488 + endif
  3489 + cy(n+1,n:1:-1,p)=cy(n+1,n:1:-1,p)+rvec_temp(-n:-1,p)
  3490 + cy(0:n,n,p)=cy(0:n,n,p)+rvec_temp(0:n,p)
  3491 + enddo
  3492 + enddo
  3493 + end subroutine rottranmtrx
  3494 +!
  3495 +! two vector rotation: normal and transpose
  3496 +! november 2011
  3497 +!
  3498 + subroutine rottranmtrxtwovec(cx1,cx2,cy1,cy2,nodrx,nodry, &
  3499 + ephimat,rotmat,tranmat)
  3500 + use numconstants
  3501 + use specialfuncs
  3502 + implicit none
  3503 + integer :: nodrx,nodry,itype,icalc,idir,itran,nmax,nmin
  3504 + integer :: m,n,k,l,nn1,nn2,ll1,mn,kl,m1,p,n1,addr(2)
  3505 + real(8), target :: rotmat(-min(nodrx,nodry):min(nodrx,nodry), &
  3506 + 0:max(nodrx,nodry)*(max(nodrx,nodry)+2))
  3507 + real(8), pointer :: rmat(:,:)
  3508 + complex(8) :: cx1(0:nodrx+1,nodrx,2),cy1(0:nodry+1,nodry,2), &
  3509 + cx2(0:nodrx+1,nodrx,2),cy2(0:nodry+1,nodry,2), &
  3510 + ephimat(-max(nodrx,nodry):max(nodrx,nodry))
  3511 + complex(8), target :: tranmat(nodry,nodrx*(nodrx+3)/2,2)
  3512 + complex(8), pointer :: tmat1(:,:),tmat2(:,:)
  3513 + c_temp=(0.d0,0.d0)
  3514 + nmin=min(nodrx,nodry)
  3515 +!
  3516 +! rotation to origin of target
  3517 +!
  3518 + do n=1,nodrx
  3519 + nn1=n*(n+1)-n
  3520 + nn2=nn1+(2*n+1)-1
  3521 + n1=min(n,nodry)
  3522 + rmat=>rotmat(-n1:n1,nn1:nn2)
  3523 + do p=1,2
  3524 + rvec_temp(-n:-1,p)=cx1(n+1,n:1:-1,p)
  3525 + rvec_temp(0:n,p)=cx1(0:n,n,p)
  3526 + rvec2_temp(-n:-1,p)=cx2(n+1,n:1:-1,p)
  3527 + rvec2_temp(0:n,p)=cx2(0:n,n,p)
  3528 + rvec_temp(-n:n,p)=rvec_temp(-n:n,p)*ephimat(-n:n)
  3529 + rvec2_temp(-n:n,p)=rvec2_temp(-n:n,p)*conjg(ephimat(-n:n))
  3530 + enddo
  3531 + c_temp(-n1:n1,n,1:2)=matmul(rmat,rvec_temp(-n:n,1:2))
  3532 + c2_temp(-n1:n1,n,1:2)=matmul(rmat,rvec2_temp(-n:n,1:2))
  3533 + enddo
  3534 +!
  3535 +! axial translation to target
  3536 +!
  3537 + do m=0,nmin
  3538 + m1=max(1,m)
  3539 + nn1=atcadd(m,m1,nodrx)
  3540 + nn2=atcadd(m,nodrx,nodrx)
  3541 + tmat1=>tranmat(m1:nodry,nn1:nn2,1)
  3542 + tmat2=>tranmat(m1:nodry,nn1:nn2,2)
  3543 + tvec_temp(m1:nodrx,1)=c_temp(m,m1:nodrx,1)
  3544 + tvec_temp(m1:nodrx,2)=c_temp(m,m1:nodrx,2)
  3545 + tvec2_temp(m1:nodrx,1)=-c2_temp(m,m1:nodrx,1)
  3546 + tvec2_temp(m1:nodrx,2)=c2_temp(m,m1:nodrx,2)
  3547 + ct_temp=(0.d0,0.d0)
  3548 + ct2_temp=(0.d0,0.d0)
  3549 + ct_temp(m1:nodry,1,1:2)=matmul(tmat1,tvec_temp(m1:nodrx,1:2))
  3550 + ct_temp(m1:nodry,2,1:2)=matmul(tmat2,tvec_temp(m1:nodrx,1:2))
  3551 + ct2_temp(m1:nodry,1,1:2)=matmul(tmat1,tvec2_temp(m1:nodrx,1:2))
  3552 + ct2_temp(m1:nodry,2,1:2)=matmul(tmat2,tvec2_temp(m1:nodrx,1:2))
  3553 + c_temp(m,m1:nodry,1)=(ct_temp(m1:nodry,1,1)+ct_temp(m1:nodry,2,2))
  3554 + c_temp(m,m1:nodry,2)=ct_temp(m1:nodry,2,1)+ct_temp(m1:nodry,1,2)
  3555 + c2_temp(m,m1:nodry,1)=-(ct2_temp(m1:nodry,1,1)+ct2_temp(m1:nodry,2,2))
  3556 + c2_temp(m,m1:nodry,2)=ct2_temp(m1:nodry,2,1)+ct2_temp(m1:nodry,1,2)
  3557 + if(m.gt.0) then
  3558 + tvec_temp(m1:nodrx,1)=c_temp(-m,m1:nodrx,1)
  3559 + tvec_temp(m1:nodrx,2)=c_temp(-m,m1:nodrx,2)
  3560 + tvec2_temp(m1:nodrx,1)=-c2_temp(-m,m1:nodrx,1)
  3561 + tvec2_temp(m1:nodrx,2)=c2_temp(-m,m1:nodrx,2)
  3562 + ct_temp=(0.d0,0.d0)
  3563 + ct2_temp=(0.d0,0.d0)
  3564 + ct_temp(m1:nodry,1,1:2)=matmul(tmat1,tvec_temp(m1:nodrx,1:2))
  3565 + ct_temp(m1:nodry,2,1:2)=matmul(tmat2,tvec_temp(m1:nodrx,1:2))
  3566 + ct2_temp(m1:nodry,1,1:2)=matmul(tmat1,tvec2_temp(m1:nodrx,1:2))
  3567 + ct2_temp(m1:nodry,2,1:2)=matmul(tmat2,tvec2_temp(m1:nodrx,1:2))
  3568 + c_temp(-m,m1:nodry,1)=(ct_temp(m1:nodry,1,1)-ct_temp(m1:nodry,2,2))
  3569 + c_temp(-m,m1:nodry,2)=-ct_temp(m1:nodry,2,1)+ct_temp(m1:nodry,1,2)
  3570 + c2_temp(-m,m1:nodry,1)=-(ct2_temp(m1:nodry,1,1)-ct2_temp(m1:nodry,2,2))
  3571 + c2_temp(-m,m1:nodry,2)=-ct2_temp(m1:nodry,2,1)+ct2_temp(m1:nodry,1,2)
  3572 + endif
  3573 + enddo
  3574 +!
  3575 +! rotation back to original frame
  3576 +!
  3577 + do n=1,nodry
  3578 + rvec_temp=(0.d0,0.d0)
  3579 + rvec2_temp=(0.d0,0.d0)
  3580 + m1=min(n,nmin)
  3581 + nn1=n*(n+1)-n
  3582 + nn2=n*(n+1)+n
  3583 + rmat=>rotmat(-m1:m1,nn1:nn2)
  3584 + do p=1,2
  3585 + rvec_temp(-n:n,p)=matmul(c_temp(-m1:m1,n,p),rmat)*conjg(ephimat(-n:n))
  3586 + rvec2_temp(-n:n,p)=matmul(c2_temp(-m1:m1,n,p),rmat)*ephimat(-n:n)
  3587 + cy1(n+1,n:1:-1,p)=cy1(n+1,n:1:-1,p)+rvec_temp(-n:-1,p)
  3588 + cy1(0:n,n,p)=cy1(0:n,n,p)+rvec_temp(0:n,p)
  3589 + cy2(n+1,n:1:-1,p)=cy2(n+1,n:1:-1,p)+rvec2_temp(-n:-1,p)
  3590 + cy2(0:n,n,p)=cy2(0:n,n,p)+rvec2_temp(0:n,p)
  3591 + enddo
  3592 + enddo
  3593 + end subroutine rottranmtrxtwovec
  3594 +!
  3595 +! GB coefficients for sphere-centered expansions, obtained via translation
  3596 +!
  3597 +! last revised: 15 January 2011
  3598 +!
  3599 + subroutine spheregaussianbeamcoef(nsphere,neqns,nodr,alpha,beta,cbeam, &
  3600 + rpos,rbeam,epstran,pmnp)
  3601 + use specialfuncs
  3602 + implicit none
  3603 + integer :: m,n,p,nsphere,i,l,nodr(nsphere),nblk,noff,nodrgb,neqns,k
  3604 + real(8) :: alpha,beta,cb,sb,ca,sa,rpos(3,nsphere),rmax,rbeam(3),xib(3),rib, &
  3605 + cbeam,epstran
  3606 + complex(8) :: pmnp(neqns,2)
  3607 + complex(8), allocatable :: pmnp0(:,:,:,:)
  3608 + nodrgb=0
  3609 + rmax=0.d0
  3610 + do i=1,nsphere
  3611 + xib(:)=rpos(:,i)-rbeam(:)
  3612 + rib=sqrt(dot_product(xib,xib))
  3613 + rmax=max(rmax,rib)
  3614 + call tranordertest(rib,(1.d0,0.d0),nodr(i),epstran,n)
  3615 + nodrgb=max(n,nodrgb)
  3616 + enddo
  3617 + allocate(pmnp0(0:nodrgb+1,nodrgb,2,2))
  3618 + call gaussianbeamcoef(alpha,beta,cbeam,nodrgb,pmnp0)
  3619 + pmnp=0.d0
  3620 + noff=0
  3621 + do i=1,nsphere
  3622 + nblk=2*nodr(i)*(nodr(i)+2)
  3623 + xib(:)=rpos(:,i)-rbeam(:)
  3624 + do k=1,2
  3625 + call rottran(pmnp0(0:nodrgb+1,1:nodrgb,1:2,k),pmnp(noff+1:noff+nblk,k),xib, &
  3626 + (1.d0,0.d0),nodrgb,nodr(i),1,1,1,1)
  3627 + enddo
  3628 + noff=noff+nblk
  3629 + enddo
  3630 + deallocate(pmnp0)
  3631 + end subroutine spheregaussianbeamcoef
  3632 +
  3633 + end module translation
  3634 +!
  3635 +! scatprops module: various subroutines for calculation of observables from the solution
  3636 +!
  3637 +!
  3638 +! last revised: 15 January 2011
  3639 +!
  3640 + module scatprops
  3641 + implicit none
  3642 + contains
  3643 +!
  3644 +! determination of maximum orders for target--based expansions
  3645 +!
  3646 +!
  3647 +! last revised: 15 January 2011
  3648 +!
  3649 + subroutine tranorders(nsphere,nodr,rpos,eps,ntran,nodrt)
  3650 + use numconstants
  3651 + use specialfuncs
  3652 + use translation
  3653 + implicit none
  3654 + integer :: nsphere,nodr(nsphere),nodrt,ntran(nsphere),i
  3655 + real(8) :: rpos(3,nsphere),r,eps
  3656 + nodrt=0
  3657 + do i=1,nsphere
  3658 + r=sqrt(dot_product(rpos(:,i),rpos(:,i)))
  3659 + call tranordertest(r,(1.d0,0.d0),nodr(i),eps,ntran(i))
  3660 + if(print_intermediate_results.eq.1) &
  3661 + write(*,'('' i, nodr, ntran:'',3i7)') i,nodr(i),ntran(i)
  3662 + nodrt=max(nodrt,ntran(i))
  3663 + enddo
  3664 + end subroutine tranorders
  3665 +!
  3666 +! translation of sphere-based expansions to common target origin
  3667 +!
  3668 +!
  3669 +! last revised: 15 January 2011
  3670 +!
  3671 + subroutine amncommonorigin(neqns,nsphere,nodr,ntran,nodrt,rpos,amnp,amnp0)
  3672 + use specialfuncs
  3673 + use translation
  3674 + implicit none
  3675 + integer :: neqns,nsphere,nodr(nsphere),nodrt,i,m,n,p,nblk,ntran(nsphere),noff
  3676 + real(8) :: rpos(3,nsphere),r,eps,xij(3)
  3677 + complex(8) :: amnp(neqns),amnp0(0:nodrt+1,nodrt,2)
  3678 + complex(8), allocatable :: amnpt(:,:,:)
  3679 + amnp0=(0.d0,0.d0)
  3680 + noff=0
  3681 + do i=1,nsphere
  3682 + allocate(amnpt(0:ntran(i)+1,ntran(i),2))
  3683 + amnpt=(0.d0,0.d0)
  3684 + nblk=nodr(i)*(nodr(i)+2)*2
  3685 + xij=-rpos(:,i)
  3686 + call rottran(amnp(noff+1:noff+nblk),amnpt,xij,(1.d0,0.d0), &
  3687 + nodr(i),ntran(i),1,1,1,1)
  3688 + do p=1,2
  3689 + do n=1,ntran(i)
  3690 + do m=0,ntran(i)+1
  3691 + amnp0(m,n,p)=amnp0(m,n,p)+amnpt(m,n,p)
  3692 + enddo
  3693 + enddo
  3694 + enddo
  3695 + deallocate(amnpt)
  3696 + noff=noff+nblk
  3697 + enddo
  3698 + end subroutine amncommonorigin
  3699 +!
  3700 +! sphereqeff computes the efficiency factors for the sphere, given an1: mie coefficients,
  3701 +! anp: scattering coefficients, pnp: incident field coefficients.
  3702 +!
  3703 +! This subroutine is specific to the OA model for the sphere.
  3704 +!
  3705 +!
  3706 +! original: 15 January 2011
  3707 +! revised: 21 February 2011: polarized and cross-polarized efficiency calculation
  3708 +! 30 March 2011: added optical activity
  3709 +!
  3710 + subroutine sphereqeff(nsphere,neqns,nodr,nodrmax,xsp,anp1,anp2,&
  3711 + pnp1,pnp2,qext,qabs,qsca)
  3712 + use miecoefdata
  3713 + use spheredata
  3714 + implicit none
  3715 + integer :: nsphere,m,n,p,i,nodr(nsphere),nblk,noff,neqns,nodrmax
  3716 + real(8) :: xsp(nsphere),qext(nsphere),qabs(nsphere),qsca(nsphere), &
  3717 + qe,qa,qs
  3718 + complex(8) :: anp1(neqns),pnp1(neqns),anp2(neqns),pnp2(neqns)
  3719 + complex(8) :: anmie(2,2,nodrmax)
  3720 + qext=0.d0
  3721 + qabs=0.d0
  3722 + qsca=0.d0
  3723 + noff=0
  3724 + do i=1,nsphere
  3725 + nblk=nodr(i)*(nodr(i)+2)*2
  3726 + call getmiedata(which_sphere=i,sphere_mie_coefficients=anmie)
  3727 + call qeffcalc(nodr(i),anp1(noff+1:noff+nblk),anp2(noff+1:noff+nblk), &
  3728 + pnp1(noff+1:noff+nblk),pnp2(noff+1:noff+nblk),anmie,qe,qa,qs)
  3729 + noff=noff+nblk
  3730 + qext(i)=2.d0*qe/xsp(i)/xsp(i)
  3731 + qabs(i)=2.d0*qa/xsp(i)/xsp(i)
  3732 + qsca(i)=2.d0*qs/xsp(i)/xsp(i)
  3733 + enddo
  3734 + end subroutine sphereqeff
  3735 +!
  3736 +! calculation of sphere efficiency factors for scattered and incident field
  3737 +! coefficient anp1, pnp1, anp2, pnp2 and mie coefficients anmie
  3738 +!
  3739 +! original: 15 January 2011
  3740 +! revised: 21 February 2011: polarized and cross-polarized efficiency calculation
  3741 +! 30 March 2011: added optical activity
  3742 +!
  3743 + subroutine qeffcalc(nodr,anp1,anp2,pnp1,pnp2,anmie,qe,qa,qs)
  3744 + implicit none
  3745 + integer :: nodr,m,n,p,q
  3746 + real(8) :: qe,qa,qs,babs,aninv(2,2)
  3747 + complex(8) :: anp1(0:nodr+1,nodr,2),pnp1(0:nodr+1,nodr,2), &
  3748 + anp2(0:nodr+1,nodr,2),pnp2(0:nodr+1,nodr,2),anmie(2,2,nodr), &
  3749 + a
  3750 + qe=0.d0
  3751 + qa=0.d0
  3752 + qs=0.d0
  3753 + do n=1,nodr
  3754 + a=anmie(1,1,n)*anmie(2,2,n)-anmie(1,2,n)*anmie(1,2,n)
  3755 + do p=1,2
  3756 + do q=1,2
  3757 + aninv(p,q)=(-1)**(p+q)*anmie(3-p,3-q,n)/a
  3758 + enddo
  3759 + aninv(p,p)=aninv(p,p)+1.d0
  3760 + enddo
  3761 + do p=1,2
  3762 +! babs=-(1.d0/anmie(p,n)+1.d0)
  3763 + do m=-n,-1
  3764 + qe=qe-(anp1(n+1,-m,p)*conjg(pnp2(n+1,-m,p)) &
  3765 + + anp2(n+1,-m,p)*conjg(pnp1(n+1,-m,p)))*.5d0
  3766 + qs=qs+anp1(n+1,-m,p)*conjg(anp2(n+1,-m,p))
  3767 + do q=1,2
  3768 + qa=qa-conjg(anp1(n+1,-m,p))*aninv(p,q)*anp2(n+1,-m,q)
  3769 + enddo
  3770 + enddo
  3771 + do m=0,n
  3772 + qe=qe-(anp1(m,n,p)*conjg(pnp2(m,n,p)) &
  3773 + +anp2(m,n,p)*conjg(pnp1(m,n,p)))*.5d0
  3774 + qs=qs+anp1(m,n,p)*conjg(anp2(m,n,p))
  3775 + do q=1,2
  3776 + qa=qa-conjg(anp1(m,n,p))*aninv(p,q)*anp2(m,n,q)
  3777 + enddo
  3778 + enddo
  3779 + enddo
  3780 + enddo
  3781 + end subroutine qeffcalc
  3782 +!
  3783 +! scattering amplitude sa and matrix sm calculation
  3784 +!
  3785 +! original: 15 January 2011
  3786 +! revised: 21 February 2011: S11 normalization changed
  3787 +!
  3788 + subroutine scatteringmatrix(amn0,nodrt,xv,ct,phi,sa,sm)
  3789 + use specialfuncs
  3790 + use numconstants
  3791 + implicit none
  3792 + integer :: nodrt,m,n,p,m1,n1,i,j
  3793 + real(8) :: xv,ct,phi,sm(4,4),tau(0:nodrt+1,nodrt,2),cphi,sphi,qsca
  3794 + complex(8) :: amn0(0:nodrt+1,nodrt,2,2),sa(4),ephi,ephim(-nodrt:nodrt), &
  3795 + ci,cin,a,b,sp(4,4)
  3796 + data ci/(0.d0,1.d0)/
  3797 +
  3798 +
  3799 + call taufunc(ct,nodrt,tau)
  3800 + cphi=cos(phi)
  3801 + sphi=sin(phi)
  3802 + ephi=dcmplx(cphi,sphi)
  3803 + call ephicoef(ephi,nodrt,ephim)
  3804 + sa=(0.d0,0.d0)
  3805 + qsca=0.d0
  3806 + do n=1,nodrt
  3807 + cin=(-ci)**n
  3808 + do m=-n,n
  3809 + if(m.le.-1) then
  3810 + m1=n+1
  3811 + n1=-m
  3812 + else
  3813 + m1=m
  3814 + n1=n
  3815 + endif
  3816 + do p=1,2
  3817 + qsca=qsca+amn0(m1,n1,p,1)*dconjg(amn0(m1,n1,p,1)) &
  3818 + + amn0(m1,n1,p,2)*dconjg(amn0(m1,n1,p,2))
  3819 + a=amn0(m1,n1,p,1)*cphi+amn0(m1,n1,p,2)*sphi
  3820 + b=amn0(m1,n1,p,1)*sphi-amn0(m1,n1,p,2)*cphi
  3821 + sa(1)=sa(1)+cin*tau(m1,n1,3-p)*b*ephim(m)
  3822 + sa(2)=sa(2)+ci*cin*tau(m1,n1,p)*a*ephim(m)
  3823 + sa(3)=sa(3)+ci*cin*tau(m1,n1,p)*b*ephim(m)
  3824 + sa(4)=sa(4)+cin*tau(m1,n1,3-p)*a*ephim(m)
  3825 + enddo
  3826 + enddo
  3827 + enddo
  3828 + qsca=qsca*2.d0
  3829 + do i=1,4
  3830 + do j=1,4
  3831 + sp(i,j)=sa(i)*dconjg(sa(j))*16.d0/qsca
  3832 + enddo
  3833 + enddo
  3834 + sm(1,1)=sp(1,1)+sp(2,2)+sp(3,3)+sp(4,4)
  3835 + sm(1,2)=-sp(1,1)+sp(2,2)-sp(3,3)+sp(4,4)
  3836 + sm(2,1)=-sp(1,1)+sp(2,2)+sp(3,3)-sp(4,4)
  3837 + sm(2,2)=sp(1,1)+sp(2,2)-sp(3,3)-sp(4,4)
  3838 + sm(3,3)=2.*(sp(1,2)+sp(3,4))
  3839 + sm(3,4)=-2.*dimag(sp(1,2)+sp(3,4))
  3840 + sm(4,3)=2.*dimag(sp(1,2)-sp(3,4))
  3841 + sm(4,4)=2.*(sp(1,2)-sp(3,4))
  3842 + sm(1,3)=2.*(sp(2,3)+sp(1,4))
  3843 + sm(3,1)=2.*(sp(2,4)+sp(1,3))
  3844 + sm(1,4)=2.*dimag(sp(2,3)-sp(1,4))
  3845 + sm(4,1)=-2.*dimag(sp(2,4)+sp(1,3))
  3846 + sm(2,3)=2.*(sp(2,3)-sp(1,4))
  3847 + sm(3,2)=2.*(sp(2,4)-sp(1,3))
  3848 + sm(2,4)=2.*dimag(sp(2,3)+sp(1,4))
  3849 + sm(4,2)=-2.*dimag(sp(2,4)-sp(1,3))
  3850 +! do i=1,4
  3851 +! do j=1,4
  3852 +! if(i.ne.1.or.j.ne.1) then
  3853 +! sm(i,j)=sm(i,j)/sm(1,1)
  3854 +! endif
  3855 +! enddo
  3856 +! enddo
  3857 + end subroutine scatteringmatrix
  3858 +! c c
  3859 +! c subroutine scatexp(amn0,nodrt,nodrg,gmn) computes the expansion coefficients c
  3860 +! c for the spherical harmonic expansion of the scattering phase function from c
  3861 +! c the scattering coefficients amn0. For a complete expansion, the max. order c
  3862 +! c of the phase function expansion (nodrg) will be 2*nodrt, where nodrt is c
  3863 +! c the max. order of the scattered field expansion. In this code nodrg is c
  3864 +! c typically set to 1, so that the subroutine returns the first moments c
  3865 +! c of the phase function; gmn(1) and gmn(2). c
  3866 +! c c
  3867 +! c The expansion coefficients are normalized so that gmn(0)=1 c
  3868 +! c c
  3869 +! c gmn(1)/3 is the asymmetry parameter. c
  3870 +! c c
  3871 + subroutine s11expansion(amn0,nodrt,mmax,nodrg,gmn)
  3872 + use specialfuncs
  3873 + use numconstants
  3874 + implicit none
  3875 + integer :: nodrt,m,n,p,ma,na,mmax,nodrg,w,w1,w2,u,uw,ww1, &
  3876 + l1,l2,ka,la,k,l,q,ik
  3877 + real(8) :: vc1(0:nodrt*2+1),vc2(0:nodrt*2+1),g0
  3878 + complex(8) :: amn0(0:nodrt+1,nodrt,2,2),gmn(0:nodrg*(nodrg+3)/2), &
  3879 + a(2,2),c,c2
  3880 + gmn=(0.d0,0.d0)
  3881 + do n=1,nodrt
  3882 + l1=max(1,n-nodrg)
  3883 + l2=min(nodrt,n+nodrg)
  3884 + do l=l1,l2
  3885 + c=sqrt(dble((n+n+1)*(l+l+1)))*dcmplx(0.d0,1.d0)**(l-n)
  3886 + w2=min(n+l,nodrg)
  3887 + call vcfunc(-1,l,1,n,vc2)
  3888 + do m=-n,n
  3889 + if(m.le.-1) then
  3890 + ma=n+1
  3891 + na=-m
  3892 + else
  3893 + ma=m
  3894 + na=n
  3895 + endif
  3896 + do k=-l,min(l,m)
  3897 + if(k.le.-1) then
  3898 + ka=l+1
  3899 + la=-k
  3900 + else
  3901 + ka=k
  3902 + la=l
  3903 + endif
  3904 + u=m-k
  3905 + if(u.le.mmax) then
  3906 + ik=(-1)**k
  3907 + c2=ik*c
  3908 + do p=1,2
  3909 + do q=1,2
  3910 + a(p,q)=c2*(amn0(ma,na,p,1)*conjg(amn0(ka,la,q,1)) &
  3911 + +amn0(ma,na,p,2)*conjg(amn0(ka,la,q,2)))
  3912 + enddo
  3913 + enddo
  3914 + w1=max(abs(n-l),abs(u))
  3915 + w2=min(n+l,nodrg)
  3916 + call vcfunc(-k,l,m,n,vc1)
  3917 + do w=w1,w2
  3918 + uw=(w*(w+1))/2+u
  3919 + do p=1,2
  3920 + if(mod(n+l+w,2).eq.0) then
  3921 + q=p
  3922 + else
  3923 + q=3-p
  3924 + endif
  3925 + gmn(uw)=gmn(uw)-vc1(w)*vc2(w)*a(p,q)
  3926 + enddo
  3927 + enddo
  3928 + endif
  3929 + enddo
  3930 + enddo
  3931 + enddo
  3932 + enddo
  3933 + g0=dble(gmn(0))
  3934 + gmn(0)=1.d0
  3935 + do w=1,nodrg
  3936 + ww1=(w*(w+1))/2
  3937 + gmn(ww1)=dcmplx(dble(gmn(ww1)),0.d0)/g0
  3938 + do u=1,min(mmax,w)
  3939 + uw=ww1+u
  3940 + gmn(uw)=(-1)**u*2.d0*gmn(uw)/g0
  3941 + enddo
  3942 + enddo
  3943 + end subroutine s11expansion
  3944 +!
  3945 +! calculate azimuth--averaged scattering matrix from expansion, for cos(theta) = ct
  3946 +!
  3947 +!
  3948 +! original: 15 January 2011
  3949 +! revised: 21 February 2011: changed normalization on S11
  3950 +!
  3951 + subroutine fosmcalc(ntot,s00,s02,sp22,sm22,ct,sm)
  3952 + use numconstants
  3953 + use specialfuncs
  3954 + integer :: ntot,w,i,j,ww1
  3955 + real(8) :: s00(4,4,0:ntot*2),s02(4,4,0:ntot*2),sp22(4,4,0:ntot*2),sm22(4,4,0:ntot*2), &
  3956 + sm(4,4),dc(-2:2,0:2*ntot*(2*ntot+2)),ct
  3957 + call rotcoef(ct,2,2*ntot,dc)
  3958 + sm=0.d0
  3959 + do w=0,2*ntot
  3960 + ww1=w*(w+1)
  3961 + sm(:,:)=sm(:,:)+s00(:,:,w)*dc(0,ww1)+s02(:,:,w)*dc(0,ww1+2) &
  3962 + +sp22(:,:,w)*dc(2,ww1+2)+sm22(:,:,w)*dc(-2,ww1+2)
  3963 + enddo
  3964 + sm=sm/s00(1,1,0)
  3965 +! do i=1,4
  3966 +! do j=1,4
  3967 +! if(i.ne.1.or.j.ne.1) then
  3968 +! sm(i,j)=sm(i,j)/sm(1,1)
  3969 +! endif
  3970 +! enddo
  3971 +! enddo
  3972 + end subroutine fosmcalc
  3973 +!
  3974 +! determine the generalized spherical function expansion for the azimuth-averaged scattering matrix
  3975 +! corresponding to the target-based scattering field expansion of amnp.
  3976 +!
  3977 +!
  3978 +! original: 15 January 2011
  3979 +! revised: 21 February 2011: fixed flush call.
  3980 +!
  3981 + subroutine fosmexpansion(ntot,amnp,s00,s02,sp22,sm22)
  3982 + use mpidefs
  3983 + use mpidata
  3984 + use specialfuncs
  3985 + use numconstants
  3986 + use spheredata
  3987 + integer :: ntot,n,p,m,l,wmin,wmax,m1m,q,m1mq,m1mnpl,w,m1w,fe,fo,i,j,wtot
  3988 + integer :: rank,numprocs,nl,nsend,runprintunit
  3989 + integer, allocatable :: nlindex(:),nlnum(:)
  3990 + real(8) :: s00(4,4,0:ntot*2),s02(4,4,0:ntot*2),sp22(4,4,0:ntot*2),sm22(4,4,0:ntot*2), &
  3991 + cm1p1(0:ntot*2),cm1m1(0:ntot*2),cmmpm(0:ntot*2),cmmm2pm(0:ntot*2), &
  3992 + cmmp2pm(0:ntot*2),sum,nlperproc
  3993 + complex(8) :: amnp(0:ntot+1,ntot,2,2),a1(-ntot-2:ntot+2,ntot,2),a2(-ntot-2:ntot+2,ntot,2), &
  3994 + ci,fnl,a1122,a2112,a1p2,a1m2
  3995 + data ci/(0.d0,1.d0)/
  3996 + call init(2*ntot)
  3997 + call getrunparameters(run_print_unit=runprintunit)
  3998 + call ms_mpi(mpi_command='rank',mpi_rank=rank)
  3999 + call ms_mpi(mpi_command='size',mpi_size=numprocs)
  4000 + allocate(nlindex(0:numprocs-1),nlnum(0:numprocs-1))
  4001 + nlperproc=dble(ntot*ntot)/dble(numprocs)
  4002 + sum=0.
  4003 + do i=0,numprocs-1
  4004 + nlindex(i)=floor(sum)
  4005 + sum=sum+nlperproc
  4006 + enddo
  4007 + do i=0,numprocs-2
  4008 + nlnum(i)=nlindex(i+1)-nlindex(i)
  4009 + enddo
  4010 + nlnum(numprocs-1)=ntot*ntot-nlindex(numprocs-1)
  4011 + if(rank.eq.0) then
  4012 + write(runprintunit,'('' SM calc, orders per processor:'',f10.4)') nlperproc
  4013 + call flush(runprintunit)
  4014 + endif
  4015 + a1=(0.d0,0.d0)
  4016 + a2=(0.d0,0.d0)
  4017 + s00=0.d0
  4018 + s02=0.d0
  4019 + sp22=0.d0
  4020 + sm22=0.d0
  4021 + wtot=ntot+ntot
  4022 + do n=1,ntot
  4023 + do p=1,2
  4024 + do m=-n,-1
  4025 + a1(m,n,p)=amnp(n+1,-m,p,1)
  4026 + a2(m,n,p)=amnp(n+1,-m,p,2)
  4027 + enddo
  4028 + do m=0,n
  4029 + a1(m,n,p)=amnp(m,n,p,1)
  4030 + a2(m,n,p)=amnp(m,n,p,2)
  4031 + enddo
  4032 + enddo
  4033 + enddo
  4034 + do nl=nlindex(rank)+1,nlindex(rank)+nlnum(rank)
  4035 + n=floor((nl-1)/dble(ntot))+1
  4036 + l=mod(nl-1,ntot)+1
  4037 + wmin=abs(n-l)
  4038 + wmax=n+l
  4039 + fnl=sqrt(dble((n+n+1)*(l+l+1)))*ci**(l-n)
  4040 + call vcfunc(-1,n,1,l,cm1p1)
  4041 + call vcfunc(-1,n,-1,l,cm1m1)
  4042 + do m=-min(n,l+2),min(n,l+2)
  4043 + m1m=(-1)**m
  4044 + if(abs(m).le.l) then
  4045 + call vcfunc(-m,n,m,l,cmmpm)
  4046 + else
  4047 + cmmpm=0.d0
  4048 + endif
  4049 + if(abs(-2+m).le.l) then
  4050 + call vcfunc(-m,n,-2+m,l,cmmm2pm)
  4051 + else
  4052 + cmmm2pm=0.d0
  4053 + endif
  4054 + if(abs(2+m).le.l) then
  4055 + call vcfunc(-m,n,2+m,l,cmmp2pm)
  4056 + else
  4057 + cmmp2pm=0.d0
  4058 + endif
  4059 + do p=1,2
  4060 + do q=1,2
  4061 + m1mq=(-1)**(m+q)
  4062 + m1mnpl=(-1)**(m+n+p+l)
  4063 + a1122=(a1(m,n,p)*conjg(a1(m,l,q)) + a2(m,n,p)*conjg(a2(m,l,q)))
  4064 + a2112=(a2(m,n,p)*conjg(a1(m,l,q)) - a1(m,n,p)*conjg(a2(m,l,q)))
  4065 + a1p2=(a1(m,n,p)+ci*a2(m,n,p))*conjg(a1(m-2,l,q)-ci*a2(m-2,l,q))
  4066 + a1m2=(a1(m,n,p)-ci*a2(m,n,p))*conjg(a1(m+2,l,q)+ci*a2(m+2,l,q))
  4067 + do w=wmin,wmax
  4068 + m1w=(-1)**w
  4069 + if(mod(n+l+w+p+q,2).eq.0) then
  4070 + fe=1
  4071 + fo=0
  4072 + else
  4073 + fe=0
  4074 + fo=1
  4075 + endif
  4076 + s00(1,1,w) = s00(1,1,w)-(m1m*fe*fnl*a1122*cm1p1(w)*cmmpm(w))/2.
  4077 + s00(3,2,w) = s00(3,2,w)+ (ci/2.*m1m*fnl*fo*a1122*cm1p1(w)*cmmpm(w))
  4078 + s00(4,2,w) = s00(4,2,w)+ dimag(-ci/2.*m1m*fnl*fo*a1122*cm1p1(w)*cmmpm(w))
  4079 + s00(1,4,w) = s00(1,4,w)+ dimag(m1m*fe*fnl*(-a2112)*cm1p1(w)*cmmpm(w))/2.
  4080 + s00(2,3,w) = s00(2,3,w)+ (m1m*fe*fnl*(-a2112)*cm1p1(w)*cmmpm(w))/2.
  4081 + s00(4,3,w) = s00(4,3,w)+ dimag(ci/2.*m1m*fnl*fo*a2112*cm1p1(w)*cmmpm(w))
  4082 + s00(4,4,w) = s00(4,4,w)+ (ci/2.*m1m*fnl*fo*a2112*cm1p1(w)*cmmpm(w))
  4083 +
  4084 + if(w.lt.2) cycle
  4085 +
  4086 + s02(2,1,w) = s02(2,1,w)-(m1mq*a1122*fe*fnl*cm1m1(w)*cmmpm(w))/2.
  4087 + s02(3,1,w) = s02(3,1,w)+ (-ci/2.*m1mq*a1122*fnl*fo*cm1m1(w)*cmmpm(w))
  4088 + s02(4,1,w) = s02(4,1,w)+ dimag(ci/2.*m1mq*a1122*fnl*fo*cm1m1(w)*cmmpm(w))
  4089 + s02(1,3,w) = s02(1,3,w)-(m1mq*a2112*fe*fnl*cm1m1(w)*cmmpm(w))/2.
  4090 + s02(2,4,w) = s02(2,4,w)-dimag(m1mq*a2112*fe*fnl*cm1m1(w)*cmmpm(w))/2.
  4091 + s02(3,3,w) = s02(3,3,w)+ (ci/2.*m1mq*a2112*fnl*fo*cm1m1(w)*cmmpm(w))
  4092 + s02(3,4,w) = s02(3,4,w)+ dimag(-ci/2.*m1mq*a2112*fnl*fo*cm1m1(w)*cmmpm(w))
  4093 +
  4094 + s02(1,2,w) = s02(1,2,w)-(m1m*a1p2*fe*fnl*cm1p1(w)*cmmm2pm(w))/4.
  4095 + s02(1,3,w) = s02(1,3,w)+ (-ci/4.*m1m*a1p2*fe*fnl*cm1p1(w)*cmmm2pm(w))
  4096 + s02(2,4,w) = s02(2,4,w)+ dimag(-ci/4.*m1m*a1p2*fe*fnl*cm1p1(w)*cmmm2pm(w))
  4097 + s02(3,1,w) = s02(3,1,w)+ (ci/4.*m1m*a1p2*fnl*fo*cm1p1(w)*cmmm2pm(w))
  4098 + s02(4,1,w) = s02(4,1,w)+ dimag(-ci/4.*m1m*a1p2*fnl*fo*cm1p1(w)*cmmm2pm(w))
  4099 + s02(4,3,w) = s02(4,3,w)+ dimag(m1m*a1p2*fnl*fo*cm1p1(w)*cmmm2pm(w))/4.
  4100 + s02(4,4,w) = s02(4,4,w)+ (m1m*a1p2*fnl*fo*cm1p1(w)*cmmm2pm(w))/4.
  4101 +
  4102 + sm22(1,4,w) = sm22(1,4,w)+ dimag(-ci/8.*m1mnpl*m1w*a1p2*fnl*cm1m1(w)*cmmm2pm(w))
  4103 + sm22(2,2,w) = sm22(2,2,w)-(m1mnpl*m1w*a1p2*fnl*cm1m1(w)*cmmm2pm(w))/8.
  4104 + sm22(2,3,w) = sm22(2,3,w)+ (-ci/8.*m1mnpl*m1w*a1p2*fnl*cm1m1(w)*cmmm2pm(w))
  4105 + sm22(3,2,w) = sm22(3,2,w)+ (ci/8.*m1mnpl*m1w*a1p2*fnl*cm1m1(w)*cmmm2pm(w))
  4106 + sm22(3,3,w) = sm22(3,3,w)-(m1mnpl*m1w*a1p2*fnl*cm1m1(w)*cmmm2pm(w))/8.
  4107 + sm22(3,4,w) = sm22(3,4,w)+ dimag(m1mnpl*m1w*a1p2*fnl*cm1m1(w)*cmmm2pm(w))/8.
  4108 + sm22(4,2,w) = sm22(4,2,w)+ dimag(-ci/8.*m1mnpl*m1w*a1p2*fnl*cm1m1(w)*cmmm2pm(w))
  4109 +
  4110 + sp22(1,4,w) = sp22(1,4,w)+ dimag(-ci/8.*m1mq*a1p2*fnl*cm1m1(w)*cmmm2pm(w))
  4111 + sp22(2,2,w) = sp22(2,2,w)-(m1mq*a1p2*fnl*cm1m1(w)*cmmm2pm(w))/8.
  4112 + sp22(2,3,w) = sp22(2,3,w)+ (-ci/8.*m1mq*a1p2*fnl*cm1m1(w)*cmmm2pm(w))
  4113 + sp22(3,2,w) = sp22(3,2,w)+ (-ci/8.*m1mq*a1p2*fnl*cm1m1(w)*cmmm2pm(w))
  4114 + sp22(3,3,w) = sp22(3,3,w)+ (m1mq*a1p2*fnl*cm1m1(w)*cmmm2pm(w))/8.
  4115 + sp22(3,4,w) = sp22(3,4,w)-dimag(m1mq*a1p2*fnl*cm1m1(w)*cmmm2pm(w))/8.
  4116 + sp22(4,2,w) = sp22(4,2,w)+ dimag(ci/8.*m1mq*a1p2*fnl*cm1m1(w)*cmmm2pm(w))
  4117 +
  4118 + s02(1,2,w) = s02(1,2,w)-(m1m*a1m2*fe*fnl*cm1p1(w)*cmmp2pm(w))/4.
  4119 + s02(1,3,w) = s02(1,3,w)+ (ci/4.*m1m*a1m2*fe*fnl*cm1p1(w)*cmmp2pm(w))
  4120 + s02(2,4,w) = s02(2,4,w)+ dimag(ci/4.*m1m*a1m2*fe*fnl*cm1p1(w)*cmmp2pm(w))
  4121 + s02(3,1,w) = s02(3,1,w)+ (ci/4.*m1m*a1m2*fnl*fo*cm1p1(w)*cmmp2pm(w))
  4122 + s02(4,1,w) = s02(4,1,w)+ dimag(-ci/4.*m1m*a1m2*fnl*fo*cm1p1(w)*cmmp2pm(w))
  4123 + s02(4,3,w) = s02(4,3,w)-dimag(m1m*a1m2*fnl*fo*cm1p1(w)*cmmp2pm(w))/4.
  4124 + s02(4,4,w) = s02(4,4,w)-(m1m*a1m2*fnl*fo*cm1p1(w)*cmmp2pm(w))/4.
  4125 +
  4126 + sm22(1,4,w) = sm22(1,4,w)+ dimag(ci/8.*m1mq*a1m2*fnl*cm1m1(w)*cmmp2pm(w))
  4127 + sm22(2,2,w) = sm22(2,2,w)-(m1mq*a1m2*fnl*cm1m1(w)*cmmp2pm(w))/8.
  4128 + sm22(2,3,w) = sm22(2,3,w)+ (ci/8.*m1mq*a1m2*fnl*cm1m1(w)*cmmp2pm(w))
  4129 + sm22(3,2,w) = sm22(3,2,w)+ (-ci/8.*m1mq*a1m2*fnl*cm1m1(w)*cmmp2pm(w))
  4130 + sm22(3,3,w) = sm22(3,3,w)-(m1mq*a1m2*fnl*cm1m1(w)*cmmp2pm(w))/8.
  4131 + sm22(3,4,w) = sm22(3,4,w)+ dimag(m1mq*a1m2*fnl*cm1m1(w)*cmmp2pm(w))/8.
  4132 + sm22(4,2,w) = sm22(4,2,w)+ dimag(ci/8.*m1mq*a1m2*fnl*cm1m1(w)*cmmp2pm(w))
  4133 +
  4134 + sp22(1,4,w) = sp22(1,4,w)+ dimag(ci/8.*m1mnpl*m1w*a1m2*fnl*cm1m1(w)*cmmp2pm(w))
  4135 + sp22(2,2,w) = sp22(2,2,w)-(m1mnpl*m1w*a1m2*fnl*cm1m1(w)*cmmp2pm(w))/8.
  4136 + sp22(2,3,w) = sp22(2,3,w)+ (ci/8.*m1mnpl*m1w*a1m2*fnl*cm1m1(w)*cmmp2pm(w))
  4137 + sp22(3,2,w) = sp22(3,2,w)+ (ci/8.*m1mnpl*m1w*a1m2*fnl*cm1m1(w)*cmmp2pm(w))
  4138 + sp22(3,3,w) = sp22(3,3,w)+ (m1mnpl*m1w*a1m2*fnl*cm1m1(w)*cmmp2pm(w))/8.
  4139 + sp22(3,4,w) = sp22(3,4,w)-dimag(m1mnpl*m1w*a1m2*fnl*cm1m1(w)*cmmp2pm(w))/8.
  4140 + sp22(4,2,w) = sp22(4,2,w)+ dimag(-ci/8.*m1mnpl*m1w*a1m2*fnl*cm1m1(w)*cmmp2pm(w))
  4141 + enddo
  4142 + enddo
  4143 + enddo
  4144 + enddo
  4145 + enddo
  4146 + call ms_mpi(mpi_command='barrier')
  4147 + nsend=4*4*(2*ntot+1)
  4148 + call ms_mpi(mpi_command='allreduce',mpi_recv_buf_dp=s00,&
  4149 + mpi_number=nsend,mpi_operation=ms_mpi_sum)
  4150 + call ms_mpi(mpi_command='allreduce',mpi_recv_buf_dp=s02,&
  4151 + mpi_number=nsend,mpi_operation=ms_mpi_sum)
  4152 + call ms_mpi(mpi_command='allreduce',mpi_recv_buf_dp=sp22,&
  4153 + mpi_number=nsend,mpi_operation=ms_mpi_sum)
  4154 + call ms_mpi(mpi_command='allreduce',mpi_recv_buf_dp=sm22,&
  4155 + mpi_number=nsend,mpi_operation=ms_mpi_sum)
  4156 +!
  4157 +! a patch
  4158 +!
  4159 + do i=3,4
  4160 + do j=1,i
  4161 + s00(j,i,0:wtot)=-s00(j,i,0:wtot)
  4162 + s02(j,i,0:wtot)=-s02(j,i,0:wtot)
  4163 + sm22(j,i,0:wtot)=-sm22(j,i,0:wtot)
  4164 + sp22(j,i,0:wtot)=-sp22(j,i,0:wtot)
  4165 + enddo
  4166 + enddo
  4167 + deallocate(nlindex,nlnum)
  4168 + end subroutine fosmexpansion
  4169 +!
  4170 +! compute the coefficients for the GSF expansion of the random orientation
  4171 +! scattering matrix.
  4172 +!
  4173 +!
  4174 +! original: 15 January 2011
  4175 +! revised: 21 February 2011: changed normalization on S11
  4176 +!
  4177 + subroutine ranorientscatmatrix(xv,nsphere,nodr,nodrw,cbeam,tmatrixfile,&
  4178 + sm,qext,qabs,qsca)
  4179 + use mpidefs
  4180 + use mpidata
  4181 + use intrinsics
  4182 + use specialfuncs
  4183 + use spheredata
  4184 + use numconstants
  4185 + implicit none
  4186 + integer :: nodr,nodrw,nodr2,m,n,p,k,l,q,s,t,v,u,w,nblk,kl,mn,nn1,tn, &
  4187 + lmax,ll1,tvl,ku,k1,ns,ik,ik1,m1,nu,n1s,n1e,nu1,p1,n1max, &
  4188 + in,n1,i,lt,kt,qt,nt,mt,ikm,klm,mnm,nodrt,nsphere, &
  4189 + rank,iunit,numprocs
  4190 + real(8) :: sm(4,4,0:nodrw),fl,vc(0:4*nodr+2),xv,fl2,fc1,fc2,fc3,fc4, &
  4191 + cbeam,gbn,qext(nsphere),qabs(nsphere),qsca(nsphere),qel, &
  4192 + qal,qsl,fc(4),time1,time2,qsca0
  4193 + complex(8) :: ci,cin,a
  4194 + complex(8) :: aw(0:2,-1:1,0:nodrw),bw(0:2,-1:1,0:nodrw),cw(0:nodrw), &
  4195 + dw(0:nodrw),pp(nodr,2,2), &
  4196 + bm(2,nodr*(nodr+2),2),am(2,nodr+1,2),fm(3,nodr,2,nodr,2)
  4197 + complex(8), allocatable :: dm(:,:,:,:,:,:)
  4198 + complex(4), allocatable :: tc(:,:,:,:)
  4199 + integer :: nblkw,wv,sizedm,ierr,sizetm,nsend
  4200 + integer, allocatable :: windex(:),vindex(:),wvindex(:),wvnum(:)
  4201 + real(8) :: wvperproc,sum
  4202 + character*30 :: tmatrixfile
  4203 + data ci/(0.d0,1.d0)/
  4204 + call ms_mpi(mpi_command='rank',mpi_rank=rank)
  4205 + call ms_mpi(mpi_command='size',mpi_size=numprocs)
  4206 + call getrunparameters(run_print_unit=iunit)
  4207 + if(rank.eq.0) time1=mytime()
  4208 +!
  4209 +! read the T matrix from the file
  4210 +!
  4211 + if(rank.eq.0) then
  4212 + open(3,file=tmatrixfile)
  4213 + read(3,*) nodrt
  4214 + endif
  4215 + nodrt=nodr
  4216 + nblk=nodr*(nodr+2)
  4217 + sizetm=4*nblk*nblk
  4218 + allocate(tc(2,nblk,2,nblk))
  4219 + tc=(0.,0.)
  4220 + if(rank.eq.0) then
  4221 + qext=0.d0
  4222 + qabs=0.d0
  4223 + qsca=0.d0
  4224 + do l=1,nodr
  4225 + gbn=dexp(-((dble(l)+.5d0)*cbeam)**2.)
  4226 + do k=-l,l
  4227 + kl=l*(l+1)+k
  4228 + klm=l*(l+1)-k
  4229 + do q=1,2
  4230 + read(3,*) lt,kt,qt
  4231 + do n=1,l
  4232 + do m=-n,n
  4233 + mn=n*(n+1)+m
  4234 + mnm=n*(n+1)-m
  4235 + read(3,*) nt,mt,fc
  4236 + tc(1,mn,q,kl)=cmplx(fc(1),fc(2))
  4237 + tc(2,mn,q,kl)=cmplx(fc(3),fc(4))
  4238 + if(n.lt.l) then
  4239 + ikm=(-1)**(m+k)
  4240 + do p=1,2
  4241 + tc(q,klm,p,mnm)=tc(p,mn,q,kl)*ikm
  4242 + enddo
  4243 + endif
  4244 + enddo
  4245 + enddo
  4246 + enddo
  4247 + enddo
  4248 + do i=1,nsphere
  4249 + read(3,*) n,qel,qal,qsl
  4250 + qext(i)=qext(i)+qel*gbn*gbn
  4251 + qabs(i)=qabs(i)+qal*gbn*gbn
  4252 + qsca(i)=qsca(i)+qsl*gbn*gbn
  4253 + enddo
  4254 + enddo
  4255 + close(3)
  4256 + endif
  4257 +!
  4258 +! send to the other processors
  4259 +!
  4260 + if(numprocs.gt.1) then
  4261 + call ms_mpi(mpi_command='barrier')
  4262 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dp=qext,mpi_number=nsphere,mpi_rank=0)
  4263 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dp=qabs,mpi_number=nsphere,mpi_rank=0)
  4264 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dp=qsca,mpi_number=nsphere,mpi_rank=0)
  4265 + call ms_mpi(mpi_command='bcast',mpi_send_buf_c=tc,mpi_number=sizetm,mpi_rank=0)
  4266 + endif
  4267 + allocate(dm(-nodr-1:nodr+1,3,nodr,2,nodr,2))
  4268 + if(rank.eq.0) then
  4269 + time2=mytime()-time1
  4270 + call timewrite(iunit,' t matrix read time:',time2)
  4271 + time1=mytime()
  4272 + endif
  4273 + nodr2=nodr+nodr
  4274 + nblk=nodr*(nodr+2)
  4275 + dm=(0.d0,0.d0)
  4276 + sizedm=size(dm)
  4277 + call init(nodr2)
  4278 +!
  4279 +! compute the GB modified T matrix
  4280 +!
  4281 + do n=1,nodr
  4282 + gbn=dexp(-((dble(n)+.5d0)*cbeam)**2.)
  4283 + cin=ci**(n+1)
  4284 + pp(n,1,1) =-.5d0*cin*fnr(n+n+1)*gbn
  4285 + pp(n,2,1) =-pp(n,1,1)
  4286 + pp(n,1,2)=-pp(n,1,1)
  4287 + pp(n,2,2)=pp(n,2,1)
  4288 + enddo
  4289 + do n=1,nodr
  4290 + nn1=n*(n+1)
  4291 + do m=-n,n
  4292 + mn=nn1+m
  4293 + do p=1,2
  4294 + do l=1,nodr
  4295 + do k=-l,l
  4296 + kl=l*(l+1)+k
  4297 + a=tc(p,mn,1,kl)
  4298 + tc(p,mn,1,kl)=tc(p,mn,1,kl)*pp(l,1,1)&
  4299 + +tc(p,mn,2,kl)*pp(l,1,2)
  4300 + tc(p,mn,2,kl)=a*pp(l,2,1)+tc(p,mn,2,kl)*pp(l,2,2)
  4301 + enddo
  4302 + enddo
  4303 + enddo
  4304 + enddo
  4305 + enddo
  4306 +!
  4307 +! determine the distribution of work load among the processors
  4308 +!
  4309 + nblkw=nodr2*(nodr2+2)+1
  4310 + allocate(windex(nblkw),vindex(nblkw),wvindex(0:numprocs-1),wvnum(0:numprocs-1))
  4311 + w=0
  4312 + do n=0,nodr2
  4313 + do m=-n,n
  4314 + w=w+1
  4315 + windex(w)=n
  4316 + vindex(w)=m
  4317 + enddo
  4318 + enddo
  4319 + wvperproc=dble(nblkw)/dble(numprocs)
  4320 + sum=0.
  4321 + do i=0,numprocs-1
  4322 + wvindex(i)=floor(sum)
  4323 + sum=sum+wvperproc
  4324 + enddo
  4325 + do i=0,numprocs-2
  4326 + wvnum(i)=wvindex(i+1)-wvindex(i)
  4327 + enddo
  4328 + wvnum(numprocs-1)=nblkw-wvindex(numprocs-1)
  4329 + if(rank.eq.0) then
  4330 + write(iunit,'('' d matrix calculation, order+degree per proc.:'',f9.2)') &
  4331 + wvperproc
  4332 + call flush(iunit)
  4333 + endif
  4334 +!
  4335 +! the big loop
  4336 +!
  4337 + do wv=wvindex(rank)+1,wvindex(rank)+wvnum(rank)
  4338 + w=windex(wv)
  4339 + v=vindex(wv)
  4340 + bm=(0.d0,0.d0)
  4341 + do n=1,nodr
  4342 + nn1=n*(n+1)
  4343 + do l=max(1,abs(w-n)),min(nodr,w+n)
  4344 + am(1,l,1)=0.d0
  4345 + am(1,l,2)=0.d0
  4346 + am(2,l,1)=0.d0
  4347 + am(2,l,2)=0.d0
  4348 + enddo
  4349 + do t=-n,n
  4350 + tn=nn1+t
  4351 + lmax=min(nodr,w+n)
  4352 + call vcfunc(v,w,-t,n,vc)
  4353 + do l=max(1,abs(v-t),abs(n-w)),lmax
  4354 + ll1=l*(l+1)
  4355 + tvl=ll1+t-v
  4356 + do k=1,2
  4357 + do p=1,2
  4358 + am(k,l,p)=am(k,l,p)+vc(l)*tc(p,tn,k,tvl)
  4359 + enddo
  4360 + enddo
  4361 + enddo
  4362 + enddo
  4363 + do m=-n,n
  4364 + mn=nn1+m
  4365 + do k=1,2
  4366 + u=m-(-3+2*k)
  4367 + if(abs(u).le.w) then
  4368 + lmax=min(nodr,w+n)
  4369 + call vcfunc(-u,w,m,n,vc)
  4370 + do l=max(1,abs(w-n)),lmax
  4371 + fl=-(-1)**l*vc(l)/dble(l+l+1)
  4372 + do p=1,2
  4373 + bm(k,mn,p)=bm(k,mn,p)+am(k,l,p)*fl
  4374 + enddo
  4375 + enddo
  4376 + endif
  4377 + enddo
  4378 + enddo
  4379 + enddo
  4380 + do u=-min(w,nodr+1),min(w,nodr+1)
  4381 + do ku=1,3
  4382 + if(ku.eq.1) then
  4383 + k=-1
  4384 + k1=-1
  4385 + elseif(ku.eq.2) then
  4386 + k=1
  4387 + k1=1
  4388 + else
  4389 + k=1
  4390 + k1=-1
  4391 + endif
  4392 + m=u+k
  4393 + ns=max(1,abs(m))
  4394 + ik=(k+1)/2+1
  4395 + ik1=(k1+1)/2+1
  4396 + m1=u+k1
  4397 + do n=ns,nodr
  4398 + nu=n*(n+1)+m
  4399 + n1s=max(1,abs(m1),n-nodrw)
  4400 + n1e=min(nodr,n+nodrw)
  4401 + do n1=n1s,n1e
  4402 + cin=ci**(n-n1)
  4403 + nu1=n1*(n1+1)+m1
  4404 + fl=-fnr(n+n+1)*fnr(n1+n1+1)*dble(w+w+1)
  4405 + do p=1,2
  4406 + do p1=1,2
  4407 + a=bm(ik,nu,p)*cin*fl*conjg(bm(ik1,nu1,p1))
  4408 + dm(u,ku,n,p,n1,p1)=dm(u,ku,n,p,n1,p1)+a
  4409 + enddo
  4410 + enddo
  4411 + enddo
  4412 + enddo
  4413 + enddo
  4414 + enddo
  4415 + enddo
  4416 + deallocate(tc)
  4417 + call ms_mpi(mpi_command='barrier')
  4418 + call ms_mpi(mpi_command='allreduce',mpi_recv_buf_dc=dm,&
  4419 + mpi_number=sizedm,mpi_operation=ms_mpi_sum)
  4420 + if(rank.eq.0) then
  4421 + time2=mytime()-time1
  4422 + call timewrite(iunit,' d matrix time:',time2)
  4423 + time1=mytime()
  4424 + endif
  4425 +!
  4426 +! compute the expansion coefficients
  4427 +!
  4428 + aw=0.d0
  4429 + bw=0.d0
  4430 + cw=0.d0
  4431 + dw=0.d0
  4432 + do w=0,nodrw
  4433 + do n=1,nodr
  4434 + n1s=max(1,abs(n-w))
  4435 + n1e=min(nodr,n+w)
  4436 + do n1=n1s,n1e
  4437 + do k=1,3
  4438 + do p=1,2
  4439 + do p1=1,2
  4440 + fm(k,n,p,n1,p1)=0.
  4441 + enddo
  4442 + enddo
  4443 + enddo
  4444 + enddo
  4445 + enddo
  4446 + do u=-nodr-1,nodr+1
  4447 + do k=-1,1,2
  4448 + m=u+k
  4449 + ik=(k+1)/2+1
  4450 + ns=max(1,abs(m))
  4451 + do n=ns,nodr
  4452 + n1max=min(w+n,nodr)
  4453 + call vcfunc(m,n,0,w,vc)
  4454 + do n1=ns,nodr
  4455 + if((n+n1.lt.w).or.(abs(n-n1).gt.w)) cycle
  4456 + fl=-(-1)**n*vc(n1)*fnr(w+w+1)/fnr(n1+n1+1)
  4457 + do p=1,2
  4458 + do p1=1,2
  4459 + fm(ik,n,p,n1,p1)=fm(ik,n,p,n1,p1)+dm(u,ik,n,p,n1,p1)*fl
  4460 + enddo
  4461 + enddo
  4462 + enddo
  4463 + enddo
  4464 + enddo
  4465 + if(w.lt.2) cycle
  4466 + m=u+1
  4467 + m1=u-1
  4468 + ns=max(1,abs(m))
  4469 + n1s=max(1,abs(m1))
  4470 + do n=ns,nodr
  4471 + n1max=min(w+n,nodr)
  4472 + call vcfunc(m,n,-2,w,vc)
  4473 + do n1=n1s,nodr
  4474 + if((n+n1.lt.w).or.(abs(n-n1).gt.w)) cycle
  4475 + fl=-(-1)**n*vc(n1)*fnr(w+w+1)/fnr(n1+n1+1)
  4476 + do p=1,2
  4477 + do p1=1,2
  4478 + fm(3,n,p,n1,p1)=fm(3,n,p,n1,p1)+dm(u,3,n,p,n1,p1)*fl
  4479 + enddo
  4480 + enddo
  4481 + enddo
  4482 + enddo
  4483 + enddo
  4484 + do n=1,nodr
  4485 + n1s=max(1,abs(n-w))
  4486 + n1e=min(nodr,n+w)
  4487 + in=(-1)**n
  4488 + n1max=min(w+n,nodr)
  4489 + call vcfunc(1,n,0,w,vc)
  4490 + do n1=n1s,n1e
  4491 + fl=2.d0*in*vc(n1)*fnr(w+w+1)/fnr(n1+n1+1)
  4492 + i=mod(n+n1-w,2)+1
  4493 + do p=1,2
  4494 + p1=(2-i)*p+(i-1)*(3-p)
  4495 + do k=-1,1,2
  4496 + ik=(k+1)/2+1
  4497 + aw(0,k,w)=aw(0,k,w)+fm(ik,n,p,n1,p1)*fl
  4498 + bw(0,k,w)=bw(0,k,w)+fm(ik,n,p,n1,3-p1)*fl
  4499 + enddo
  4500 + bw(2,0,w)=bw(2,0,w)+fm(3,n,p,n1,3-p1)*fl
  4501 + aw(2,0,w)=aw(2,0,w)+fm(3,n,p,n1,p1)*fl
  4502 + enddo
  4503 + enddo
  4504 + if(w.lt.2) cycle
  4505 + call vcfunc(1,n,-2,w,vc)
  4506 + do n1=n1s,n1e
  4507 + fl=2.d0*in*vc(n1)*fnr(w+w+1)/fnr(n1+n1+1)
  4508 + i=mod(n+n1-w,2)+1
  4509 + do p=1,2
  4510 + p1=(2-i)*p+(i-1)*(3-p)
  4511 + do k=-1,1,2
  4512 + ik=(k+1)/2+1
  4513 + aw(2,k,w)=aw(2,k,w)+fm(ik,n,p,n1,p1)*fl*(-1)**p1
  4514 + bw(2,k,w)=bw(2,k,w)+fm(ik,n,p,n1,3-p1)*fl*(-1)**(3-p1)
  4515 + enddo
  4516 + enddo
  4517 + fl2=2.*(-1)**(n1+w)*vc(n1)*fnr(w+w+1)/fnr(n1+n1+1)
  4518 + do p=1,2
  4519 + do p1=1,2
  4520 + cw(w)=cw(w)+fm(3,n,p,n1,p1)*fl*(-1)**p1
  4521 + dw(w)=dw(w)+fm(3,n,p,n1,p1)*fl2*(-1)**p
  4522 + enddo
  4523 + enddo
  4524 + enddo
  4525 + enddo
  4526 + enddo
  4527 + do w=0,nodrw
  4528 + do k=-1,1
  4529 + do i=0,2
  4530 + aw(i,k,w)=aw(i,k,w)*2./xv/xv
  4531 + bw(i,k,w)=bw(i,k,w)*2./xv/xv
  4532 + enddo
  4533 + enddo
  4534 + cw(w)=cw(w)*2./xv/xv
  4535 + dw(w)=dw(w)*2./xv/xv
  4536 + enddo
  4537 + do n=0,nodrw
  4538 + sm(1,1,n)=aw(0,-1,n)+aw(0,1,n)
  4539 + sm(1,2,n)=aw(2,-1,n)+aw(2,1,n)
  4540 + sm(1,3,n)=2.d0*dimag(aw(2,0,n))
  4541 + sm(1,4,n)=aw(0,1,n)-aw(0,-1,n)
  4542 + sm(2,2,n)=dw(n)
  4543 + sm(2,3,n)=dimag(dw(n))
  4544 + sm(2,4,n)=aw(2,1,n)-aw(2,-1,n)
  4545 + sm(3,2,n)=dimag(cw(n))
  4546 + sm(3,3,n)=cw(n)
  4547 + sm(3,4,n)=dimag(bw(2,-1,n)-bw(2,1,n))
  4548 + sm(4,4,n)=bw(0,1,n)-bw(0,-1,n)
  4549 + enddo
  4550 +!
  4551 +! normalization
  4552 +!
  4553 + qsca0=sm(1,1,0)
  4554 + do n=0,nodrw
  4555 + sm(1,1,n)=sm(1,1,n)/qsca0
  4556 + sm(1,2,n)=sm(1,2,n)/qsca0
  4557 + sm(1,3,n)=sm(1,3,n)/qsca0
  4558 + sm(1,4,n)=sm(1,4,n)/qsca0
  4559 + sm(2,2,n)=sm(2,2,n)/qsca0
  4560 + sm(2,3,n)=sm(2,3,n)/qsca0
  4561 + sm(2,4,n)=sm(2,4,n)/qsca0
  4562 + sm(3,2,n)=sm(3,2,n)/qsca0
  4563 + sm(3,3,n)=sm(3,3,n)/qsca0
  4564 + sm(3,4,n)=sm(3,4,n)/qsca0
  4565 + sm(4,4,n)=sm(4,4,n)/qsca0
  4566 + enddo
  4567 + call ms_mpi(mpi_command='barrier')
  4568 + if(rank.eq.0) then
  4569 + time2=mytime()-time1
  4570 + call timewrite(iunit,' scat matrix coef time:',time2)
  4571 + endif
  4572 + deallocate(windex,vindex,wvindex,wvnum,dm)
  4573 + end subroutine ranorientscatmatrix
  4574 +!
  4575 +! calculation of the RO scattering matrix from the GSF expansion
  4576 +!
  4577 +!
  4578 +! original: 15 January 2011
  4579 +! revised: 21 February 2011: changed normalization on S11
  4580 +!
  4581 + subroutine ranorienscatmatrixcalc(nt,tmin,tmax,iscale,smc,nodrexp,sm)
  4582 + use specialfuncs
  4583 + use numconstants
  4584 + implicit none
  4585 + integer :: nt,iscale,nodrexp,i,j,k,n,nn0,nnp2,nnm2
  4586 + real(8) :: tmin,tmax,smc(4,4,0:nodrexp),sm(4,4,nt),dc(-2:2,0:nodrexp*(nodrexp+2)), &
  4587 + ct,th,qsca
  4588 + do i=1,nt
  4589 + if(nt.eq.1) then
  4590 + th=tmin
  4591 + else
  4592 + th=tmin+(tmax-tmin)*dble(i-1)/dble(nt-1)
  4593 + endif
  4594 + ct=cos(th*pi/180.d0)
  4595 +!
  4596 +! dc is the normalized generalized spherical function
  4597 +! dc(k,n*(n+1)+m) = ((n-k)!(n+m)!/(n+k)!/(n-m)!)^(1/2) D^k_{mn},
  4598 +! where D^k_{mn} is defined in M&M JOSA 96
  4599 +!
  4600 + call rotcoef(ct,2,nodrexp,dc)
  4601 + do j=1,4
  4602 + do k=j,4
  4603 + sm(j,k,i)=0.d0
  4604 + enddo
  4605 + enddo
  4606 + do n=0,nodrexp
  4607 + nn0=n*(n+1)
  4608 + nnp2=nn0+2
  4609 + nnm2=nn0-2
  4610 + sm(1,1,i)=sm(1,1,i)+dc(0,nn0)*smc(1,1,n)
  4611 + sm(1,4,i)=sm(1,4,i)+dc(0,nn0)*smc(1,4,n)
  4612 + sm(4,4,i)=sm(4,4,i)+dc(0,nn0)*smc(4,4,n)
  4613 + if(n.ge.2) then
  4614 + sm(1,2,i)=sm(1,2,i)+dc(2,nn0)*smc(1,2,n)
  4615 + sm(2,4,i)=sm(2,4,i)+dc(2,nn0)*smc(2,4,n)
  4616 + sm(3,4,i)=sm(3,4,i)+dc(2,nn0)*smc(3,4,n)
  4617 + sm(1,3,i)=sm(1,3,i)+dc(2,nn0)*smc(1,3,n)
  4618 + sm(2,2,i)=sm(2,2,i)+dc(2,nnm2)*smc(2,2,n)+dc(2,nnp2)*smc(3,3,n)
  4619 + sm(2,3,i)=sm(2,3,i)+dc(2,nnp2)*smc(2,3,n)+dc(2,nnp2)*smc(3,2,n)
  4620 + sm(3,3,i)=sm(3,3,i)-dc(2,nnm2)*smc(2,2,n)+dc(2,nnp2)*smc(3,3,n)
  4621 + endif
  4622 + enddo
  4623 +!
  4624 +! discontiued scaling option: now done in main program
  4625 +!
  4626 +! if(iscale.eq.1) then
  4627 +! do j=1,4
  4628 +! do k=j,4
  4629 +! if(j.ne.1.or.k.ne.1) then
  4630 +! sm(j,k,i)=sm(j,k,i)/sm(1,1,i)
  4631 +! endif
  4632 +! enddo
  4633 +! enddo
  4634 +! endif
  4635 +!
  4636 +! here are the VV and HH differential cross sections
  4637 +!
  4638 +! gvv=.25*(sm(1,1)+sm(2,2)-2.*sm(1,2))
  4639 +! ghh=.25*(sm(1,1)+sm(2,2)+2.*sm(1,2))
  4640 +!
  4641 + enddo
  4642 + return
  4643 + end subroutine ranorienscatmatrixcalc
  4644 + end module scatprops
  4645 +!
  4646 +! module nearfield contains local data and subroutines for near field calculation
  4647 +!
  4648 +!
  4649 +! last revised: 15 January 2011
  4650 +! 30 March 2011: added optical activity
  4651 +!
  4652 + module nearfield
  4653 + implicit none
  4654 + integer, private :: axialinc,ndimpw,nodrpwmax
  4655 + integer, private, allocatable :: nblk_nf(:),noff_nf(:)
  4656 + real(8), private :: rplotmax
  4657 + complex(8), allocatable, private :: amnp_nf(:),cmnp_nf(:),pmnp_nf(:), &
  4658 + amn3mp_nf(:),cmn3mp_nf(:),pmn3mp_nf(:)
  4659 + contains
  4660 +!
  4661 +! nearfieldspherepart calculates the field at point xg generated by the spheres
  4662 +!
  4663 +!
  4664 +! last revised: 15 January 2011
  4665 +! 30 March 2011: added optical activity
  4666 +!
  4667 + subroutine nearfieldspherepart(xg,nsphere,xsp,rpos,ri,&
  4668 + nodr,neqns,insphere,efield,hfield)
  4669 + use specialfuncs
  4670 + use numconstants
  4671 + implicit none
  4672 + integer :: nsphere,nodr(nsphere),neqns,i,insphere,nblki,n
  4673 + real(8) :: xg(3),xsp(nsphere),rpos(3,nsphere),x(3),r
  4674 + complex(8) :: ri(2,nsphere),vwh(3,neqns),efield(3),hfield(3),ri0,cn1,cn2
  4675 + complex(8), allocatable :: vwhleft(:,:,:),vwhright(:,:,:)
  4676 +
  4677 +!
  4678 +! find if the point is inside a sphere
  4679 +!
  4680 + insphere=0
  4681 + do i=1,nsphere
  4682 + x=xg(:)-rpos(:,i)
  4683 + r=sqrt(dot_product(x,x))
  4684 + if(r.le.xsp(i)) then
  4685 + insphere=i
  4686 + exit
  4687 + endif
  4688 + enddo
  4689 +!
  4690 +! do the calculations
  4691 +!
  4692 + if(insphere.eq.0) then
  4693 +!
  4694 +! outside a sphere: field = scattered
  4695 +!
  4696 + do i=1,nsphere
  4697 + x=xg(:)-rpos(:,i)
  4698 + ri0=(1.d0,0.d0)
  4699 + call vwhcalc(x,ri0,nodr(i),3,vwh(1:3,noff_nf(i)+1:noff_nf(i)+nblk_nf(i)))
  4700 + enddo
  4701 + efield(:)=matmul(vwh(:,1:neqns),amnp_nf(1:neqns))
  4702 + hfield(:)=matmul(vwh(:,1:neqns),amn3mp_nf(1:neqns))/dcmplx(0.d0,1.d0)
  4703 + else
  4704 +!
  4705 +! inside a sphere: field = internal
  4706 +!
  4707 + i=insphere
  4708 + if(abs(ri(1,i)-ri(2,i)).eq.0) then
  4709 + x=xg(:)-rpos(:,i)
  4710 + call vwhcalc(x,ri(1,i),nodr(i),1,vwh)
  4711 + efield(:)=matmul(vwh(:,1:nblk_nf(i)), &
  4712 + cmnp_nf(noff_nf(i)+1:noff_nf(i)+nblk_nf(i)))
  4713 + hfield(:)=matmul(vwh(:,1:nblk_nf(i)), &
  4714 + cmn3mp_nf(noff_nf(i)+1:noff_nf(i)+nblk_nf(i)))*ri(1,i)/dcmplx(0.d0,1.d0)
  4715 + else
  4716 + nblki=nodr(i)*(nodr(i)+2)
  4717 + allocate(vwhleft(3,2,nblki),vwhright(3,2,nblki))
  4718 + x=xg(:)-rpos(:,i)
  4719 + call vwhcalc(x,ri(1,i),nodr(i),1,vwhleft)
  4720 + call vwhcalc(x,ri(2,i),nodr(i),1,vwhright)
  4721 + efield=0.d0
  4722 + hfield=0.d0
  4723 + do n=1,nblki
  4724 + cn1=cmnp_nf(noff_nf(i)+2*n-1)
  4725 + cn2=cmnp_nf(noff_nf(i)+2*n)
  4726 + efield(:)=efield(:)+(vwhleft(:,1,n)+vwhleft(:,2,n))*cn1 &
  4727 + +(vwhright(:,1,n)-vwhright(:,2,n))*cn2
  4728 + hfield(:)=hfield(:)+((vwhleft(:,2,n)+vwhleft(:,1,n))*cn1*ri(1,i) &
  4729 + +(vwhright(:,2,n)-vwhright(:,1,n))*cn2*ri(2,i))/dcmplx(0.d0,1.d0)
  4730 + enddo
  4731 + deallocate(vwhleft,vwhright)
  4732 + endif
  4733 + endif
  4734 + end subroutine nearfieldspherepart
  4735 +!
  4736 +! nearfieldincidentpart calculates the incident field at point xg using a regular
  4737 +! vswh expansion
  4738 +!
  4739 +!
  4740 +! last revised: 15 January 2011
  4741 +!
  4742 + subroutine nearfieldincidentpart(xg,nodrpw,efield,hfield)
  4743 + use specialfuncs
  4744 + use numconstants
  4745 + implicit none
  4746 + integer :: nblkpw,nodrpw
  4747 + real(8) :: xg(3),r,epspw
  4748 + complex(8) :: vwhpw(3,nodrpw*(nodrpw+2)*2),vwhpwaxial(3,4*nodrpw), &
  4749 + efield(3),hfield(3)
  4750 +!
  4751 +! oblique incidence: use the full expansion
  4752 +!
  4753 + if(axialinc.eq.0) then
  4754 + call vwhcalc(xg,(1.d0,0.d0),nodrpw,1,vwhpw)
  4755 + nblkpw=nodrpw*(nodrpw+2)*2
  4756 + efield(:)=matmul(vwhpw(:,1:nblkpw),pmnp_nf(1:nblkpw))
  4757 + hfield(:)=matmul(vwhpw(:,1:nblkpw),pmn3mp_nf(1:nblkpw))/dcmplx(0.d0,1.d0)
  4758 + else
  4759 +!
  4760 +! axial incidence: use the shortcut
  4761 +!
  4762 + call vwhaxialcalc(xg,(1.d0,0.d0),nodrpw,1,vwhpwaxial)
  4763 + nblkpw=4*nodrpw
  4764 + efield(:)=matmul(vwhpwaxial(:,1:nblkpw),pmnp_nf(1:nblkpw))
  4765 + hfield(:)=matmul(vwhpwaxial(:,1:nblkpw),pmn3mp_nf(1:nblkpw))/dcmplx(0.d0,1.d0)
  4766 + endif
  4767 + end subroutine nearfieldincidentpart
  4768 +!
  4769 +! nearfieldincidentcoef generates the reshaped array of incident field coefficients
  4770 +!
  4771 +!
  4772 +! last revised: 15 January 2011
  4773 +!
  4774 + subroutine nearfieldincidentcoef(nodrpw,alpha,beta,gamma,cbeam,epspw)
  4775 + use specialfuncs
  4776 + use spheredata
  4777 + use miecoefdata
  4778 + use numconstants
  4779 + implicit none
  4780 + integer :: m,n,p,nn1,mn,mnp,nodrpw
  4781 + real (8) :: alpha,beta,cbeam,gamma,epspw,cgamma,sgamma
  4782 + complex(8), allocatable :: pmnp0(:,:,:,:)
  4783 + allocate(pmnp0(0:nodrpw+1,nodrpw,2,2))
  4784 + if(allocated(pmnp_nf)) deallocate(pmnp_nf,pmn3mp_nf)
  4785 + if(beta.ne.0.d0) then
  4786 + axialinc=0
  4787 + ndimpw=2*nodrpw*(nodrpw+2)
  4788 + else
  4789 + axialinc=1
  4790 + ndimpw=4*nodrpw
  4791 + endif
  4792 + allocate(pmnp_nf(ndimpw),pmn3mp_nf(ndimpw))
  4793 + if(cbeam.eq.0.d0) then
  4794 + call planewavecoef(alpha,beta,nodrpw,pmnp0)
  4795 + else
  4796 + call gaussianbeamcoef(alpha,beta,cbeam,nodrpw,pmnp0)
  4797 + endif
  4798 + cgamma=cos(gamma)
  4799 + sgamma=sin(gamma)
  4800 + if(axialinc.eq.0) then
  4801 + do n=1,nodrpw
  4802 + nn1=n*(n+1)
  4803 + do p=1,2
  4804 + do m=-n,-1
  4805 + mn=nn1+m
  4806 + mnp=2*(mn-1)+p
  4807 + pmnp_nf(mnp)=pmnp0(n+1,-m,p,1)*cgamma+pmnp0(n+1,-m,p,2)*sgamma
  4808 + pmn3mp_nf(mnp)=pmnp0(n+1,-m,3-p,1)*cgamma+pmnp0(n+1,-m,3-p,2)*sgamma
  4809 + enddo
  4810 + do m=0,n
  4811 + mn=nn1+m
  4812 + mnp=2*(mn-1)+p
  4813 + pmnp_nf(mnp)=pmnp0(m,n,p,1)*cgamma+pmnp0(m,n,p,2)*sgamma
  4814 + pmn3mp_nf(mnp)=pmnp0(m,n,3-p,1)*cgamma+pmnp0(m,n,3-p,2)*sgamma
  4815 + enddo
  4816 + enddo
  4817 + enddo
  4818 + else
  4819 + do n=1,nodrpw
  4820 + do p=1,2
  4821 + mnp=4*(n-1)+p
  4822 + pmnp_nf(mnp)=pmnp0(n+1,1,p,1)*cgamma+pmnp0(n+1,1,p,2)*sgamma
  4823 + pmn3mp_nf(mnp)=pmnp0(n+1,1,3-p,1)*cgamma+pmnp0(n+1,1,3-p,2)*sgamma
  4824 + pmnp_nf(mnp+2)=pmnp0(1,n,p,1)*cgamma+pmnp0(1,n,p,2)*sgamma
  4825 + pmn3mp_nf(mnp+2)=pmnp0(1,n,3-p,1)*cgamma+pmnp0(1,n,3-p,2)*sgamma
  4826 + enddo
  4827 + enddo
  4828 + endif
  4829 + deallocate(pmnp0)
  4830 + end subroutine nearfieldincidentcoef
  4831 +!
  4832 +! nearfieldpointcalc: if newcalc = 1, generates the reshaped incident, scattered, and
  4833 +! internal field coefficients, and returns with newcalc=0
  4834 +! if newcalc = 0, generates the field at point xg
  4835 +!
  4836 +!
  4837 +! last revised: 15 January 2011
  4838 +! 30 March 2011: added optical activity
  4839 +!
  4840 + subroutine nearfieldpointcalc(neqns,nsphere,nodr,alpha,beta,cbeam,xsp,rpos,ri,amnp, &
  4841 + gamma,epspw,xg,newcalc,efield,hfield)
  4842 + use specialfuncs
  4843 + use spheredata
  4844 + use miecoefdata
  4845 + use numconstants
  4846 + implicit none
  4847 + integer :: nsphere,neqns,nodr(nsphere),i,j,k,m,n,p,nn1,mn,nodrpw,newcalc, &
  4848 + insphere
  4849 + real (8) :: alpha,beta,cbeam,xsp(nsphere),rpos(3,nsphere),xg(3),xgp(3), &
  4850 + gamma,epspw,rplot,cgamma,sgamma
  4851 + complex(8) :: amnp(neqns,2),ri(2,nsphere),efield(3),hfield(3),einc(3),hinc(3),ri0, &
  4852 + ct1,ct2
  4853 + complex(8), allocatable :: pmnp0(:,:,:,:),cnmie(:,:,:),amnpt(:,:),cmnpt(:,:)
  4854 +!
  4855 +! initialization operations: newcalc=1
  4856 +!
  4857 + if(newcalc.eq.1) then
  4858 + if(allocated(amnp_nf)) deallocate(amnp_nf,cmnp_nf,amn3mp_nf,cmn3mp_nf, &
  4859 + noff_nf,nblk_nf)
  4860 + allocate(amnp_nf(neqns),cmnp_nf(neqns),amn3mp_nf(neqns),cmn3mp_nf(neqns), &
  4861 + noff_nf(nsphere),nblk_nf(nsphere))
  4862 + noff_nf(1)=0
  4863 + do i=1,nsphere
  4864 + nblk_nf(i)=2*nodr(i)*(nodr(i)+2)
  4865 + if(i.lt.nsphere) noff_nf(i+1)=noff_nf(i)+nblk_nf(i)
  4866 + enddo
  4867 + cgamma=cos(gamma)
  4868 + sgamma=sin(gamma)
  4869 + do i=1,nsphere
  4870 + ri0=2.d0/(1.d0/ri(1,i)+1.d0/ri(2,i))
  4871 + allocate(pmnp0(0:nodr(i)+1,nodr(i),2,2),cnmie(2,2,nodr(i)),&
  4872 + amnpt(2,nodr(i)*(nodr(i)+2)),cmnpt(2,nodr(i)*(nodr(i)+2)))
  4873 + call getmiedata(which_sphere=i,sphere_int_mie_coefficients=cnmie)
  4874 + do p=1,2
  4875 + pmnp0(0:nodr(i)+1,1:nodr(i),1:2,p) &
  4876 + =reshape(amnp(noff_nf(i)+1:noff_nf(i)+nblk_nf(i),p),(/nodr(i)+2,nodr(i),2/))
  4877 + enddo
  4878 + if(abs(ri(1,i)-ri(2,i)).gt.1.d-10) then
  4879 + do n=1,nodr(i)
  4880 + nn1=n*(n+1)
  4881 + do p=1,2
  4882 + do m=-n,-1
  4883 + mn=nn1+m
  4884 + amnpt(p,mn)=pmnp0(n+1,-m,p,1)*cgamma+pmnp0(n+1,-m,p,2)*sgamma
  4885 + enddo
  4886 + do m=0,n
  4887 + mn=nn1+m
  4888 + amnpt(p,mn)=pmnp0(m,n,p,1)*cgamma+pmnp0(m,n,p,2)*sgamma
  4889 + enddo
  4890 + enddo
  4891 + do m=-n,n
  4892 + mn=nn1+m
  4893 + ct1=amnpt(1,mn)*cnmie(1,1,n)+amnpt(2,mn)*cnmie(1,2,n)
  4894 + ct2=amnpt(1,mn)*cnmie(2,1,n)+amnpt(2,mn)*cnmie(2,2,n)
  4895 + cmnpt(1,mn)=ct1
  4896 + cmnpt(2,mn)=-(0.d0,1.d0)/ri0*ct2
  4897 + enddo
  4898 + enddo
  4899 + else
  4900 + do n=1,nodr(i)
  4901 + nn1=n*(n+1)
  4902 + do p=1,2
  4903 + do m=-n,-1
  4904 + mn=nn1+m
  4905 + amnpt(p,mn)=pmnp0(n+1,-m,p,1)*cgamma+pmnp0(n+1,-m,p,2)*sgamma
  4906 + cmnpt(p,mn)=amnpt(p,mn)*cnmie(p,p,n)
  4907 + enddo
  4908 + do m=0,n
  4909 + mn=nn1+m
  4910 + amnpt(p,mn)=pmnp0(m,n,p,1)*cgamma+pmnp0(m,n,p,2)*sgamma
  4911 + cmnpt(p,mn)=amnpt(p,mn)*cnmie(p,p,n)
  4912 + enddo
  4913 + enddo
  4914 + enddo
  4915 + endif
  4916 + amnp_nf(noff_nf(i)+1:noff_nf(i)+nblk_nf(i))= &
  4917 + reshape(amnpt(1:2,1:nodr(i)*(nodr(i)+2)),(/nblk_nf(i)/))
  4918 + cmnp_nf(noff_nf(i)+1:noff_nf(i)+nblk_nf(i))= &
  4919 + reshape(cmnpt(1:2,1:nodr(i)*(nodr(i)+2)),(/nblk_nf(i)/))
  4920 + amn3mp_nf(noff_nf(i)+1:noff_nf(i)+nblk_nf(i))= &
  4921 + reshape(amnpt(2:1:-1,1:nodr(i)*(nodr(i)+2)),(/nblk_nf(i)/))
  4922 + cmn3mp_nf(noff_nf(i)+1:noff_nf(i)+nblk_nf(i))= &
  4923 + reshape(cmnpt(2:1:-1,1:nodr(i)*(nodr(i)+2)),(/nblk_nf(i)/))
  4924 + deallocate(pmnp0,cnmie,amnpt,cmnpt)
  4925 + enddo
  4926 + rplot=sqrt(dot_product(xg,xg))
  4927 + rplotmax=rplot
  4928 + call planewavetruncationorder(rplot,epspw,nodrpw)
  4929 + nodrpwmax=nodrpw
  4930 + call nearfieldincidentcoef(nodrpw,alpha,beta,gamma,cbeam,epspw)
  4931 + newcalc=0
  4932 + return
  4933 + endif
  4934 +!
  4935 +! point calculation operations: newcalc=0
  4936 +! first determine the required order of the incident field expansion, and recalculate
  4937 +! field coefficients, if necessary
  4938 +!
  4939 + rplot=sqrt(dot_product(xg,xg))
  4940 + rplotmax=max(rplot,rplotmax)
  4941 + call planewavetruncationorder(rplot,epspw,nodrpw)
  4942 + if(nodrpw.gt.nodrpwmax) then
  4943 + nodrpwmax=nodrpw
  4944 + call nearfieldincidentcoef(nodrpw,alpha,beta,gamma,cbeam,epspw)
  4945 + endif
  4946 + efield=0.d0
  4947 + hfield=0.d0
  4948 +!
  4949 +! calculate the sphere contribution to the field
  4950 +!
  4951 + call nearfieldspherepart(xg,nsphere,xsp,rpos,ri,&
  4952 + nodr,neqns,insphere,efield,hfield)
  4953 +!
  4954 +! if the point is external to the spheres, calculate the incident field
  4955 +!
  4956 + if(insphere.eq.0) then
  4957 + call nearfieldincidentpart(xg,nodrpw,einc,hinc)
  4958 + efield=efield+einc
  4959 + hfield=hfield+hinc
  4960 + endif
  4961 + end subroutine nearfieldpointcalc
  4962 +!
  4963 +! nearfieldgridcalc is an MPI--enabled subroutine for calculating field points on a
  4964 +! rectangular grid. Writes the data to nfoutunit.
  4965 +!
  4966 +!
  4967 +! last revised: 15 January 2011
  4968 +! 30 March 2011: added optical activity
  4969 +! changed so that input positions are defined relative to sphere position file origin, and
  4970 +! not the gb focal point.
  4971 +!
  4972 + subroutine nearfieldgridcalc(neqns,nsphere,nodr,alpha,beta,cbeam,xsp,rpos,ri,amnp, &
  4973 + nfplane,nfplanepos0,nfplanevert0,gbfocus,deltax,gamma,nfoutunit,epspw, &
  4974 + nfoutdata,runprintunit)
  4975 + use mpidefs
  4976 + use mpidata
  4977 + use intrinsics
  4978 + use specialfuncs
  4979 + use spheredata
  4980 + use miecoefdata
  4981 + use numconstants
  4982 + implicit none
  4983 + integer :: nsphere,neqns,nodr(nsphere),nfplane,runprintunit,npoints1,npoints2, &
  4984 + npoints,i,j,k,np23,gcoord(3),rank,numprocs,nrowperproc,nrowrem, &
  4985 + npoints1by5,plotincfield,nsp,nfoutunit,nfoutdata,newcalc
  4986 + real (8) :: alpha,beta,cbeam,xsp(nsphere),rpos(3,nsphere),nfplanepos,&
  4987 + nfplanevert(2,2),frowperproc,rowsum,xg(3),xgp(3),deltax,gamma,epspw, &
  4988 + time1,time2,xplot(3,nsphere),xi0,ri0,esquare,xgpmax(3),rplot, &
  4989 + gbfocus(3),nfplanepos0,nfplanevert0(2,2)
  4990 + complex(8) :: amnp(neqns,2),ri(2,nsphere),efield(3),hfield(3)
  4991 + integer, allocatable :: efindex(:),efnum(:)
  4992 + complex(8), allocatable :: efieldrow(:,:),efieldrowt(:,:),hfieldrow(:,:),hfieldrowt(:,:)
  4993 + call ms_mpi(mpi_command='size',mpi_size=numprocs)
  4994 + call ms_mpi(mpi_command='rank',mpi_rank=rank)
  4995 +!
  4996 +! determine the plane
  4997 +!
  4998 + if(nfplane.eq.1) then
  4999 + gcoord=(/2,3,1/)
  5000 + elseif(nfplane.eq.2) then
  5001 + gcoord=(/3,1,2/)
  5002 + else
  5003 + gcoord=(/1,2,3/)
  5004 + endif
  5005 +!
  5006 +! shift the coordinates to gb focal origin
  5007 +!
  5008 + nfplanevert(1,1)=nfplanevert0(1,1)-gbfocus(gcoord(1))
  5009 + nfplanevert(1,2)=nfplanevert0(1,2)-gbfocus(gcoord(1))
  5010 + nfplanevert(2,1)=nfplanevert0(2,1)-gbfocus(gcoord(2))
  5011 + nfplanevert(2,2)=nfplanevert0(2,2)-gbfocus(gcoord(2))
  5012 + nfplanepos=nfplanepos0-gbfocus(gcoord(3))
  5013 + xg(gcoord(3))=nfplanepos
  5014 +!
  5015 +! determine the number of points
  5016 +!
  5017 + npoints1=nint((nfplanevert(1,2)-nfplanevert(1,1))/deltax)+1
  5018 + npoints2=nint((nfplanevert(2,2)-nfplanevert(2,1))/deltax)+1
  5019 + npoints=npoints1*npoints2
  5020 +!
  5021 +! find the maximum point-to-target origin distance and initialize the field calculation
  5022 +!
  5023 + xgp(3)=nfplanepos
  5024 + rplotmax=0.d0
  5025 + xgpmax=0.d0
  5026 + do i=1,npoints1
  5027 + xgp(1)=nfplanevert(1,1)+deltax*dble(i-1)
  5028 + do j=1,npoints2
  5029 + xgp(2)=nfplanevert(2,1)+deltax*dble(j-1)
  5030 + rplot=sqrt(dot_product(xgp,xgp))
  5031 + if(rplot.gt.rplotmax) then
  5032 + rplotmax=rplot
  5033 + xgpmax=xgp
  5034 + endif
  5035 + enddo
  5036 + enddo
  5037 + newcalc=1
  5038 + call nearfieldpointcalc(neqns,nsphere,nodr,alpha,beta,cbeam,xsp,rpos,ri,amnp, &
  5039 + gamma,epspw,xgpmax,newcalc,efield,hfield)
  5040 +!
  5041 +! determine the intersecting spheres
  5042 +!
  5043 + nsp=0
  5044 + do i=1,nsphere
  5045 + xi0=abs(rpos(gcoord(3),i)-xg(gcoord(3)))
  5046 + if(xi0.le.xsp(i)) then
  5047 + nsp=nsp+1
  5048 + xplot(1,nsp)=rpos(gcoord(1),i)+gbfocus(gcoord(1))
  5049 + xplot(2,nsp)=rpos(gcoord(2),i)+gbfocus(gcoord(2))
  5050 + ri0=xsp(i)*xsp(i)-xi0*xi0
  5051 + if(ri0.ne.0.) ri0=sqrt(ri0)
  5052 + xplot(3,nsp)=ri0
  5053 + endif
  5054 + enddo
  5055 +!
  5056 +! report to runprintunit
  5057 +!
  5058 + if(rank.eq.0) then
  5059 + write(runprintunit,'('' near field calculations'')')
  5060 + write(runprintunit,'('' plane, position:'',i5,f9.3)') nfplane,nfplanepos0
  5061 + write(runprintunit,'('' rectangular plot vertices:'')')
  5062 + write(runprintunit,'('' min:'',3f9.3)') nfplanevert0(1:2,1)
  5063 + write(runprintunit,'('' max:'',3f9.3)') nfplanevert0(1:2,2)
  5064 + write(runprintunit,'('' number of plotting points, step size:'',i8,f8.3)') npoints, deltax
  5065 + write(runprintunit,'('' max plane wave order:'',i5)') nodrpwmax
  5066 + endif
  5067 +!
  5068 +! determine the distribution of work among the processors
  5069 +!
  5070 + allocate(efindex(0:numprocs-1),efnum(0:numprocs-1), &
  5071 + efieldrow(3,npoints2),efieldrowt(3,npoints2), &
  5072 + hfieldrow(3,npoints2),hfieldrowt(3,npoints2))
  5073 + np23=3*npoints2
  5074 + frowperproc=dble(npoints2)/dble(numprocs)
  5075 + rowsum=0.
  5076 + do i=0,numprocs-1
  5077 + efindex(i)=floor(rowsum)
  5078 + rowsum=rowsum+frowperproc
  5079 + enddo
  5080 + do i=0,numprocs-2
  5081 + efnum(i)=efindex(i+1)-efindex(i)
  5082 + enddo
  5083 + efnum(numprocs-1)=npoints2-efindex(numprocs-1)
  5084 + npoints1by5=int(npoints1/5.+.5)
  5085 +!
  5086 +! do the calculations and write the results to the file
  5087 +!
  5088 + if(rank.eq.0) then
  5089 + write(nfoutunit,*) npoints1,npoints2
  5090 + write(nfoutunit,*) nsp
  5091 + do i=1,nsp
  5092 + write(nfoutunit,'(3e13.5)') xplot(1,i),xplot(2,i),xplot(3,i)
  5093 + enddo
  5094 + time1=mytime()
  5095 + endif
  5096 + xg(gcoord(3))=nfplanepos
  5097 + newcalc=0
  5098 + do i=1,npoints1
  5099 + xg(gcoord(1))=nfplanevert(1,1)+deltax*dble(i-1)
  5100 + xgp(gcoord(1))=nfplanevert0(1,1)+deltax*dble(i-1)
  5101 + efieldrowt=0.d0
  5102 + efieldrow=0.d0
  5103 + hfieldrowt=0.d0
  5104 + hfieldrow=0.d0
  5105 + do j=efindex(rank)+1,efindex(rank)+efnum(rank)
  5106 + xg(gcoord(2))=nfplanevert(2,1)+deltax*dble(j-1)
  5107 + call nearfieldpointcalc(neqns,nsphere,nodr,alpha,beta,cbeam,xsp,rpos,ri,amnp, &
  5108 + gamma,epspw,xg,newcalc,efieldrowt(:,j),hfieldrowt(:,j))
  5109 + enddo
  5110 + call ms_mpi(mpi_command='barrier')
  5111 + call ms_mpi(mpi_command='reduce',mpi_send_buf_dc=efieldrowt,mpi_recv_buf_dc=efieldrow,&
  5112 + mpi_number=np23,mpi_rank=0,mpi_operation=ms_mpi_sum)
  5113 + if(nfoutdata.ge.2) then
  5114 + call ms_mpi(mpi_command='reduce',mpi_send_buf_dc=hfieldrowt,mpi_recv_buf_dc=hfieldrow,&
  5115 + mpi_number=np23,mpi_rank=0,mpi_operation=ms_mpi_sum)
  5116 + endif
  5117 + if(rank.eq.0) then
  5118 + do j=1,npoints2
  5119 + xgp(gcoord(2))=nfplanevert0(2,1)+deltax*dble(j-1)
  5120 + if(nfoutdata.eq.0) then
  5121 + esquare=dot_product(efieldrow(:,j),efieldrow(:,j))
  5122 + write(nfoutunit,'(2f9.4,e13.5)') xgp(gcoord(1)),xgp(gcoord(2)),esquare
  5123 + elseif(nfoutdata.eq.1) then
  5124 + write(nfoutunit,'(2f9.4,6e13.5)') xgp(gcoord(1)),xgp(gcoord(2)),efieldrow(:,j)
  5125 + else
  5126 + write(nfoutunit,'(2f9.4,12e13.5)') xgp(gcoord(1)),xgp(gcoord(2)),efieldrow(:,j), &
  5127 + hfieldrow(:,j)
  5128 + endif
  5129 + enddo
  5130 + if(mod(i,npoints1by5).eq.0) then
  5131 + k=i/npoints1by5
  5132 + time2=(mytime()-time1)*dble(5-k)/dble(k)
  5133 + call timewrite(runprintunit,' estimated time remaining:',time2)
  5134 + endif
  5135 + endif
  5136 + enddo
  5137 + deallocate(efindex,efnum,efieldrow,efieldrowt,hfieldrow,hfieldrowt)
  5138 + end subroutine nearfieldgridcalc
  5139 +!
  5140 +! nearfieldaverage is an MPI--enabled subroutine for calculating average field
  5141 +! values along a line.
  5142 +!
  5143 + subroutine nearfieldaverage(neqns,nsphere,nodr,alpha,beta,cbeam,xsp,rpos,ri,amnp, &
  5144 + nfplane,nfplaneposstart0,nfplaneposend0,numberplanes,nfplanevert0,gbfocus, &
  5145 + deltax,gamma,epspw,runprintunit,efieldavez,hfieldavez,svecavez)
  5146 + use mpidefs
  5147 + use mpidata
  5148 + use intrinsics
  5149 + use specialfuncs
  5150 + use spheredata
  5151 + use miecoefdata
  5152 + use numconstants
  5153 + implicit none
  5154 + integer :: nsphere,neqns,nodr(nsphere),nfplane,runprintunit,npoints1,npoints2, &
  5155 + npoints,i,j,k,np23,gcoord(3),rank,numprocs,nrowperproc,nrowrem, &
  5156 + npoints1by5,plotincfield,nsp,nfoutunit,nfoutdata,newcalc,nsend
  5157 + integer :: numberplanes
  5158 + real (8) :: alpha,beta,cbeam,xsp(nsphere),rpos(3,nsphere),nfplanepos,&
  5159 + nfplanevert(2,2),frowperproc,rowsum,xg(3),xgp(3),deltax,gamma,epspw, &
  5160 + time1,time2,xplot(3,nsphere),xi0,ri0,esquare,xgpmax(3),rplot, &
  5161 + gbfocus(3),nfplanepos0,nfplanevert0(2,2),nfplaneposstart,nfplaneposend, &
  5162 + deltanfplane,nfplaneposstart0,nfplaneposend0,svec(3),svecave(3)
  5163 + real (8) :: svecavez(3,numberplanes)
  5164 + real(8), allocatable :: xypoint(:,:)
  5165 + complex(8) :: amnp(neqns,2),ri(2,nsphere),efield(3),hfield(3),hfieldave(3),efieldave(3)
  5166 + complex(8) :: efieldavez(3,numberplanes),hfieldavez(3,numberplanes)
  5167 + integer, allocatable :: efindex(:),efnum(:)
  5168 + call ms_mpi(mpi_command='size',mpi_size=numprocs)
  5169 + call ms_mpi(mpi_command='rank',mpi_rank=rank)
  5170 +!
  5171 +! determine the plane
  5172 +!
  5173 + if(nfplane.eq.1) then
  5174 + gcoord=(/2,3,1/)
  5175 + elseif(nfplane.eq.2) then
  5176 + gcoord=(/3,1,2/)
  5177 + else
  5178 + gcoord=(/1,2,3/)
  5179 + endif
  5180 +!
  5181 +! shift the coordinates to gb focal origin
  5182 +!
  5183 + nfplanevert(1,1)=nfplanevert0(1,1)-gbfocus(gcoord(1))
  5184 + nfplanevert(1,2)=nfplanevert0(1,2)-gbfocus(gcoord(1))
  5185 + nfplanevert(2,1)=nfplanevert0(2,1)-gbfocus(gcoord(2))
  5186 + nfplanevert(2,2)=nfplanevert0(2,2)-gbfocus(gcoord(2))
  5187 + nfplaneposstart=nfplaneposstart0-gbfocus(gcoord(3))
  5188 + nfplaneposend=nfplaneposend0-gbfocus(gcoord(3))
  5189 + xg(gcoord(3))=nfplanepos
  5190 +!
  5191 +! determine the number of points
  5192 +!
  5193 + npoints1=nint((nfplanevert(1,2)-nfplanevert(1,1))/deltax)+1
  5194 + npoints2=nint((nfplanevert(2,2)-nfplanevert(2,1))/deltax)+1
  5195 + npoints=npoints1*npoints2
  5196 + allocate(efindex(0:numprocs-1),efnum(0:numprocs-1),xypoint(2,npoints))
  5197 + frowperproc=dble(npoints)/dble(numprocs)
  5198 + rowsum=0.
  5199 + do i=0,numprocs-1
  5200 + efindex(i)=floor(rowsum)
  5201 + rowsum=rowsum+frowperproc
  5202 + enddo
  5203 + do i=0,numprocs-2
  5204 + efnum(i)=efindex(i+1)-efindex(i)
  5205 + enddo
  5206 + efnum(numprocs-1)=npoints-efindex(numprocs-1)
  5207 +
  5208 + xgp(gcoord(3))=max(abs(nfplaneposstart),abs(nfplaneposend))
  5209 + rplotmax=0.d0
  5210 + xgpmax=0.d0
  5211 + k=0
  5212 + do i=1,npoints1
  5213 + xgp(gcoord(1))=nfplanevert(1,1)+deltax*dble(i-1)
  5214 + do j=1,npoints2
  5215 + xgp(gcoord(2))=nfplanevert(2,1)+deltax*dble(j-1)
  5216 + k=k+1
  5217 + xypoint(1,k)=xgp(gcoord(1))
  5218 + xypoint(2,k)=xgp(gcoord(2))
  5219 + rplot=sqrt(dot_product(xgp,xgp))
  5220 + if(rplot.gt.rplotmax) then
  5221 + rplotmax=rplot
  5222 + xgpmax=xgp
  5223 + endif
  5224 + enddo
  5225 + enddo
  5226 + newcalc=1
  5227 + call nearfieldpointcalc(neqns,nsphere,nodr,alpha,beta,cbeam,xsp,rpos,ri,amnp, &
  5228 + gamma,epspw,xgpmax,newcalc,efield,hfield)
  5229 + newcalc=0
  5230 +
  5231 + do k=1,numberplanes
  5232 + if(numberplanes.eq.1) then
  5233 + nfplanepos=nfplaneposstart
  5234 + else
  5235 + nfplanepos=nfplaneposstart+(nfplaneposend-nfplaneposstart)*(k-1)/dble(numberplanes-1)
  5236 + endif
  5237 +!
  5238 +! find the maximum point-to-target origin distance and initialize the field calculation
  5239 +!
  5240 + xg(3)=nfplanepos
  5241 + efieldave=0.
  5242 + hfieldave=0.
  5243 + svecave=0.
  5244 + do i=efindex(rank)+1,efindex(rank)+efnum(rank)
  5245 + xg(gcoord(1))=xypoint(1,i)
  5246 + xg(gcoord(2))=xypoint(2,i)
  5247 + efield=0.d0
  5248 + hfield=0.d0
  5249 + call nearfieldpointcalc(neqns,nsphere,nodr,alpha,beta,cbeam,xsp,rpos,ri,amnp, &
  5250 + gamma,epspw,xg,newcalc,efield,hfield)
  5251 + efieldave=efieldave+efield
  5252 + hfieldave=hfieldave+hfield
  5253 + hfield=conjg(hfield)/2.d0
  5254 + svec(1)=-efield(3)*hfield(2)+efield(2)*hfield(3)
  5255 + svec(2)=efield(3)*hfield(1)-efield(1)*hfield(3)
  5256 + svec(3)=-efield(2)*hfield(1)+efield(1)*hfield(2)
  5257 + svecave=svecave+svec
  5258 + enddo
  5259 + call ms_mpi(mpi_command='barrier')
  5260 + efield=0.d0
  5261 + hfield=0.d0
  5262 + svec=0.d0
  5263 + call ms_mpi(mpi_command='reduce',mpi_send_buf_dc=efieldave,mpi_recv_buf_dc=efield,&
  5264 + mpi_number=3,mpi_rank=0,mpi_operation=ms_mpi_sum)
  5265 + call ms_mpi(mpi_command='reduce',mpi_send_buf_dc=hfieldave,mpi_recv_buf_dc=hfield,&
  5266 + mpi_number=3,mpi_rank=0,mpi_operation=ms_mpi_sum)
  5267 + call ms_mpi(mpi_command='reduce',mpi_send_buf_dp=svecave,mpi_recv_buf_dp=svec,&
  5268 + mpi_number=3,mpi_rank=0,mpi_operation=ms_mpi_sum)
  5269 + call ms_mpi(mpi_command='barrier')
  5270 + if(rank.eq.0) then
  5271 + efield=efield/dble(npoints)
  5272 + hfield=hfield/dble(npoints)
  5273 + svec=svec/dble(npoints)
  5274 + efieldavez(:,k)=efield
  5275 + hfieldavez(:,k)=hfield
  5276 + svecavez(:,k)=svec
  5277 + i=gcoord(3)
  5278 + write(runprintunit,'('' plane:'',i5,f9.3,2e12.4)') k,nfplanepos, &
  5279 + svec(i)
  5280 + call flush(runprintunit)
  5281 + endif
  5282 + enddo
  5283 + nsend=3*numberplanes
  5284 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dc=efieldavez, &
  5285 + mpi_number=nsend,mpi_rank=0)
  5286 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dc=hfieldavez, &
  5287 + mpi_number=nsend,mpi_rank=0)
  5288 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dp=svecavez, &
  5289 + mpi_number=nsend,mpi_rank=0)
  5290 + call ms_mpi(mpi_command='barrier')
  5291 +
  5292 + deallocate(efindex,efnum,xypoint)
  5293 + end subroutine nearfieldaverage
  5294 +
  5295 +
  5296 + end module nearfield
  5297 +!
  5298 +! module solver: subroutines for solving interaction equations for fixed orientation
  5299 +! and T matrix problems
  5300 +!
  5301 +!
  5302 +! last revised: 15 January 2011
  5303 +!
  5304 + module solver
  5305 + implicit none
  5306 +
  5307 + contains
  5308 +!
  5309 +! tmatrixsoln: calculation of T matrix via solution of interaction equations for
  5310 +! a generalized plane wave expansion
  5311 +!
  5312 +!
  5313 +! original: 15 January 2011
  5314 +! revised: 21 February 2011: call for sphereqeff changed
  5315 +!
  5316 + subroutine tmatrixsoln(neqns,nsphere,nodr,nodrt,xsp,rpos,epssoln,epscon,niter,&
  5317 + calctmatrix,tmatrixfile,fftranpresent,niterstep,qext,qabs,qsca,istat)
  5318 + use mpidefs
  5319 + use mpidata
  5320 + use intrinsics
  5321 + use numconstants
  5322 + use specialfuncs
  5323 + use miecoefdata
  5324 + use spheredata
  5325 + use translation
  5326 + use scatprops
  5327 + implicit none
  5328 + integer :: iter,niter,neqns,nsphere,nodr(nsphere),ntran(nsphere),nodrt, &
  5329 + nodrmax,i,ierr,istat,m,n,p,k,l,q,noff,nblk,ma,na,ka,la,mn,istart,iunit, &
  5330 + rank,iexit(1),calctmatrix,lt,kt,qt,nt,mt,it,nodrtt,lstart(1),numsolns,isoln, &
  5331 + isolnstart,igroup,ngroup,rgrank,lold,grank,nsend,nodrta(1), &
  5332 + fftranpresent,niterstep
  5333 + integer, allocatable :: lindex(:),kindex(:)
  5334 + real(8) :: eps,err,qext(nsphere),qabs(nsphere),qsca(nsphere),xsp(nsphere),xv, &
  5335 + rpos(3,nsphere),xij(3),qabsklq(nsphere),qscaklq(nsphere),qextklq(nsphere), &
  5336 + f2,qexttot,qabstot,qscatot,qextold(1),qscaold(1),errqe,errqs, &
  5337 + timetran,timesolve,time1,time2,epssoln,epscon,dtemp(4),timeorder,&
  5338 + at1,at2,at3,at4
  5339 + real(8) :: qextl(nsphere),qabsl(nsphere),qscal(nsphere)
  5340 + real(8), allocatable :: qextgroup(:,:),qabsgroup(:,:),qscagroup(:,:)
  5341 + complex(8) :: amnp(neqns),pmnp(neqns),pmnpan(neqns)
  5342 + complex(8), allocatable :: pmnp0(:,:,:),ac(:,:,:,:),pmnpt(:,:,:),amnp0(:,:,:), &
  5343 + amnp0group(:,:,:)
  5344 + character*30 :: tmatrixfile
  5345 + character*4 :: timeunit
  5346 + data istart,iexit/1,0/
  5347 + rank=base_rank
  5348 + rgrank=root_group_rank
  5349 + grank=group_rank
  5350 + ngroup=number_groups
  5351 + call getrunparameters(run_print_unit=iunit)
  5352 + xv=(sum(xsp**3.d0))**(1.d0/3.d0)
  5353 + nodrmax=maxval(nodr)
  5354 + qext=0.d0
  5355 + qabs=0.d0
  5356 + qsca=0.d0
  5357 + qextold=0.d0
  5358 + qscaold=0.d0
  5359 +!
  5360 +! perform T matrix file operations as needed
  5361 +!
  5362 + if(rank.eq.0) then
  5363 + if(calctmatrix.eq.1) then
  5364 + open(3,file=tmatrixfile)
  5365 + write(3,'(i4)') nodrt
  5366 + lstart(1)=1
  5367 + else
  5368 + open(3,file=tmatrixfile)
  5369 + write(iunit,'('' finding end of record to file '',a)') tmatrixfile
  5370 + read(3,*) nodrtt
  5371 + do l=1,nodrt
  5372 + do k=-l,l
  5373 + do q=1,2
  5374 + read(3,'(3i5)',end=20,err=20) lt,kt,qt
  5375 + do n=1,l
  5376 + do m=-n,n
  5377 + read(3,'(2i5,4e17.9)',end=20,err=20) nt,mt,at1,at2,at3,at4
  5378 + enddo
  5379 + enddo
  5380 + enddo
  5381 + enddo
  5382 + do i=1,nsphere
  5383 + read(3,'(i5,3e17.9)',end=20,err=20) it,qextl(i),qabsl(i),qscal(i)
  5384 + enddo
  5385 + qext=qext+qextl
  5386 + qabs=qabs+qabsl
  5387 + qsca=qsca+qscal
  5388 + enddo
  5389 +20 close(3)
  5390 + open(3,file=tmatrixfile)
  5391 + qextold(1)=0.d0
  5392 + qabstot=0.d0
  5393 + do i=1,nsphere
  5394 + qextold=qextold+qext(i)*xsp(i)*xsp(i)/xv/xv
  5395 + qabstot=qabstot+qabs(i)*xsp(i)*xsp(i)/xv/xv
  5396 + enddo
  5397 + qscaold(1)=qextold(1)-qabstot
  5398 + lstart(1)=lt
  5399 + read(3,*) nodrtt
  5400 + write(iunit,'('' calculations begin with order '',i5)') lstart(1)
  5401 + do l=1,lstart(1)-1
  5402 + do k=-l,l
  5403 + do q=1,2
  5404 + read(3,'(3i5)') lt,kt,qt
  5405 + do n=1,l
  5406 + do m=-n,n
  5407 + read(3,'(2i5,4e17.9)') nt,mt,at1,at2,at3,at4
  5408 + enddo
  5409 + enddo
  5410 + enddo
  5411 + enddo
  5412 + do i=1,nsphere
  5413 + read(3,'(i5,3e17.9)') it,at1,at2,at3
  5414 + enddo
  5415 + enddo
  5416 + endif
  5417 + endif
  5418 + call ms_mpi(mpi_command='bcast',mpi_send_buf_i=lstart,mpi_number=1,mpi_rank=0)
  5419 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dp=qextold,mpi_number=1,mpi_rank=0)
  5420 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dp=qscaold,mpi_number=1,mpi_rank=0)
  5421 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dp=qext,mpi_number=nsphere,mpi_rank=0)
  5422 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dp=qabs,mpi_number=nsphere,mpi_rank=0)
  5423 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dp=qsca,mpi_number=nsphere,mpi_rank=0)
  5424 + call ms_mpi(mpi_command='barrier')
  5425 + allocate(amnp0group(2,nodrt*(nodrt+2),0:ngroup-1),qextgroup(nsphere,0:ngroup-1), &
  5426 + qabsgroup(nsphere,0:ngroup-1),qscagroup(nsphere,0:ngroup-1))
  5427 + numsolns=2*nodrt*(nodrt+2)
  5428 + allocate(lindex(numsolns),kindex(numsolns))
  5429 +!
  5430 +! find the starting point
  5431 +!
  5432 + i=0
  5433 + do l=1,nodrt
  5434 + do k=-l,l
  5435 + do q=1,2
  5436 + i=i+1
  5437 + lindex(i)=l
  5438 + kindex(i)=k
  5439 + enddo
  5440 + enddo
  5441 + enddo
  5442 + do i=1,numsolns
  5443 + if(lindex(i).eq.lstart(1).and.kindex(i).eq.-lstart(1)) exit
  5444 + enddo
  5445 + isolnstart=i
  5446 + qextl=0.d0
  5447 + qabsl=0.d0
  5448 + qscal=0.d0
  5449 + lold=0
  5450 +!
  5451 +! begin the loop over RHS of the interaction equations. The solutions are distributed
  5452 +! among ngroup groups of processors
  5453 +!
  5454 + do isoln=isolnstart,numsolns,ngroup
  5455 + if(rank.eq.0) timeorder=mytime()
  5456 + do igroup=0,ngroup-1
  5457 + l=lindex(isoln+igroup)
  5458 + k=kindex(isoln+igroup)
  5459 + q=mod(isoln+igroup-1,2)+1
  5460 +!
  5461 +! calculate the RHS
  5462 +!
  5463 + if(l.eq.-k.and.q.eq.1) then
  5464 + if(allocated(ac)) deallocate(ac,amnp0)
  5465 + allocate(ac(2,nodrmax*(nodrmax+2),-l:l,nsphere),amnp0(0:l+1,l,2))
  5466 + do i=1,nsphere
  5467 + xij=rpos(:,i)
  5468 + call gentrancoef(1,xij,(1.d0,0.d0),1,nodrmax,l,l,0,0,ac(1,1,-l,i))
  5469 + enddo
  5470 + endif
  5471 + if(igroup.eq.rgrank) then
  5472 + if(k.le.-1) then
  5473 + ka=l+1
  5474 + la=-k
  5475 + else
  5476 + ka=k
  5477 + la=l
  5478 + endif
  5479 + noff=0
  5480 + do i=1,nsphere
  5481 + nblk=nodr(i)*(nodr(i)+2)*2
  5482 + allocate(pmnp0(0:nodr(i)+1,nodr(i),2))
  5483 + do p=1,2
  5484 + do n=1,nodr(i)
  5485 + do m=-n,n
  5486 + mn=n*(n+1)+m
  5487 + if(m.le.-1) then
  5488 + ma=n+1
  5489 + na=-m
  5490 + else
  5491 + ma=m
  5492 + na=n
  5493 + endif
  5494 + pmnp0(ma,na,p)=ac(abs(p-q)+1,mn,k,i)
  5495 + enddo
  5496 + enddo
  5497 + enddo
  5498 + pmnp(noff+1:noff+nblk)=reshape(pmnp0,(/nblk/))
  5499 + deallocate(pmnp0)
  5500 + noff=noff+nblk
  5501 + enddo
  5502 +!
  5503 +! multiply RHS by mie coefficients
  5504 +!
  5505 + call miecoeffmult(1,nsphere,neqns,pmnp,pmnpan)
  5506 + amnp=pmnpan
  5507 +!
  5508 +! call the solver
  5509 +!
  5510 + if(fftranpresent.eq.1) then
  5511 + call cbicgff(neqns,nsphere,niter,epssoln,pmnpan,amnp,0, &
  5512 + niterstep,iter,err)
  5513 + else
  5514 + call cbicg(neqns,nsphere,niter,epssoln,pmnpan,amnp,0,iter,err)
  5515 + endif
  5516 + if(iter.gt.niter.or.err.gt.epssoln) istat=1
  5517 + call sphereqeff(nsphere,neqns,nodr,nodrmax,xsp,amnp,amnp, &
  5518 + pmnp,pmnp,qextklq,qabsklq,qscaklq)
  5519 + qextgroup(1:nsphere,igroup)=qextklq(1:nsphere)
  5520 + qabsgroup(1:nsphere,igroup)=qabsklq(1:nsphere)
  5521 + qscagroup(1:nsphere,igroup)=qscaklq(1:nsphere)
  5522 +!
  5523 +! compute the target-based expansion
  5524 +!
  5525 + ntran=l
  5526 + amnp0=0.d0
  5527 + call amncommonorigin(neqns,nsphere,nodr,ntran,l,rpos, &
  5528 + amnp,amnp0)
  5529 + do n=1,l
  5530 + do m=-n,n
  5531 + if(m.le.-1) then
  5532 + ma=n+1
  5533 + na=-m
  5534 + else
  5535 + ma=m
  5536 + na=n
  5537 + endif
  5538 + mn=n*(n+1)+m
  5539 + do p=1,2
  5540 + amnp0group(p,mn,igroup)=amnp0(ma,na,p)
  5541 + enddo
  5542 + enddo
  5543 + enddo
  5544 + endif
  5545 + enddo
  5546 +!
  5547 +! send the solutions to the rank 0 processor
  5548 +!
  5549 + call ms_mpi(mpi_command='barrier')
  5550 + if(grank.eq.0) then
  5551 + if(rank.ne.0) then
  5552 + l=lindex(isoln+rgrank)
  5553 + nblk=l*(l+2)
  5554 + nsend=2*nblk
  5555 + call ms_mpi(mpi_command='send',mpi_send_buf_dc=amnp0group(1,1,rgrank),&
  5556 + mpi_number=nsend,mpi_rank=0,mpi_comm=root_group_comm)
  5557 + call ms_mpi(mpi_command='send',mpi_send_buf_dp=qextgroup(1,rgrank),&
  5558 + mpi_number=nsphere,mpi_rank=0,mpi_comm=root_group_comm)
  5559 + call ms_mpi(mpi_command='send',mpi_send_buf_dp=qabsgroup(1,rgrank),&
  5560 + mpi_number=nsphere,mpi_rank=0,mpi_comm=root_group_comm)
  5561 + call ms_mpi(mpi_command='send',mpi_send_buf_dp=qscagroup(1,rgrank),&
  5562 + mpi_number=nsphere,mpi_rank=0,mpi_comm=root_group_comm)
  5563 + else
  5564 + do igroup=1,ngroup-1
  5565 + l=lindex(isoln+igroup)
  5566 + nblk=l*(l+2)
  5567 + nsend=2*nblk
  5568 + call ms_mpi(mpi_command='recv',mpi_recv_buf_dc=amnp0group(1,1,igroup),&
  5569 + mpi_number=nsend,mpi_rank=igroup,mpi_comm=root_group_comm)
  5570 + call ms_mpi(mpi_command='recv',mpi_recv_buf_dp=qextgroup(1,igroup),&
  5571 + mpi_number=nsphere,mpi_rank=igroup,mpi_comm=root_group_comm)
  5572 + call ms_mpi(mpi_command='recv',mpi_recv_buf_dp=qabsgroup(1,igroup),&
  5573 + mpi_number=nsphere,mpi_rank=igroup,mpi_comm=root_group_comm)
  5574 + call ms_mpi(mpi_command='recv',mpi_recv_buf_dp=qscagroup(1,igroup),&
  5575 + mpi_number=nsphere,mpi_rank=igroup,mpi_comm=root_group_comm)
  5576 + enddo
  5577 + endif
  5578 + endif
  5579 + call ms_mpi(mpi_command='barrier')
  5580 +!
  5581 +! write results, check for convergence
  5582 +!
  5583 + if(rank.eq.0) then
  5584 + do igroup=0,ngroup-1
  5585 + l=lindex(isoln+igroup)
  5586 + k=kindex(isoln+igroup)
  5587 + q=mod(isoln+igroup-1,2)+1
  5588 + qextl=qextl+qextgroup(1:nsphere,igroup)
  5589 + qabsl=qabsl+qabsgroup(1:nsphere,igroup)
  5590 + qscal=qscal+qscagroup(1:nsphere,igroup)
  5591 + qext=qext+qextgroup(1:nsphere,igroup)
  5592 + qabs=qabs+qabsgroup(1:nsphere,igroup)
  5593 + qsca=qsca+qscagroup(1:nsphere,igroup)
  5594 + write(3,'(3i5)') l,k,q
  5595 + do n=1,l
  5596 + do m=-n,n
  5597 + mn=n*(n+1)+m
  5598 + write(3,'(2i5,4e17.9)') n,m,amnp0group(1,mn,igroup), &
  5599 + amnp0group(2,mn,igroup)
  5600 + enddo
  5601 + enddo
  5602 + if(istart.eq.1.and.igroup.eq.0) then
  5603 + time1=mytime()-timeorder
  5604 + call timewrite(iunit,' time per group solution:',time1)
  5605 + time2=time1*dble(numsolns-isolnstart)/dble(ngroup)
  5606 + call timewrite(iunit,' estimated t matrix calcuation time:',time2)
  5607 + write(iunit,'('' n # its qext qabs'',&
  5608 + &'' qsca error est. time rem.'')')
  5609 + call flush(iunit)
  5610 + istart=0
  5611 + endif
  5612 + if(igroup.eq.0) then
  5613 + timeorder=mytime()-timeorder
  5614 + time2=timeorder*dble(numsolns-isoln)/dble(ngroup)
  5615 + if(time2.gt.3600.d0) then
  5616 + time2=time2/3600.d0
  5617 + timeunit=' hrs'
  5618 + elseif(time2.gt.60.d0) then
  5619 + time2=time2/60.d0
  5620 + timeunit=' min'
  5621 + else
  5622 + timeunit=' sec'
  5623 + endif
  5624 + endif
  5625 + iexit(1)=0
  5626 + if(k.eq.l.and.q.eq.2) then
  5627 + qexttot=0.d0
  5628 + qabstot=0.d0
  5629 + do i=1,nsphere
  5630 + qexttot=qexttot+qext(i)*xsp(i)*xsp(i)/xv/xv
  5631 + qabstot=qabstot+qabs(i)*xsp(i)*xsp(i)/xv/xv
  5632 + write(3,'(i5,3e17.9)') i,qextl(i),qabsl(i),qscal(i)
  5633 + enddo
  5634 + qextl=0.d0
  5635 + qabsl=0.d0
  5636 + qscal=0.d0
  5637 + qscatot=qexttot-qabstot
  5638 + errqe=qexttot-qextold(1)
  5639 + errqs=qscatot-qscaold(1)
  5640 + err=max(errqe,errqs)
  5641 + write(iunit,'(i4,i5,4e13.5,f8.2,a4)') l,iter,qexttot,qabstot, &
  5642 + qscatot,err,time2,timeunit
  5643 + call flush(iunit)
  5644 + qextold(1)=qexttot
  5645 + qscaold(1)=qscatot
  5646 + if(err.le.epscon) iexit(1)=1
  5647 + endif
  5648 + if(iexit(1).eq.1) then
  5649 + nodrt=l
  5650 + exit
  5651 + endif
  5652 + enddo
  5653 + endif
  5654 + call ms_mpi(mpi_command='bcast',mpi_send_buf_i=iexit,mpi_number=1,mpi_rank=0)
  5655 + call ms_mpi(mpi_command='barrier')
  5656 + if(iexit(1).eq.1) then
  5657 +!
  5658 +! solution has converged
  5659 +!
  5660 + deallocate(amnp0group,qextgroup,qabsgroup,qscagroup,lindex,kindex,ac,amnp0)
  5661 + nodrta(1)=nodrt
  5662 + call ms_mpi(mpi_command='bcast',mpi_send_buf_i=nodrta,mpi_number=1,mpi_rank=0)
  5663 + nodrt=nodrta(1)
  5664 + if(rank.eq.0) then
  5665 + write(iunit,'('' T matrix converged, order:'',i5)') nodrt
  5666 + close(3)
  5667 + open(3,file=tmatrixfile,form='formatted',access='direct',recl=4)
  5668 + write(3,'(i4)',rec=1) nodrt
  5669 + close(3)
  5670 + endif
  5671 + return
  5672 + endif
  5673 + enddo
  5674 + deallocate(amnp0group,qextgroup,qabsgroup,qscagroup,lindex,kindex,ac,amnp0)
  5675 + if(rank.eq.0) then
  5676 + write(*,'('' T matrix did not converge to set epsilon'')')
  5677 + close(3)
  5678 + endif
  5679 + end subroutine tmatrixsoln
  5680 +!
  5681 +! solution of interaction equations for a fixed orientation
  5682 +!
  5683 +!
  5684 +! original: 15 January 2011
  5685 +! revised: 21 February 2011: modification of efficiency calculation, to calculate
  5686 +! polarized components
  5687 +! 30 March 2011: took out gbfocus argument: this is not needed since positions are defined
  5688 +! relative to the gb focus.
  5689 +! 20 April 2011: used 2-group MPI formulation
  5690 +!
  5691 + subroutine fixedorsoln(neqns,nsphere,nodr,alpha,beta,cbeam,xsp,rpos,&
  5692 + eps,epstran,niter,amnp,qext,qabs,qsca,maxerr,maxiter,iterwrite, &
  5693 + fftranpresent,niterstep,istat)
  5694 + use mpidefs
  5695 + use mpidata
  5696 + use intrinsics
  5697 + use numconstants
  5698 + use specialfuncs
  5699 + use miecoefdata
  5700 + use translation
  5701 + use scatprops
  5702 + implicit none
  5703 + integer :: iter,niter,neqns,nodrmax,k,nsphere,i,ierr,istat,rank,maxiter,iterwrite
  5704 + integer :: nodr(nsphere),m1,n1,p,rgrank,grank,ngroup,sendrank,numprocs, &
  5705 + fftranpresent,niterstep
  5706 + real(8) :: alpha,beta,eps,err,qext(nsphere,3),maxerr,&
  5707 + qabs(nsphere,3),qsca(nsphere,3),cbeam,gbfocus(3),epstran
  5708 + real(8) :: xsp(nsphere), rpos(3,nsphere),maxerra(1)
  5709 + complex(8) :: amnp(neqns,2)
  5710 + complex(8), allocatable :: pmnp(:,:),pmnpan(:)
  5711 + rank=base_rank
  5712 + rgrank=root_group_rank
  5713 + grank=group_rank
  5714 + ngroup=number_groups
  5715 + numprocs=number_proc
  5716 + sendrank=numprocs/2
  5717 + nodrmax=maxval(nodr)
  5718 + allocate(pmnp(neqns,2))
  5719 + gbfocus=0.d0
  5720 + if(cbeam.eq.0.d0) then
  5721 + call sphereplanewavecoef(nsphere,neqns,nodr,nodrmax,alpha,beta,rpos,pmnp)
  5722 + else
  5723 + call spheregaussianbeamcoef(nsphere,neqns,nodr,alpha,beta,cbeam, &
  5724 + rpos,gbfocus,epstran,pmnp)
  5725 + endif
  5726 + istat=0
  5727 + maxiter=0
  5728 + maxerr=0.
  5729 +!
  5730 +! calculate the two solutions
  5731 +!
  5732 + allocate(pmnpan(neqns))
  5733 + if(ngroup.eq.1) then
  5734 + do k=1,2
  5735 + call miecoeffmult(1,nsphere,neqns,pmnp(1,k),pmnpan)
  5736 + amnp(1:neqns,k)=pmnpan(1:neqns)
  5737 + if(fftranpresent.eq.1) then
  5738 + call cbicgff(neqns,nsphere,niter,eps,pmnpan,amnp(1,k),iterwrite, &
  5739 + niterstep,iter,err)
  5740 + else
  5741 + call cbicg(neqns,nsphere,niter,eps,pmnpan,amnp(1,k),iterwrite, &
  5742 + iter,err)
  5743 + endif
  5744 + maxiter=max(iter,maxiter)
  5745 + maxerr=max(err,maxerr)
  5746 + if(iter.gt.niter.or.err.gt.eps) istat=1
  5747 + call ms_mpi(mpi_command='barrier')
  5748 + enddo
  5749 + else
  5750 + k=rgrank+1
  5751 + call miecoeffmult(1,nsphere,neqns,pmnp(1,k),pmnpan)
  5752 + amnp(1:neqns,k)=pmnpan(1:neqns)
  5753 + if(fftranpresent.eq.1) then
  5754 + call cbicgff(neqns,nsphere,niter,eps,pmnpan,amnp(1,k),iterwrite, &
  5755 + niterstep,iter,err)
  5756 + else
  5757 + call cbicg(neqns,nsphere,niter,eps,pmnpan,amnp(1,k),iterwrite, &
  5758 + iter,err)
  5759 + endif
  5760 + maxiter=max(iter,maxiter)
  5761 + maxerr=max(err,maxerr)
  5762 + call ms_mpi(mpi_command='barrier')
  5763 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dc=amnp(1,2),&
  5764 + mpi_number=neqns,mpi_rank=sendrank)
  5765 + endif
  5766 + deallocate(pmnpan)
  5767 +!
  5768 +! efficiency factor calculations
  5769 +!
  5770 + call sphereqeff(nsphere,neqns,nodr,nodrmax,xsp,amnp(1,1),amnp(1,1), &
  5771 + pmnp(1,1),pmnp(1,1),qext(1,1),qabs(1,1),qsca(1,1))
  5772 + call sphereqeff(nsphere,neqns,nodr,nodrmax,xsp,amnp(1,2),amnp(1,2), &
  5773 + pmnp(1,2),pmnp(1,2),qext(1,2),qabs(1,2),qsca(1,2))
  5774 + call sphereqeff(nsphere,neqns,nodr,nodrmax,xsp,amnp(1,1),amnp(1,2), &
  5775 + pmnp(1,1),pmnp(1,2),qext(1,3),qabs(1,3),qsca(1,3))
  5776 + call ms_mpi(mpi_command='barrier')
  5777 + deallocate(pmnp)
  5778 + end subroutine fixedorsoln
  5779 +!
  5780 +! hybrid bcgm, using far field translation
  5781 +! november 2011
  5782 +!
  5783 + subroutine cbicgff(neqns,nsphere,niter,eps,pnp,anp,iterwrite,niterstep,iter,err)
  5784 + use mpidefs
  5785 + use mpidata
  5786 + use intrinsics
  5787 + use spheredata
  5788 + use miecoefdata
  5789 + use numconstants
  5790 + use specialfuncs
  5791 + use translation
  5792 + implicit none
  5793 + integer :: neqns,niter,iter,nsphere,writetime,nodr(nsphere),noff(nsphere+1),&
  5794 + nblk(nsphere),rank,ierr,iexit,i,j,m,n,p,iunit,iterwrite,ip1,ip2, &
  5795 + np1,np2,nsend,numprocs,grank,istore,itermax,istep,niterstep
  5796 + real(8) :: eps,err,erra(1),enorm,time1,time2,epsstep,errstep
  5797 + complex(8) :: pnp(neqns),anp(neqns),gnp(neqns),gnpold(neqns),pgnp(neqns), &
  5798 + cr(neqns)
  5799 + data writetime/0/
  5800 + rank=base_rank
  5801 + grank=group_rank
  5802 + numprocs=proc_per_group
  5803 + call getmiedata(sphere_order=nodr,sphere_block=nblk,sphere_block_offset=noff)
  5804 + if(rank.eq.0) then
  5805 + call getrunparameters(run_print_unit=iunit)
  5806 + endif
  5807 + err=0.d0
  5808 + iter=0
  5809 + enorm=dot_product(pnp,pnp)
  5810 + gnpold=0.d0
  5811 + if(enorm.eq.0.d0) return
  5812 + gnp=0.d0
  5813 + ip1=mpi_sphere_index(grank)+1
  5814 + ip2=mpi_sphere_index(grank)+mpi_sphere_number(grank)
  5815 + do i=ip1,ip2
  5816 + do j=1,nsphere
  5817 + if(i.ne.j) then
  5818 + call fftranslationerror(anp(noff(j)+1:noff(j)+nblk(j)), &
  5819 + gnp(noff(i)+1:noff(i)+nblk(i)),j,i,nodr(j),nodr(i))
  5820 + endif
  5821 + enddo
  5822 + enddo
  5823 + do i=0,numprocs-1
  5824 + ip1=mpi_sphere_index(i)+1
  5825 + ip2=mpi_sphere_index(i)+mpi_sphere_number(i)
  5826 + np1=noff(ip1)+1
  5827 + np2=noff(ip2)+nblk(ip2)
  5828 + nsend=np2-np1+1
  5829 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dc=gnp(np1:np2),mpi_number=nsend, &
  5830 + mpi_rank=i,mpi_comm=group_comm)
  5831 + enddo
  5832 + call miecoeffmult(1,nsphere,neqns,gnp,gnp)
  5833 +
  5834 + iter=0
  5835 + epsstep=eps
  5836 + istep=0
  5837 + do
  5838 + istep=istep+1
  5839 + gnpold=gnp
  5840 + pgnp=pnp+gnp
  5841 + call cbicg(neqns,nsphere,niterstep,epsstep,pgnp,anp,0,itermax,errstep)
  5842 + iter=iter+min(itermax,niterstep)
  5843 + gnp=0.d0
  5844 + ip1=mpi_sphere_index(grank)+1
  5845 + ip2=mpi_sphere_index(grank)+mpi_sphere_number(grank)
  5846 + do i=ip1,ip2
  5847 + do j=1,nsphere
  5848 + if(i.ne.j) then
  5849 + call fftranslationerror(anp(noff(j)+1:noff(j)+nblk(j)), &
  5850 + gnp(noff(i)+1:noff(i)+nblk(i)),j,i,nodr(j),nodr(i))
  5851 + endif
  5852 + enddo
  5853 + enddo
  5854 + do i=0,numprocs-1
  5855 + ip1=mpi_sphere_index(i)+1
  5856 + ip2=mpi_sphere_index(i)+mpi_sphere_number(i)
  5857 + np1=noff(ip1)+1
  5858 + np2=noff(ip2)+nblk(ip2)
  5859 + nsend=np2-np1+1
  5860 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dc=gnp(np1:np2),mpi_number=nsend, &
  5861 + mpi_rank=i,mpi_comm=group_comm)
  5862 + enddo
  5863 + call miecoeffmult(1,nsphere,neqns,gnp,gnp)
  5864 + err=dot_product(gnp-gnpold,gnp-gnpold)/enorm
  5865 + if(rank.eq.0.and.iterwrite.eq.1) then
  5866 + write(iunit,'('' step,iteration,bcgm err,correc err:'',2i5,2e13.5)') &
  5867 + istep,iter,errstep,err
  5868 + call flush(iunit)
  5869 + endif
  5870 + epsstep=eps
  5871 + err=max(err,errstep)
  5872 + if((err.lt.eps).or.iter.gt.niter) exit
  5873 + enddo
  5874 + end subroutine cbicgff
  5875 +
  5876 +!
  5877 +! iteration solver
  5878 +! generalized complex biconjugate gradient method
  5879 +! original code: Piotr Flatau, although not much remains.
  5880 +! specialized to the multiple sphere problem
  5881 +!
  5882 +!
  5883 +! last revised: 15 January 2011
  5884 +! october 2011: translation calls modified
  5885 +!
  5886 + subroutine cbicg(neqns,nsphere,niter,eps,pnp,anp,iterwrite,iter,err)
  5887 + use mpidefs
  5888 + use mpidata
  5889 + use intrinsics
  5890 + use spheredata
  5891 + use miecoefdata
  5892 + use numconstants
  5893 + use specialfuncs
  5894 + use translation
  5895 + implicit none
  5896 + integer :: neqns,niter,iter,nsphere,writetime,nodr(nsphere),noff(nsphere+1),&
  5897 + nblk(nsphere),rank,ierr,iexit,i,j,m,n,p,iunit,iterwrite,ip1,ip2, &
  5898 + np1,np2,nsend,numprocs,grank,istore
  5899 + real(8) :: eps,err,erra(1),enorm,time1,time2
  5900 + complex(8) :: pnp(neqns),anp(neqns)
  5901 + complex(8) :: cak(1),csk,cbk,csk2(1)
  5902 + complex(8) :: cr(neqns),cp(neqns),cw(neqns),cq(neqns),cap(neqns),caw(neqns), &
  5903 + crt(neqns),capt(neqns),cawt(neqns),ccw(neqns)
  5904 + data writetime/0/
  5905 + rank=base_rank
  5906 + grank=group_rank
  5907 + numprocs=proc_per_group
  5908 + call getmiedata(sphere_order=nodr,sphere_block=nblk,sphere_block_offset=noff)
  5909 + ip1=mpi_sphere_index(grank)+1
  5910 + ip2=mpi_sphere_index(grank)+mpi_sphere_number(grank)
  5911 + np1=noff(ip1)+1
  5912 + np2=noff(ip2)+nblk(ip2)
  5913 + nsend=np2-np1+1
  5914 + crt=0.d0
  5915 + iexit=0
  5916 + if(rank.eq.0) then
  5917 + call getrunparameters(run_print_unit=iunit)
  5918 + endif
  5919 + err=0.d0
  5920 + iter=0
  5921 + enorm=dot_product(pnp,pnp)
  5922 + cr=0.d0
  5923 + if(enorm.eq.0.d0) return
  5924 + do i=ip1,ip2
  5925 + do j=1,nsphere
  5926 + if(i.ne.j) then
  5927 + call rottranjtoi(anp(noff(j)+1:noff(j)+nblk(j)), &
  5928 + cr(noff(i)+1:noff(i)+nblk(i)),j,i,nodr(j),nodr(i),1,1)
  5929 + endif
  5930 + enddo
  5931 + enddo
  5932 + do i=0,numprocs-1
  5933 + ip1=mpi_sphere_index(i)+1
  5934 + ip2=mpi_sphere_index(i)+mpi_sphere_number(i)
  5935 + np1=noff(ip1)+1
  5936 + np2=noff(ip2)+nblk(ip2)
  5937 + nsend=np2-np1+1
  5938 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dc=cr(np1:np2),mpi_number=nsend, &
  5939 + mpi_rank=i,mpi_comm=group_comm)
  5940 + enddo
  5941 + call miecoeffmult(1,nsphere,neqns,cr,cr)
  5942 + cr=pnp-anp+cr
  5943 + cq=conjg(cr)
  5944 + cw=cq
  5945 + cp=cr
  5946 + csk=dot_product(conjg(cr),cr)
  5947 + if(cdabs(csk).eq.0.d0) return
  5948 +!
  5949 +! here starts the main iteration loop
  5950 +!
  5951 + do iter=1,niter
  5952 + ip1=mpi_sphere_index(grank)+1
  5953 + ip2=mpi_sphere_index(grank)+mpi_sphere_number(grank)
  5954 + np1=noff(ip1)+1
  5955 + np2=noff(ip2)+nblk(ip2)
  5956 + nsend=np2-np1+1
  5957 + cak(1)=(0.d0,0.d0)
  5958 + cawt=(0.d0,0.d0)
  5959 + capt=(0.d0,0.d0)
  5960 + if(rank.eq.0) then
  5961 + if(writetime.eq.0) time1=mytime()
  5962 + endif
  5963 + ccw=conjg(cw)
  5964 + cap=0.d0
  5965 + caw=0.d0
  5966 + call miecoeffmult(1,nsphere,neqns,ccw,ccw)
  5967 + do i=ip1,ip2
  5968 + do j=1,nsphere
  5969 + if(i.ne.j) then
  5970 + call rottrantwojtoi(cp(noff(j)+1:noff(j)+nblk(j)), &
  5971 + ccw(noff(j)+1:noff(j)+nblk(j)), &
  5972 + cap(noff(i)+1:noff(i)+nblk(i)), &
  5973 + caw(noff(i)+1:noff(i)+nblk(i)), &
  5974 + j,i,nodr(j),nodr(i))
  5975 +! call rottranjtoi(cp(noff(j)+1:noff(j)+nblk(j)), &
  5976 +! cap(noff(i)+1:noff(i)+nblk(i)),j,i,nodr(j),nodr(i),1,1)
  5977 +! call rottranjtoi(ccw(noff(j)+1:noff(j)+nblk(j)), &
  5978 +! caw(noff(i)+1:noff(i)+nblk(i)),j,i,nodr(j),nodr(i),-1,-1)
  5979 + endif
  5980 + enddo
  5981 + enddo
  5982 + call miecoeffmult(ip1,ip2,neqns,cap,cap)
  5983 + cap(np1:np2)=cp(np1:np2)-cap(np1:np2)
  5984 + caw(np1:np2)=cw(np1:np2)-conjg(caw(np1:np2))
  5985 + cak(1)=dot_product(cw(np1:np2),cap(np1:np2))
  5986 + call ms_mpi(mpi_command='allreduce',mpi_recv_buf_dc=cak,mpi_number=1, &
  5987 + mpi_operation=ms_mpi_sum,mpi_comm=group_comm)
  5988 + cak(1)=csk/cak(1)
  5989 + anp(np1:np2)=anp(np1:np2)+cak(1)*cp(np1:np2)
  5990 + cr(np1:np2)=cr(np1:np2)-cak(1)*cap(np1:np2)
  5991 + cq(np1:np2)=cq(np1:np2)-conjg(cak(1))*caw(np1:np2)
  5992 + csk2(1)=dot_product(cq(np1:np2),cr(np1:np2))
  5993 + err=dot_product(cr(np1:np2),cr(np1:np2))
  5994 + erra(1)=err
  5995 + call ms_mpi(mpi_command='allreduce',mpi_recv_buf_dc=csk2,mpi_number=1, &
  5996 + mpi_operation=ms_mpi_sum,mpi_comm=group_comm)
  5997 + call ms_mpi(mpi_command='allreduce',mpi_recv_buf_dp=erra,mpi_number=1, &
  5998 + mpi_operation=ms_mpi_sum,mpi_comm=group_comm)
  5999 + err=erra(1)
  6000 + err=err/enorm
  6001 + if(err.lt. eps) exit
  6002 + cbk=csk2(1)/csk
  6003 + cp(np1:np2)=cr(np1:np2)+cbk*cp(np1:np2)
  6004 + cw(np1:np2)=cq(np1:np2)+conjg(cbk)*cw(np1:np2)
  6005 + csk=csk2(1)
  6006 + do i=0,numprocs-1
  6007 + ip1=mpi_sphere_index(i)+1
  6008 + ip2=mpi_sphere_index(i)+mpi_sphere_number(i)
  6009 + np1=noff(ip1)+1
  6010 + np2=noff(ip2)+nblk(ip2)
  6011 + nsend=np2-np1+1
  6012 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dc=cp(np1:np2),mpi_number=nsend, &
  6013 + mpi_rank=i,mpi_comm=group_comm)
  6014 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dc=cw(np1:np2),mpi_number=nsend, &
  6015 + mpi_rank=i,mpi_comm=group_comm)
  6016 + enddo
  6017 + if(rank.eq.0.and.iter.eq.1.and.writetime.eq.0) then
  6018 + time2=mytime()-time1
  6019 + call timewrite(iunit,' time per iteration:',time2)
  6020 + writetime=1
  6021 + endif
  6022 + if(rank.eq.0.and.iterwrite.eq.1) then
  6023 + write(iunit,'('' iter, err:'',i5,e13.5)') iter,err
  6024 + call flush(iunit)
  6025 + endif
  6026 + enddo
  6027 +!
  6028 +! arrive here with a converged solution
  6029 +!
  6030 + do i=0,numprocs-1
  6031 + ip1=mpi_sphere_index(i)+1
  6032 + ip2=mpi_sphere_index(i)+mpi_sphere_number(i)
  6033 + np1=noff(ip1)+1
  6034 + np2=noff(ip2)+nblk(ip2)
  6035 + nsend=np2-np1+1
  6036 + call ms_mpi(mpi_command='bcast',mpi_send_buf_dc=anp(np1:np2),mpi_number=nsend, &
  6037 + mpi_rank=i,mpi_comm=group_comm)
  6038 + enddo
  6039 + end subroutine cbicg
  6040 +
  6041 + end module solver
... ...
mstm_gallery.pdf 0 → 100644
No preview for this file type
mstm_guiwindow.ui 0 → 100644
  1 +++ a/mstm_guiwindow.ui
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>mstmGui</class>
  4 + <widget class="QMainWindow" name="mstmGui">
  5 + <property name="geometry">
  6 + <rect>
  7 + <x>0</x>
  8 + <y>0</y>
  9 + <width>599</width>
  10 + <height>418</height>
  11 + </rect>
  12 + </property>
  13 + <property name="windowTitle">
  14 + <string>Spectral Multi-Sphere T-Matrix Simulation</string>
  15 + </property>
  16 + <widget class="QWidget" name="centralwidget">
  17 + <widget class="QPushButton" name="btnSimulate">
  18 + <property name="geometry">
  19 + <rect>
  20 + <x>400</x>
  21 + <y>70</y>
  22 + <width>89</width>
  23 + <height>23</height>
  24 + </rect>
  25 + </property>
  26 + <property name="text">
  27 + <string>Simulate</string>
  28 + </property>
  29 + </widget>
  30 + <widget class="QLabel" name="label_7">
  31 + <property name="geometry">
  32 + <rect>
  33 + <x>0</x>
  34 + <y>20</y>
  35 + <width>111</width>
  36 + <height>21</height>
  37 + </rect>
  38 + </property>
  39 + <property name="text">
  40 + <string>Material</string>
  41 + </property>
  42 + <property name="alignment">
  43 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  44 + </property>
  45 + </widget>
  46 + <widget class="QLineEdit" name="txtMaterial">
  47 + <property name="geometry">
  48 + <rect>
  49 + <x>120</x>
  50 + <y>20</y>
  51 + <width>211</width>
  52 + <height>21</height>
  53 + </rect>
  54 + </property>
  55 + <property name="readOnly">
  56 + <bool>true</bool>
  57 + </property>
  58 + </widget>
  59 + <widget class="QGroupBox" name="groupBox">
  60 + <property name="geometry">
  61 + <rect>
  62 + <x>10</x>
  63 + <y>50</y>
  64 + <width>361</width>
  65 + <height>91</height>
  66 + </rect>
  67 + </property>
  68 + <property name="title">
  69 + <string>Spectral Parameters</string>
  70 + </property>
  71 + <widget class="QDoubleSpinBox" name="spinStartLambda">
  72 + <property name="geometry">
  73 + <rect>
  74 + <x>130</x>
  75 + <y>30</y>
  76 + <width>91</width>
  77 + <height>22</height>
  78 + </rect>
  79 + </property>
  80 + <property name="decimals">
  81 + <number>3</number>
  82 + </property>
  83 + <property name="singleStep">
  84 + <double>0.100000000000000</double>
  85 + </property>
  86 + </widget>
  87 + <widget class="QSpinBox" name="spinNumSamples">
  88 + <property name="geometry">
  89 + <rect>
  90 + <x>130</x>
  91 + <y>60</y>
  92 + <width>55</width>
  93 + <height>22</height>
  94 + </rect>
  95 + </property>
  96 + </widget>
  97 + <widget class="QLabel" name="label_3">
  98 + <property name="geometry">
  99 + <rect>
  100 + <x>10</x>
  101 + <y>60</y>
  102 + <width>111</width>
  103 + <height>21</height>
  104 + </rect>
  105 + </property>
  106 + <property name="text">
  107 + <string># Samples</string>
  108 + </property>
  109 + <property name="alignment">
  110 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  111 + </property>
  112 + </widget>
  113 + <widget class="QLabel" name="label_2">
  114 + <property name="geometry">
  115 + <rect>
  116 + <x>10</x>
  117 + <y>30</y>
  118 + <width>111</width>
  119 + <height>21</height>
  120 + </rect>
  121 + </property>
  122 + <property name="text">
  123 + <string>Wavelengths(um)</string>
  124 + </property>
  125 + <property name="alignment">
  126 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  127 + </property>
  128 + </widget>
  129 + <widget class="QLabel" name="label">
  130 + <property name="geometry">
  131 + <rect>
  132 + <x>230</x>
  133 + <y>30</y>
  134 + <width>21</width>
  135 + <height>21</height>
  136 + </rect>
  137 + </property>
  138 + <property name="text">
  139 + <string>to</string>
  140 + </property>
  141 + </widget>
  142 + <widget class="QDoubleSpinBox" name="spinEndLambda">
  143 + <property name="geometry">
  144 + <rect>
  145 + <x>250</x>
  146 + <y>30</y>
  147 + <width>91</width>
  148 + <height>22</height>
  149 + </rect>
  150 + </property>
  151 + <property name="decimals">
  152 + <number>3</number>
  153 + </property>
  154 + <property name="singleStep">
  155 + <double>0.100000000000000</double>
  156 + </property>
  157 + </widget>
  158 + </widget>
  159 + <widget class="QGroupBox" name="groupBox_2">
  160 + <property name="geometry">
  161 + <rect>
  162 + <x>10</x>
  163 + <y>150</y>
  164 + <width>361</width>
  165 + <height>91</height>
  166 + </rect>
  167 + </property>
  168 + <property name="title">
  169 + <string>Spheres (currently only dimers)</string>
  170 + </property>
  171 + <widget class="QLabel" name="label_6">
  172 + <property name="geometry">
  173 + <rect>
  174 + <x>220</x>
  175 + <y>60</y>
  176 + <width>31</width>
  177 + <height>21</height>
  178 + </rect>
  179 + </property>
  180 + <property name="text">
  181 + <string>um</string>
  182 + </property>
  183 + </widget>
  184 + <widget class="QLabel" name="label_5">
  185 + <property name="geometry">
  186 + <rect>
  187 + <x>0</x>
  188 + <y>60</y>
  189 + <width>111</width>
  190 + <height>21</height>
  191 + </rect>
  192 + </property>
  193 + <property name="text">
  194 + <string>Sphere Spacing</string>
  195 + </property>
  196 + <property name="alignment">
  197 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  198 + </property>
  199 + </widget>
  200 + <widget class="QLabel" name="label_4">
  201 + <property name="geometry">
  202 + <rect>
  203 + <x>0</x>
  204 + <y>30</y>
  205 + <width>111</width>
  206 + <height>21</height>
  207 + </rect>
  208 + </property>
  209 + <property name="text">
  210 + <string># Spheres</string>
  211 + </property>
  212 + <property name="alignment">
  213 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  214 + </property>
  215 + </widget>
  216 + <widget class="QDoubleSpinBox" name="spinSpacing">
  217 + <property name="geometry">
  218 + <rect>
  219 + <x>120</x>
  220 + <y>60</y>
  221 + <width>91</width>
  222 + <height>22</height>
  223 + </rect>
  224 + </property>
  225 + <property name="decimals">
  226 + <number>4</number>
  227 + </property>
  228 + <property name="singleStep">
  229 + <double>0.001000000000000</double>
  230 + </property>
  231 + </widget>
  232 + <widget class="QSpinBox" name="spinNumSpheres">
  233 + <property name="enabled">
  234 + <bool>false</bool>
  235 + </property>
  236 + <property name="geometry">
  237 + <rect>
  238 + <x>120</x>
  239 + <y>30</y>
  240 + <width>55</width>
  241 + <height>22</height>
  242 + </rect>
  243 + </property>
  244 + </widget>
  245 + </widget>
  246 + <widget class="QGroupBox" name="groupBox_3">
  247 + <property name="geometry">
  248 + <rect>
  249 + <x>10</x>
  250 + <y>250</y>
  251 + <width>361</width>
  252 + <height>111</height>
  253 + </rect>
  254 + </property>
  255 + <property name="title">
  256 + <string>Incident Light Parameters</string>
  257 + </property>
  258 + <widget class="QLabel" name="label_8">
  259 + <property name="geometry">
  260 + <rect>
  261 + <x>20</x>
  262 + <y>20</y>
  263 + <width>91</width>
  264 + <height>21</height>
  265 + </rect>
  266 + </property>
  267 + <property name="text">
  268 + <string>alpha (deg.)</string>
  269 + </property>
  270 + <property name="alignment">
  271 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  272 + </property>
  273 + </widget>
  274 + <widget class="QDoubleSpinBox" name="spinAlpha">
  275 + <property name="geometry">
  276 + <rect>
  277 + <x>120</x>
  278 + <y>20</y>
  279 + <width>91</width>
  280 + <height>22</height>
  281 + </rect>
  282 + </property>
  283 + <property name="decimals">
  284 + <number>3</number>
  285 + </property>
  286 + <property name="singleStep">
  287 + <double>0.100000000000000</double>
  288 + </property>
  289 + </widget>
  290 + <widget class="QLabel" name="label_9">
  291 + <property name="geometry">
  292 + <rect>
  293 + <x>20</x>
  294 + <y>50</y>
  295 + <width>91</width>
  296 + <height>21</height>
  297 + </rect>
  298 + </property>
  299 + <property name="text">
  300 + <string>beta (deg.)</string>
  301 + </property>
  302 + <property name="alignment">
  303 + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
  304 + </property>
  305 + </widget>
  306 + <widget class="QDoubleSpinBox" name="spinBeta">
  307 + <property name="geometry">
  308 + <rect>
  309 + <x>120</x>
  310 + <y>50</y>
  311 + <width>91</width>
  312 + <height>22</height>
  313 + </rect>
  314 + </property>
  315 + <property name="decimals">
  316 + <number>3</number>
  317 + </property>
  318 + <property name="singleStep">
  319 + <double>0.100000000000000</double>
  320 + </property>
  321 + </widget>
  322 + </widget>
  323 + </widget>
  324 + <widget class="QMenuBar" name="menubar">
  325 + <property name="geometry">
  326 + <rect>
  327 + <x>0</x>
  328 + <y>0</y>
  329 + <width>599</width>
  330 + <height>22</height>
  331 + </rect>
  332 + </property>
  333 + <widget class="QMenu" name="menuFile">
  334 + <property name="title">
  335 + <string>File</string>
  336 + </property>
  337 + <addaction name="mnuSaveResults"/>
  338 + <addaction name="mnuLoadMaterial"/>
  339 + </widget>
  340 + <addaction name="menuFile"/>
  341 + </widget>
  342 + <widget class="QStatusBar" name="statusbar"/>
  343 + <action name="mnuSaveResults">
  344 + <property name="enabled">
  345 + <bool>true</bool>
  346 + </property>
  347 + <property name="text">
  348 + <string>Save Results</string>
  349 + </property>
  350 + </action>
  351 + <action name="mnuLoadMaterial">
  352 + <property name="text">
  353 + <string>Load Material</string>
  354 + </property>
  355 + </action>
  356 + </widget>
  357 + <resources/>
  358 + <connections/>
  359 +</ui>
... ...
mstm_materials.py 0 → 100644
  1 +++ a/mstm_materials.py
  1 +class MaterialSampleClass:
  2 +
  3 + #constructor
  4 + def __init__(self, l, n):
  5 + self.l = l
  6 + self.n = n
  7 +
  8 + #string conversion
  9 + def __str__(self):
  10 + result = ""
  11 + result += str(self.l) + 'um: ' + str(self.n)
  12 + return result
  13 +
  14 +class MaterialClass:
  15 + materialList = []
  16 +
  17 + def __init__(self, fileName=""):
  18 + if fileName == "":
  19 + materialList = []
  20 + else:
  21 + self.loadFile(fileName)
  22 +
  23 + #when the material is cast to a string, create the list of refractive indices
  24 + def __str__(self):
  25 + nSamples = len(self.materialList)
  26 + result = ""
  27 + for i in range(nSamples):
  28 + result += str(self.materialList[i]) + '\n'
  29 + return result
  30 +
  31 + def __len__(self):
  32 + return len(self.materialList)
  33 +
  34 + def __getitem__(self, l):
  35 + bigI = smallI = 0;
  36 + bigV = 999;
  37 + smallV = 0;
  38 + #find the smallest sample larger than l
  39 + for i in range(len(self.materialList)):
  40 + if self.materialList[i].l > l and self.materialList[i].l < bigV:
  41 + bigI = i
  42 + bigV = self.materialList[i].l
  43 + if self.materialList[i].l < l and self.materialList[i].l > smallV:
  44 + smallI = i
  45 + smallV = self.materialList[i].l
  46 +
  47 + a = (l - smallV)/(bigV - smallV)
  48 +
  49 + bigN = self.materialList[bigI].n
  50 + smallN = self.materialList[smallI].n
  51 +
  52 + n = a * bigN + (1 - a) * smallN
  53 +
  54 + return MaterialSampleClass(l, n)
  55 +
  56 +
  57 + #print(str(self.materialList[smallI].l) + "---" + str(self.materialList[bigI].l))
  58 +
  59 + return self.materialList[smallI]
  60 +
  61 + def add(self, l, n):
  62 + m = MaterialSampleClass(l, n)
  63 + self.materialList.append(m)
  64 +
  65 + def clip(self, minLambda, maxLambda):
  66 + #this function clips all material samples to the range [minLambda, maxLambda]
  67 + self.materialList = list(filter(lambda m: m.l > minLambda, self.materialList))
  68 + self.materialList = list(filter(lambda m: m.l < maxLambda, self.materialList))
  69 +
  70 +
  71 + def addSolution(self, n):
  72 + #places the material in a solution (divide by the solution's n)
  73 + for i in range(len(self.materialList)):
  74 + self.materialList[i].n = self.materialList[i].n / n
  75 +
  76 +
  77 +
  78 + def loadFile(self, fileName):
  79 + #open the real refractive index file
  80 + irFID = open(fileName, 'r')
  81 + #read the first line to get the units (wavelength (um) or wavenumber (cm^2))
  82 + lightUnits = irFID.readline().split('\t', 1)[0]
  83 +
  84 + #load the material
  85 + for line in irFID:
  86 + l, n, k = map(float, line.split("\t"))
  87 +
  88 + #if units are in wavenumber, convert to wavelength
  89 + if lightUnits == "nu":
  90 + l = l/10000
  91 +
  92 + self.add(l, complex(n, k))
  93 +
  94 + #close the file
  95 + irFID.close()
... ...
mstm_parameters.py 0 → 100644
  1 +++ a/mstm_parameters.py
  1 +class ParameterClass:
  2 + #minimum and maximum wavelengths for the simulation
  3 + minLambda = 0.300
  4 + maxLambda = 0.700
  5 + #number of spectral samples
  6 + nSamples = 40
  7 +
  8 + #material file name
  9 + matFilename = 'etaSilver.txt'
  10 + #are the sphere's in water?
  11 + inWater = False
  12 +
  13 + paramDict = {}
  14 + sphereList = []
  15 +
  16 + sphereParamNames = ['radius', 'X', 'Y', 'Z', 'n', 'k', 'Xr', 'Xi']
  17 +
  18 + def __init__(self, fileName):
  19 + self.loadFile(fileName)
  20 +
  21 + def __getitem__(self, key):
  22 + return self.paramDict[key];
  23 +
  24 + def __setitem__(self, key, value):
  25 + self.paramDict[key] = str(value);
  26 +
  27 + def clearSpheres(self):
  28 + self.sphereList = []
  29 +
  30 + def addSphere(self, a, x, y, z, n = 1.0, k=1.0):
  31 + s = [a, x, y, z, n, k]
  32 + self.sphereList.append(s)
  33 +
  34 + def loadFile(self, fileName):
  35 + inpFID = open(fileName, 'r')
  36 + selfparamDict = {}
  37 +
  38 + while 1:
  39 + key = inpFID.readline().strip()
  40 +
  41 + #deal with sphere sizes and positions
  42 + if key == 'sphere_sizes_and_positions':
  43 +
  44 + while True:
  45 + #load the parameters for a sphere
  46 + value = inpFID.readline().strip()
  47 + if value == 'end_of_options':
  48 + break
  49 +
  50 + self.sphereList.append(value.split(' '))
  51 +
  52 +
  53 + elif not key:
  54 + break
  55 + elif key == 'end_of_options':
  56 + break
  57 + else:
  58 + value = inpFID.readline().strip()
  59 + self.paramDict[key] = value
  60 +
  61 + inpFID.close()
  62 +
  63 + def saveFile(self, fileName):
  64 +
  65 + #open the output file
  66 + outFID = open(fileName, 'w')
  67 +
  68 + #write the parameters
  69 + for key in self.paramDict.keys():
  70 + outFID.write(key + '\n')
  71 + outFID.write(self.paramDict[key] + '\n')
  72 +
  73 + #write the spheres
  74 + outFID.write("sphere_sizes_and_positions\n")
  75 + for s in self.sphereList:
  76 + for p in s:
  77 + outFID.write(str(p) + ' ')
  78 + outFID.write('\n')
  79 + outFID.write("end_of_options")
  80 +
  81 +
  82 + def __str__(self):
  83 + #print(self.paramDict)
  84 + result = ""
  85 + for key in self.paramDict.keys():
  86 + result += key + ": " + self.paramDict[key] + '\n'
  87 +
  88 + result += "\n"
  89 + result += "Spheres:\n"
  90 + #iterate through each sphere
  91 + for s in self.sphereList:
  92 + result += "------------------\n"
  93 + for i in range(len(s)):
  94 + result += self.sphereParamNames[i] + ": " + str(s[i]) + '\n'
  95 +
  96 + return result
... ...
mstm_simparser.py 0 → 100644
  1 +++ a/mstm_simparser.py
  1 +class SimParserClass:
  2 +
  3 + simResults = dict()
  4 +
  5 + def __init__(self):
  6 + self.simResults['lambda'] = list()
  7 + self.simResults['extinction_unpolarized'] = list()
  8 + self.simResults['extinction_parallel'] = list()
  9 + self.simResults['extinction_perpendicular'] = list()
  10 +
  11 + def parseSimFile(self, l, fileName):
  12 + self.simResults['lambda'].append(l)
  13 + inFile = open(fileName, 'r')
  14 +
  15 + while True:
  16 + line = inFile.readline().strip()
  17 +
  18 + if line == 'scattering matrix elements':
  19 + break
  20 + elif line == 'unpolarized total ext, abs, scat efficiencies, w.r.t. xv, and asym. parm':
  21 + values = inFile.readline().strip().split(' ')
  22 + self.simResults['extinction_unpolarized'].append(values[0])
  23 + elif line == 'parallel total ext, abs, scat efficiencies':
  24 + values = inFile.readline().strip().split(' ')
  25 + self.simResults['extinction_parallel'].append(values[0])
  26 + elif line == 'perpendicular total ext, abs, scat efficiencies':
  27 + values = inFile.readline().strip().split(' ')
  28 + self.simResults['extinction_perpendicular'].append(values[0])
  29 +
  30 + def saveFile(self, fileName):
  31 + outFile = open(fileName, 'w')
  32 + outFile.write(str(self))
  33 +
  34 + def __getitem__(self, key):
  35 + return self.simResults[key];
  36 +
  37 + def __str__(self):
  38 + result = '';
  39 +
  40 + for i in range(len(self.simResults['lambda'])):
  41 + result += str(self.simResults['lambda'][i]) + '\t'
  42 + result += str(self.simResults['extinction_unpolarized'][i]) + '\t'
  43 + result += str(self.simResults['extinction_parallel'][i]) + '\t'
  44 + result += str(self.simResults['extinction_perpendicular'][i]) + '\n'
  45 +
  46 + return result
... ...
spectralOut.txt 0 → 100644
  1 +++ a/spectralOut.txt
... ...