source: CPL/oasis3/trunk/src/mod/oasis3/src/alloc_src.f90 @ 1677

Last change on this file since 1677 was 1677, checked in by aclsce, 12 years ago

Imported oasis3 (tag ipslcm5a) from cvs server to svn server (igcmg project).

File size: 40.6 KB
Line 
1!                       ***************************
2!                       *  ALLOCATION SUBROUTINES *
3!                       ***************************
4SUBROUTINE alloc_anais1
5!
6!**** ALLOC_ANAIS
7!
8!     Purpose:
9!       Allocate arrays defined in the "anais" module
10!
11!     Interface:
12!       none
13!   
14!     Method:
15!       Uses run parameters read in "inipar_alloc" routine to
16!       allocate arrays.       
17!
18!     External:
19!       none
20!
21!     Files:
22!       none
23!   
24!     References:
25!
26!     History:
27!     --------
28!       Version   Programmer     Date        Description
29!       ------------------------------------------------
30!       2.5       A.Caubel       2002/03/18  created
31!
32!*-----------------------------------------------------------------------
33!
34!** + DECLARATIONS
35!
36!** ++ Use of modules
37!
38  USE mod_kinds_oasis
39  USE mod_parameter
40  USE mod_anais
41!
42!** ++ Local declarations
43!
44  INTEGER (kind=ip_intwp_p) :: il_err
45!
46!*-----------------------------------------------------------------------
47!
48  ALLOCATE (varmul(ig_nfield), stat=il_err)
49  IF (il_err.NE.0) CALL prtout &
50     ('Error in "varmul"allocation of anais module',il_err,1)
51  varmul(:)=0
52  ALLOCATE (niwtm(ig_nfield), stat=il_err)
53  IF (il_err.NE.0) CALL prtout & 
54     ('Error in "niwtm"allocation of anais module',il_err,1)
55  niwtm(:)=0
56  ALLOCATE (niwtg(ig_nfield), stat=il_err)
57  IF (il_err.NE.0) CALL prtout & 
58     ('Error in "niwtg"allocation of anais module',il_err,1)
59  niwtg(:)=0
60  ALLOCATE (linit(ig_nfield), stat=il_err)
61  IF (il_err.NE.0) CALL prtout & 
62     ('Error in "linit"allocation of anais module',il_err,1)
63  linit(:)=.false.
64!
65!*-----------------------------------------------------------------------
66!
67END SUBROUTINE alloc_anais1
68!
69!*========================================================================
70!
71SUBROUTINE alloc_anais2
72!
73!**** ALLOC_ANAIS
74!
75!     Purpose:
76!       Allocate arrays defined in the "anais" module
77!
78!     Interface:
79!       none
80!   
81!     Method:
82!       Uses run parameters read in "inipar_alloc" routine to
83!       allocate arrays.       
84!
85!     External:
86!       none
87!
88!     Files:
89!       none
90!   
91!     References:
92!
93!     History:
94!     --------
95!       Version   Programmer     Date        Description
96!       ------------------------------------------------
97!       3.0       S. Valcke       2004/01/05  created
98!
99!*-----------------------------------------------------------------------
100!
101!** + DECLARATIONS
102!
103!** ++ Use of modules
104!
105  USE mod_kinds_oasis
106  USE mod_parameter
107  USE mod_anais
108!
109!** ++ Local declarations
110!
111  INTEGER (kind=ip_intwp_p) :: il_err
112!
113!*-----------------------------------------------------------------------
114!
115  ALLOCATE (ngint(ig_maxnoa*ig_maxnfg*ig_maxgrd), stat=il_err)
116  IF (il_err.NE.0) CALL prtout & 
117     ('Error in "ngint"allocation of anais module',il_err,1)
118  ngint(:)=0
119  ALLOCATE (nmint(ig_maxwoa*ig_maxnfm*ig_maxgrd), stat=il_err)
120  IF (il_err.NE.0) CALL prtout & 
121     ('Error in "nmint"allocation of anais module',il_err,1)
122  nmint(:)=0
123  ALLOCATE (nmesh(ig_maxnfm*ig_maxgrd), stat=il_err)
124  IF (il_err.NE.0) CALL prtout & 
125     ('Error in "nmesh"allocation of anais module',il_err,1)
126  nmesh(:)=0
127  ALLOCATE (agint(ig_maxnoa*ig_maxnfg*ig_maxgrd), stat=il_err)
128  IF (il_err.NE.0) CALL prtout & 
129     ('Error in "agint"allocation of anais module',il_err,1)
130  agint(:)=0
131  ALLOCATE (amint(ig_maxwoa*ig_maxnfm*ig_maxgrd), stat=il_err)
132  IF (il_err.NE.0) CALL prtout & 
133     ('Error in "amint"allocation of anais module',il_err,1)
134  amint(:)=0
135!
136!*-----------------------------------------------------------------------
137!
138END SUBROUTINE alloc_anais2
139!
140!*========================================================================
141SUBROUTINE alloc_analysis
142!
143!**** ALLOC_ANALYSIS
144!
145!     Purpose:
146!       Allocate arrays defined in the "analysis" module
147!
148!     Interface:
149!       none
150!   
151!     Method:
152!       Uses run parameters read in "inipar_alloc" routine to
153!       allocate arrays.       
154!
155!     External:
156!       none
157!
158!     Files:
159!       none
160!   
161!     References:
162!
163!     History:
164!     --------
165!       Version   Programmer     Date        Description
166!       ------------------------------------------------
167!       2.5       A.Caubel       2002/03/18  created
168!
169!*-----------------------------------------------------------------------
170!
171!** + DECLARATIONS
172!
173!** ++ Use of modules
174!
175  USE mod_kinds_oasis
176  USE mod_parameter
177  USE mod_analysis
178!
179!** ++ Local declarations
180!
181  INTEGER (kind=ip_intwp_p) :: il_err
182!
183!*-----------------------------------------------------------------------
184!
185  ALLOCATE (ncofld(ig_nfield), stat=il_err)
186  IF (il_err.NE.0) CALL prtout & 
187     ('Error in "ncofld"allocation of analysis module',il_err,1)
188  ncofld(:)=0
189  ALLOCATE (neighborg(ig_nfield), stat=il_err)
190  IF (il_err.NE.0) CALL prtout & 
191     ('Error in "neighborg"allocation of analysis module',il_err,1)
192  neighborg(:)=0
193  ALLOCATE (nludat(ig_maxcomb,ig_nfield), stat=il_err)
194  IF (il_err.NE.0) CALL prtout & 
195     ('Error in "nludat"allocation of analysis module',il_err,1)
196  nludat(:,:)=0
197  ALLOCATE (nlufil(ig_nfield), stat=il_err)
198  IF (il_err.NE.0) CALL prtout & 
199     ('Error in "nlufil"allocation of analysis module',il_err,1)
200  nlufil(:)=0
201  ALLOCATE (nlumap(ig_nfield), stat=il_err)
202  IF (il_err.NE.0) CALL prtout & 
203     ('Error in "nlumap"allocation of analysis module',il_err,1)
204  nlumap(:)=0
205  ALLOCATE (nlusub(ig_nfield), stat=il_err)
206  IF (il_err.NE.0) CALL prtout & 
207     ('Error in "nlusub"allocation of analysis module',il_err,1)
208  nlusub(:)=0
209  ALLOCATE (nluext(ig_nfield), stat=il_err)
210  IF (il_err.NE.0) CALL prtout & 
211     ('Error in "nluext"allocation of analysis module',il_err,1)
212  nluext(:)=0
213  ALLOCATE (nosper(ig_nfield), stat=il_err)
214  IF (il_err.NE.0) CALL prtout & 
215     ('Error in "nosper"allocation of analysis module',il_err,1)
216  nosper(:)=0
217  ALLOCATE (notper(ig_nfield), stat=il_err)
218  IF (il_err.NE.0) CALL prtout & 
219     ('Error in "notper"allocation of analysis module',il_err,1)
220  notper(:)=0
221  ALLOCATE (ntinpflx(ig_nfield), stat=il_err)
222  IF (il_err.NE.0) CALL prtout & 
223     ('Error in "ntinpflx"allocation of analysis module',il_err,1)
224  ntinpflx(:)=0
225  ALLOCATE (ntoutflx(ig_nfield), stat=il_err)
226  IF (il_err.NE.0) CALL prtout & 
227     ('Error in "ntoutflx"allocation of analysis module',il_err,1)
228  ntoutflx(:)=0
229  ALLOCATE (amskval(ig_nfield), stat=il_err)
230  IF (il_err.NE.0) CALL prtout & 
231     ('Error in "amskval"allocation of analysis module',il_err,1)
232  amskval(:)=0
233  ALLOCATE (amskvalnew(ig_nfield), stat=il_err)
234  IF (il_err.NE.0) CALL prtout & 
235     ('Error in "amskvalnew"allocation of analysis module',il_err,1)
236  amskvalnew(:)=0
237  ALLOCATE (acocoef(ig_maxcomb,ig_nfield), stat=il_err)
238  IF (il_err.NE.0) CALL prtout & 
239     ('Error in "acocoef"allocation of analysis module',il_err,1)
240  acocoef(:,:)=0
241  ALLOCATE (abocoef(ig_maxcomb,ig_nfield), stat=il_err)
242  IF (il_err.NE.0) CALL prtout & 
243     ('Error in "abocoef"allocation of analysis module',il_err,1)
244  abocoef(:,:)=0
245  ALLOCATE (abncoef(ig_maxcomb,ig_nfield), stat=il_err)
246  IF (il_err.NE.0) CALL prtout & 
247     ('Error in "abncoef"allocation of analysis module',il_err,1)
248  abncoef(:,:)=0
249  ALLOCATE (afldcoef(ig_nfield), stat=il_err)
250  IF (il_err.NE.0) CALL prtout & 
251     ('Error in "afldcoef"allocation of analysis module',il_err,1)
252  afldcoef(:)=0
253  ALLOCATE (afldcobo(ig_nfield), stat=il_err)
254  IF (il_err.NE.0) CALL prtout & 
255     ('Error in "afldcobo"allocation of analysis module',il_err,1)
256  afldcobo(:)=0
257  ALLOCATE (afldcobn(ig_nfield), stat=il_err)
258  IF (il_err.NE.0) CALL prtout & 
259     ('Error in "afldcobn"allocation of analysis module',il_err,1)
260  afldcobn(:)=0
261  ALLOCATE (cxordbf(ig_nfield), stat=il_err)
262  IF (il_err.NE.0) CALL prtout & 
263     ('Error in "cxordbf"allocation of analysis module',il_err,1)
264  cxordbf(:)=' '
265  ALLOCATE (cyordbf(ig_nfield), stat=il_err)
266  IF (il_err.NE.0) CALL prtout & 
267     ('Error in "cyordbf"allocation of analysis module',il_err,1)
268  cyordbf(:)=' '
269  ALLOCATE (cxordaf(ig_nfield), stat=il_err)
270  IF (il_err.NE.0) CALL prtout & 
271     ('Error in "cxordaf"allocation of analysis module',il_err,1)
272  cxordaf(:)=' '
273  ALLOCATE (cyordaf(ig_nfield), stat=il_err)
274  IF (il_err.NE.0) CALL prtout & 
275     ('Error in "cyordaf"allocation of analysis module',il_err,1)
276  cyordaf(:)=' '
277  ALLOCATE (cgrdtyp(ig_nfield), stat=il_err)
278  IF (il_err.NE.0) CALL prtout & 
279     ('Error in "cgrdtyp"allocation of analysis module',il_err,1)
280  cgrdtyp(:)=' '
281  ALLOCATE (cfldtyp(ig_nfield), stat=il_err)
282  IF (il_err.NE.0) CALL prtout & 
283     ('Error in "cfldtyp"allocation of analysis module',il_err,1)
284  cfldtyp(:)=' '
285  ALLOCATE (cfilfic(ig_nfield), stat=il_err)
286  IF (il_err.NE.0) CALL prtout & 
287     ('Error in "cfilfic"allocation of analysis module',il_err,1)
288  cfilfic(:)=' '
289  ALLOCATE (cfilmet(ig_nfield), stat=il_err)
290  IF (il_err.NE.0) CALL prtout & 
291     ('Error in "cfilmet"allocation of analysis module',il_err,1)
292  cfilmet(:)=' '
293  ALLOCATE (cconmet(ig_nfield), stat=il_err)
294  IF (il_err.NE.0) CALL prtout & 
295     ('Error in "cconmet"allocation of analysis module',il_err,1)
296  cconmet(:)=' '
297  ALLOCATE (cfldcoa(ig_nfield), stat=il_err)
298  IF (il_err.NE.0) CALL prtout & 
299     ('Error in "cfldcoa"allocation of analysis module',il_err,1)
300  cfldcoa(:)=' '
301  ALLOCATE (cfldfin(ig_nfield), stat=il_err)
302  IF (il_err.NE.0) CALL prtout & 
303     ('Error in "cfldfin"allocation of analysis module',il_err,1)
304  cfldfin(:)=' '
305  ALLOCATE (ccofld(ig_maxcomb,ig_nfield), stat=il_err)
306  IF (il_err.NE.0) CALL prtout & 
307     ('Error in "ccofld"allocation of analysis module',il_err,1)
308  ccofld(:,:)=' '
309  ALLOCATE (cbofld(ig_maxcomb,ig_nfield), stat=il_err)
310  IF (il_err.NE.0) CALL prtout & 
311     ('Error in "cbofld"allocation of analysis module',il_err,1)
312  cbofld(:,:)=' '
313  ALLOCATE (cbnfld(ig_maxcomb,ig_nfield), stat=il_err)
314  IF (il_err.NE.0) CALL prtout &
315     ('Error in "cbnfld"allocation of analysis module',il_err,1)
316  cbnfld(:,:)=' '
317  ALLOCATE (ccofic(ig_maxcomb,ig_nfield), stat=il_err)
318  IF (il_err.NE.0) CALL prtout & 
319     ('Error in "ccofic"allocation of analysis module',il_err,1)
320  ccofic(:,:)=' '
321  ALLOCATE (cdqdt(ig_nfield), stat=il_err)
322  IF (il_err.NE.0) CALL prtout & 
323     ('Error in "cdqdt"allocation of analysis module',il_err,1)
324  cdqdt(:)=' '
325  ALLOCATE (cgrdmap(ig_nfield), stat=il_err)
326  IF (il_err.NE.0) CALL prtout & 
327     ('Error in "cgrdmap"allocation of analysis module',il_err,1)
328  cgrdmap(:)=' '
329  ALLOCATE (cmskrd(ig_nfield), stat=il_err)
330  IF (il_err.NE.0) CALL prtout & 
331     ('Error in "cmskrd"allocation of analysis module',il_err,1)
332  cmskrd(:)=' '
333  ALLOCATE (cgrdsub(ig_nfield), stat=il_err)
334  IF (il_err.NE.0) CALL prtout & 
335     ('Error in "cgrdsub"allocation of analysis module',il_err,1)
336  cgrdsub(:)=' '
337  ALLOCATE (ctypsub(ig_nfield), stat=il_err)
338  IF (il_err.NE.0) CALL prtout & 
339     ('Error in "ctypsub"allocation of analysis module',il_err,1)
340  ctypsub(:)=' '
341  ALLOCATE (cgrdext(ig_nfield), stat=il_err)
342  IF (il_err.NE.0) CALL prtout &
343     ('Error in "cgrdext"allocation of analysis module',il_err,1)
344  cgrdext(:)=' '
345  ALLOCATE (csper(ig_nfield), stat=il_err)
346  IF (il_err.NE.0) CALL prtout & 
347     ('Error in "csper"allocation of analysis module',il_err,1)
348  csper(:)=' '
349  ALLOCATE (ctper(ig_nfield), stat=il_err)
350  IF (il_err.NE.0) CALL prtout & 
351     ('Error in "ctper"allocation of analysis module',il_err,1)
352  ctper(:)=' '
353  ALLOCATE (lsurf(ig_nfield), stat=il_err)
354  IF (il_err.NE.0) CALL prtout & 
355     ('Error in "lsurf"allocation of analysis module',il_err,1)
356  lsurf(:)=.false.
357  ALLOCATE (nscripvoi(ig_nfield), stat=il_err)
358  IF (il_err.NE.0) CALL prtout & 
359     ('Error in nscripvoi allocation of analysis module',il_err,1)
360  nscripvoi(:)=0
361!
362!* Alloc array needed for SCRIP
363!
364  ALLOCATE (cmap_method(ig_nfield),stat=il_err)
365  IF (il_err.NE.0) CALL prtout & 
366     ('Error in "cmap_method" allocation of inipar_alloc',il_err,1)
367  cmap_method(:)=' '
368  ALLOCATE (cfldtype(ig_nfield),stat=il_err)
369  IF (il_err.NE.0) CALL prtout & 
370     ('Error in "cfldtype"allocation of inipar_alloc',il_err,1)
371  cfldtype(:)=' '
372  ALLOCATE (crsttype(ig_nfield),stat=il_err)
373  IF (il_err.NE.0) CALL prtout & 
374     ('Error in "crsttype"allocation of inipar_alloc',il_err,1)
375  crsttype(:)=' '
376  ALLOCATE (nbins(ig_nfield),stat=il_err)
377  IF (il_err.NE.0) CALL prtout &
378     ('Error in "nbins"allocation of inipar_alloc',il_err,1)
379  nbins(:)=0
380  ALLOCATE (cnorm_opt(ig_nfield),stat=il_err)
381  IF (il_err.NE.0) CALL prtout &
382     ('Error in "cnorm_opt"allocation of inipar_alloc',il_err,1)
383  cnorm_opt(:)=' '
384  ALLOCATE (corder(ig_nfield),stat=il_err)
385  IF (il_err.NE.0) CALL prtout & 
386     ('Error in "corder"allocation of inipar_alloc',il_err,1)
387  corder(:)=' '
388!
389!Vector case:
390!
391  IF (lg_vector) THEN
392      ALLOCATE (cg_assoc_input_field(ig_total_nfield),stat=il_err)
393      IF (il_err.NE.0) CALL prtout & 
394     ('Error in "cg_assoc_input_field"allocation of inipar_alloc',il_err,1)
395      cg_assoc_input_field(:)=' '
396      ALLOCATE (ig_assoc_input_field(ig_total_nfield),stat=il_err)
397      IF (il_err.NE.0) CALL prtout & 
398     ('Error in "ig_assoc_input_field"allocation of inipar_alloc',il_err,1)
399      ig_assoc_input_field(:)=0
400      ALLOCATE (lrotate(ig_total_nfield),stat=il_err)
401      IF (il_err.NE.0) CALL prtout & 
402     ('Error in "lrotate"allocation of inipar_alloc',il_err,1)
403  ENDIF
404!
405!*-----------------------------------------------------------------------
406!
407END SUBROUTINE alloc_analysis
408!
409!*========================================================================
410SUBROUTINE alloc_coast
411!
412!**** ALLOC_COAST
413!
414!     Purpose:
415!       Allocate arrays defined in the "coast" module
416!
417!     Interface:
418!       none
419!   
420!     Method:
421!       Uses run parameters read in "inipar_alloc" routine to
422!       allocate arrays.       
423!
424!     External:
425!       none
426!
427!     Files:
428!       none
429!   
430!     References:
431!
432!     History:
433!     --------
434!       Version   Programmer     Date        Description
435!       ------------------------------------------------
436!       2.5       A.Caubel       2002/03/18  created
437!
438!*-----------------------------------------------------------------------
439!
440!** + DECLARATIONS
441!
442!** ++ Use of modules
443!
444  USE mod_kinds_oasis
445  USE mod_parameter
446  USE mod_coast
447!
448!** ++ Local declarations
449!
450  INTEGER (kind=ip_intwp_p) :: il_err
451!
452!*-----------------------------------------------------------------------
453!
454  ALLOCATE (npcoast(ig_maxwoa,6), stat=il_err)
455  IF (il_err.NE.0) CALL prtout & 
456     ('Error in "npcoast"allocation of coast module',il_err,1)
457  npcoast(:,:)=0
458 
459!
460!* ----------------------------------------------------------------------
461!
462END SUBROUTINE alloc_coast
463!
464!*=======================================================================
465SUBROUTINE alloc_experiment
466!
467!**** ALLOC_EXPERIMENT
468!
469!     Purpose:
470!       Allocate arrays defined in the "experiment" module
471!
472!     Interface:
473!       none
474!   
475!     Method:
476!       Uses run parameters read in "inipar_alloc" routine to
477!       allocate arrays.       
478!
479!     External:
480!       none
481!
482!     Files:
483!       none
484!   
485!     References:
486!
487!     History:
488!     --------
489!       Version   Programmer     Date        Description
490!       ------------------------------------------------
491!       2.5       A.Caubel       2002/03/18  created
492!
493!*-----------------------------------------------------------------------
494!
495!** + DECLARATIONS
496!
497!** ++ Use of modules
498!
499  USE mod_kinds_oasis
500  USE mod_parameter
501  USE mod_experiment
502!
503!** ++ Local declarations
504!
505  INTEGER (kind=ip_intwp_p) :: il_err
506!
507!*-----------------------------------------------------------------------
508!
509  ALLOCATE (nbcplproc(ig_nmodel), stat=il_err)
510  IF (il_err.NE.0) CALL prtout & 
511     ('Error in "nbcplproc"allocation of experiment module',il_err,1)
512  nbcplproc(:)=0
513  ALLOCATE (nbtotproc(ig_nmodel), stat=il_err)
514  IF (il_err.NE.0) CALL prtout & 
515     ('Error in "nbtotproc"allocation of experiment module',il_err,1)
516  nbtotproc(:)=0
517  ALLOCATE (cmodnam(ig_nmodel), stat=il_err)
518  IF (il_err.NE.0) CALL prtout & 
519     ('Error in "cmodnam"allocation of experiment module',il_err,1)
520  cmodnam(:)=' '
521  ALLOCATE (cmpiarg(ig_nmodel), stat=il_err)
522  IF (il_err.NE.0) CALL prtout & 
523     ('Error in "cmpiarg"allocation of experiment module',il_err,1)
524  cmpiarg(:)=' '
525  ALLOCATE (iga_unitmod(ig_nmodel), stat=il_err)
526  IF (il_err.NE.0) CALL prtout & 
527     ('Error in iga_unitmod allocation of experiment module',il_err,1)
528  iga_unitmod(:)=0
529!
530!*-----------------------------------------------------------------------
531!
532END SUBROUTINE alloc_experiment
533!
534!*========================================================================
535SUBROUTINE alloc_extrapol1
536!
537!**** ALLOC_EXTRAPOL
538!
539!     Purpose:
540!       Allocate arrays defined in the "extrapol" module
541!
542!     Interface:
543!       none
544!   
545!     Method:
546!       Uses run parameters read in "inipar_alloc" routine to
547!       allocate arrays.       
548!
549!     External:
550!       none
551!
552!     Files:
553!       none
554!   
555!     References:
556!
557!     History:
558!     --------
559!       Version   Programmer     Date        Description
560!       ------------------------------------------------
561!       2.5       A.Caubel       2002/03/18  created
562!
563!*-----------------------------------------------------------------------
564!
565!** + DECLARATIONS
566!
567!** ++ Use of modules
568!
569  USE mod_kinds_oasis
570  USE mod_parameter
571  USE mod_extrapol
572!
573!** ++ Local declarations
574!
575  INTEGER (kind=ip_intwp_p) :: il_err
576!
577!*-----------------------------------------------------------------------
578!
579  ALLOCATE (niwtn(ig_nfield), stat=il_err)
580  IF (il_err.NE.0) CALL prtout & 
581     ('Error in "niwtn"allocation of extrapol module',il_err,1)
582  niwtn(:)=0
583  ALLOCATE (niwtng(ig_nfield), stat=il_err)
584  IF (il_err.NE.0) CALL prtout & 
585     ('Error in "niwtng"allocation of extrapol module',il_err,1)
586  niwtng(:)=0
587  ALLOCATE (lextra(ig_nfield), stat=il_err)
588  IF (il_err.NE.0) CALL prtout & 
589     ('Error in "lextra"allocation of extrapol module',il_err,1)
590  lextra(:)=.false.
591  ALLOCATE (lweight(ig_nfield), stat=il_err)
592  IF (il_err.NE.0) CALL prtout & 
593     ('Error in "lweight"allocation of extrapol module',il_err,1)
594  lweight(:)=.false.
595  ALLOCATE (lextrapdone(ig_nfield), stat=il_err)
596  IF (il_err.NE.0) CALL prtout &
597     ('Error in "lextrapdone" allocation',il_err,1)
598  lextrapdone(:) = .FALSE.
599!
600!*-----------------------------------------------------------------------
601!
602END SUBROUTINE alloc_extrapol1
603!
604!*========================================================================
605!
606SUBROUTINE alloc_extrapol2
607!
608!**** ALLOC_EXTRAPOL
609!
610!     Purpose:
611!       Allocate arrays defined in the "extrapol" module
612!
613!     Interface:
614!       none
615!   
616!     Method:
617!       Uses run parameters read in "inipar_alloc" routine to
618!       allocate arrays.       
619!
620!     External:
621!       none
622!
623!     Files:
624!       none
625!   
626!     References:
627!
628!     History:
629!     --------
630!       Version   Programmer     Date        Description
631!       ------------------------------------------------
632!       3.0       S. Valcke      2004/01/05  created
633!
634!*-----------------------------------------------------------------------
635!
636!** + DECLARATIONS
637!
638!** ++ Use of modules
639!
640  USE mod_kinds_oasis
641  USE mod_parameter
642  USE mod_extrapol
643!
644!** ++ Local declarations
645!
646  INTEGER (kind=ip_intwp_p) :: il_err
647!
648!*-----------------------------------------------------------------------
649!
650  ALLOCATE (aextra(ig_maxext*ig_maxnbn*ig_maxgrd), stat=il_err)
651  IF (il_err.NE.0) CALL prtout & 
652     ('Error in "aextra"allocation of extrapol module',il_err,1)
653  aextra(:)=0
654  ALLOCATE (nextra(ig_maxext*ig_maxnbn*ig_maxgrd), stat=il_err)
655  IF (il_err.NE.0) CALL prtout & 
656     ('Error in "nextra"allocation of extrapol module',il_err,1)
657  nextra(:)=0
658!
659!*-----------------------------------------------------------------------
660!
661END SUBROUTINE alloc_extrapol2
662!
663!*========================================================================
664SUBROUTINE alloc_memory1
665!
666!**** ALLOC_MEMORY
667!
668!     Purpose:
669!       Allocate arrays defined in the "memory" module
670!
671!     Interface:
672!       none
673!   
674!     Method:
675!       Uses run parameters read in "inipar_alloc" routine to
676!       allocate arrays.       
677!
678!     External:
679!       none
680!
681!     Files:
682!       none
683!   
684!     References:
685!
686!     History:
687!     --------
688!       Version   Programmer     Date        Description
689!       ------------------------------------------------
690!       2.5       A.Caubel       2002/03/18  created
691!
692!*-----------------------------------------------------------------------
693!
694!** + DECLARATIONS
695!
696!** ++ Use of modules
697!
698  USE mod_kinds_oasis
699  USE mod_parameter
700  USE mod_memory
701!
702!** ++ Local declarations
703!
704  INTEGER (kind=ip_intwp_p) :: il_err
705!
706!*-----------------------------------------------------------------------
707!
708  ALLOCATE (nsizold(ig_nfield), stat=il_err)
709  IF (il_err.NE.0) CALL prtout & 
710     ('Error in "nsizold"allocation of memory module',il_err,1)
711  nsizold(:)=0
712  ALLOCATE (nsiznew(ig_nfield), stat=il_err)
713  IF (il_err.NE.0) CALL prtout & 
714     ('Error in "nsiznew"allocation of memory module',il_err,1)
715  nsiznew(:)=0
716  ALLOCATE (nadrold(ig_nfield), stat=il_err)
717  IF (il_err.NE.0) CALL prtout & 
718     ('Error in "nadrold"allocation of memory module',il_err,1)
719  nadrold(:)=0
720  ALLOCATE (nadrold_grid(ig_nfield), stat=il_err)
721  IF (il_err.NE.0) CALL prtout & 
722     ('Error in "nadrold_grid"allocation of memory module',il_err,1)
723  nadrold_grid(:)=0
724  ALLOCATE (nadrnew(ig_nfield), stat=il_err)
725  IF (il_err.NE.0) CALL prtout & 
726     ('Error in "nadrnew"allocation of memory module',il_err,1)
727  nadrnew(:)=0
728  ALLOCATE (nadrnew_grid(ig_nfield), stat=il_err)
729  IF (il_err.NE.0) CALL prtout & 
730     ('Error in "nadrnew_grid"allocation of memory module',il_err,1)
731  nadrnew_grid(:)=0
732!
733!*-----------------------------------------------------------------------
734!
735END SUBROUTINE alloc_memory1
736!
737!*========================================================================
738SUBROUTINE alloc_memory2
739!
740!**** ALLOC_MEMORY
741!
742!     Purpose:
743!       Allocate arrays defined in the "memory" module
744!
745!     Interface:
746!       none
747!   
748!     Method:
749!       Uses run parameters read in "inipar_alloc" routine to
750!       allocate arrays.       
751!
752!     External:
753!       none
754!
755!     Files:
756!       none
757!   
758!     References:
759!
760!     History:
761!     --------
762!       Version   Programmer     Date        Description
763!       ------------------------------------------------
764!       3.0       S. Valcke       2004/01/05  created
765!
766!*-----------------------------------------------------------------------
767!
768!** + DECLARATIONS
769!
770!** ++ Use of modules
771!
772  USE mod_kinds_oasis
773  USE mod_parameter
774  USE mod_memory
775!
776!** ++ Local declarations
777!
778  INTEGER (kind=ip_intwp_p) :: il_err
779!
780!*-----------------------------------------------------------------------
781!
782  ALLOCATE (mskold(ig_maxold_grid), stat=il_err)
783  IF (il_err.NE.0) CALL prtout & 
784     ('Error in "mskold"allocation of memory module',il_err,1)
785  mskold(:)=0
786  ALLOCATE (msknew(ig_maxnew_grid), stat=il_err)
787  IF (il_err.NE.0) CALL prtout & 
788     ('Error in "msknew"allocation of memory module',il_err,1)
789  msknew(:)=0
790  ALLOCATE (fldold(ig_maxold), stat=il_err)
791  IF (il_err.NE.0) CALL prtout & 
792     ('Error in "fldold"allocation of memory module',il_err,1)
793  fldold(:)=0
794  ALLOCATE (xgrold(ig_maxold_grid), stat=il_err)
795  IF (il_err.NE.0) CALL prtout & 
796     ('Error in "xgrold"allocation of memory module',il_err,1)
797  xgrold(:)=0
798  ALLOCATE (ygrold(ig_maxold_grid), stat=il_err)
799  IF (il_err.NE.0) CALL prtout & 
800     ('Error in "ygrold"allocation of memory module',il_err,1)
801  ygrold(:)=0
802  ALLOCATE (surold(ig_maxold_grid), stat=il_err)
803  IF (il_err.NE.0) CALL prtout & 
804     ('Error in "surold"allocation of memory module',il_err,1)
805  surold(:)=0
806  ALLOCATE (fldnew(ig_maxnew), stat=il_err)
807  IF (il_err.NE.0) CALL prtout & 
808     ('Error in "fldnew"allocation of memory module',il_err,1)
809  fldnew(:)=0
810  ALLOCATE (xgrnew(ig_maxnew_grid), stat=il_err)
811  IF (il_err.NE.0) CALL prtout & 
812     ('Error in "xgrnew"allocation of memory module',il_err,1)
813  xgrnew(:)=0
814  ALLOCATE (ygrnew(ig_maxnew_grid), stat=il_err)
815  IF (il_err.NE.0) CALL prtout & 
816     ('Error in "ygrnew"allocation of memory module',il_err,1)
817  ygrnew(:)=0
818  ALLOCATE (surnew(ig_maxnew_grid), stat=il_err)
819  IF (il_err.NE.0) CALL prtout & 
820     ('Error in "surnew"allocation of memory module',il_err,1)
821  surnew(:)=0
822  ALLOCATE (nwork(ig_nwork), stat=il_err)
823  IF (il_err.NE.0) CALL prtout & 
824     ('Error in "nwork"allocation of memory module',il_err,1)
825  nwork(:)=0
826  ALLOCATE (work(ig_work), stat=il_err)
827  IF (il_err.NE.0) CALL prtout & 
828     ('Error in "work"allocation of memory module',il_err,1)
829  work(:)=0
830!
831!*-----------------------------------------------------------------------
832!
833END SUBROUTINE alloc_memory2
834!
835!*========================================================================
836SUBROUTINE alloc_nproc
837!
838!**** ALLOC_NPROC
839!
840!     Purpose:
841!       Allocate arrays defined in the "nproc" module
842!
843!     Interface:
844!       none
845!   
846!     Method:
847!       Uses run parameters read in "inipar_alloc" routine to
848!       allocate arrays.       
849!
850!     External:
851!       none
852!
853!     Files:
854!       none
855!   
856!     References:
857!
858!     History:
859!     --------
860!       Version   Programmer     Date        Description
861!       ------------------------------------------------
862!       2.5       A.Caubel       2002/03/18  created
863!
864!*-----------------------------------------------------------------------
865!
866!** + DECLARATIONS
867!
868!** ++ Use of modules
869!
870  USE mod_kinds_oasis
871  USE mod_parameter
872  USE mod_nproc
873!
874!** ++ Local declarations
875!
876  INTEGER (kind=ip_intwp_p) :: il_err
877!
878!*-----------------------------------------------------------------------
879!
880  ALLOCATE (nproc(ig_nmodel), stat=il_err)
881  IF (il_err.NE.0) CALL prtout & 
882     ('Error in "nproc"allocation of nproc module',il_err,1)
883  nproc(:)=0
884!
885!*-----------------------------------------------------------------------
886!
887END SUBROUTINE alloc_nproc
888!
889!*========================================================================
890SUBROUTINE alloc_parallel
891!
892!**** ALLOC_ANALYSIS
893!
894!     Purpose:
895!       Allocate arrays defined in the "parallel" module
896!
897!     Interface:
898!       none
899!   
900!     Method:
901!       Uses run parameters read in "inipar_alloc" routine to
902!       allocate arrays.       
903!
904!     External:
905!       none
906!
907!     Files:
908!       none
909!   
910!     References:
911!
912!     History:
913!     --------
914!       Version   Programmer     Date        Description
915!       ------------------------------------------------
916!       2.5       A.Caubel       2002/03/18  created
917!
918!*-----------------------------------------------------------------------
919!
920!** + DECLARATIONS
921!
922!** ++ Use of modules
923!
924  USE mod_kinds_oasis
925  USE mod_parameter
926  USE mod_parallel
927!
928!** ++ Local declarations
929!
930  INTEGER (kind=ip_intwp_p) :: il_err
931!
932!*-----------------------------------------------------------------------
933!
934  ALLOCATE (nparal(3,ig_nfield), stat=il_err)
935  IF (il_err.NE.0) CALL prtout & 
936     ('Error in "nparal"allocation of parallel module',il_err,1)
937  nparal(:,:)=0
938  ALLOCATE (cparal(ig_nfield), stat=il_err)
939  IF (il_err.NE.0) CALL prtout & 
940     ('Error in "cparal"allocation of parallel module',il_err,1)
941  cparal(:)=' ' 
942!
943!*-----------------------------------------------------------------------
944!
945END SUBROUTINE alloc_parallel
946!
947!*========================================================================
948SUBROUTINE alloc_pipe
949!
950!**** ALLOC_PIPE
951!
952!     Purpose:
953!       Allocate arrays defined in the "pipe" module
954!
955!     Interface:
956!       none
957!   
958!     Method:
959!       Uses run parameters read in "inipar_alloc" routine to
960!       allocate arrays.       
961!
962!     External:
963!       none
964!
965!     Files:
966!       none
967!   
968!     References:
969!
970!     History:
971!     --------
972!       Version   Programmer     Date        Description
973!       ------------------------------------------------
974!       2.5       A.Caubel       2002/03/18  created
975!
976!*-----------------------------------------------------------------------
977!
978!** + DECLARATIONS
979!
980!** ++ Use of modules
981!
982  USE mod_kinds_oasis
983  USE mod_parameter
984  USE mod_pipe
985!
986!** ++ Local declarations
987!
988  INTEGER (kind=ip_intwp_p) :: il_err
989!
990!*-----------------------------------------------------------------------
991!
992  ALLOCATE (cprnam(ig_nmodel), stat=il_err)
993  IF (il_err.NE.0) CALL prtout & 
994     ('Error in "cprnam"allocation of pipe module',il_err,1)
995  cprnam(:)=' '
996  ALLOCATE (cpwnam(ig_nmodel), stat=il_err)
997  IF (il_err.NE.0) CALL prtout & 
998     ('Error in "cpwnam"allocation of pipe module',il_err,1)
999  cpwnam(:)=' '
1000!
1001!*-----------------------------------------------------------------------
1002!
1003END SUBROUTINE alloc_pipe
1004!
1005!*========================================================================
1006SUBROUTINE alloc_rainbow1
1007!
1008!**** ALLOC_RAINBOW
1009!
1010!     Purpose:
1011!       Allocate arrays defined in the "rainbow" module
1012!
1013!     Interface:
1014!       none
1015!   
1016!     Method:
1017!       Uses run parameters read in "inipar_alloc" routine to
1018!       allocate arrays.       
1019!
1020!     External:
1021!       none
1022!
1023!     Files:
1024!       none
1025!   
1026!     References:
1027!
1028!     History:
1029!     --------
1030!       Version   Programmer     Date        Description
1031!       ------------------------------------------------
1032!       2.5       A.Caubel       2002/03/18  created
1033!
1034!*-----------------------------------------------------------------------
1035!
1036!** + DECLARATIONS
1037!
1038!** ++ Use of modules
1039!
1040  USE mod_kinds_oasis
1041  USE mod_parameter
1042  USE mod_rainbow
1043!
1044!** ++ Local declarations
1045!
1046  INTEGER (kind=ip_intwp_p) :: il_err
1047!
1048!*-----------------------------------------------------------------------
1049!
1050  ALLOCATE (lmapp(ig_nfield), stat=il_err)
1051  IF (il_err.NE.0) CALL prtout & 
1052     ('Error in "lmapp"allocation of rainbow module',il_err,1)
1053  lmapp(:)=.false.
1054  ALLOCATE (lsubg(ig_nfield), stat=il_err)
1055  IF (il_err.NE.0) CALL prtout & 
1056     ('Error in "lsubg"allocation of rainbow module',il_err,1)
1057  lsubg(:)=.false.
1058!
1059!*-----------------------------------------------------------------------
1060!
1061END SUBROUTINE alloc_rainbow1
1062!
1063!*========================================================================
1064SUBROUTINE alloc_rainbow2
1065!
1066!**** ALLOC_RAINBOW
1067!
1068!     Purpose:
1069!       Allocate arrays defined in the "rainbow" module
1070!
1071!     Interface:
1072!       none
1073!   
1074!     Method:
1075!       Uses run parameters read in "inipar_alloc" routine to
1076!       allocate arrays.       
1077!
1078!     External:
1079!       none
1080!
1081!     Files:
1082!       none
1083!   
1084!     References:
1085!
1086!     History:
1087!     --------
1088!       Version   Programmer     Date        Description
1089!       ------------------------------------------------
1090!       2.5       A.Caubel       2002/03/18  created
1091!
1092!*-----------------------------------------------------------------------
1093!
1094!** + DECLARATIONS
1095!
1096!** ++ Use of modules
1097!
1098  USE mod_kinds_oasis
1099  USE mod_parameter
1100  USE mod_rainbow
1101!
1102!** ++ Local declarations
1103!
1104  INTEGER (kind=ip_intwp_p) :: il_err
1105!
1106!*-----------------------------------------------------------------------
1107!
1108  ALLOCATE (amapp(ig_maxmoa*ig_maxnfp*ig_maxgrd), stat=il_err)
1109  IF (il_err.NE.0) CALL prtout & 
1110     ('Error in "amapp"allocation of rainbow module',il_err,1)
1111  amapp(:)=0
1112  ALLOCATE (asubg(ig_maxsoa*ig_maxnfs*ig_maxgrd), stat=il_err)
1113  IF (il_err.NE.0) CALL prtout & 
1114     ('Error in "asubg"allocation of rainbow module',il_err,1)
1115  asubg(:)=0
1116  ALLOCATE (nmapp(ig_maxmoa*ig_maxnfp*ig_maxgrd), stat=il_err)
1117  IF (il_err.NE.0) CALL prtout & 
1118     ('Error in "nmapp"allocation of rainbow module',il_err,1)
1119  nmapp(:)=0
1120  ALLOCATE (nsubg(ig_maxsoa*ig_maxnfs*ig_maxgrd), stat=il_err)
1121  IF (il_err.NE.0) CALL prtout & 
1122     ('Error in "asubg"allocation of rainbow module',il_err,1)
1123  nsubg(:)=0
1124!
1125!*-----------------------------------------------------------------------
1126!
1127END SUBROUTINE alloc_rainbow2
1128!
1129!*========================================================================
1130SUBROUTINE alloc_sipc
1131!
1132!**** ALLOC_SIPC
1133!
1134!     Purpose:
1135!       Allocate arrays defined in the "sipc" module
1136!
1137!     Interface:
1138!       none
1139!   
1140!     Method:
1141!       Uses run parameters read in "inipar_alloc" routine to
1142!       allocate arrays.       
1143!
1144!     External:
1145!       none
1146!
1147!     Files:
1148!       none
1149!   
1150!     References:
1151!
1152!     History:
1153!     --------
1154!       Version   Programmer     Date        Description
1155!       ------------------------------------------------
1156!       2.5       A.Caubel       2002/03/18  created
1157!
1158!*-----------------------------------------------------------------------
1159!
1160!** + DECLARATIONS
1161!
1162!** ++ Use of modules
1163!
1164  USE mod_kinds_oasis
1165  USE mod_parameter
1166  USE mod_sipc
1167!
1168!** ++ Local declarations
1169!
1170  INTEGER (kind=ip_intwp_p) :: il_err
1171!
1172!*-----------------------------------------------------------------------
1173!
1174  ALLOCATE (mpoolidin(ig_nfield), stat=il_err)
1175  IF (il_err.NE.0) CALL prtout & 
1176     ('Error in "mpoolidin"allocation of sipc module',il_err,1)
1177  mpoolidin(:)=0
1178  ALLOCATE (mpoolidou(ig_nfield), stat=il_err)
1179  IF (il_err.NE.0) CALL prtout & 
1180     ('Error in "mpoolidou"allocation of sipc module',il_err,1)
1181  mpoolidou(:)=0
1182  ALLOCATE (mpoolinitr(ig_nmodel), stat=il_err)
1183  IF (il_err.NE.0) CALL prtout & 
1184     ('Error in "mpoolinitr"allocation of sipc module',il_err,1)
1185  mpoolinitr(:)=0
1186  ALLOCATE (mpoolinitw(ig_nmodel), stat=il_err)
1187  IF (il_err.NE.0) CALL prtout & 
1188     ('Error in "mpoolinitw"allocation of sipc module',il_err,1)
1189  mpoolinitw(:)=0
1190!
1191!*-----------------------------------------------------------------------
1192!
1193END SUBROUTINE alloc_sipc
1194!
1195!*========================================================================
1196SUBROUTINE alloc_string
1197!
1198!**** ALLOC_SIPC
1199!
1200!     Purpose:
1201!       Allocate arrays defined in the "string" module
1202!
1203!     Interface:
1204!       none
1205!   
1206!     Method:
1207!       Uses run parameters read in "inipar_alloc" routine to
1208!       allocate arrays.       
1209!
1210!     External:
1211!       none
1212!
1213!     Files:
1214!       none
1215!   
1216!     References:
1217!
1218!     History:
1219!     --------
1220!       Version   Programmer     Date        Description
1221!       ------------------------------------------------
1222!       2.5       A.Caubel       2002/03/18  created
1223!
1224!*-----------------------------------------------------------------------
1225!
1226!** + DECLARATIONS
1227!
1228!** ++ Use of modules
1229!
1230  USE mod_kinds_oasis
1231  USE mod_parameter
1232  USE mod_string
1233!
1234!** ++ Local declarations
1235!
1236  INTEGER (kind=ip_intwp_p) :: il_err
1237!
1238!*-----------------------------------------------------------------------
1239!
1240  ALLOCATE (cg_name_rstfile(ig_nbr_rstfile), stat=il_err)
1241  IF (il_err.NE.0) CALL prtout & 
1242     ('Error in "cg_name_rstfile"allocation of string module',il_err,1)
1243  cg_name_rstfile(:)=' '
1244  ALLOCATE (ig_lag(ig_total_nfield), stat=il_err)
1245  IF (il_err.NE.0) CALL prtout & 
1246     ('Error in "ig_lag"allocation of string module',il_err,1) 
1247  ig_lag(:)=0
1248  ALLOCATE (ig_no_rstfile(ig_total_nfield), stat=il_err)
1249  IF (il_err.NE.0) CALL prtout & 
1250     ('Error in "ig_no_rstfile"allocation of string module',il_err,1)
1251  ig_no_rstfile(:)=1
1252  ALLOCATE (cg_input_field(ig_total_nfield), stat=il_err)
1253  IF (il_err.NE.0) CALL prtout & 
1254     ('Error in "cg_input_field"allocation of string module',il_err,1)
1255  cg_input_field(:)=' '
1256  ALLOCATE (ig_numlab(ig_total_nfield), stat=il_err)
1257  IF (il_err.NE.0) CALL prtout & 
1258     ('Error in "ig_numlab"allocation of string module',il_err,1)
1259  ig_numlab(:)=0
1260  ALLOCATE (ig_freq(ig_total_nfield), stat=il_err)
1261  IF (il_err.NE.0) CALL prtout & 
1262     ('Error in "ig_freq"allocation of string module',il_err,1)
1263  ig_freq(:)=0
1264  ALLOCATE (ig_total_nseqn(ig_total_nfield), stat=il_err)
1265  IF (il_err.NE.0) CALL prtout & 
1266     ('Error in "ig_total_nseqn"allocation of string module',il_err,1)
1267  ig_total_nseqn(:)=0
1268  ALLOCATE (ig_local_trans(ig_total_nfield), stat=il_err)
1269  IF (il_err.NE.0) CALL prtout & 
1270     ('Error in "ig_local_trans"allocation of string module',il_err,1)
1271  ig_local_trans(:)=0
1272  ALLOCATE (ig_invert(ig_total_nfield), stat=il_err)
1273  IF (il_err.NE.0) CALL prtout & 
1274     ('Error in "ig_invert" allocation of string module',il_err,1) 
1275  ig_invert(:)=0
1276  ALLOCATE (ig_reverse(ig_total_nfield), stat=il_err)
1277  IF (il_err.NE.0) CALL prtout & 
1278     ('Error in "ig_reverse" allocation of string module',il_err,1) 
1279  ig_reverse(:)=0
1280!
1281!** + Allocate following arrays only if one field (at least) goes
1282!     through Oasis
1283!
1284  IF (lg_oasis_field) THEN
1285  ALLOCATE (numlab(ig_nfield), stat=il_err)
1286  IF (il_err.NE.0) CALL prtout & 
1287     ('Error in "numlab"allocation of string module',il_err,1)
1288  numlab(:)=0
1289  ALLOCATE (nfexch(ig_nfield), stat=il_err)
1290  IF (il_err.NE.0) CALL prtout & 
1291     ('Error in "nfexch"allocation of string module',il_err,1)
1292  nfexch(:)=0
1293  ALLOCATE (nluinp(ig_nfield), stat=il_err)
1294  IF (il_err.NE.0) CALL prtout & 
1295     ('Error in "nluinp"allocation of string module',il_err,1)
1296  nluinp(:)=0
1297  ALLOCATE (nluout(ig_nfield), stat=il_err)
1298  IF (il_err.NE.0) CALL prtout & 
1299     ('Error in "nluout"allocation of string module',il_err,1)
1300  nluout(:)=0
1301  ALLOCATE (nseqn(ig_nfield), stat=il_err)
1302  IF (il_err.NE.0) CALL prtout & 
1303     ('Error in "nseqn"allocation of string module',il_err,1)
1304  nseqn(:)=0
1305  ALLOCATE (nlagn(ig_nfield), stat=il_err)
1306  IF (il_err.NE.0) CALL prtout & 
1307     ('Error in "nlagn" allocation of string module',il_err,1)
1308  nlagn(:)=0
1309  ALLOCATE (cnaminp(ig_nfield), stat=il_err)
1310  IF (il_err.NE.0) CALL prtout & 
1311     ('Error in "cnaminp"allocation of string module',il_err,1)
1312  cnaminp(:)=' '
1313  ALLOCATE (cnamout(ig_nfield), stat=il_err)
1314  IF (il_err.NE.0) CALL prtout & 
1315     ('Error in "cnamout"allocation of string module',il_err,1)
1316  cnamout(:)=' '
1317  ALLOCATE (cficout(ig_nfield), stat=il_err)
1318  IF (il_err.NE.0) CALL prtout & 
1319     ('Error in "cficout"allocation of string module',il_err,1)
1320  cficout(:)=' '
1321  ALLOCATE (cstate(ig_nfield), stat=il_err)
1322  IF (il_err.NE.0) CALL prtout & 
1323     ('Error in "cstate"allocation of string module',il_err,1)
1324  cstate(:)=' '
1325  ALLOCATE (ig_portin_id(ig_nfield), stat=il_err)
1326  IF (il_err.NE.0) CALL prtout & 
1327     ('Error in "ig_portin_id"allocation of string module',il_err,1)
1328  ig_portin_id(:)=0
1329  ALLOCATE (ig_portout_id(ig_nfield), stat=il_err)
1330  IF (il_err.NE.0) CALL prtout & 
1331     ('Error in "ig_portout_id"allocation of string module',il_err,1)
1332  ig_portout_id(:)=0
1333  ENDIF
1334!
1335!*-----------------------------------------------------------------------
1336!
1337END SUBROUTINE alloc_string
1338!
1339!*========================================================================
1340SUBROUTINE alloc_timestep
1341!
1342!**** ALLOC_SIPC
1343!
1344!     Purpose:
1345!       Allocate arrays defined in the "timestep" module
1346!
1347!     Interface:
1348!       none
1349!   
1350!     Method:
1351!       Uses run parameters read in "inipar_alloc" routine to
1352!       allocate arrays.       
1353!
1354!     External:
1355!       none
1356!
1357!     Files:
1358!       none
1359!   
1360!     References:
1361!
1362!     History:
1363!     --------
1364!       Version   Programmer     Date        Description
1365!       ------------------------------------------------
1366!       2.5       A.Caubel       2002/03/18  created
1367!
1368!*-----------------------------------------------------------------------
1369!
1370!** + DECLARATIONS
1371!
1372!** ++ Use of modules
1373!
1374  USE mod_kinds_oasis
1375  USE mod_parameter
1376  USE mod_timestep
1377!
1378!** ++ Local declarations
1379!
1380  INTEGER (kind=ip_intwp_p) :: il_err
1381!
1382!*-----------------------------------------------------------------------
1383!
1384  ALLOCATE (mstep(ig_nmodel), stat=il_err)
1385  IF (il_err.NE.0) CALL prtout & 
1386     ('Error in "mstep"allocation of timestep module',il_err,1)
1387  mstep(:)=0
1388  ALLOCATE (mfcpl(ig_nmodel), stat=il_err)
1389  IF (il_err.NE.0) CALL prtout & 
1390     ('Error in "mfcpl"allocation of timestep module',il_err,1)
1391  mfcpl(:)=0
1392  ALLOCATE (mdt(ig_nmodel), stat=il_err)
1393  IF (il_err.NE.0) CALL prtout & 
1394     ('Error in "mdt"allocation of timestep module',il_err,1)
1395  mdt(:)=0
1396!
1397!*-----------------------------------------------------------------------
1398!
1399END SUBROUTINE alloc_timestep
1400!
1401!*========================================================================
1402SUBROUTINE alloc_unitncdf
1403!
1404!**** ALLOC_UNITNCDF
1405!
1406!     Purpose:
1407!       Allocate arrays defined in the "unitncdf" module
1408!
1409!     Interface:
1410!       none
1411!   
1412!     Method:
1413!       Uses run parameters read in "inipar_alloc" routine to
1414!       allocate arrays.       
1415!
1416!     External:
1417!       none
1418!
1419!     Files:
1420!       none
1421!   
1422!     References:
1423!
1424!     History:
1425!     --------
1426!       Version   Programmer     Date        Description
1427!       ------------------------------------------------
1428!       2.5       A.Caubel       2002/03/18  created
1429!
1430!*-----------------------------------------------------------------------
1431!
1432!** + DECLARATIONS
1433!
1434!** ++ Use of modules
1435!
1436  USE mod_kinds_oasis
1437  USE mod_parameter
1438  USE mod_unitncdf
1439!
1440!** ++ Local declarations
1441!
1442  INTEGER (kind=ip_intwp_p) :: il_err
1443!
1444!*-----------------------------------------------------------------------
1445!
1446  ALLOCATE (nc_inpid(ig_nfield), stat=il_err)
1447  IF (il_err.NE.0) CALL prtout & 
1448     ('Error in "nc_inpid"allocation of unitncdf module',il_err,1)
1449  nc_inpid(:)=0
1450  ALLOCATE (nc_outid(ig_nfield), stat=il_err)
1451  IF (il_err.NE.0) CALL prtout & 
1452     ('Error in "nc_outid"allocation of unitncdf module',il_err,1)
1453  nc_outid(:)=0
1454!
1455!*-----------------------------------------------------------------------
1456!
1457END SUBROUTINE alloc_unitncdf
1458!
1459!*========================================================================
1460
1461
1462
1463
Note: See TracBrowser for help on using the repository browser.