--- /dev/null
+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
--- /dev/null
+Test of cartesian gradient - 1bdd - pdbstart unres_pdb
+SEED=-3059743 pdbstart pdbref refstr rescale_mode=2 unres_pdb checkgrad cart
+WLONG=1.00000 WSCP=1.23315 WELEC=0.84476 WBOND=1.00000 WANG=0.62954 &
+WSCLOC=0.10554 WTOR=1.34316 WTORD=1.26571 WCORRH=0.19212 WCORR5=0.00000 &
+WCORR6=0.00000 WEL_LOC=0.37357 WTURN3=1.40323 WTURN4=0.64673 WTURN6=0.00000 &
+WVDWPP=0.23173 WHPB=1.00000 WSCCOR=0.25 &
+CUTOFF=7.00000 WCORR4=0.00000
+prota_unres.pdb
+ 0
+ 0
+0 0 0 0
+300.0
# exit 1
fi
+elif [ "$1" == "prota_CHECKGRAD" ]; then
+ diff=`awk -f checkgrad.awk $file |grep 'Largest abs(numerical/analytical)='|awk '{printf "%15.10f",$3}'`
+ awk -f checkgrad.awk $file
+
+ if [ `echo "a=${diff};a>0.0001"|bc -l` != "0" ]; then
+ echo 'ERROR largest abs(numerical/analytical)' ${diff}
+ echo ' greater than 0.0001'
+ exit 1
+ else
+ exit 0
+ fi
+
else
exit 1
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/checkgrad.awk
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_CHECKGRAD.inp
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+
#=========================================
if(UNRES_MD_FF STREQUAL "E0LL2Y")
add_test(NAME UNRES_ENE_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 1 )
+ add_test(NAME UNRES_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )
add_test(NAME UNRES_MIN_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 1 )
add_test(NAME UNRES_MIN_INT COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
add_test(NAME UNRES_REGULAR COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
if(UNRES_MD_FF STREQUAL "E0LL2Y")
add_test(NAME UNRES_ENE_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 2 )
add_test(NAME UNRES_ENE1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 1 )
+ add_test(NAME UNRES_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )
add_test(NAME UNRES_MIN_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 2 )
add_test(NAME UNRES_MIN_INT COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
add_test(NAME UNRES_REGULAR COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )