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