aboutsummaryrefslogtreecommitdiff
path: root/src/MoL_Init.F90
blob: d01eec11ca1ff7fdb2590bebda8472db5b411466 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
! Registration of variables with MoL
! $Header$

#include "cctk.h"
#include "cctk_Parameters.h"
#include "cctk_Arguments.h"
#include "cctk_Functions.h"

subroutine EHFinder_MoLRegister(CCTK_ARGUMENTS)

  implicit none

  CCTK_INT :: ierr, ierr_cum, varindex, rhsindex
  CCTK_INT :: l

  DECLARE_CCTK_PARAMETERS
  DECLARE_CCTK_ARGUMENTS
  DECLARE_CCTK_FUNCTIONS

  ierr_cum = 0

  call CCTK_GroupIndex ( varindex, 'ehfinder::f' )
  call CCTK_GroupIndex ( rhsindex, 'ehfinder::sf' )

  ierr_cum = ierr_cum + MolRegisterEvolvedGroup ( varindex, rhsindex )

  if ( evolve_generators .gt. 0 ) then

    if ( CCTK_EQUALS( generator_distribution, 'line' ) ) then

      call CCTK_GroupIndex (varindex, 'ehfinder::xg')
      call CCTK_GroupIndex(rhsindex, 'ehfinder::dxg')

      ierr_cum = ierr_cum + MoLRegisterEvolvedGroup(varindex, rhsindex)

      call CCTK_GroupIndex (varindex, 'ehfinder::yg')
      call CCTK_GroupIndex(rhsindex, 'ehfinder::dyg')

      ierr_cum = ierr_cum + MoLRegisterEvolvedGroup(varindex, rhsindex)

      call CCTK_GroupIndex (varindex, 'ehfinder::zg')
      call CCTK_GroupIndex(rhsindex, 'ehfinder::dzg')

      ierr_cum = ierr_cum + MoLRegisterEvolvedGroup(varindex, rhsindex)

    else if ( CCTK_EQUALS( generator_distribution, '2D array' ) ) then

      call CCTK_GroupIndex (varindex, 'ehfinder::xg2')
      call CCTK_GroupIndex(rhsindex, 'ehfinder::dxg2')

      ierr_cum = ierr_cum + MoLRegisterEvolvedGroup(varindex, rhsindex)

      call CCTK_GroupIndex (varindex, 'ehfinder::yg2')
      call CCTK_GroupIndex(rhsindex, 'ehfinder::dyg2')

      ierr_cum = ierr_cum + MoLRegisterEvolvedGroup(varindex, rhsindex)

      call CCTK_GroupIndex (varindex, 'ehfinder::zg2')
      call CCTK_GroupIndex(rhsindex, 'ehfinder::dzg2')

      ierr_cum = ierr_cum + MoLRegisterEvolvedGroup(varindex, rhsindex)

    end if

  end if
 
  if ( ierr_cum .gt. 0 ) then
    call CCTK_WARN(0,'Problems registering variables with MoL')
  end if
end subroutine EHFinder_MoLRegister