da_solve_init.inc
References to this file elsewhere.
1 subroutine da_solve_init(grid &
2 #include "em_dummy_new_args.inc"
3 )
4
5 !-----------------------------------------------------------------------
6 ! Purpose: TBD
7 !-----------------------------------------------------------------------
8
9 implicit none
10
11 type(domain), intent(inout) :: grid
12
13 #include "em_dummy_new_decl.inc"
14
15 #ifdef DM_PARALLEL
16 integer :: ii
17 #endif
18
19 integer :: sm31,sm32,sm33,sm31x,sm32x,sm33x,sm31y,sm32y,sm33y
20
21 ! if (dwordsize != rwordsize)
22 #define true_MSG_XPOSE add_msg_xpose_real
23 ! else
24 ! define true_MSG_XPOSE add_msg_xpose_doubleprecision
25 ! end if
26
27 if (trace_use) call da_trace_entry("da_solve_init")
28
29 ! De-reference dimension information stored in the grid data structure.
30
31 call da_copy_dims(grid)
32
33 ! Compute these starting and stopping locations for each tile and number
34 ! of tiles.
35
36 call set_tiles (grid , ids , ide , jds , jde , ips , ipe , jps , jpe)
37
38 call da_copy_tile_dims(grid)
39
40 sm31 = grid%sm31
41 sm32 = grid%sm32
42 sm33 = grid%sm33
43 sm31x = grid%sm31x
44 sm32x = grid%sm32x
45 sm33x = grid%sm33x
46 sm31y = grid%sm31y
47 sm32y = grid%sm32y
48 sm33y = grid%sm33y
49
50 #ifdef DM_PARALLEL
51 #define REGISTER_I1
52 #include "em_data_calls.inc"
53
54 if (trace_use) call da_trace("da_solve_init", &
55 Message="Setup halo region communication")
56
57 ! Define halo region communication.
58 !-----------------------------------------------------------------------
59 ! Stencils for patch communications
60 ! * * * * *
61 ! * * * * * * * * *
62 ! * + * * + * * * + * *
63 ! * * * * * * * * *
64 ! * * * * *
65 !ij vp%v1 x
66 !ij xb%cori x
67 !ij xb%rho x
68 !ij xa%u x
69 !ij xa%v x
70 !--------------------------------------------------------------
71 #include "HALO_INIT.inc"
72 #include "HALO_PSICHI_UV.inc"
73 #include "HALO_BAL_EQN_ADJ.inc"
74 #include "HALO_PSICHI_UV_ADJ.inc"
75 #include "HALO_XA.inc"
76 #include "HALO_SFC_XA.inc"
77 #include "HALO_SSMI_XA.inc"
78 #include "HALO_2D_WORK.inc"
79 #include "HALO_RADAR_XA_W.inc"
80
81 if (trace_use) call da_trace("da_solve_init", &
82 Message="Copy domain and transpose descriptors")
83
84 ! Copy domain and transpose descriptors.
85
86 grid%xp%domdesc = grid%domdesc
87 do ii = 1, max_comms
88 grid%xp%comms(ii) = grid%comms(ii)
89 end do
90
91 #endif
92
93 ! Fill background scalars:
94
95 grid%xb%ids = grid%xp%ids
96 grid%xb%ide = grid%xp%ide
97 grid%xb%jds = grid%xp%jds
98 grid%xb%jde = grid%xp%jde
99 grid%xb%kds = grid%xp%kds
100 grid%xb%kde = grid%xp%kde
101
102 grid%xb%ims = grid%xp%ims
103 grid%xb%ime = grid%xp%ime
104 grid%xb%jms = grid%xp%jms
105 grid%xb%jme = grid%xp%jme
106 grid%xb%kms = grid%xp%kms
107 grid%xb%kme = grid%xp%kme
108
109 grid%xb%its = grid%xp%its
110 grid%xb%ite = grid%xp%ite
111 grid%xb%jts = grid%xp%jts
112 grid%xb%jte = grid%xp%jte
113 grid%xb%kts = grid%xp%kts
114 grid%xb%kte = grid%xp%kte
115
116 if (trace_use) call da_trace_exit("da_solve_init")
117
118 end subroutine da_solve_init
119
120