source: codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/config/ppsrc/dyn3d_common/relaxetat0.f @ 224

Last change on this file since 224 was 224, checked in by ymipsl, 10 years ago
File size: 61.6 KB
Line 
1      SUBROUTINE relaxetat0(fichnom)
2
3      use netcdf, only: nf90_get_var
4      use comuforc_h
5      use ioipsl_getincom
6
7      IMPLICIT NONE
8
9!=======================================================================
10! Author: A. Spiga
11! Purpose: Read a simple relaxation field
12!=======================================================================
13
14!-----------------------------------------------------------------------
15!   INCLUDE 'dimensions.h'
16!
17!   dimensions.h contient les dimensions du modele
18!   ndm est tel que iim=2**ndm
19!-----------------------------------------------------------------------
20
21      INTEGER iim,jjm,llm,ndm
22
23      PARAMETER (iim= 128,jjm=96,llm=64,ndm=1)
24
25!-----------------------------------------------------------------------
26!
27! $Header$
28!
29!
30!  ATTENTION!!!!: ce fichier include est compatible format fixe/format libre
31!                 veillez  n'utiliser que des ! pour les commentaires
32!                 et  bien positionner les & des lignes de continuation
33!                 (les placer en colonne 6 et en colonne 73)
34!
35!
36!-----------------------------------------------------------------------
37!   INCLUDE 'paramet.h'
38
39      INTEGER  iip1,iip2,iip3,jjp1,llmp1,llmp2,llmm1
40      INTEGER  kftd,ip1jm,ip1jmp1,ip1jmi1,ijp1llm
41      INTEGER  ijmllm,mvar
42      INTEGER jcfil,jcfllm
43
44      PARAMETER( iip1= iim+1,iip2=iim+2,iip3=iim+3                       &
45     &    ,jjp1=jjm+1-1/jjm)
46      PARAMETER( llmp1 = llm+1,  llmp2 = llm+2, llmm1 = llm-1 )
47      PARAMETER( kftd  = iim/2 -ndm )
48      PARAMETER( ip1jm  = iip1*jjm,  ip1jmp1= iip1*jjp1 )
49      PARAMETER( ip1jmi1= ip1jm - iip1 )
50      PARAMETER( ijp1llm= ip1jmp1 * llm, ijmllm= ip1jm * llm )
51      PARAMETER( mvar= ip1jmp1*( 2*llm+1) + ijmllm )
52      PARAMETER( jcfil=jjm/2+5, jcfllm=jcfil*llm )
53
54!-----------------------------------------------------------------------
55!     NetCDF-3.
56!
57! netcdf version 3 fortran interface:
58!
59
60!
61! external netcdf data types:
62!
63      integer nf_byte
64      integer nf_int1
65      integer nf_char
66      integer nf_short
67      integer nf_int2
68      integer nf_int
69      integer nf_float
70      integer nf_real
71      integer nf_double
72
73      parameter (nf_byte = 1)
74      parameter (nf_int1 = nf_byte)
75      parameter (nf_char = 2)
76      parameter (nf_short = 3)
77      parameter (nf_int2 = nf_short)
78      parameter (nf_int = 4)
79      parameter (nf_float = 5)
80      parameter (nf_real = nf_float)
81      parameter (nf_double = 6)
82
83!
84! default fill values:
85!
86      integer           nf_fill_byte
87      integer           nf_fill_int1
88      integer           nf_fill_char
89      integer           nf_fill_short
90      integer           nf_fill_int2
91      integer           nf_fill_int
92      real              nf_fill_float
93      real              nf_fill_real
94      doubleprecision   nf_fill_double
95
96      parameter (nf_fill_byte = -127)
97      parameter (nf_fill_int1 = nf_fill_byte)
98      parameter (nf_fill_char = 0)
99      parameter (nf_fill_short = -32767)
100      parameter (nf_fill_int2 = nf_fill_short)
101      parameter (nf_fill_int = -2147483647)
102      parameter (nf_fill_float = 9.9692099683868690e+36)
103      parameter (nf_fill_real = nf_fill_float)
104      parameter (nf_fill_double = 9.9692099683868690d+36)
105
106!
107! mode flags for opening and creating a netcdf dataset:
108!
109      integer nf_nowrite
110      integer nf_write
111      integer nf_clobber
112      integer nf_noclobber
113      integer nf_fill
114      integer nf_nofill
115      integer nf_lock
116      integer nf_share
117      integer nf_64bit_offset
118      integer nf_sizehint_default
119      integer nf_align_chunk
120      integer nf_format_classic
121      integer nf_format_64bit
122
123      parameter (nf_nowrite = 0)
124      parameter (nf_write = 1)
125      parameter (nf_clobber = 0)
126      parameter (nf_noclobber = 4)
127      parameter (nf_fill = 0)
128      parameter (nf_nofill = 256)
129      parameter (nf_lock = 1024)
130      parameter (nf_share = 2048)
131      parameter (nf_64bit_offset = 512)
132      parameter (nf_sizehint_default = 0)
133      parameter (nf_align_chunk = -1)
134      parameter (nf_format_classic = 1)
135      parameter (nf_format_64bit = 2)
136
137!
138! size argument for defining an unlimited dimension:
139!
140      integer nf_unlimited
141      parameter (nf_unlimited = 0)
142
143!
144! global attribute id:
145!
146      integer nf_global
147      parameter (nf_global = 0)
148
149!
150! implementation limits:
151!
152      integer nf_max_dims
153      integer nf_max_attrs
154      integer nf_max_vars
155      integer nf_max_name
156      integer nf_max_var_dims
157
158      parameter (nf_max_dims = 1024)
159      parameter (nf_max_attrs = 8192)
160      parameter (nf_max_vars = 8192)
161      parameter (nf_max_name = 256)
162      parameter (nf_max_var_dims = nf_max_dims)
163
164!
165! error codes:
166!
167      integer nf_noerr
168      integer nf_ebadid
169      integer nf_eexist
170      integer nf_einval
171      integer nf_eperm
172      integer nf_enotindefine
173      integer nf_eindefine
174      integer nf_einvalcoords
175      integer nf_emaxdims
176      integer nf_enameinuse
177      integer nf_enotatt
178      integer nf_emaxatts
179      integer nf_ebadtype
180      integer nf_ebaddim
181      integer nf_eunlimpos
182      integer nf_emaxvars
183      integer nf_enotvar
184      integer nf_eglobal
185      integer nf_enotnc
186      integer nf_ests
187      integer nf_emaxname
188      integer nf_eunlimit
189      integer nf_enorecvars
190      integer nf_echar
191      integer nf_eedge
192      integer nf_estride
193      integer nf_ebadname
194      integer nf_erange
195      integer nf_enomem
196      integer nf_evarsize
197      integer nf_edimsize
198      integer nf_etrunc
199
200      parameter (nf_noerr = 0)
201      parameter (nf_ebadid = -33)
202      parameter (nf_eexist = -35)
203      parameter (nf_einval = -36)
204      parameter (nf_eperm = -37)
205      parameter (nf_enotindefine = -38)
206      parameter (nf_eindefine = -39)
207      parameter (nf_einvalcoords = -40)
208      parameter (nf_emaxdims = -41)
209      parameter (nf_enameinuse = -42)
210      parameter (nf_enotatt = -43)
211      parameter (nf_emaxatts = -44)
212      parameter (nf_ebadtype = -45)
213      parameter (nf_ebaddim = -46)
214      parameter (nf_eunlimpos = -47)
215      parameter (nf_emaxvars = -48)
216      parameter (nf_enotvar = -49)
217      parameter (nf_eglobal = -50)
218      parameter (nf_enotnc = -51)
219      parameter (nf_ests = -52)
220      parameter (nf_emaxname = -53)
221      parameter (nf_eunlimit = -54)
222      parameter (nf_enorecvars = -55)
223      parameter (nf_echar = -56)
224      parameter (nf_eedge = -57)
225      parameter (nf_estride = -58)
226      parameter (nf_ebadname = -59)
227      parameter (nf_erange = -60)
228      parameter (nf_enomem = -61)
229      parameter (nf_evarsize = -62)
230      parameter (nf_edimsize = -63)
231      parameter (nf_etrunc = -64)
232!
233! error handling modes:
234!
235      integer  nf_fatal
236      integer nf_verbose
237
238      parameter (nf_fatal = 1)
239      parameter (nf_verbose = 2)
240
241!
242! miscellaneous routines:
243!
244      character*80   nf_inq_libvers
245      external       nf_inq_libvers
246
247      character*80   nf_strerror
248!                         (integer             ncerr)
249      external       nf_strerror
250
251      logical        nf_issyserr
252!                         (integer             ncerr)
253      external       nf_issyserr
254
255!
256! control routines:
257!
258      integer         nf_inq_base_pe
259!                         (integer             ncid,
260!                          integer             pe)
261      external        nf_inq_base_pe
262
263      integer         nf_set_base_pe
264!                         (integer             ncid,
265!                          integer             pe)
266      external        nf_set_base_pe
267
268      integer         nf_create
269!                         (character*(*)       path,
270!                          integer             cmode,
271!                          integer             ncid)
272      external        nf_create
273
274      integer         nf__create
275!                         (character*(*)       path,
276!                          integer             cmode,
277!                          integer             initialsz,
278!                          integer             chunksizehint,
279!                          integer             ncid)
280      external        nf__create
281
282      integer         nf__create_mp
283!                         (character*(*)       path,
284!                          integer             cmode,
285!                          integer             initialsz,
286!                          integer             basepe,
287!                          integer             chunksizehint,
288!                          integer             ncid)
289      external        nf__create_mp
290
291      integer         nf_open
292!                         (character*(*)       path,
293!                          integer             mode,
294!                          integer             ncid)
295      external        nf_open
296
297      integer         nf__open
298!                         (character*(*)       path,
299!                          integer             mode,
300!                          integer             chunksizehint,
301!                          integer             ncid)
302      external        nf__open
303
304      integer         nf__open_mp
305!                         (character*(*)       path,
306!                          integer             mode,
307!                          integer             basepe,
308!                          integer             chunksizehint,
309!                          integer             ncid)
310      external        nf__open_mp
311
312      integer         nf_set_fill
313!                         (integer             ncid,
314!                          integer             fillmode,
315!                          integer             old_mode)
316      external        nf_set_fill
317
318      integer         nf_set_default_format
319!                          (integer             format,
320!                          integer             old_format)
321      external        nf_set_default_format
322
323      integer         nf_redef
324!                         (integer             ncid)
325      external        nf_redef
326
327      integer         nf_enddef
328!                         (integer             ncid)
329      external        nf_enddef
330
331      integer         nf__enddef
332!                         (integer             ncid,
333!                          integer             h_minfree,
334!                          integer             v_align,
335!                          integer             v_minfree,
336!                          integer             r_align)
337      external        nf__enddef
338
339      integer         nf_sync
340!                         (integer             ncid)
341      external        nf_sync
342
343      integer         nf_abort
344!                         (integer             ncid)
345      external        nf_abort
346
347      integer         nf_close
348!                         (integer             ncid)
349      external        nf_close
350
351      integer         nf_delete
352!                         (character*(*)       ncid)
353      external        nf_delete
354
355!
356! general inquiry routines:
357!
358
359      integer         nf_inq
360!                         (integer             ncid,
361!                          integer             ndims,
362!                          integer             nvars,
363!                          integer             ngatts,
364!                          integer             unlimdimid)
365      external        nf_inq
366
367      integer         nf_inq_ndims
368!                         (integer             ncid,
369!                          integer             ndims)
370      external        nf_inq_ndims
371
372      integer         nf_inq_nvars
373!                         (integer             ncid,
374!                          integer             nvars)
375      external        nf_inq_nvars
376
377      integer         nf_inq_natts
378!                         (integer             ncid,
379!                          integer             ngatts)
380      external        nf_inq_natts
381
382      integer         nf_inq_unlimdim
383!                         (integer             ncid,
384!                          integer             unlimdimid)
385      external        nf_inq_unlimdim
386
387      integer         nf_inq_format
388!                         (integer             ncid,
389!                          integer             format)
390      external        nf_inq_format
391
392!
393! dimension routines:
394!
395
396      integer         nf_def_dim
397!                         (integer             ncid,
398!                          character(*)        name,
399!                          integer             len,
400!                          integer             dimid)
401      external        nf_def_dim
402
403      integer         nf_inq_dimid
404!                         (integer             ncid,
405!                          character(*)        name,
406!                          integer             dimid)
407      external        nf_inq_dimid
408
409      integer         nf_inq_dim
410!                         (integer             ncid,
411!                          integer             dimid,
412!                          character(*)        name,
413!                          integer             len)
414      external        nf_inq_dim
415
416      integer         nf_inq_dimname
417!                         (integer             ncid,
418!                          integer             dimid,
419!                          character(*)        name)
420      external        nf_inq_dimname
421
422      integer         nf_inq_dimlen
423!                         (integer             ncid,
424!                          integer             dimid,
425!                          integer             len)
426      external        nf_inq_dimlen
427
428      integer         nf_rename_dim
429!                         (integer             ncid,
430!                          integer             dimid,
431!                          character(*)        name)
432      external        nf_rename_dim
433
434!
435! general attribute routines:
436!
437
438      integer         nf_inq_att
439!                         (integer             ncid,
440!                          integer             varid,
441!                          character(*)        name,
442!                          integer             xtype,
443!                          integer             len)
444      external        nf_inq_att
445
446      integer         nf_inq_attid
447!                         (integer             ncid,
448!                          integer             varid,
449!                          character(*)        name,
450!                          integer             attnum)
451      external        nf_inq_attid
452
453      integer         nf_inq_atttype
454!                         (integer             ncid,
455!                          integer             varid,
456!                          character(*)        name,
457!                          integer             xtype)
458      external        nf_inq_atttype
459
460      integer         nf_inq_attlen
461!                         (integer             ncid,
462!                          integer             varid,
463!                          character(*)        name,
464!                          integer             len)
465      external        nf_inq_attlen
466
467      integer         nf_inq_attname
468!                         (integer             ncid,
469!                          integer             varid,
470!                          integer             attnum,
471!                          character(*)        name)
472      external        nf_inq_attname
473
474      integer         nf_copy_att
475!                         (integer             ncid_in,
476!                          integer             varid_in,
477!                          character(*)        name,
478!                          integer             ncid_out,
479!                          integer             varid_out)
480      external        nf_copy_att
481
482      integer         nf_rename_att
483!                         (integer             ncid,
484!                          integer             varid,
485!                          character(*)        curname,
486!                          character(*)        newname)
487      external        nf_rename_att
488
489      integer         nf_del_att
490!                         (integer             ncid,
491!                          integer             varid,
492!                          character(*)        name)
493      external        nf_del_att
494
495!
496! attribute put/get routines:
497!
498
499      integer         nf_put_att_text
500!                         (integer             ncid,
501!                          integer             varid,
502!                          character(*)        name,
503!                          integer             len,
504!                          character(*)        text)
505      external        nf_put_att_text
506
507      integer         nf_get_att_text
508!                         (integer             ncid,
509!                          integer             varid,
510!                          character(*)        name,
511!                          character(*)        text)
512      external        nf_get_att_text
513
514      integer         nf_put_att_int1
515!                         (integer             ncid,
516!                          integer             varid,
517!                          character(*)        name,
518!                          integer             xtype,
519!                          integer             len,
520!                          nf_int1_t           i1vals(1))
521      external        nf_put_att_int1
522
523      integer         nf_get_att_int1
524!                         (integer             ncid,
525!                          integer             varid,
526!                          character(*)        name,
527!                          nf_int1_t           i1vals(1))
528      external        nf_get_att_int1
529
530      integer         nf_put_att_int2
531!                         (integer             ncid,
532!                          integer             varid,
533!                          character(*)        name,
534!                          integer             xtype,
535!                          integer             len,
536!                          nf_int2_t           i2vals(1))
537      external        nf_put_att_int2
538
539      integer         nf_get_att_int2
540!                         (integer             ncid,
541!                          integer             varid,
542!                          character(*)        name,
543!                          nf_int2_t           i2vals(1))
544      external        nf_get_att_int2
545
546      integer         nf_put_att_int
547!                         (integer             ncid,
548!                          integer             varid,
549!                          character(*)        name,
550!                          integer             xtype,
551!                          integer             len,
552!                          integer             ivals(1))
553      external        nf_put_att_int
554
555      integer         nf_get_att_int
556!                         (integer             ncid,
557!                          integer             varid,
558!                          character(*)        name,
559!                          integer             ivals(1))
560      external        nf_get_att_int
561
562      integer         nf_put_att_real
563!                         (integer             ncid,
564!                          integer             varid,
565!                          character(*)        name,
566!                          integer             xtype,
567!                          integer             len,
568!                          real                rvals(1))
569      external        nf_put_att_real
570
571      integer         nf_get_att_real
572!                         (integer             ncid,
573!                          integer             varid,
574!                          character(*)        name,
575!                          real                rvals(1))
576      external        nf_get_att_real
577
578      integer         nf_put_att_double
579!                         (integer             ncid,
580!                          integer             varid,
581!                          character(*)        name,
582!                          integer             xtype,
583!                          integer             len,
584!                          double              dvals(1))
585      external        nf_put_att_double
586
587      integer         nf_get_att_double
588!                         (integer             ncid,
589!                          integer             varid,
590!                          character(*)        name,
591!                          double              dvals(1))
592      external        nf_get_att_double
593
594!
595! general variable routines:
596!
597
598      integer         nf_def_var
599!                         (integer             ncid,
600!                          character(*)        name,
601!                          integer             datatype,
602!                          integer             ndims,
603!                          integer             dimids(1),
604!                          integer             varid)
605      external        nf_def_var
606
607      integer         nf_inq_var
608!                         (integer             ncid,
609!                          integer             varid,
610!                          character(*)        name,
611!                          integer             datatype,
612!                          integer             ndims,
613!                          integer             dimids(1),
614!                          integer             natts)
615      external        nf_inq_var
616
617      integer         nf_inq_varid
618!                         (integer             ncid,
619!                          character(*)        name,
620!                          integer             varid)
621      external        nf_inq_varid
622
623      integer         nf_inq_varname
624!                         (integer             ncid,
625!                          integer             varid,
626!                          character(*)        name)
627      external        nf_inq_varname
628
629      integer         nf_inq_vartype
630!                         (integer             ncid,
631!                          integer             varid,
632!                          integer             xtype)
633      external        nf_inq_vartype
634
635      integer         nf_inq_varndims
636!                         (integer             ncid,
637!                          integer             varid,
638!                          integer             ndims)
639      external        nf_inq_varndims
640
641      integer         nf_inq_vardimid
642!                         (integer             ncid,
643!                          integer             varid,
644!                          integer             dimids(1))
645      external        nf_inq_vardimid
646
647      integer         nf_inq_varnatts
648!                         (integer             ncid,
649!                          integer             varid,
650!                          integer             natts)
651      external        nf_inq_varnatts
652
653      integer         nf_rename_var
654!                         (integer             ncid,
655!                          integer             varid,
656!                          character(*)        name)
657      external        nf_rename_var
658
659      integer         nf_copy_var
660!                         (integer             ncid_in,
661!                          integer             varid,
662!                          integer             ncid_out)
663      external        nf_copy_var
664
665!
666! entire variable put/get routines:
667!
668
669      integer         nf_put_var_text
670!                         (integer             ncid,
671!                          integer             varid,
672!                          character(*)        text)
673      external        nf_put_var_text
674
675      integer         nf_get_var_text
676!                         (integer             ncid,
677!                          integer             varid,
678!                          character(*)        text)
679      external        nf_get_var_text
680
681      integer         nf_put_var_int1
682!                         (integer             ncid,
683!                          integer             varid,
684!                          nf_int1_t           i1vals(1))
685      external        nf_put_var_int1
686
687      integer         nf_get_var_int1
688!                         (integer             ncid,
689!                          integer             varid,
690!                          nf_int1_t           i1vals(1))
691      external        nf_get_var_int1
692
693      integer         nf_put_var_int2
694!                         (integer             ncid,
695!                          integer             varid,
696!                          nf_int2_t           i2vals(1))
697      external        nf_put_var_int2
698
699      integer         nf_get_var_int2
700!                         (integer             ncid,
701!                          integer             varid,
702!                          nf_int2_t           i2vals(1))
703      external        nf_get_var_int2
704
705      integer         nf_put_var_int
706!                         (integer             ncid,
707!                          integer             varid,
708!                          integer             ivals(1))
709      external        nf_put_var_int
710
711      integer         nf_get_var_int
712!                         (integer             ncid,
713!                          integer             varid,
714!                          integer             ivals(1))
715      external        nf_get_var_int
716
717      integer         nf_put_var_real
718!                         (integer             ncid,
719!                          integer             varid,
720!                          real                rvals(1))
721      external        nf_put_var_real
722
723      integer         nf_get_var_real
724!                         (integer             ncid,
725!                          integer             varid,
726!                          real                rvals(1))
727      external        nf_get_var_real
728
729      integer         nf_put_var_double
730!                         (integer             ncid,
731!                          integer             varid,
732!                          doubleprecision     dvals(1))
733      external        nf_put_var_double
734
735      integer         nf_get_var_double
736!                         (integer             ncid,
737!                          integer             varid,
738!                          doubleprecision     dvals(1))
739      external        nf_get_var_double
740
741!
742! single variable put/get routines:
743!
744
745      integer         nf_put_var1_text
746!                         (integer             ncid,
747!                          integer             varid,
748!                          integer             index(1),
749!                          character*1         text)
750      external        nf_put_var1_text
751
752      integer         nf_get_var1_text
753!                         (integer             ncid,
754!                          integer             varid,
755!                          integer             index(1),
756!                          character*1         text)
757      external        nf_get_var1_text
758
759      integer         nf_put_var1_int1
760!                         (integer             ncid,
761!                          integer             varid,
762!                          integer             index(1),
763!                          nf_int1_t           i1val)
764      external        nf_put_var1_int1
765
766      integer         nf_get_var1_int1
767!                         (integer             ncid,
768!                          integer             varid,
769!                          integer             index(1),
770!                          nf_int1_t           i1val)
771      external        nf_get_var1_int1
772
773      integer         nf_put_var1_int2
774!                         (integer             ncid,
775!                          integer             varid,
776!                          integer             index(1),
777!                          nf_int2_t           i2val)
778      external        nf_put_var1_int2
779
780      integer         nf_get_var1_int2
781!                         (integer             ncid,
782!                          integer             varid,
783!                          integer             index(1),
784!                          nf_int2_t           i2val)
785      external        nf_get_var1_int2
786
787      integer         nf_put_var1_int
788!                         (integer             ncid,
789!                          integer             varid,
790!                          integer             index(1),
791!                          integer             ival)
792      external        nf_put_var1_int
793
794      integer         nf_get_var1_int
795!                         (integer             ncid,
796!                          integer             varid,
797!                          integer             index(1),
798!                          integer             ival)
799      external        nf_get_var1_int
800
801      integer         nf_put_var1_real
802!                         (integer             ncid,
803!                          integer             varid,
804!                          integer             index(1),
805!                          real                rval)
806      external        nf_put_var1_real
807
808      integer         nf_get_var1_real
809!                         (integer             ncid,
810!                          integer             varid,
811!                          integer             index(1),
812!                          real                rval)
813      external        nf_get_var1_real
814
815      integer         nf_put_var1_double
816!                         (integer             ncid,
817!                          integer             varid,
818!                          integer             index(1),
819!                          doubleprecision     dval)
820      external        nf_put_var1_double
821
822      integer         nf_get_var1_double
823!                         (integer             ncid,
824!                          integer             varid,
825!                          integer             index(1),
826!                          doubleprecision     dval)
827      external        nf_get_var1_double
828
829!
830! variable array put/get routines:
831!
832
833      integer         nf_put_vara_text
834!                         (integer             ncid,
835!                          integer             varid,
836!                          integer             start(1),
837!                          integer             count(1),
838!                          character(*)        text)
839      external        nf_put_vara_text
840
841      integer         nf_get_vara_text
842!                         (integer             ncid,
843!                          integer             varid,
844!                          integer             start(1),
845!                          integer             count(1),
846!                          character(*)        text)
847      external        nf_get_vara_text
848
849      integer         nf_put_vara_int1
850!                         (integer             ncid,
851!                          integer             varid,
852!                          integer             start(1),
853!                          integer             count(1),
854!                          nf_int1_t           i1vals(1))
855      external        nf_put_vara_int1
856
857      integer         nf_get_vara_int1
858!                         (integer             ncid,
859!                          integer             varid,
860!                          integer             start(1),
861!                          integer             count(1),
862!                          nf_int1_t           i1vals(1))
863      external        nf_get_vara_int1
864
865      integer         nf_put_vara_int2
866!                         (integer             ncid,
867!                          integer             varid,
868!                          integer             start(1),
869!                          integer             count(1),
870!                          nf_int2_t           i2vals(1))
871      external        nf_put_vara_int2
872
873      integer         nf_get_vara_int2
874!                         (integer             ncid,
875!                          integer             varid,
876!                          integer             start(1),
877!                          integer             count(1),
878!                          nf_int2_t           i2vals(1))
879      external        nf_get_vara_int2
880
881      integer         nf_put_vara_int
882!                         (integer             ncid,
883!                          integer             varid,
884!                          integer             start(1),
885!                          integer             count(1),
886!                          integer             ivals(1))
887      external        nf_put_vara_int
888
889      integer         nf_get_vara_int
890!                         (integer             ncid,
891!                          integer             varid,
892!                          integer             start(1),
893!                          integer             count(1),
894!                          integer             ivals(1))
895      external        nf_get_vara_int
896
897      integer         nf_put_vara_real
898!                         (integer             ncid,
899!                          integer             varid,
900!                          integer             start(1),
901!                          integer             count(1),
902!                          real                rvals(1))
903      external        nf_put_vara_real
904
905      integer         nf_get_vara_real
906!                         (integer             ncid,
907!                          integer             varid,
908!                          integer             start(1),
909!                          integer             count(1),
910!                          real                rvals(1))
911      external        nf_get_vara_real
912
913      integer         nf_put_vara_double
914!                         (integer             ncid,
915!                          integer             varid,
916!                          integer             start(1),
917!                          integer             count(1),
918!                          doubleprecision     dvals(1))
919      external        nf_put_vara_double
920
921      integer         nf_get_vara_double
922!                         (integer             ncid,
923!                          integer             varid,
924!                          integer             start(1),
925!                          integer             count(1),
926!                          doubleprecision     dvals(1))
927      external        nf_get_vara_double
928
929!
930! strided variable put/get routines:
931!
932
933      integer         nf_put_vars_text
934!                         (integer             ncid,
935!                          integer             varid,
936!                          integer             start(1),
937!                          integer             count(1),
938!                          integer             stride(1),
939!                          character(*)        text)
940      external        nf_put_vars_text
941
942      integer         nf_get_vars_text
943!                         (integer             ncid,
944!                          integer             varid,
945!                          integer             start(1),
946!                          integer             count(1),
947!                          integer             stride(1),
948!                          character(*)        text)
949      external        nf_get_vars_text
950
951      integer         nf_put_vars_int1
952!                         (integer             ncid,
953!                          integer             varid,
954!                          integer             start(1),
955!                          integer             count(1),
956!                          integer             stride(1),
957!                          nf_int1_t           i1vals(1))
958      external        nf_put_vars_int1
959
960      integer         nf_get_vars_int1
961!                         (integer             ncid,
962!                          integer             varid,
963!                          integer             start(1),
964!                          integer             count(1),
965!                          integer             stride(1),
966!                          nf_int1_t           i1vals(1))
967      external        nf_get_vars_int1
968
969      integer         nf_put_vars_int2
970!                         (integer             ncid,
971!                          integer             varid,
972!                          integer             start(1),
973!                          integer             count(1),
974!                          integer             stride(1),
975!                          nf_int2_t           i2vals(1))
976      external        nf_put_vars_int2
977
978      integer         nf_get_vars_int2
979!                         (integer             ncid,
980!                          integer             varid,
981!                          integer             start(1),
982!                          integer             count(1),
983!                          integer             stride(1),
984!                          nf_int2_t           i2vals(1))
985      external        nf_get_vars_int2
986
987      integer         nf_put_vars_int
988!                         (integer             ncid,
989!                          integer             varid,
990!                          integer             start(1),
991!                          integer             count(1),
992!                          integer             stride(1),
993!                          integer             ivals(1))
994      external        nf_put_vars_int
995
996      integer         nf_get_vars_int
997!                         (integer             ncid,
998!                          integer             varid,
999!                          integer             start(1),
1000!                          integer             count(1),
1001!                          integer             stride(1),
1002!                          integer             ivals(1))
1003      external        nf_get_vars_int
1004
1005      integer         nf_put_vars_real
1006!                         (integer             ncid,
1007!                          integer             varid,
1008!                          integer             start(1),
1009!                          integer             count(1),
1010!                          integer             stride(1),
1011!                          real                rvals(1))
1012      external        nf_put_vars_real
1013
1014      integer         nf_get_vars_real
1015!                         (integer             ncid,
1016!                          integer             varid,
1017!                          integer             start(1),
1018!                          integer             count(1),
1019!                          integer             stride(1),
1020!                          real                rvals(1))
1021      external        nf_get_vars_real
1022
1023      integer         nf_put_vars_double
1024!                         (integer             ncid,
1025!                          integer             varid,
1026!                          integer             start(1),
1027!                          integer             count(1),
1028!                          integer             stride(1),
1029!                          doubleprecision     dvals(1))
1030      external        nf_put_vars_double
1031
1032      integer         nf_get_vars_double
1033!                         (integer             ncid,
1034!                          integer             varid,
1035!                          integer             start(1),
1036!                          integer             count(1),
1037!                          integer             stride(1),
1038!                          doubleprecision     dvals(1))
1039      external        nf_get_vars_double
1040
1041!
1042! mapped variable put/get routines:
1043!
1044
1045      integer         nf_put_varm_text
1046!                         (integer             ncid,
1047!                          integer             varid,
1048!                          integer             start(1),
1049!                          integer             count(1),
1050!                          integer             stride(1),
1051!                          integer             imap(1),
1052!                          character(*)        text)
1053      external        nf_put_varm_text
1054
1055      integer         nf_get_varm_text
1056!                         (integer             ncid,
1057!                          integer             varid,
1058!                          integer             start(1),
1059!                          integer             count(1),
1060!                          integer             stride(1),
1061!                          integer             imap(1),
1062!                          character(*)        text)
1063      external        nf_get_varm_text
1064
1065      integer         nf_put_varm_int1
1066!                         (integer             ncid,
1067!                          integer             varid,
1068!                          integer             start(1),
1069!                          integer             count(1),
1070!                          integer             stride(1),
1071!                          integer             imap(1),
1072!                          nf_int1_t           i1vals(1))
1073      external        nf_put_varm_int1
1074
1075      integer         nf_get_varm_int1
1076!                         (integer             ncid,
1077!                          integer             varid,
1078!                          integer             start(1),
1079!                          integer             count(1),
1080!                          integer             stride(1),
1081!                          integer             imap(1),
1082!                          nf_int1_t           i1vals(1))
1083      external        nf_get_varm_int1
1084
1085      integer         nf_put_varm_int2
1086!                         (integer             ncid,
1087!                          integer             varid,
1088!                          integer             start(1),
1089!                          integer             count(1),
1090!                          integer             stride(1),
1091!                          integer             imap(1),
1092!                          nf_int2_t           i2vals(1))
1093      external        nf_put_varm_int2
1094
1095      integer         nf_get_varm_int2
1096!                         (integer             ncid,
1097!                          integer             varid,
1098!                          integer             start(1),
1099!                          integer             count(1),
1100!                          integer             stride(1),
1101!                          integer             imap(1),
1102!                          nf_int2_t           i2vals(1))
1103      external        nf_get_varm_int2
1104
1105      integer         nf_put_varm_int
1106!                         (integer             ncid,
1107!                          integer             varid,
1108!                          integer             start(1),
1109!                          integer             count(1),
1110!                          integer             stride(1),
1111!                          integer             imap(1),
1112!                          integer             ivals(1))
1113      external        nf_put_varm_int
1114
1115      integer         nf_get_varm_int
1116!                         (integer             ncid,
1117!                          integer             varid,
1118!                          integer             start(1),
1119!                          integer             count(1),
1120!                          integer             stride(1),
1121!                          integer             imap(1),
1122!                          integer             ivals(1))
1123      external        nf_get_varm_int
1124
1125      integer         nf_put_varm_real
1126!                         (integer             ncid,
1127!                          integer             varid,
1128!                          integer             start(1),
1129!                          integer             count(1),
1130!                          integer             stride(1),
1131!                          integer             imap(1),
1132!                          real                rvals(1))
1133      external        nf_put_varm_real
1134
1135      integer         nf_get_varm_real
1136!                         (integer             ncid,
1137!                          integer             varid,
1138!                          integer             start(1),
1139!                          integer             count(1),
1140!                          integer             stride(1),
1141!                          integer             imap(1),
1142!                          real                rvals(1))
1143      external        nf_get_varm_real
1144
1145      integer         nf_put_varm_double
1146!                         (integer             ncid,
1147!                          integer             varid,
1148!                          integer             start(1),
1149!                          integer             count(1),
1150!                          integer             stride(1),
1151!                          integer             imap(1),
1152!                          doubleprecision     dvals(1))
1153      external        nf_put_varm_double
1154
1155      integer         nf_get_varm_double
1156!                         (integer             ncid,
1157!                          integer             varid,
1158!                          integer             start(1),
1159!                          integer             count(1),
1160!                          integer             stride(1),
1161!                          integer             imap(1),
1162!                          doubleprecision     dvals(1))
1163      external        nf_get_varm_double
1164
1165
1166!     NetCDF-2.
1167!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
1168! begin netcdf 2.4 backward compatibility:
1169!
1170
1171!     
1172! functions in the fortran interface
1173!
1174      integer nccre
1175      integer ncopn
1176      integer ncddef
1177      integer ncdid
1178      integer ncvdef
1179      integer ncvid
1180      integer nctlen
1181      integer ncsfil
1182
1183      external nccre
1184      external ncopn
1185      external ncddef
1186      external ncdid
1187      external ncvdef
1188      external ncvid
1189      external nctlen
1190      external ncsfil
1191
1192
1193      integer ncrdwr
1194      integer nccreat
1195      integer ncexcl
1196      integer ncindef
1197      integer ncnsync
1198      integer nchsync
1199      integer ncndirty
1200      integer nchdirty
1201      integer nclink
1202      integer ncnowrit
1203      integer ncwrite
1204      integer ncclob
1205      integer ncnoclob
1206      integer ncglobal
1207      integer ncfill
1208      integer ncnofill
1209      integer maxncop
1210      integer maxncdim
1211      integer maxncatt
1212      integer maxncvar
1213      integer maxncnam
1214      integer maxvdims
1215      integer ncnoerr
1216      integer ncebadid
1217      integer ncenfile
1218      integer nceexist
1219      integer nceinval
1220      integer nceperm
1221      integer ncenotin
1222      integer nceindef
1223      integer ncecoord
1224      integer ncemaxds
1225      integer ncename
1226      integer ncenoatt
1227      integer ncemaxat
1228      integer ncebadty
1229      integer ncebadd
1230      integer ncests
1231      integer nceunlim
1232      integer ncemaxvs
1233      integer ncenotvr
1234      integer nceglob
1235      integer ncenotnc
1236      integer ncfoobar
1237      integer ncsyserr
1238      integer ncfatal
1239      integer ncverbos
1240      integer ncentool
1241
1242
1243!
1244! netcdf data types:
1245!
1246      integer ncbyte
1247      integer ncchar
1248      integer ncshort
1249      integer nclong
1250      integer ncfloat
1251      integer ncdouble
1252
1253      parameter(ncbyte = 1)
1254      parameter(ncchar = 2)
1255      parameter(ncshort = 3)
1256      parameter(nclong = 4)
1257      parameter(ncfloat = 5)
1258      parameter(ncdouble = 6)
1259
1260!     
1261!     masks for the struct nc flag field; passed in as 'mode' arg to
1262!     nccreate and ncopen.
1263!     
1264
1265!     read/write, 0 => readonly
1266      parameter(ncrdwr = 1)
1267!     in create phase, cleared by ncendef
1268      parameter(nccreat = 2)
1269!     on create destroy existing file
1270      parameter(ncexcl = 4)
1271!     in define mode, cleared by ncendef
1272      parameter(ncindef = 8)
1273!     synchronise numrecs on change (x'10')
1274      parameter(ncnsync = 16)
1275!     synchronise whole header on change (x'20')
1276      parameter(nchsync = 32)
1277!     numrecs has changed (x'40')
1278      parameter(ncndirty = 64) 
1279!     header info has changed (x'80')
1280      parameter(nchdirty = 128)
1281!     prefill vars on endef and increase of record, the default behavior
1282      parameter(ncfill = 0)
1283!     do not fill vars on endef and increase of record (x'100')
1284      parameter(ncnofill = 256)
1285!     isa link (x'8000')
1286      parameter(nclink = 32768)
1287
1288!     
1289!     'mode' arguments for nccreate and ncopen
1290!     
1291      parameter(ncnowrit = 0)
1292      parameter(ncwrite = ncrdwr)
1293      parameter(ncclob = nf_clobber)
1294      parameter(ncnoclob = nf_noclobber)
1295
1296!     
1297!     'size' argument to ncdimdef for an unlimited dimension
1298!     
1299      integer ncunlim
1300      parameter(ncunlim = 0)
1301
1302!     
1303!     attribute id to put/get a global attribute
1304!     
1305      parameter(ncglobal  = 0)
1306
1307!     
1308!     advisory maximums:
1309!     
1310      parameter(maxncop = 64)
1311      parameter(maxncdim = 1024)
1312      parameter(maxncatt = 8192)
1313      parameter(maxncvar = 8192)
1314!     not enforced
1315      parameter(maxncnam = 256)
1316      parameter(maxvdims = maxncdim)
1317
1318!     
1319!     global netcdf error status variable
1320!     initialized in error.c
1321!     
1322
1323!     no error
1324      parameter(ncnoerr = nf_noerr)
1325!     not a netcdf id
1326      parameter(ncebadid = nf_ebadid)
1327!     too many netcdfs open
1328      parameter(ncenfile = -31)   ! nc_syserr
1329!     netcdf file exists && ncnoclob
1330      parameter(nceexist = nf_eexist)
1331!     invalid argument
1332      parameter(nceinval = nf_einval)
1333!     write to read only
1334      parameter(nceperm = nf_eperm)
1335!     operation not allowed in data mode
1336      parameter(ncenotin = nf_enotindefine )   
1337!     operation not allowed in define mode
1338      parameter(nceindef = nf_eindefine)   
1339!     coordinates out of domain
1340      parameter(ncecoord = nf_einvalcoords)
1341!     maxncdims exceeded
1342      parameter(ncemaxds = nf_emaxdims)
1343!     string match to name in use
1344      parameter(ncename = nf_enameinuse)   
1345!     attribute not found
1346      parameter(ncenoatt = nf_enotatt)
1347!     maxncattrs exceeded
1348      parameter(ncemaxat = nf_emaxatts)
1349!     not a netcdf data type
1350      parameter(ncebadty = nf_ebadtype)
1351!     invalid dimension id
1352      parameter(ncebadd = nf_ebaddim)
1353!     ncunlimited in the wrong index
1354      parameter(nceunlim = nf_eunlimpos)
1355!     maxncvars exceeded
1356      parameter(ncemaxvs = nf_emaxvars)
1357!     variable not found
1358      parameter(ncenotvr = nf_enotvar)
1359!     action prohibited on ncglobal varid
1360      parameter(nceglob = nf_eglobal)
1361!     not a netcdf file
1362      parameter(ncenotnc = nf_enotnc)
1363      parameter(ncests = nf_ests)
1364      parameter (ncentool = nf_emaxname) 
1365      parameter(ncfoobar = 32)
1366      parameter(ncsyserr = -31)
1367
1368!     
1369!     global options variable. used to determine behavior of error handler.
1370!     initialized in lerror.c
1371!     
1372      parameter(ncfatal = 1)
1373      parameter(ncverbos = 2)
1374
1375!
1376!     default fill values.  these must be the same as in the c interface.
1377!
1378      integer filbyte
1379      integer filchar
1380      integer filshort
1381      integer fillong
1382      real filfloat
1383      doubleprecision fildoub
1384
1385      parameter (filbyte = -127)
1386      parameter (filchar = 0)
1387      parameter (filshort = -32767)
1388      parameter (fillong = -2147483647)
1389      parameter (filfloat = 9.9692099683868690e+36)
1390      parameter (fildoub = 9.9692099683868690d+36)
1391
1392!     NetCDF-4.
1393!     This is part of netCDF-4. Copyright 2006, UCAR, See COPYRIGHT
1394!     file for distribution information.
1395
1396!     Netcdf version 4 fortran interface.
1397
1398!     $Id: netcdf4.inc,v 1.28 2010/05/25 13:53:02 ed Exp $
1399
1400!     New netCDF-4 types.
1401      integer nf_ubyte
1402      integer nf_ushort
1403      integer nf_uint
1404      integer nf_int64
1405      integer nf_uint64
1406      integer nf_string
1407      integer nf_vlen
1408      integer nf_opaque
1409      integer nf_enum
1410      integer nf_compound
1411
1412      parameter (nf_ubyte = 7)
1413      parameter (nf_ushort = 8)
1414      parameter (nf_uint = 9)
1415      parameter (nf_int64 = 10)
1416      parameter (nf_uint64 = 11)
1417      parameter (nf_string = 12)
1418      parameter (nf_vlen = 13)
1419      parameter (nf_opaque = 14)
1420      parameter (nf_enum = 15)
1421      parameter (nf_compound = 16)
1422
1423!     New netCDF-4 fill values.
1424      integer           nf_fill_ubyte
1425      integer           nf_fill_ushort
1426!      real              nf_fill_uint
1427!      real              nf_fill_int64
1428!      real              nf_fill_uint64
1429      parameter (nf_fill_ubyte = 255)
1430      parameter (nf_fill_ushort = 65535)
1431
1432!     New constants.
1433      integer nf_format_netcdf4
1434      parameter (nf_format_netcdf4 = 3)
1435
1436      integer nf_format_netcdf4_classic
1437      parameter (nf_format_netcdf4_classic = 4)
1438
1439      integer nf_netcdf4
1440      parameter (nf_netcdf4 = 4096)
1441
1442      integer nf_classic_model
1443      parameter (nf_classic_model = 256)
1444
1445      integer nf_chunk_seq
1446      parameter (nf_chunk_seq = 0)
1447      integer nf_chunk_sub
1448      parameter (nf_chunk_sub = 1)
1449      integer nf_chunk_sizes
1450      parameter (nf_chunk_sizes = 2)
1451
1452      integer nf_endian_native
1453      parameter (nf_endian_native = 0)
1454      integer nf_endian_little
1455      parameter (nf_endian_little = 1)
1456      integer nf_endian_big
1457      parameter (nf_endian_big = 2)
1458
1459!     For NF_DEF_VAR_CHUNKING
1460      integer nf_chunked
1461      parameter (nf_chunked = 0)
1462      integer nf_contiguous
1463      parameter (nf_contiguous = 1)
1464
1465!     For NF_DEF_VAR_FLETCHER32
1466      integer nf_nochecksum
1467      parameter (nf_nochecksum = 0)
1468      integer nf_fletcher32
1469      parameter (nf_fletcher32 = 1)
1470
1471!     For NF_DEF_VAR_DEFLATE
1472      integer nf_noshuffle
1473      parameter (nf_noshuffle = 0)
1474      integer nf_shuffle
1475      parameter (nf_shuffle = 1)
1476
1477!     For NF_DEF_VAR_SZIP
1478      integer nf_szip_ec_option_mask
1479      parameter (nf_szip_ec_option_mask = 4)
1480      integer nf_szip_nn_option_mask
1481      parameter (nf_szip_nn_option_mask = 32)
1482
1483!     For parallel I/O.
1484      integer nf_mpiio     
1485      parameter (nf_mpiio = 8192)
1486      integer nf_mpiposix
1487      parameter (nf_mpiposix = 16384)
1488      integer nf_pnetcdf
1489      parameter (nf_pnetcdf = 32768)
1490
1491!     For NF_VAR_PAR_ACCESS.
1492      integer nf_independent
1493      parameter (nf_independent = 0)
1494      integer nf_collective
1495      parameter (nf_collective = 1)
1496
1497!     New error codes.
1498      integer nf_ehdferr        ! Error at HDF5 layer.
1499      parameter (nf_ehdferr = -101)
1500      integer nf_ecantread      ! Can't read.
1501      parameter (nf_ecantread = -102)
1502      integer nf_ecantwrite     ! Can't write.
1503      parameter (nf_ecantwrite = -103)
1504      integer nf_ecantcreate    ! Can't create.
1505      parameter (nf_ecantcreate = -104)
1506      integer nf_efilemeta      ! Problem with file metadata.
1507      parameter (nf_efilemeta = -105)
1508      integer nf_edimmeta       ! Problem with dimension metadata.
1509      parameter (nf_edimmeta = -106)
1510      integer nf_eattmeta       ! Problem with attribute metadata.
1511      parameter (nf_eattmeta = -107)
1512      integer nf_evarmeta       ! Problem with variable metadata.
1513      parameter (nf_evarmeta = -108)
1514      integer nf_enocompound    ! Not a compound type.
1515      parameter (nf_enocompound = -109)
1516      integer nf_eattexists     ! Attribute already exists.
1517      parameter (nf_eattexists = -110)
1518      integer nf_enotnc4        ! Attempting netcdf-4 operation on netcdf-3 file.   
1519      parameter (nf_enotnc4 = -111)
1520      integer nf_estrictnc3     ! Attempting netcdf-4 operation on strict nc3 netcdf-4 file.   
1521      parameter (nf_estrictnc3 = -112)
1522      integer nf_enotnc3        ! Attempting netcdf-3 operation on netcdf-4 file.   
1523      parameter (nf_enotnc3 = -113)
1524      integer nf_enopar         ! Parallel operation on file opened for non-parallel access.   
1525      parameter (nf_enopar = -114)
1526      integer nf_eparinit       ! Error initializing for parallel access.   
1527      parameter (nf_eparinit = -115)
1528      integer nf_ebadgrpid      ! Bad group ID.   
1529      parameter (nf_ebadgrpid = -116)
1530      integer nf_ebadtypid      ! Bad type ID.   
1531      parameter (nf_ebadtypid = -117)
1532      integer nf_etypdefined    ! Type has already been defined and may not be edited.
1533      parameter (nf_etypdefined = -118)
1534      integer nf_ebadfield      ! Bad field ID.   
1535      parameter (nf_ebadfield = -119)
1536      integer nf_ebadclass      ! Bad class.   
1537      parameter (nf_ebadclass = -120)
1538      integer nf_emaptype       ! Mapped access for atomic types only.   
1539      parameter (nf_emaptype = -121)
1540      integer nf_elatefill      ! Attempt to define fill value when data already exists.
1541      parameter (nf_elatefill = -122)
1542      integer nf_elatedef       ! Attempt to define var properties, like deflate, after enddef.
1543      parameter (nf_elatedef = -123)
1544      integer nf_edimscale      ! Probem with HDF5 dimscales.
1545      parameter (nf_edimscale = -124)
1546      integer nf_enogrp       ! No group found.
1547      parameter (nf_enogrp = -125)
1548
1549
1550!     New functions.
1551
1552!     Parallel I/O.
1553      integer nf_create_par
1554      external nf_create_par
1555
1556      integer nf_open_par
1557      external nf_open_par
1558
1559      integer nf_var_par_access
1560      external nf_var_par_access
1561
1562!     Functions to handle groups.
1563      integer nf_inq_ncid
1564      external nf_inq_ncid
1565
1566      integer nf_inq_grps
1567      external nf_inq_grps
1568
1569      integer nf_inq_grpname
1570      external nf_inq_grpname
1571
1572      integer nf_inq_grpname_full
1573      external nf_inq_grpname_full
1574
1575      integer nf_inq_grpname_len
1576      external nf_inq_grpname_len
1577
1578      integer nf_inq_grp_parent
1579      external nf_inq_grp_parent
1580
1581      integer nf_inq_grp_ncid
1582      external nf_inq_grp_ncid
1583
1584      integer nf_inq_grp_full_ncid
1585      external nf_inq_grp_full_ncid
1586
1587      integer nf_inq_varids
1588      external nf_inq_varids
1589
1590      integer nf_inq_dimids
1591      external nf_inq_dimids
1592
1593      integer nf_def_grp
1594      external nf_def_grp
1595
1596!     New options for netCDF variables.
1597      integer nf_def_var_deflate
1598      external nf_def_var_deflate
1599
1600      integer nf_inq_var_deflate
1601      external nf_inq_var_deflate
1602
1603      integer nf_def_var_fletcher32
1604      external nf_def_var_fletcher32
1605
1606      integer nf_inq_var_fletcher32
1607      external nf_inq_var_fletcher32
1608
1609      integer nf_def_var_chunking
1610      external nf_def_var_chunking
1611
1612      integer nf_inq_var_chunking
1613      external nf_inq_var_chunking
1614
1615      integer nf_def_var_fill
1616      external nf_def_var_fill
1617
1618      integer nf_inq_var_fill
1619      external nf_inq_var_fill
1620
1621      integer nf_def_var_endian
1622      external nf_def_var_endian
1623
1624      integer nf_inq_var_endian
1625      external nf_inq_var_endian
1626
1627!     User defined types.
1628      integer nf_inq_typeids
1629      external nf_inq_typeids
1630
1631      integer nf_inq_typeid
1632      external nf_inq_typeid
1633
1634      integer nf_inq_type
1635      external nf_inq_type
1636
1637      integer nf_inq_user_type
1638      external nf_inq_user_type
1639
1640!     User defined types - compound types.
1641      integer nf_def_compound
1642      external nf_def_compound
1643
1644      integer nf_insert_compound
1645      external nf_insert_compound
1646
1647      integer nf_insert_array_compound
1648      external nf_insert_array_compound
1649
1650      integer nf_inq_compound
1651      external nf_inq_compound
1652
1653      integer nf_inq_compound_name
1654      external nf_inq_compound_name
1655
1656      integer nf_inq_compound_size
1657      external nf_inq_compound_size
1658
1659      integer nf_inq_compound_nfields
1660      external nf_inq_compound_nfields
1661
1662      integer nf_inq_compound_field
1663      external nf_inq_compound_field
1664
1665      integer nf_inq_compound_fieldname
1666      external nf_inq_compound_fieldname
1667
1668      integer nf_inq_compound_fieldindex
1669      external nf_inq_compound_fieldindex
1670
1671      integer nf_inq_compound_fieldoffset
1672      external nf_inq_compound_fieldoffset
1673
1674      integer nf_inq_compound_fieldtype
1675      external nf_inq_compound_fieldtype
1676
1677      integer nf_inq_compound_fieldndims
1678      external nf_inq_compound_fieldndims
1679
1680      integer nf_inq_compound_fielddim_sizes
1681      external nf_inq_compound_fielddim_sizes
1682
1683!     User defined types - variable length arrays.
1684      integer nf_def_vlen
1685      external nf_def_vlen
1686
1687      integer nf_inq_vlen
1688      external nf_inq_vlen
1689
1690      integer nf_free_vlen
1691      external nf_free_vlen
1692
1693!     User defined types - enums.
1694      integer nf_def_enum
1695      external nf_def_enum
1696
1697      integer nf_insert_enum
1698      external nf_insert_enum
1699
1700      integer nf_inq_enum
1701      external nf_inq_enum
1702
1703      integer nf_inq_enum_member
1704      external nf_inq_enum_member
1705
1706      integer nf_inq_enum_ident
1707      external nf_inq_enum_ident
1708
1709!     User defined types - opaque.
1710      integer nf_def_opaque
1711      external nf_def_opaque
1712
1713      integer nf_inq_opaque
1714      external nf_inq_opaque
1715
1716!     Write and read attributes of any type, including user defined
1717!     types.
1718      integer nf_put_att
1719      external nf_put_att
1720      integer nf_get_att
1721      external nf_get_att
1722
1723!     Write and read variables of any type, including user defined
1724!     types.
1725      integer nf_put_var
1726      external nf_put_var
1727      integer nf_put_var1
1728      external nf_put_var1
1729      integer nf_put_vara
1730      external nf_put_vara
1731      integer nf_put_vars
1732      external nf_put_vars
1733      integer nf_get_var
1734      external nf_get_var
1735      integer nf_get_var1
1736      external nf_get_var1
1737      integer nf_get_vara
1738      external nf_get_vara
1739      integer nf_get_vars
1740      external nf_get_vars
1741
1742!     64-bit int functions.
1743      integer nf_put_var1_int64
1744      external nf_put_var1_int64
1745      integer nf_put_vara_int64
1746      external nf_put_vara_int64
1747      integer nf_put_vars_int64
1748      external nf_put_vars_int64
1749      integer nf_put_varm_int64
1750      external nf_put_varm_int64
1751      integer nf_put_var_int64
1752      external nf_put_var_int64
1753      integer nf_get_var1_int64
1754      external nf_get_var1_int64
1755      integer nf_get_vara_int64
1756      external nf_get_vara_int64
1757      integer nf_get_vars_int64
1758      external nf_get_vars_int64
1759      integer nf_get_varm_int64
1760      external nf_get_varm_int64
1761      integer nf_get_var_int64
1762      external nf_get_var_int64
1763
1764!     For helping F77 users with VLENs.
1765      integer nf_get_vlen_element
1766      external nf_get_vlen_element
1767      integer nf_put_vlen_element
1768      external nf_put_vlen_element
1769
1770!     For dealing with file level chunk cache.
1771      integer nf_set_chunk_cache
1772      external nf_set_chunk_cache
1773      integer nf_get_chunk_cache
1774      external nf_get_chunk_cache
1775
1776!     For dealing with per variable chunk cache.
1777      integer nf_set_var_chunk_cache
1778      external nf_set_var_chunk_cache
1779      integer nf_get_var_chunk_cache
1780      external nf_get_var_chunk_cache
1781!
1782! $Header$
1783!
1784!
1785! gestion des impressions de sorties et de débogage
1786! lunout:    unité du fichier dans lequel se font les sorties
1787!                           (par defaut 6, la sortie standard)
1788! prt_level: niveau d'impression souhaité (0 = minimum)
1789!
1790      INTEGER lunout, prt_level
1791      COMMON /comprint/ lunout, prt_level
1792
1793! INPUTS
1794      CHARACTER*(*) fichnom
1795
1796! VARIABLES
1797      REAL ucov(iip1, jjp1,llm)
1798      INTEGER ierr, nid, nvarid
1799      INTEGER i,j,l,ij
1800
1801      !! OPEN NETCDF FILE
1802      ierr = NF_OPEN (fichnom, NF_NOWRITE,nid)
1803      IF (ierr.NE.NF_NOERR) THEN
1804        write(lunout,*)'relaxetat0: Pb d''ouverture du fichier'
1805        write(lunout,*)' ierr = ', ierr
1806        CALL ABORT
1807      ENDIF
1808
1809      !! ALLOCATE RELAXATION FIELD
1810      IF (.NOT.ALLOCATED(uforc)) ALLOCATE(uforc(ip1jmp1,llm))
1811
1812      !! READ RELAXATION FIELD
1813      ierr = NF_INQ_VARID (nid, "ucov", nvarid)
1814      IF (ierr .NE. NF_NOERR) THEN
1815         write(lunout,*)"dynetat0: Le champ <ucov> est absent"
1816         CALL abort
1817      ENDIF
1818      ierr = nf90_get_var(nid, nvarid, ucov) 
1819      IF (ierr .NE. NF_NOERR) THEN
1820         write(lunout,*)"dynetat0: Lecture echouee pour <ucov>"
1821         CALL abort
1822      ENDIF
1823
1824      !! TRANSFER TO SHARED VARIABLE IN comuforc_h MODULE
1825      !! TBD --> check the relaxation field's dimensions are OK!
1826      do l=1,llm
1827        do j=1,jjp1
1828           do i=1,iip1
1829              ij=(j-1)*iip1+i
1830              uforc(ij,l)=ucov(i,j,l)
1831           enddo
1832        enddo
1833      enddo
1834
1835      !! READ THE RELAXATION RATE IN SETTINGS
1836      facwind = 1000.
1837      CALL getin('facwind',facwind)
1838
1839      !! END
1840      ierr = NF_CLOSE(nid)
1841      RETURN
1842      END
Note: See TracBrowser for help on using the repository browser.