Commit cb83c416 authored by Monkenbusch, Michael's avatar Monkenbusch, Michael
Browse files

json format tests

parent d3f1f269
Loading
Loading
Loading
Loading
+1273 −0

File added.

Preview size limit exceeded, changes collapsed.

+9 −7
Original line number Diff line number Diff line
program tstjson
 implicit none
 character(len=80) :: filename = "test1.json"
 !character(len=80) :: filename = "test1.json"
 !character(len=80) :: filename = "N26025.json"
 character(len=80) :: filename = "Conformer3D_CID_6397.json"
 character(len=80) :: key
 character(len=1)  :: LF = char(10)
 integer           :: filesize, fileid, ios
 integer           :: i, j, i1, i2

 integer           :: values(20)
 real              :: values(50)

 integer           :: nesting, array, raise
 integer(kind=1), allocatable :: curly_nest(:), array_nest(:)
@@ -51,7 +53,7 @@ program tstjson


!! read det
 key = '"row":['
 key = '"fourierTime",['
 i1 = index(inline,      trim(key)) + len_trim(key)
 i2 = index(inline(i1:), ']') + i1-2

@@ -59,8 +61,8 @@ program tstjson
 write(*,*)inline(i1:i2)
 values=0
 read(inline(i1:i2),*,iostat=ios) values
 write(*,*)values
 write(*,*)ios
 write(*,*)"T1:",values
 write(*,*)"T2: ios=",ios

!!

@@ -137,11 +139,11 @@ write(*,'(a)')oline

!!!! check nesting levels !!!!
do i=1,len(oline)
   if(oline(i:i)==LF) then ; write(*,*); cycle; endif
   if(oline(i:i)==LF) then ; write(*,'("(",2i1,")")') curly_nest(i),array_nest(i) ; cycle; endif
   if(oline(i:i) == " ") then
    write(*,'(a)',advance="no")" "
   else
    write(*,'(a,"(",2i1,")")',advance="no") oline(i:i),curly_nest(i),array_nest(i) 
    write(*,'(a)',advance="no") oline(i:i) 
   endif
enddo

+32 −0
Original line number Diff line number Diff line
@@ -3347,6 +3347,38 @@ se: if(found('close') .or. found('end')) then
       call tex("\vskip 0.1cm")
! =========== end of deff table writing into the report ============================================

      call tex("\vskip 5mm");
      call tex("{\bf Explanation how the $D_{\rm eff}(Q)$ values (red-points, list values) are evaluated:}")
      call tex("The indivual results (blue points in the diagrams) are averaged according to the steps")
      call tex("given below. The catch region is linear. The averaging is accumulating all partial")
      call tex("evaluation in this run.")
      call tex("\vskip 3mm")
      call tex("The q-catch region can be modified adding {\bf deff\_qcatch val} to the report line.")
      call tex("\vskip 3mm")
      call tex("\begin{enumerate}")
      call tex("\item Collect all data points from one or several records into one linear array (x,y,error).")
      call tex("\item Sort that array to increasing error.")
      call tex("\item \label{av:it} Start with the (still left \emph{not used}) lowest error entry ")
      call tex("and look for all other points within ")
      call tex("a x-distance given by \emph{xcatch} (relative to ${x}$ or absolute) (index \emph{j}).")
      call tex("\item collect the information to create a new average point (index \emph{i}) using error-weighting:")
      call tex("${w_i=[ \sum_j {1/y_{err,j}^2}]}$ \\")
      call tex("${x_i=[(1/w_i) \sum_j {x_i/y_{err,j}^2}]}$ \\")
      call tex("${y_i=(1/w_i)[\sum_j {y_j/y_{err,j}^2}]}$ \\")
      call tex("${y_{err,i} = \sqrt{1/w_i}}$.")
      call tex("\item flag the selected initial and the selected \emph{neighbouring} points as \emph{used}.")
      call tex("\item Iterate by returning to point 3 until all points are used.")
      call tex("\item Finally sort result array according to x.")
      call tex("\item If several records contribute determine the best guess of the metadata parameters of")
      call tex("the resulting record.")
      call tex("\item Select the resulting record.")
      call tex("\end{enumerate}")






! =========== add a copy of the top level macro that was used to run the evaluation to =============
!             the end of the report
       if (len_trim(top_macro_file)>0) then
+2 −2
Original line number Diff line number Diff line
@@ -19,8 +19,8 @@ module matching
  !! @note discrimating value for modes is still missing (e.g. current)


  real(kind=DBL)  :: J0_match_tolerance_abs           = 0.00001_DBL *30
  real(kind=DBL)  :: J0_match_tolerance_rel           = 0.003_DBL   *10 
  real(kind=DBL)  :: J0_match_tolerance_abs           = 0.00001_DBL *30 ! * 2 ! for NIST example
  real(kind=DBL)  :: J0_match_tolerance_rel           = 0.003_DBL   *10 ! * 2 ! "    "     "
  real(kind=DBL)  :: scattering_angle_match_tolerance = 0.15_DBL*DEGREE
  real(kind=DBL)  :: sample_angle_match_tolerance     = 180.0_DBL*DEGREE
  real(kind=DBL)  :: lambda_min_match_tolerance       = 0.1_DBL*ANGSTROEM