1c***********************************************************************
2      logical function property(rtdb)
3c***********************************************************************
4c
5c>>>  Inquire rtdb for properties to be evaluated.
6c
7*
8* $Id$
9*
10      implicit none
11      integer rtdb              ! [input]
12      integer nbofile,aimfile,moldenfile,polfromsos
13      logical status
14      logical ostart,ocontinue,orestart
15      integer restr
16      logical do_fockbuild
17      logical  hnd_property
18      external hnd_property
19#include "context.fh"
20#include "mafdecls.fh"
21#include "rtdb.fh"
22#include "global.fh"
23#include "stdio.fh"
24c
25c     Push context down to prop.
26c
27      call ga_sync()
28
29      status = rtdb_parallel(.true.) ! Broadcast reads to all processes
30*      if(ga_nodeid().eq.0)
31*     $     call util_print_centered(LUout,'Properties',40,.true.)
32c
33c     start ecce property output module
34c
35      call util_print_push
36      call util_print_rtdb_load(rtdb,'prop')
37      call ecce_print_module_entry('task property')
38c
39c     Find out if this is a restart
40c
41      restr = 0
42      call util_get_rtdb_state(rtdb,ostart,ocontinue,orestart)
43      if (orestart) restr = 1
44      if (restr.gt.0.and. ga_nodeid().eq.0)
45     &    write(luout,*) 'Restarting calculation'
46c
47      call solver_setup(rtdb,restr)  ! restart parameters for solver (ga_lkain())
48      if (.not.rtdb_get(rtdb,'prop:do_fockbuild',MT_LOG,1,do_fockbuild))
49     D     do_fockbuild=.true.
50c
51c     hondo property calculation routines
52c
53      if(do_fockbuild)  then
54         status = hnd_property(rtdb)
55      endif
56c
57c     nbo input file
58c
59      if (rtdb_get(rtdb,'prop:nbofile',MT_INT,1,nbofile)) then
60        if(nbofile.eq.1) call wnbofile(rtdb)
61      endif
62      if (rtdb_get(rtdb,'prop:aimfile',MT_INT,1,aimfile)) then
63        if(aimfile.eq.1) call waimfile(rtdb)
64      endif
65      if (rtdb_get(rtdb,'prop:moldenfile',MT_INT,1,moldenfile)) then
66        if(moldenfile.eq.1) call prop_moldenfile(rtdb)
67      endif
68      if (rtdb_get(rtdb,'prop:polfromsos',MT_INT,1,polfromsos)) then
69        if(polfromsos.eq.1) call prop_polfromsos(rtdb)
70      endif
71c
72c     finish ecce property output module
73c
74      call ecce_print_module_exit('task property','ok')
75      call util_print_pop
76      property = .true.
77      return
78      end
79