1 | include(dom.inc)
2 |
3 | MODULE mod_slave
4 | ! ===============================================================!
5 | ! !
6 | ! mod_slave.F : module that contains all necesary data for the !
7 | ! execution of the slave code !
8 | ! !
9 | ! contains : global parameters for local processor ... !
10 | ! !
11 | ! author : J. AMAYA & D. Poitou (september 2011) !
12 | ! !
13 | ! ===============================================================!
14 |
15 | IMPLICIT NONE
16 |
17 | ! -----------------!
18 | ! General settings !
19 | ! -----------------!
20 |
21 | DOM_INT :: is_nnodes, is_nfacesmax, is_ncells
22 | DOM_INT :: is_ngaz, is_nbfaces, is_nfaces
23 | DOM_INT :: is_nkabs
24 | DOM_INT :: is_ngg = 3
25 | DOM_INT :: is_nprobes, i_inter
26 | DOM_INT :: is_ntot_cells, is_ntot_nodes, is_ntot_bfaces
27 | DOM_INT :: is_ntot_vfaces, is_nvfaces, is_vfacebeg
28 |
29 | ! --------------!
30 | ! Spectral data !
31 | ! --------------!
32 |
33 | DOM_INT, ALLOCATABLE, DIMENSION(:) :: is_nbandes
34 | DOM_INT :: is_nallbandes
35 |
36 | ! -------------!
37 | ! Partitioning !
38 | ! -------------!
39 |
40 | DOM_INT :: is_ndir, is_cd, is_cf, is_dird, is_dirf
41 | DOM_INT :: is_dirbeg, is_dirend, is_ntotdir
42 | DOM_INT :: is_lbcd, is_lbcf
43 | DOM_INT :: is_bfbeg, is_bfend
44 | DOM_INT :: is_cellb, is_cellf
45 | DOM_INT :: is_buffersize
46 | DOM_INT :: is_part, is_task, is_ntask, SUB_COMM
47 |
48 | ! ---------------!
49 | ! Global vectors !
50 | ! ---------------!
51 |
52 | DOM_INT, ALLOCATABLE, DIMENSION(:) :: is_golo_cells
53 | DOM_INT, ALLOCATABLE, DIMENSION(:) :: is_logo_cells
54 | DOM_INT, ALLOCATABLE, DIMENSION(:) :: is_golo_nodes
55 |
56 | ! --------------!
57 | ! local vectors !
58 | ! --------------!
59 |
60 | DOM_INT, ALLOCATABLE, DIMENSION(:,:) :: is_pathway
61 | DOM_INT, ALLOCATABLE, DIMENSION(:,:) :: is_neighs
62 | DOM_INT, ALLOCATABLE, DIMENSION(:) :: is_nfcelt
63 |
64 | DOM_INT, ALLOCATABLE, DIMENSION(:) :: is_cnodes
65 | DOM_INT, ALLOCATABLE, DIMENSION(:,:) :: is_cnnode
66 |
67 | DOM_INT, ALLOCATABLE, DIMENSION(:) :: is_norm_probe
68 | DOM_INT, ALLOCATABLE, DIMENSION(:) :: is_pcells
69 |
70 | DOM_INT, ALLOCATABLE, DIMENSION(:) :: is_bface_nnode
71 | DOM_INT, ALLOCATABLE, DIMENSION(:,:) :: is_bface_nodes
72 |
73 | DOM_REAL, ALLOCATABLE, DIMENSION(:,:) :: s_norm_probe
74 | DOM_REAL, ALLOCATABLE, DIMENSION(:,:) :: s_maxlen
75 | DOM_REAL, ALLOCATABLE,DIMENSION(:,:,:):: s_ss
76 | DOM_REAL, ALLOCATABLE, DIMENSION(:) :: s_mu, s_eta
77 | DOM_REAL, ALLOCATABLE, DIMENSION(:) :: s_ksi, s_w
78 | DOM_REAL, ALLOCATABLE, DIMENSION(:,:) :: s_KCO, s_KC
79 | DOM_REAL, ALLOCATABLE, DIMENSION(:,:) :: s_KH, s_DCO
80 | DOM_REAL, ALLOCATABLE, DIMENSION(:,:) :: s_DC, s_DH
81 | DOM_REAL, ALLOCATABLE, DIMENSION(:) :: s_V, s_k_scat
82 | DOM_REAL, ALLOCATABLE, DIMENSION(:) :: s_kabs_gray
83 | DOM_REAL, ALLOCATABLE, DIMENSION(:,:) :: s_S
84 | DOM_REAL, ALLOCATABLE,DIMENSION(:,:,:):: s_norm
85 | DOM_REAL, ALLOCATABLE, DIMENSION(:,:) :: s_celldata
86 | DOM_REAL, ALLOCATABLE, DIMENSION(:) :: s_all_WVNB
87 | DOM_REAL, ALLOCATABLE, DIMENSION(:) :: s_all_DWVNB
88 | DOM_REAL, ALLOCATABLE, DIMENSION(:,:) :: s_alpha
89 | DOM_REAL, ALLOCATABLE, DIMENSION(:) :: s_kwsgg
90 | DOM_REAL, ALLOCATABLE, DIMENSION(:,:) :: s_WSGG_W, s_WSGG_Wb
91 | DOM_REAL, DIMENSION(8) :: s_dataref
92 |
93 | DOM_REAL, ALLOCATABLE,DIMENSION(:,:,:,:,:) :: s_tabkabs
94 | DOM_INT :: is_nYH, is_nYC, is_nYCO, is_nT
95 | DOM_REAL :: s_DYH , s_DYC , s_DYCO , s_DT
96 |
97 | ! --------------!
98 | ! Boundary Type !
99 | ! --------------!
100 | TYPE BND_TYPE
101 | DOM_INT :: icell
102 | DOM_INT :: iface
103 | DOM_INT :: logo_cell
104 | DOM_REAL :: epsil
105 | DOM_REAL :: Tf
106 | END TYPE BND_TYPE
107 |
108 | TYPE(BND_TYPE), ALLOCATABLE, DIMENSION(:) :: ts_boundary
109 |
110 | ! -------------!
111 | ! Virtual Type !
112 | ! -------------!
113 | TYPE VIRT_TYPE
114 | DOM_INT :: icell
115 | DOM_INT :: iface
116 | DOM_INT :: icell_next
117 | DOM_INT :: icell_next_glob
118 | DOM_INT :: iface_next
119 | END TYPE VIRT_TYPE
120 |
121 | TYPE(VIRT_TYPE), ALLOCATABLE, DIMENSION(:) :: ts_virtbound
122 | DOM_REAL, ALLOCATABLE,DIMENSION(:,:,:,:) :: s_Lvirt
123 |
124 |
125 | ! -------------!
126 | ! Local result !
127 | ! -------------!
128 | DOM_REAL, ALLOCATABLE, DIMENSION(:) :: s_Gtot, s_Lbtot
129 | DOM_REAL, ALLOCATABLE, DIMENSION(:) :: s_Htot, s_Qw
130 | DOM_REAL, ALLOCATABLE, DIMENSION(:,:) :: s_Qrtot, s_Qptot
131 | DOM_REAL :: Sr_vol
132 |
133 | END MODULE mod_slave
mod_slave.F could be called by: