My Project
ice_domain.f90
Go to the documentation of this file.
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 !/===========================================================================/
13 ! CVS VERSION INFORMATION
14 ! $Id$
15 ! $Name$
16 ! $Revision$
17 !/===========================================================================/
18 
19 !=======================================================================
20 !
21 !BOP
22 !
23 ! !MODULE: ice_domain - sets array sizes for local subdomain and parallel info
24 !
25 ! !DESCRIPTION:
26 !
27 ! Sets array sizes for local subdomain and related parallel
28 ! processing info. Code originally based on domain.F in POP
29 !
30 ! !REVISION HISTORY:
31 !
32 ! author Elizabeth C. Hunke, LANL
33 !
34 ! !INTERFACE:
35 !
36  module ice_domain
37 !
38 ! !USES:
39 !
40  use ice_kinds_mod
41  use ice_model_size
42 
43 ! connect to FVCOM
44 
45 
46 !
47 !EOP
48 !
49  implicit none
50  save
51 
52  ! ghost cells define boundary data to avoid frequent
53  ! off-processor communication
54  integer (kind=int_kind), parameter :: &
55  num_ghost_cells = 1
56 
57  ! imt_local, jmt_local define total size of subdomain -
58  ! the formula below automatically pads arrays if NPROC_X
59  ! or NPROC_Y do not evenly divide global problem size
60 
61  !!!!NOTE: This version of the ice model is not set up to !!!!
62  !!!! use the padding properly. The number of !!!!
63  !!!! processors MUST divide evenly into the grid. !!!!
64 
65 ! integer (kind=int_kind), parameter :: &
66 ! imt_local = 1 !, &
67 ! jmt_local = 100 ! MT ggao need change to MT
68 
69 ! & imt_local = (imt_global-1)/NPROC_X + 1 + 2*num_ghost_cells,
70 ! & jmt_local = (jmt_global-1)/NPROC_Y + 1 + 2*num_ghost_cells
71 
72 ! integer (kind=int_kind), parameter :: &
73 ! ilo = 1, & ! beg index of actual physical subdomain
74 ! ihi = 1, & ! end index
75 ! jlo = 1 ! beg index
76 ! ,jhi = MT ! ggao need change to MT ! end index
77 
78 ! & ilo = num_ghost_cells+1, ! beg index of actual physical subdomain
79 ! & ihi = imt_local - num_ghost_cells, ! end index
80 ! & jlo = num_ghost_cells+1, ! beg index
81 ! & jhi = jmt_local - num_ghost_cells ! end index
82 
83 ! integer (kind=int_kind), dimension (ilo:ihi,jlo:jhi) :: &
84  integer (kind=int_kind), dimension (:,:),allocatable,save :: &
85  index_global ! global index for local subdomain (int)
86 
87 
88 ! integer (kind=int_kind), allocatable :: &
89 ! index_global(:,:) ! global index for local subdomain (int)
90 
91 ! real (kind=dbl_kind), allocatable :: &
92  integer (kind=int_kind), dimension (:,:),allocatable,save :: &
93  rndex_global ! global index for local subdomain (dbl)
94 
95  integer (kind=int_kind),save :: &
96  my_task, & ! task id for local process
97  master_task ! task id for master process
98 
99 
100 
101  integer (kind=int_kind) :: ilo,ihi,jlo,jhi,imt_local,jmt_local
102 
103  end module ice_domain
104 
105 !=======================================================================
integer(kind=int_kind) ihi
Definition: ice_domain.f90:101
integer(kind=int_kind), parameter num_ghost_cells
Definition: ice_domain.f90:54
integer(kind=int_kind) jlo
Definition: ice_domain.f90:101
integer(kind=int_kind) ilo
Definition: ice_domain.f90:101
integer(kind=int_kind) jhi
Definition: ice_domain.f90:101
integer(kind=int_kind), dimension(:,:), allocatable, save index_global
Definition: ice_domain.f90:84
integer(kind=int_kind), save my_task
Definition: ice_domain.f90:95
integer(kind=int_kind) imt_local
Definition: ice_domain.f90:101
integer(kind=int_kind), dimension(:,:), allocatable, save rndex_global
Definition: ice_domain.f90:92
integer(kind=int_kind), save master_task
Definition: ice_domain.f90:95
integer(kind=int_kind) jmt_local
Definition: ice_domain.f90:101