checkgrad added to ctest
[unres.git] / ctest / checkgrad.awk
diff --git a/ctest/checkgrad.awk b/ctest/checkgrad.awk
new file mode 100644 (file)
index 0000000..c8968f6
--- /dev/null
@@ -0,0 +1,45 @@
+BEGIN{
+i=0
+k=1
+kk=0
+}{
+if ($0=="Gradient in virtual-bond and SC vectors") found=1
+if (found==1 && NF==0) found=2
+if (found==2 && NF>0) { 
+ i=i+1
+ if (i>3) {
+  i=1
+  k=k+6
+ }
+# print "###",i
+# print 
+ if (i==1) {
+#  print "TTT",substr($0,0,3)
+  if (!(substr($0,0,3) ~ /^[[:blank:]]*[0-9]*$/)) exit
+ }
+ if (found==2) {
+ for (j=0;j<6;j++){
+  a[i,k+j]=strtonum(substr($0,4+j*12,12))
+#  print "OOO",i,j,k,k+j,a[i,k+j]
+#  print "AAA",i,a[2,k+j]
+  if(i==3 && a[2,k+j]!=0) {
+   kk++
+   d[kk]=a[i,k+j]
+#   print "III",i,j,k,kk,d[kk]
+  }
+ }}
+}
+}END{
+diffmax=0
+for (x in d){
+  diff=d[x]-1
+  if (diff<0)diff=-diff
+  if (diff>diffmax) diffmax=diff
+}
+      
+print "Largest abs(numerical/analytical)= ",diffmax
+print "Sorted:"
+n = asort(d,sorted)
+for (i = 1; i <= n; i++)
+    printf "%4d %12.5E\n",i,sorted[i]
+}
\ No newline at end of file