Wilson-Amos-Handy method for calculation of NMR shifts


Click here for full thread
Gets Around
Bert,
I couldn't kompile with the file you provided (debian, gcc 4.7),but with the following modifications it worked fine:
16c16
< c#include "../nwdft/include/cdft.fh"
---
> #include "../nwdft/include/cdft.fh"
33c33
<       double precision jfac(3),kfac(3),a(6),axs(3,3),eig(3),xfac(1)
---
>       double precision jfac(3),kfac(3),a(6),axs(3,3),eig(3)
42d41
<       logical do_wah


To my nwchem input I added
set dft:wah true

which I guess should be right:
cat co.db|strings|grep dft
   dft:wah
   !rtdb!dft:wah

but the shifts are the same as for the unmodified code (see below), and the number of iterations are not affected.

This is the case both when I modify xfac in the other files in src/property, and when I don't.

I also tried forcing wah by removing the if construct (i.e. same as if do_wah is true every time)
16c16
< c#include "../nwdft/include/cdft.fh"
---
> #include "../nwdft/include/cdft.fh"
33c33
<       double precision jfac(3),kfac(3),a(6),axs(3,3),eig(3),xfac(1)
---
>       double precision jfac(3),kfac(3),a(6),axs(3,3),eig(3)
76,78c76,78
< c      if (.not. rtdb_get(rtdb, 'dft:wah', mt_log, 1, do_wah))
< c     $   do_wah = .false.
< c      if (do_wah) then
---
>       if (.not. rtdb_get(rtdb, 'dft:wah', mt_log, 1, do_wah))
>      $   do_wah = .false.
>       if (do_wah) then
81c81
< c      endif
---
>       endif
872c872
< c      if (do_wah) then
---
>       if (do_wah) then
874c874
< c      endif
---
>       endif

But it didn't make any difference.

For either version of the code I get

For Carbon:
           isotropic =       5.1483
          anisotropy =     401.3242

For Oxygen:
           isotropic =     -60.6964
          anisotropy =     705.9682


I've tried a number of permutations but with little luck in terms of isotopic shift changes.

PS It's also become more difficult to post on the forum in the past week or two owing to the 'The specified URL cannot be found" issue.