Loading sources/TENTATIVE/NewFormat/read_nistdat_write_json.f90 0 → 100644 +1273 −0 File added.Preview size limit exceeded, changes collapsed. Show changes sources/TENTATIVE/NewFormat/tstfson.f90 +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(:) Loading Loading @@ -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 Loading @@ -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 !! Loading Loading @@ -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 Loading sources/drspine.f90 +32 −0 Original line number Diff line number Diff line Loading @@ -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 Loading sources/matching.f90 +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading
sources/TENTATIVE/NewFormat/read_nistdat_write_json.f90 0 → 100644 +1273 −0 File added.Preview size limit exceeded, changes collapsed. Show changes
sources/TENTATIVE/NewFormat/tstfson.f90 +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(:) Loading Loading @@ -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 Loading @@ -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 !! Loading Loading @@ -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 Loading
sources/drspine.f90 +32 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
sources/matching.f90 +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading