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.
domrea.F90 in tags/nemo_v1_13_dev1/NEMO/OFF_SRC/DOM – NEMO

source: tags/nemo_v1_13_dev1/NEMO/OFF_SRC/DOM/domrea.F90 @ 8280

Last change on this file since 8280 was 439, checked in by opalod, 18 years ago

nemo_v1_update_045 : CT : modifications to be able to run 1D on-line & off-line passive tracers configurations

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 21.2 KB
Line 
1MODULE domrea
2   !!======================================================================
3   !!                       ***  MODULE domrea  ***
4   !! Ocean initialization : read the ocean domain meshmask file(s)
5   !!======================================================================
6
7   !!----------------------------------------------------------------------
8   !!   dom_rea        : read mesh and mask file(s)
9   !!                    nmsh = 1  :   mesh_mask file
10   !!                         = 2  :   mesh and mask file
11   !!                         = 3  :   mesh_hgr, mesh_zgr and mask
12   !!----------------------------------------------------------------------
13   !! * Modules used
14   USE dom_oce         ! ocean space and time domain
15   USE in_out_manager
16
17   IMPLICIT NONE
18   PRIVATE
19
20   !! * Accessibility
21   PUBLIC dom_rea        ! routine called by inidom.F90
22   !!----------------------------------------------------------------------
23   !!   OPA 9.0 , LOCEAN-IPSL  (2005)
24   !!   $Header$
25   !!   This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
26   !!----------------------------------------------------------------------
27
28CONTAINS
29
30#if defined key_fdir
31   !!----------------------------------------------------------------------
32   !!   'key_fdir' :                                     direct access file
33   !!----------------------------------------------------------------------
34#  include "domrea_fdir.h90"
35
36#elif ( defined key_mpp_mpi || defined key_mpp_shmem ) && defined key_dimgout
37   !!----------------------------------------------------------------------
38   !!   'key_mpp_mpi'     OR
39   !!   'key_mpp_shmem'
40   !!   'key_dimgout' :         each processor makes its own direct access file
41   !!                      use build_nc_meshmask off line to retrieve
42   !!                      a ioipsl compliant meshmask file
43   !!----------------------------------------------------------------------
44#  include "domrea_dimg.h90"
45
46
47#else
48   !!----------------------------------------------------------------------
49   !!   Default option :                                        NetCDF file
50   !!----------------------------------------------------------------------
51
52   SUBROUTINE dom_rea
53      !!----------------------------------------------------------------------
54      !!                  ***  ROUTINE dom_rea  ***
55      !!                   
56      !! ** Purpose :  Read the NetCDF file(s) which contain(s) all the
57      !!      ocean domain informations (mesh and mask arrays). This (these)
58      !!      file(s) is (are) used for visualisation (SAXO software) and
59      !!      diagnostic computation.
60      !!
61      !! ** Method  :   Read in a file all the arrays generated in routines
62      !!      domhgr, domzgr, and dommsk. Note: the file contain depends on
63      !!      the vertical coord. used (z-coord, partial steps, s-coord)
64      !!                    nmsh = 1  :   'mesh_mask.nc' file
65      !!                         = 2  :   'mesh.nc' and mask.nc' files
66      !!                         = 3  :   'mesh_hgr.nc', 'mesh_zgr.nc' and
67      !!                                  'mask.nc' files
68      !!      For huge size domain, use option 2 or 3 depending on your
69      !!      vertical coordinate.
70      !!
71      !! ** input file :
72      !!      meshmask.nc  : domain size, horizontal grid-point position,
73      !!                     masks, depth and vertical scale factors
74      !!
75      !! History :
76      !!        !  97-02  (G. Madec)  Original code
77      !!        !  99-11  (M. Imbard)  NetCDF FORMAT with IOIPSL
78      !!   9.0  !  02-08  (G. Madec)  F90 and several file
79      !!----------------------------------------------------------------------
80      !! * Modules used
81      USE ioipsl
82
83      !! * Local declarations
84      LOGICAL ::   llog
85      INTEGER  ::   ji, jj, jk, ik
86      INTEGER  ::                & !!! * temprary units for :
87         inum0 ,                 &  ! 'mesh_mask.nc' file
88         inum1 ,                 &  ! 'mesh.nc'      file
89         inum2 ,                 &  ! 'mask.nc'      file
90         inum3 ,                 &  ! 'mesh_hgr.nc'  file
91         inum4                      ! 'mesh_zgr.nc'  file
92      INTEGER  ::   itime           !  output from restini ???
93      REAL(wp) ::   zdate0, zdt
94      REAL(wp), DIMENSION(jpidta,jpjdta) ::   &
95         zta, zlamt, zphit       ! dummy array for bathymetry
96      REAL(wp) , DIMENSION(jpidta,jpjdta,jpk) :: &
97         zt3a      ! dummy array for bathymetry
98      REAL(wp), DIMENSION(jpi,jpj) :: &
99         zprt = 0.
100
101      CHARACTER (len=21) ::      &
102         clnam0 = 'mesh_mask',   &  ! filename (mesh and mask informations)
103         clnam1 = 'mesh'     ,   &  ! filename (mesh informations)
104         clnam2 = 'mask'     ,   &  ! filename (mask informations)
105         clnam3 = 'mesh_hgr' ,   &  ! filename (horizontal mesh informations)
106         clnam4 = 'mesh_zgr'        ! filename (vertical   mesh informations)
107      !!----------------------------------------------------------------------
108
109       IF(lwp) WRITE(numout,*)
110       IF(lwp) WRITE(numout,*) 'dom_rea : read NetCDF mesh and mask information file(s)'
111       IF(lwp) WRITE(numout,*) '~~~~~~~'
112
113      llog  = .FALSE.
114      zlamt(:,:) = 0.e0
115      zphit(:,:) = 0.e0
116
117      CALL ymds2ju( 0, 1, 1, 0.e0, zdate0 )    ! calendar initialization
118
119!       note that mbathy has been modified in dommsk or in solver.
120!       it is the number of non-zero "w" levels in the water, and the minimum
121!       value (on land) is 2. We define zprt as the number of "T" points in the ocean
122!       at any location, and zero on land.
123!
124
125      SELECT CASE (nmsh)
126         !                                     ! ============================
127         CASE ( 1 )                            !  create 'mesh_mask.nc' file
128            !                                  ! ============================
129
130            IF(lwp) WRITE(numout,*) '          one file in "mesh_mask.nc" '
131            CALL restini( clnam0, jpidta   , jpjdta   , zlamt, zphit,  &   ! create 'mesh_mask.nc' file
132            &             jpk   , gdept , trim(clnam0)        ,  &   ! in unit inum0
133            &             itime , zdate0, zdt   , inum0, domain_id=nidom )
134            inum2 = inum0                                            ! put all the informations
135            inum3 = inum0                                            ! in unit inum0
136            inum4 = inum0
137
138            !                                  ! ============================
139         CASE ( 2 )                            !  create 'mesh.nc' and
140            !                                  !         'mask.nc' files
141            !                                  ! ============================
142
143            IF(lwp) WRITE(numout,*) '          two files in "mesh.nc" and "mask.nc" '
144            CALL restini( clnam1, jpidta   , jpjdta   , zlamt, zphit,  &   ! create 'mesh.nc' file
145            &             jpk   , gdept , trim(clnam1)        ,  &   ! in unit inum1
146            &             itime , zdate0, zdt   , inum1, domain_id=nidom )
147            CALL restini( clnam2, jpidta   , jpjdta   , zlamt, zphit,  &   ! create 'mask.nc' file
148            &             jpk   , gdept , trim(clnam2)        ,  &   ! in unit inum2
149            &             itime , zdate0, zdt   , inum2, domain_id=nidom )
150            inum3 = inum1                                            ! put mesh informations
151            inum4 = inum1                                            ! in unit inum1
152
153            !                                  ! ============================
154         CASE ( 3 )                            !  create 'mesh_hgr.nc'
155            !                                  !         'mesh_zgr.nc' and
156            !                                  !         'mask.nc'     files
157            !                                  ! ============================
158
159            IF(lwp) WRITE(numout,*) '          three files in "mesh_hgr.nc" , mesh_zgr.nc" and "mask.nc" '
160            CALL restini( clnam3, jpidta   , jpjdta   , zlamt, zphit,  &   ! create 'mesh_hgr.nc' file
161            &             jpk   , gdept , trim(clnam3)        ,  &   ! in unit inum3
162            &             itime , zdate0, zdt   , inum3, domain_id=nidom )
163            CALL restini( clnam4, jpidta   , jpjdta   , zlamt, zphit,  &   ! create 'mesh_zgr.nc' file
164            &             jpk   , gdept , trim(clnam4)        ,  &   ! in unit inum4
165            &             itime , zdate0, zdt   , inum4, domain_id=nidom )
166            CALL restini( clnam2, jpidta   , jpjdta   , zlamt, zphit,  &   ! create 'mask.nc' file
167            &             jpk   , gdept , trim(clnam2)        ,  &   ! in unit inum2
168            &             itime , zdate0, zdt   , inum2, domain_id=nidom )
169
170         END SELECT
171
172         !                                                         ! masks (inum2)
173         CALL restget( inum2, 'tmask', jpidta, jpjdta, jpk, 0, llog, zt3a ) 
174         DO jk = 1, jpk
175           DO jj = 1, nlcj
176             DO ji = 1, nlci
177               tmask(ji,jj,jk) = zt3a(mig(ji),mjg(jj),jk)
178             END DO
179           END DO
180         END DO
181         CALL restget( inum2, 'umask', jpidta, jpjdta, jpk, 0, llog, zt3a )
182         DO jk = 1, jpk
183           DO jj = 1, nlcj
184             DO ji = 1, nlci
185               umask(ji,jj,jk) = zt3a(mig(ji),mjg(jj),jk)
186             END DO
187           END DO
188         END DO
189         CALL restget( inum2, 'vmask', jpidta, jpjdta, jpk, 0, llog, zt3a )
190         DO jk = 1, jpk
191           DO jj = 1, nlcj
192             DO ji = 1, nlci
193               vmask(ji,jj,jk) = zt3a(mig(ji),mjg(jj),jk)
194             END DO
195           END DO
196         END DO
197         CALL restget( inum2, 'fmask', jpidta, jpjdta, jpk, 0, llog, zt3a )
198         DO jk = 1, jpk
199           DO jj = 1, nlcj
200             DO ji = 1, nlci
201               fmask(ji,jj,jk) = zt3a(mig(ji),mjg(jj),jk)
202             END DO
203           END DO
204         END DO
205
206#if defined key_cfg_1d
207      IF(lwp) WRITE(numout,*) '**********  1D configuration : set umask and vmask equal tmask ********'
208      IF(lwp) WRITE(numout,*) '**********                                                     ********'
209      ! set umask and vmask equal tmask in 1D configuration
210      umask(:,:,:) = tmask(:,:,:)
211      vmask(:,:,:) = tmask(:,:,:)
212#endif
213
214#if defined key_off_degrad
215         CALL restget( inum2, 'facvolt', jpidta, jpjdta, jpk, 0, llog, zt3a )
216         DO jk = 1, jpk
217           DO jj = 1, nlcj
218             DO ji = 1, nlci
219               facvol(ji,jj,jk) = zt3a(mig(ji),mjg(jj),jk)
220             END DO
221           END DO
222         END DO
223#endif
224
225         !                                                         ! horizontal mesh (inum3)
226         CALL restget( inum3, 'glamt', jpidta, jpjdta, 1, 0, llog, zta )     !    ! latitude
227           DO jj = 1, nlcj
228             DO ji = 1, nlci
229               glamt(ji,jj) = zta(mig(ji),mjg(jj))
230             END DO
231           END DO
232         CALL restget( inum3, 'glamu', jpidta, jpjdta, 1, 0, llog, zta )
233           DO jj = 1, nlcj
234             DO ji = 1, nlci
235               glamu(ji,jj) = zta(mig(ji),mjg(jj))
236             END DO
237           END DO
238         CALL restget( inum3, 'glamv', jpidta, jpjdta, 1, 0, llog, zta )
239           DO jj = 1, nlcj
240             DO ji = 1, nlci
241               glamv(ji,jj) = zta(mig(ji),mjg(jj))
242             END DO
243           END DO
244         CALL restget( inum3, 'glamf', jpidta, jpjdta, 1, 0, llog, zta )
245           DO jj = 1, nlcj
246             DO ji = 1, nlci
247               glamf(ji,jj) = zta(mig(ji),mjg(jj))
248             END DO
249           END DO
250
251         CALL restget( inum3, 'gphit', jpidta, jpjdta, 1, 0, llog, zta )     !    ! longitude
252           DO jj = 1, nlcj
253             DO ji = 1, nlci
254               gphit(ji,jj) = zta(mig(ji),mjg(jj))
255             END DO
256           END DO
257         CALL restget( inum3, 'gphiu', jpidta, jpjdta, 1, 0, llog, zta )
258           DO jj = 1, nlcj
259             DO ji = 1, nlci
260               gphiu(ji,jj) = zta(mig(ji),mjg(jj))
261             END DO
262           END DO
263         CALL restget( inum3, 'gphiv', jpidta, jpjdta, 1, 0, llog, zta )
264           DO jj = 1, nlcj
265             DO ji = 1, nlci
266               gphiv(ji,jj) = zta(mig(ji),mjg(jj))
267             END DO
268           END DO
269         CALL restget( inum3, 'gphif', jpidta, jpjdta, 1, 0, llog, zta )
270           DO jj = 1, nlcj
271             DO ji = 1, nlci
272               gphif(ji,jj) = zta(mig(ji),mjg(jj))
273             END DO
274           END DO
275
276         CALL restget( inum3, 'e1t', jpidta, jpjdta, 1, 0, llog, zta )         !    ! e1 scale factors
277           DO jj = 1, nlcj
278             DO ji = 1, nlci
279               e1t(ji,jj) = zta(mig(ji),mjg(jj))
280             END DO
281           END DO
282         CALL restget( inum3, 'e1u', jpidta, jpjdta, 1, 0, llog, zta )
283           DO jj = 1, nlcj
284             DO ji = 1, nlci
285               e1u(ji,jj) = zta(mig(ji),mjg(jj))
286             END DO
287           END DO
288         CALL restget( inum3, 'e1v', jpidta, jpjdta, 1, 0, llog, zta )
289           DO jj = 1, nlcj
290             DO ji = 1, nlci
291               e1v(ji,jj) = zta(mig(ji),mjg(jj))
292             END DO
293           END DO
294         CALL restget( inum3, 'e2t', jpidta, jpjdta, 1, 0, llog, zta )         !    ! e2 scale factors
295           DO jj = 1, nlcj
296             DO ji = 1, nlci
297               e2t(ji,jj) = zta(mig(ji),mjg(jj))
298             END DO
299           END DO
300         CALL restget( inum3, 'e2u', jpidta, jpjdta, 1, 0, llog, zta )
301           DO jj = 1, nlcj
302             DO ji = 1, nlci
303               e2u(ji,jj) = zta(mig(ji),mjg(jj))
304             END DO
305           END DO
306         CALL restget( inum3, 'e2v', jpidta, jpjdta, 1, 0, llog, zta )
307           DO jj = 1, nlcj
308             DO ji = 1, nlci
309               e2v(ji,jj) = zta(mig(ji),mjg(jj))
310             END DO
311           END DO
312         CALL restget( inum3, 'ff', jpidta, jpjdta, 1, 0, llog, zta )           !    ! coriolis factor
313           DO jj = 1, nlcj
314             DO ji = 1, nlci
315               ff(ji,jj) = zta(mig(ji),mjg(jj))
316             END DO
317           END DO
318
319         CALL restget( inum4, 'mbathy', jpidta, jpjdta, 1, 0, llog, zta )
320! Bathymetry
321           DO jj = 1, nlcj
322             DO ji = 1, nlci
323               zprt(ji,jj) = zta(mig(ji),mjg(jj))
324             END DO
325           END DO
326
327         mbathy(:,:)=zprt(:,:)*tmask(:,:,1)+1
328
329# if defined key_s_coord
330         !                                                         ! s-coordinate
331         CALL restget( inum4, 'hbatt', jpidta, jpjdta, 1, 0, llog, zta )      !    ! depth
332           DO jj = 1, nlcj
333             DO ji = 1, nlci
334               hbatt(ji,jj) = zta(mig(ji),mjg(jj))
335             END DO
336           END DO
337         CALL restget( inum4, 'hbatu', jpidta, jpjdta, 1, 0, llog, zta ) 
338           DO jj = 1, nlcj
339             DO ji = 1, nlci
340               hbatu(ji,jj) = zta(mig(ji),mjg(jj))
341             END DO
342           END DO
343         CALL restget( inum4, 'hbatv', jpidta, jpjdta, 1, 0, llog, zta )
344           DO jj = 1, nlcj
345             DO ji = 1, nlci
346               hbatv(ji,jj) = zta(mig(ji),mjg(jj))
347             END DO
348           END DO
349         CALL restget( inum4, 'hbatf', jpidta, jpjdta, 1, 0, llog, zta )
350           DO jj = 1, nlcj
351             DO ji = 1, nlci
352               hbatf(ji,jj) = zta(mig(ji),mjg(jj))
353             END DO
354           END DO
355
356         CALL restget( inum4, 'gsigt', 1, 1, jpk, 0, llog, gsigt )        !    ! scaling coef.
357         CALL restget( inum4, 'gsigw', 1, 1, jpk, 0, llog, gsigw ) 
358         CALL restget( inum4, 'gsi3w', 1, 1, jpk, 0, llog, gsi3w )
359         CALL restget( inum4, 'esigt', 1, 1, jpk, 0, llog, esigt )
360         CALL restget( inum4, 'esigw', 1, 1, jpk, 0, llog, esigw )
361
362# elif defined key_partial_steps
363         !                                                          ! z-coordinate with partial steps
364         CALL restget( inum4, 'hdept' , jpidta, jpjdta, 1, 0, llog, zta  )    !    ! depth
365           DO jj = 1, nlcj
366             DO ji = 1, nlci
367               hdept(ji,jj) = zta(mig(ji),mjg(jj))
368             END DO
369           END DO
370         CALL restget( inum4, 'hdepw' , jpidta, jpjdta, 1, 0, llog, zta  ) 
371           DO jj = 1, nlcj
372             DO ji = 1, nlci
373               hdepw(ji,jj) = zta(mig(ji),mjg(jj))
374             END DO
375           END DO
376
377         CALL restget( inum4, 'e3t_ps', jpidta, jpjdta, jpk, 0, llog, zt3a )  !    ! scale factors
378         DO jk = 1, jpk
379           DO jj = 1, nlcj
380             DO ji = 1, nlci
381               e3t_ps(ji,jj,jk) = zt3a(mig(ji),mjg(jj),jk)
382             END DO
383           END DO
384         END DO
385         CALL restget( inum4, 'e3u_ps', jpidta, jpjdta, jpk, 0, llog, zt3a )
386         DO jk = 1, jpk
387           DO jj = 1, nlcj
388             DO ji = 1, nlci
389               e3u_ps(ji,jj,jk) = zt3a(mig(ji),mjg(jj),jk)
390             END DO
391           END DO
392         END DO
393         CALL restget( inum4, 'e3v_ps', jpidta, jpjdta, jpk, 0, llog, zt3a )
394         DO jk = 1, jpk
395           DO jj = 1, nlcj
396             DO ji = 1, nlci
397               e3v_ps(ji,jj,jk) = zt3a(mig(ji),mjg(jj),jk)
398             END DO
399           END DO
400         END DO
401         CALL restget( inum4, 'e3w_ps', jpidta, jpjdta, jpk, 0, llog, zt3a )
402         DO jk = 1, jpk
403           DO jj = 1, nlcj
404             DO ji = 1, nlci
405               e3w_ps(ji,jj,jk) = zt3a(mig(ji),mjg(jj),jk)
406             END DO
407           END DO
408         END DO
409
410         CALL restget( inum4, 'gdept' , 1, 1, jpk, 0, llog, gdept )       !    ! reference z-coord.
411         CALL restget( inum4, 'gdepw' , 1, 1, jpk, 0, llog, gdepw )
412         CALL restget( inum4, 'e3t'   , 1, 1, jpk, 0, llog, e3t   )
413         CALL restget( inum4, 'e3w'   , 1, 1, jpk, 0, llog, e3w   )
414
415         DO jk=1,jpk
416            gdept_ps(:,:,jk) = gdept(jk)
417            gdepw_ps(:,:,jk) = gdepw(jk)
418         END DO
419
420         DO jj = 1, jpj
421            DO ji = 1, jpi
422               ik = mbathy(ji,jj) - 1
423               ! ocean point only
424               IF( ik > 0 ) THEN
425                  ! max ocean level case
426                  gdepw_ps(ji,jj,ik+1) = hdepw(ji,jj)
427                  gdept_ps(ji,jj,ik  ) = hdept(ji,jj)
428                  gdept_ps(ji,jj,ik+1) = gdept_ps(ji,jj,ik) + e3t_ps(ji,jj,ik)
429               ENDIF
430            END DO
431         END DO
432         
433
434# else
435         !                                                          ! z-coordinate
436         CALL restget( inum4, 'gdept', 1, 1, jpk, 0, llog, gdept )        !    ! depth
437         CALL restget( inum4, 'gdepw', 1, 1, jpk, 0, llog, gdepw )
438         CALL restget( inum4, 'e3t'  , 1, 1, jpk, 0, llog, e3t   )        !    ! scale factors
439         CALL restget( inum4, 'e3w'  , 1, 1, jpk, 0, llog, e3w   )
440# endif
441
442      ! Control printing : Grid informations (if not restart)
443      ! ----------------
444
445      IF(lwp .AND. .NOT.ln_rstart ) THEN
446         WRITE(numout,*)
447         WRITE(numout,*) '          longitude and e1 scale factors'
448         WRITE(numout,*) '          ------------------------------'
449         WRITE(numout,9300) ( ji, glamt(ji,1), glamu(ji,1),   &
450            glamv(ji,1), glamf(ji,1),   &
451            e1t(ji,1), e1u(ji,1),   &
452            e1v(ji,1), ji = 1, jpi,10)
4539300     FORMAT( 1x, i4, f8.2,1x, f8.2,1x, f8.2,1x, f8.2, 1x,    &
454            f19.10, 1x, f19.10, 1x, f19.10 )
455
456         WRITE(numout,*)
457         WRITE(numout,*) '          latitude and e2 scale factors'
458         WRITE(numout,*) '          -----------------------------'
459         WRITE(numout,9300) ( jj, gphit(1,jj), gphiu(1,jj),   &
460            &                     gphiv(1,jj), gphif(1,jj),   &
461            &                     e2t  (1,jj), e2u  (1,jj),   &
462            &                     e2v  (1,jj), jj = 1, jpj, 10 )
463      ENDIF
464
465
466      IF( nprint == 1 .AND. lwp ) THEN
467         WRITE(numout,*) '          e1u e2u '
468         CALL prihre( e1u,jpi,jpj,jpi-5,jpi,1,jpj-5,jpj,1,0.,numout )
469         CALL prihre( e2u,jpi,jpj,jpi-5,jpi,1,jpj-5,jpj,1,0.,numout )
470         WRITE(numout,*) '          e1v e2v  '
471         CALL prihre( e1v,jpi,jpj,jpi-5,jpi,1,jpj-5,jpj,1,0.,numout )
472         CALL prihre( e2v,jpi,jpj,jpi-5,jpi,1,jpj-5,jpj,1,0.,numout )
473      ENDIF
474
475      IF(lwp) THEN
476         WRITE(numout,*)
477         WRITE(numout,*) '              Reference z-coordinate depth and scale factors:'
478         WRITE(numout, "(9x,' level   gdept    gdepw     e3t      e3w  ')" )
479         WRITE(numout, "(10x, i4, 4f9.2)" ) ( jk, gdept(jk), gdepw(jk), e3t(jk), e3w(jk), jk = 1, jpk )
480      ENDIF
481
482      DO jk = 1, jpk
483         IF( e3w(jk) <= 0. .OR. e3t(jk) <= 0. ) THEN
484            IF(lwp) WRITE(numout,cform_err)
485            IF(lwp) WRITE(numout,*) ' e3w or e3t =< 0 '
486            nstop = nstop + 1
487         ENDIF
488         IF( gdepw(jk) < 0. .OR. gdept(jk) < 0.) THEN
489            IF(lwp) WRITE(numout,cform_err)
490            IF(lwp) WRITE(numout,*) ' gdepw or gdept < 0 '
491            nstop = nstop + 1
492         ENDIF
493      END DO
494
495         !                                     ! ============================
496         !                                     !        close the files
497         !                                     ! ============================
498         SELECT CASE ( nmsh )
499            CASE ( 1 )               
500               CALL restclo( inum0 )
501            CASE ( 2 )
502               CALL restclo( inum1 )
503               CALL restclo( inum2 )
504            CASE ( 3 )
505               CALL restclo( inum2 )
506               CALL restclo( inum3 )
507               CALL restclo( inum4 )
508         END SELECT
509
510   END SUBROUTINE dom_rea
511
512#endif
513
514   !!======================================================================
515END MODULE domrea
Note: See TracBrowser for help on using the repository browser.