1#!/bin/sh
2#
3# This is the script for generating files for a specific Dalton test job.
4#
5# For the .check file ksh or bash is preferred, otherwise use sh
6# (and hope it is not the old Bourne shell, which will not work)
7#
8if [ -x /bin/ksh ]; then
9   CHECK_SHELL='#!/bin/ksh'
10elif [ -x /bin/bash ]; then
11   CHECK_SHELL='#!/bin/bash'
12else
13   CHECK_SHELL='#!/bin/sh'
14fi
15
16
17#######################################################################
18#  TEST DESCRIPTION
19#######################################################################
20cat > prop_dft_nacme.info <<%EOF%
21   prop_dft_nacme
22   ----------
23   Molecule:         H2
24   Wave Function:    B3-LYP / 6-31G**
25   Test Purpose:     Calculation of vibrational g-factor as sum
26                     over all first order non-adiabatic coupling elements
27%EOF%
28
29#######################################################################
30#  MOLECULE INPUT
31#######################################################################
32cat > prop_dft_nacme.mol <<%EOF%
33BASIS
34cc-pVTZ
35N2 HF NACME; basis set : cc-pVTZ
36
37    1    0
38      7.00    2
39N_a    0.000000000000000   0.000000000000000   1.037572100000000       *
40N_b    0.000000000000000   0.000000000000000  -1.037572100000000       *
41FINISH
42%EOF%
43
44#######################################################################
45#  DALTON INPUT
46#######################################################################
47cat > prop_dft_nacme.dal <<%EOF%
48**DALTON INPUT
49.RUN PROPERTIES
50**WAVE FUNCTIONS
51.DFT
52 B3LYP
53**PROPERTIES
54.EXCITA
55.NACME
56*RESPON
57.THRESH
58 1.0D-09
59*TROINV
60.SKIP
61*EXCITA
62.FNAC
63.NEXCITA
64   10
65.THRESH
66 1.0D-9
67**END OF DALTON INPUT
68%EOF%
69#######################################################################
70
71
72
73#######################################################################
74
75#######################################################################
76#  CHECK SCRIPT
77#######################################################################
78echo $CHECK_SHELL >prop_dft_nacme.check
79cat >>prop_dft_nacme.check <<'%EOF%'
80log=$1
81
82if [ `uname` = Linux ]; then
83   GREP="egrep -a"
84else
85   GREP="egrep"
86fi
87
88if $GREP -q "not implemented for parallel calculations" $log; then
89   echo "TEST ENDED AS EXPECTED"
90   exit 0
91fi
92
93# Basis set
94CRIT1=`$GREP "H * 2 * 1\.0000 * 7 * 5 * \[4s1p\|2s1p\]" $log | wc -l`
95CRIT2=`$GREP "total\: * 2 * 2\.0000 * 14 * 10" $log | wc -l`
96TEST[1]=`expr	$CRIT1 \+ $CRIT2`
97CTRL[1]=2
98ERROR[1]="BASIS SET NOT READ CORRECTLY"
99
100# Geometry
101CRIT1=`$GREP "Total number of coordinates\: * 6" $log | wc -l`
102CRIT2=`$GREP "H * \/ * 1 \: * 1 * x * (0| )\.0000000000 * 2 * y * (0| )\.0000000000 * 3 * z * 1\.5000000000" $log | wc -l`
103CRIT3=`$GREP "H * \/ * 2 \: * 4 * x * (0| )\.0000000000 * 5 * y * (0| )\.0000000000 * 6 * z * \-1\.5000000000" $log | wc -l`
104TEST[2]=`expr	$CRIT1 \+ $CRIT2 \+ $CRIT3`
105ECHO[2]="$CRIT1 $CRIT2 $CRIT3"
106CTRL[2]=3
107ERROR[2]="GEOMETRY NOT READ CORRECTLY"
108
109# Symmetry
110CRIT1=`$GREP "Number of coordinates in each symmetry\: * 1 * 1 * 1 * 0 * 1 * 1 * 1 * 0" $log | wc -l`
111CRIT2=`$GREP "Number of orbitals in each symmetry\: * 3 * 1 * 1 * 0 * 3 * 1 * 1 * 0" $log | wc -l`
112TEST[3]=`expr	$CRIT1 \+ $CRIT2`
113CTRL[3]=2
114ERROR[3]="SYMMETRY NOT CORRECT"
115
116# Energies
117CRIT1=`$GREP "Final MCSCF energy\: * \-1\.04697084862[0-9]" $log | wc -l`
118TEST[4]=`expr	$CRIT1`
119CTRL[4]=1
120ERROR[4]="ENERGIES NOT CORRECT"
121
122# Properties setup
123CRIT1=`$GREP "The molecular gradient" $log | wc -l`
124CRIT2=`$GREP "The molecular Hessian" $log | wc -l`
125CRIT3=`$GREP "Electronic excitation energies" $log | wc -l`
126CRIT4=`$GREP "First order nonadiabatic coupling elements" $log | wc -l`
127TEST[5]=`expr	$CRIT1 \+ $CRIT2 \+ $CRIT3 \+ $CRIT4`
128ECHO[5]="$CRIT1 $CRIT2 $CRIT3 $CRIT4"
129CTRL[5]=4
130ERROR[5]="CALCULATION OF VIBRATIONAL G-FACTOR NOT SET UP CORRECTLY"
131
132# Vibrational g-factor
133CRIT1=`$GREP "Vibrational g\-factor\: * H * z\[ * 3 * \- * 6\]\/2 * 1\.337[12]" $log | wc -l`
134# Vibrational g-factor: H   z[ 3 - 6]/2     1.337202 ! no d-states included /hjaaj
135# Vibrational g-factor: H   z[ 3 - 6]/2     1.337165 ! with 2 d-states included /hjaaj
136CRIT2=`$GREP "Vibrational g\-factor\: * H * x\[ * 1 * \+ * 4\]\/2 * (0| )\.413557" $log | wc -l`
137CRIT3=`$GREP "Vibrational g\-factor\: * H * y\[ * 2 * \+ * 5\]\/2 * (0| )\.413557" $log | wc -l`
138CRIT4=`$GREP "Vibrational g\-factor\: * H * z\[ * 3 * \+ * 6\]\/2 * 1\.438462" $log | wc -l`
139CRIT5=`$GREP "Vibrational g\-factor\: * H * x\[ * 1 * \- * 4\]\/2 * (0| )\.302475" $log | wc -l`
140CRIT6=`$GREP "Vibrational g\-factor\: * H * y\[ * 2 * \- * 5\]\/2 * (0| )\.302475" $log | wc -l`
141TEST[6]=`expr	$CRIT1 \+ $CRIT2 \+ $CRIT3 \+ $CRIT4 \+ $CRIT5 \+ $CRIT6`
142ECHO[6]="$CRIT1 $CRIT2 $CRIT3 $CRIT4 $CRIT5 $CRIT6"
143CTRL[6]=6
144ERROR[6]="VIBRATIONAL G-FACTOR NOT CORRECT"
145
146PASSED=1
147for i in 1 2 3 4 5 6
148do
149   if [ ${TEST[i]} -ne ${CTRL[i]} ]; then
150     echo "${ERROR[i]} ( test = ${TEST[i]}; control = ${CTRL[i]} ); "
151     echo ${ECHO[i]}
152     PASSED=0
153   fi
154done
155
156if [ $PASSED -eq 1 ]
157then
158  echo TEST ENDED PROPERLY
159  exit 0
160else
161  echo THERE IS A PROBLEM
162  exit 1
163fi
164%EOF%
165#######################################################################
166