New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
modinit.F in branches/UKMO/dev_r5518_new_runoff_coupling/NEMOGCM/EXTERNAL/AGRIF/AGRIF_FILES – NEMO

source: branches/UKMO/dev_r5518_new_runoff_coupling/NEMOGCM/EXTERNAL/AGRIF/AGRIF_FILES/modinit.F @ 8163

Last change on this file since 8163 was 8163, checked in by dancopsey, 7 years ago

Clear out SVN keywords.

File size: 8.6 KB
Line 
1C     AGRIF (Adaptive Grid Refinement In Fortran)
2C
3C     Copyright (C) 2003 Laurent Debreu (Laurent.Debreu@imag.fr)
4C                        Christophe Vouland (Christophe.Vouland@imag.fr)   
5C
6C     This program is free software; you can redistribute it and/or modify
7C     it under the terms of the GNU General Public License as published by
8C     the Free Software Foundation; either version 2 of the License, or
9C     (at your option) any later version.
10C
11C     This program is distributed in the hope that it will be useful,
12C     but WITHOUT ANY WARRANTY; without even the implied warranty of
13C     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14C     GNU General Public License for more details.
15C
16C     You should have received a copy of the GNU General Public License
17C     along with this program; if not, write to the Free Software
18C     Foundation, Inc., 59 Temple Place-  Suite 330, Boston, MA 02111-1307, USA.
19C
20C
21C
22CCC   Module Agrif_Init
23C
24      Module Agrif_Init 
25C
26CCC   Description:
27CCC   Several operations on the variables of the current grid (creation,
28CCC   instanciation, ...) used during the creation of the grid hierarchy and
29CCC   during the time integration.
30C
31C     Modules used: 
32C
33      Use Agrif_Types 
34      Use Agrif_link
35C   
36      IMPLICIT NONE
37C
38      Contains
39C     Defininition of the procedures contained in this module
40C
41C     **************************************************************************
42CCC   Subroutine Agrif_Allocation 
43C     **************************************************************************
44C 
45      Subroutine Agrif_Allocation(Agrif_Gr)
46C
47CCC   Description:
48CCC   Subroutine to allocate the arrays containing the values of the variables 
49CCC   of the current grd.
50C
51CC    Method:
52CC    Use of the allocate function. 
53C
54C     Declarations:
55C     
56C     Pointer argument:
57      TYPE(AGRIF_grid), Pointer :: Agrif_Gr  ! Pointer on the current grid
58C 
59C     Allocation of the arrays of the variables 
60C     We cut this in several files to avoid long compilation timings
61C
62      Call Agrif_Allocationcalls(Agrif_Gr)
63C
64      if ( Agrif_USE_ONLY_FIXED_GRIDS .EQ. 0 ) then
65C
66         if ( Agrif_Probdim .EQ. 1 ) 
67     &      Allocate(Agrif_Gr%tabpoint1D(Agrif_Gr%nb(1)+1))
68         if ( Agrif_Probdim .EQ. 2 ) 
69     &      Allocate(Agrif_Gr%tabpoint2D(Agrif_Gr%nb(1)+1,
70     &       Agrif_Gr%nb(2)+1))     
71         if ( Agrif_Probdim .EQ. 3 ) 
72     &      Allocate(Agrif_Gr%tabpoint3D(Agrif_Gr%nb(1)+1,
73     &       Agrif_Gr%nb(2)+1,Agrif_Gr%nb(3)+1))     
74C
75      endif
76C 
77      End Subroutine Agrif_Allocation
78C
79C     **************************************************************************
80CCC   Subroutine Agrif_Instance 
81C     **************************************************************************
82C 
83      Subroutine Agrif_Instance(Agrif_Gr)
84C
85CCC   Description:
86CCC   Subroutine to do an instance of the common variables to the variables of 
87CCC   the current grid.
88C
89CC    Method:
90CC    Pointing the common variables on these of the current grid. 
91C
92C     Declarations:
93C       
94
95C
96C
97
98C
99C     Pointer argument: 
100      Type(Agrif_Grid), Pointer :: Agrif_Gr   ! Pointer on the current grid 
101C 
102C
103      Agrif_Curgrid => Agrif_Gr
104      Agrif_tabvars => Agrif_Curgrid % tabvars
105C
106      Call Agrif_Get_numberofcells(Agrif_Gr)
107C
108C
109C     Calculation of isf,jsf,nzsf and of the index of the output file 
110      Call Agrif_InitWorkSpace() 
111C
112C 
113      End Subroutine Agrif_Instance
114C
115C
116C     **************************************************************************
117CCC   Subroutine Agrif_initialisations 
118C     **************************************************************************
119      Subroutine Agrif_initialisations(Agrif_Gr)
120C
121CCC   Description:
122C
123CC    Method:
124C
125C     Declarations:
126C       
127      INTEGER :: i
128C
129C     Pointer argument: 
130      Type(Agrif_Grid), Pointer  :: Agrif_Gr
131     
132C
133      do i = 1 , Agrif_NbVariables
134C 
135         Agrif_Gr % tabvars(i) % var % nbdim = 0
136C
137         if (allocated(Agrif_Gr%tabvars(i)%var%array1)) then
138             Agrif_Gr % tabvars(i) % var % nbdim = 1
139             Agrif_Gr % tabvars(i) % var % lb(1:1) = 
140     &         lbound(Agrif_Gr%tabvars(i)%var%array1)
141             Agrif_Gr % tabvars(i) % var % ub(1:1) = 
142     &         ubound(Agrif_Gr%tabvars(i)%var%array1)     
143         endif
144         if (allocated(Agrif_Gr%tabvars(i)%var%array2)) then
145             Agrif_Gr % tabvars(i) % var % nbdim = 2
146             Agrif_Gr % tabvars(i) % var % lb(1:2) = 
147     &         lbound(Agrif_Gr%tabvars(i)%var%array2)
148             Agrif_Gr % tabvars(i) % var % ub(1:2) = 
149     &         ubound(Agrif_Gr%tabvars(i)%var%array2)
150         endif
151         if (allocated(Agrif_Gr%tabvars(i)%var%array3)) then
152             Agrif_Gr % tabvars(i) % var % nbdim = 3
153             Agrif_Gr % tabvars(i) % var % lb(1:3) = 
154     &         lbound(Agrif_Gr%tabvars(i)%var%array3)
155             Agrif_Gr % tabvars(i) % var % ub(1:3) = 
156     &         ubound(Agrif_Gr%tabvars(i)%var%array3)
157         endif
158         if (allocated(Agrif_Gr%tabvars(i)%var%array4)) then
159             Agrif_Gr % tabvars(i) % var % nbdim = 4
160             Agrif_Gr % tabvars(i) % var % lb(1:4) = 
161     &         lbound(Agrif_Gr%tabvars(i)%var%array4)
162             Agrif_Gr % tabvars(i) % var % ub(1:4) = 
163     &         ubound(Agrif_Gr%tabvars(i)%var%array4)
164         endif
165         if (allocated(Agrif_Gr%tabvars(i)%var%array5)) then
166             Agrif_Gr % tabvars(i) % var % nbdim = 5
167             Agrif_Gr % tabvars(i) % var % lb(1:5) = 
168     &         lbound(Agrif_Gr%tabvars(i)%var%array5)
169             Agrif_Gr % tabvars(i) % var % ub(1:5) = 
170     &         ubound(Agrif_Gr%tabvars(i)%var%array5)
171         endif
172         if (allocated(Agrif_Gr%tabvars(i)%var%array6)) then
173             Agrif_Gr % tabvars(i) % var % nbdim = 6
174             Agrif_Gr % tabvars(i) % var % lb(1:6) = 
175     &         lbound(Agrif_Gr%tabvars(i)%var%array6)
176             Agrif_Gr % tabvars(i) % var % ub(1:6) = 
177     &         ubound(Agrif_Gr%tabvars(i)%var%array6)
178         endif
179C
180         if (allocated(Agrif_Gr%tabvars(i)%var%darray1)) then
181             Agrif_Gr % tabvars(i) % var % nbdim = 1
182         endif
183         if (allocated(Agrif_Gr%tabvars(i)%var%darray2)) then
184             Agrif_Gr % tabvars(i) % var % nbdim = 2
185         endif
186         if (allocated(Agrif_Gr%tabvars(i)%var%darray3)) then
187             Agrif_Gr % tabvars(i) % var % nbdim = 3
188         endif
189         if (allocated(Agrif_Gr%tabvars(i)%var%darray4)) then
190             Agrif_Gr % tabvars(i) % var % nbdim = 4
191         endif
192         if (allocated(Agrif_Gr%tabvars(i)%var%darray5)) then
193             Agrif_Gr % tabvars(i) % var % nbdim = 5
194         endif
195         if (allocated(Agrif_Gr%tabvars(i)%var%darray6)) then
196             Agrif_Gr % tabvars(i) % var % nbdim = 6
197         endif
198C
199         if (allocated(Agrif_Gr%tabvars(i)%var%larray1)) then
200             Agrif_Gr % tabvars(i) % var % nbdim = 1
201         endif
202         if (allocated(Agrif_Gr%tabvars(i)%var%larray2)) then
203             Agrif_Gr % tabvars(i) % var % nbdim = 2
204         endif
205         if (allocated(Agrif_Gr%tabvars(i)%var%larray3)) then
206             Agrif_Gr % tabvars(i) % var % nbdim = 3
207         endif
208         if (allocated(Agrif_Gr%tabvars(i)%var%larray4)) then
209             Agrif_Gr % tabvars(i) % var % nbdim = 4
210         endif
211         if (allocated(Agrif_Gr%tabvars(i)%var%larray5)) then
212             Agrif_Gr % tabvars(i) % var % nbdim = 5
213         endif
214         if (allocated(Agrif_Gr%tabvars(i)%var%larray6)) then
215             Agrif_Gr % tabvars(i) % var % nbdim = 6
216         endif
217C
218         if (allocated(Agrif_Gr%tabvars(i)%var%iarray1)) then
219             Agrif_Gr % tabvars(i) % var % nbdim = 1
220         endif
221         if (allocated(Agrif_Gr%tabvars(i)%var%iarray2)) then
222             Agrif_Gr % tabvars(i) % var % nbdim = 2
223         endif
224         if (allocated(Agrif_Gr%tabvars(i)%var%iarray3)) then
225             Agrif_Gr % tabvars(i) % var % nbdim = 3
226         endif
227         if (allocated(Agrif_Gr%tabvars(i)%var%iarray4)) then
228             Agrif_Gr % tabvars(i) % var % nbdim = 4
229         endif
230         if (allocated(Agrif_Gr%tabvars(i)%var%iarray5)) then
231             Agrif_Gr % tabvars(i) % var % nbdim = 5
232         endif
233         if (allocated(Agrif_Gr%tabvars(i)%var%iarray6)) then
234             Agrif_Gr % tabvars(i) % var % nbdim = 6
235         endif
236C
237         if (allocated(Agrif_Gr%tabvars(i)%var%carray1)) then
238             Agrif_Gr % tabvars(i) % var % nbdim = 1
239         endif
240         if (allocated(Agrif_Gr%tabvars(i)%var%carray2)) then
241             Agrif_Gr % tabvars(i) % var % nbdim = 2
242         endif
243C 
244      enddo
245C
246      Return
247C 
248C
249      End Subroutine Agrif_initialisations
250C 
251C
252      End Module AGRIF_Init 
Note: See TracBrowser for help on using the repository browser.