GCC Code Coverage Report


Directory: ./
File: phys/iotd_fin.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 0 3 0.0%
Branches: 0 0 -%

Line Branch Exec Source
1 SUBROUTINE iotd_fin
2 IMPLICIT NONE
3
4 !=======================================================================
5 !
6 ! Auteur: F. Hourdin
7 ! -------
8 !
9 ! Objet:
10 ! ------
11 ! Light interface for netcdf outputs. can be used outside LMDZ
12 !
13 !=======================================================================
14
15
16 ! NetCDF-3.
17 !
18 ! netcdf version 3 fortran interface:
19 !
20
21 !
22 ! external netcdf data types:
23 !
24 integer nf_byte
25 integer nf_int1
26 integer nf_char
27 integer nf_short
28 integer nf_int2
29 integer nf_int
30 integer nf_float
31 integer nf_real
32 integer nf_double
33
34 parameter (nf_byte = 1)
35 parameter (nf_int1 = nf_byte)
36 parameter (nf_char = 2)
37 parameter (nf_short = 3)
38 parameter (nf_int2 = nf_short)
39 parameter (nf_int = 4)
40 parameter (nf_float = 5)
41 parameter (nf_real = nf_float)
42 parameter (nf_double = 6)
43
44 !
45 ! default fill values:
46 !
47 integer nf_fill_byte
48 integer nf_fill_int1
49 integer nf_fill_char
50 integer nf_fill_short
51 integer nf_fill_int2
52 integer nf_fill_int
53 real nf_fill_float
54 real nf_fill_real
55 doubleprecision nf_fill_double
56
57 parameter (nf_fill_byte = -127)
58 parameter (nf_fill_int1 = nf_fill_byte)
59 parameter (nf_fill_char = 0)
60 parameter (nf_fill_short = -32767)
61 parameter (nf_fill_int2 = nf_fill_short)
62 parameter (nf_fill_int = -2147483647)
63 parameter (nf_fill_float = 9.9692099683868690e+36)
64 parameter (nf_fill_real = nf_fill_float)
65 parameter (nf_fill_double = 9.9692099683868690e+36)
66
67 !
68 ! mode flags for opening and creating a netcdf dataset:
69 !
70 integer nf_nowrite
71 integer nf_write
72 integer nf_clobber
73 integer nf_noclobber
74 integer nf_fill
75 integer nf_nofill
76 integer nf_lock
77 integer nf_share
78 integer nf_64bit_offset
79 integer nf_sizehint_default
80 integer nf_align_chunk
81 integer nf_format_classic
82 integer nf_format_64bit
83
84 parameter (nf_nowrite = 0)
85 parameter (nf_write = 1)
86 parameter (nf_clobber = 0)
87 parameter (nf_noclobber = 4)
88 parameter (nf_fill = 0)
89 parameter (nf_nofill = 256)
90 parameter (nf_lock = 1024)
91 parameter (nf_share = 2048)
92 parameter (nf_64bit_offset = 512)
93 parameter (nf_sizehint_default = 0)
94 parameter (nf_align_chunk = -1)
95 parameter (nf_format_classic = 1)
96 parameter (nf_format_64bit = 2)
97
98 !
99 ! size argument for defining an unlimited dimension:
100 !
101 integer nf_unlimited
102 parameter (nf_unlimited = 0)
103
104 !
105 ! global attribute id:
106 !
107 integer nf_global
108 parameter (nf_global = 0)
109
110 !
111 ! implementation limits:
112 !
113 integer nf_max_dims
114 integer nf_max_attrs
115 integer nf_max_vars
116 integer nf_max_name
117 integer nf_max_var_dims
118
119 parameter (nf_max_dims = 1024)
120 parameter (nf_max_attrs = 8192)
121 parameter (nf_max_vars = 8192)
122 parameter (nf_max_name = 256)
123 parameter (nf_max_var_dims = nf_max_dims)
124
125 !
126 ! error codes:
127 !
128 integer nf_noerr
129 integer nf_ebadid
130 integer nf_eexist
131 integer nf_einval
132 integer nf_eperm
133 integer nf_enotindefine
134 integer nf_eindefine
135 integer nf_einvalcoords
136 integer nf_emaxdims
137 integer nf_enameinuse
138 integer nf_enotatt
139 integer nf_emaxatts
140 integer nf_ebadtype
141 integer nf_ebaddim
142 integer nf_eunlimpos
143 integer nf_emaxvars
144 integer nf_enotvar
145 integer nf_eglobal
146 integer nf_enotnc
147 integer nf_ests
148 integer nf_emaxname
149 integer nf_eunlimit
150 integer nf_enorecvars
151 integer nf_echar
152 integer nf_eedge
153 integer nf_estride
154 integer nf_ebadname
155 integer nf_erange
156 integer nf_enomem
157 integer nf_evarsize
158 integer nf_edimsize
159 integer nf_etrunc
160
161 parameter (nf_noerr = 0)
162 parameter (nf_ebadid = -33)
163 parameter (nf_eexist = -35)
164 parameter (nf_einval = -36)
165 parameter (nf_eperm = -37)
166 parameter (nf_enotindefine = -38)
167 parameter (nf_eindefine = -39)
168 parameter (nf_einvalcoords = -40)
169 parameter (nf_emaxdims = -41)
170 parameter (nf_enameinuse = -42)
171 parameter (nf_enotatt = -43)
172 parameter (nf_emaxatts = -44)
173 parameter (nf_ebadtype = -45)
174 parameter (nf_ebaddim = -46)
175 parameter (nf_eunlimpos = -47)
176 parameter (nf_emaxvars = -48)
177 parameter (nf_enotvar = -49)
178 parameter (nf_eglobal = -50)
179 parameter (nf_enotnc = -51)
180 parameter (nf_ests = -52)
181 parameter (nf_emaxname = -53)
182 parameter (nf_eunlimit = -54)
183 parameter (nf_enorecvars = -55)
184 parameter (nf_echar = -56)
185 parameter (nf_eedge = -57)
186 parameter (nf_estride = -58)
187 parameter (nf_ebadname = -59)
188 parameter (nf_erange = -60)
189 parameter (nf_enomem = -61)
190 parameter (nf_evarsize = -62)
191 parameter (nf_edimsize = -63)
192 parameter (nf_etrunc = -64)
193 !
194 ! error handling modes:
195 !
196 integer nf_fatal
197 integer nf_verbose
198
199 parameter (nf_fatal = 1)
200 parameter (nf_verbose = 2)
201
202 !
203 ! miscellaneous routines:
204 !
205 character*80 nf_inq_libvers
206 external nf_inq_libvers
207
208 character*80 nf_strerror
209 ! (integer ncerr)
210 external nf_strerror
211
212 logical nf_issyserr
213 ! (integer ncerr)
214 external nf_issyserr
215
216 !
217 ! control routines:
218 !
219 integer nf_inq_base_pe
220 ! (integer ncid,
221 ! integer pe)
222 external nf_inq_base_pe
223
224 integer nf_set_base_pe
225 ! (integer ncid,
226 ! integer pe)
227 external nf_set_base_pe
228
229 integer nf_create
230 ! (character*(*) path,
231 ! integer cmode,
232 ! integer ncid)
233 external nf_create
234
235 integer nf__create
236 ! (character*(*) path,
237 ! integer cmode,
238 ! integer initialsz,
239 ! integer chunksizehint,
240 ! integer ncid)
241 external nf__create
242
243 integer nf__create_mp
244 ! (character*(*) path,
245 ! integer cmode,
246 ! integer initialsz,
247 ! integer basepe,
248 ! integer chunksizehint,
249 ! integer ncid)
250 external nf__create_mp
251
252 integer nf_open
253 ! (character*(*) path,
254 ! integer mode,
255 ! integer ncid)
256 external nf_open
257
258 integer nf__open
259 ! (character*(*) path,
260 ! integer mode,
261 ! integer chunksizehint,
262 ! integer ncid)
263 external nf__open
264
265 integer nf__open_mp
266 ! (character*(*) path,
267 ! integer mode,
268 ! integer basepe,
269 ! integer chunksizehint,
270 ! integer ncid)
271 external nf__open_mp
272
273 integer nf_set_fill
274 ! (integer ncid,
275 ! integer fillmode,
276 ! integer old_mode)
277 external nf_set_fill
278
279 integer nf_set_default_format
280 ! (integer format,
281 ! integer old_format)
282 external nf_set_default_format
283
284 integer nf_redef
285 ! (integer ncid)
286 external nf_redef
287
288 integer nf_enddef
289 ! (integer ncid)
290 external nf_enddef
291
292 integer nf__enddef
293 ! (integer ncid,
294 ! integer h_minfree,
295 ! integer v_align,
296 ! integer v_minfree,
297 ! integer r_align)
298 external nf__enddef
299
300 integer nf_sync
301 ! (integer ncid)
302 external nf_sync
303
304 integer nf_abort
305 ! (integer ncid)
306 external nf_abort
307
308 integer nf_close
309 ! (integer ncid)
310 external nf_close
311
312 integer nf_delete
313 ! (character*(*) ncid)
314 external nf_delete
315
316 !
317 ! general inquiry routines:
318 !
319
320 integer nf_inq
321 ! (integer ncid,
322 ! integer ndims,
323 ! integer nvars,
324 ! integer ngatts,
325 ! integer unlimdimid)
326 external nf_inq
327
328 integer nf_inq_ndims
329 ! (integer ncid,
330 ! integer ndims)
331 external nf_inq_ndims
332
333 integer nf_inq_nvars
334 ! (integer ncid,
335 ! integer nvars)
336 external nf_inq_nvars
337
338 integer nf_inq_natts
339 ! (integer ncid,
340 ! integer ngatts)
341 external nf_inq_natts
342
343 integer nf_inq_unlimdim
344 ! (integer ncid,
345 ! integer unlimdimid)
346 external nf_inq_unlimdim
347
348 integer nf_inq_format
349 ! (integer ncid,
350 ! integer format)
351 external nf_inq_format
352
353 !
354 ! dimension routines:
355 !
356
357 integer nf_def_dim
358 ! (integer ncid,
359 ! character(*) name,
360 ! integer len,
361 ! integer dimid)
362 external nf_def_dim
363
364 integer nf_inq_dimid
365 ! (integer ncid,
366 ! character(*) name,
367 ! integer dimid)
368 external nf_inq_dimid
369
370 integer nf_inq_dim
371 ! (integer ncid,
372 ! integer dimid,
373 ! character(*) name,
374 ! integer len)
375 external nf_inq_dim
376
377 integer nf_inq_dimname
378 ! (integer ncid,
379 ! integer dimid,
380 ! character(*) name)
381 external nf_inq_dimname
382
383 integer nf_inq_dimlen
384 ! (integer ncid,
385 ! integer dimid,
386 ! integer len)
387 external nf_inq_dimlen
388
389 integer nf_rename_dim
390 ! (integer ncid,
391 ! integer dimid,
392 ! character(*) name)
393 external nf_rename_dim
394
395 !
396 ! general attribute routines:
397 !
398
399 integer nf_inq_att
400 ! (integer ncid,
401 ! integer varid,
402 ! character(*) name,
403 ! integer xtype,
404 ! integer len)
405 external nf_inq_att
406
407 integer nf_inq_attid
408 ! (integer ncid,
409 ! integer varid,
410 ! character(*) name,
411 ! integer attnum)
412 external nf_inq_attid
413
414 integer nf_inq_atttype
415 ! (integer ncid,
416 ! integer varid,
417 ! character(*) name,
418 ! integer xtype)
419 external nf_inq_atttype
420
421 integer nf_inq_attlen
422 ! (integer ncid,
423 ! integer varid,
424 ! character(*) name,
425 ! integer len)
426 external nf_inq_attlen
427
428 integer nf_inq_attname
429 ! (integer ncid,
430 ! integer varid,
431 ! integer attnum,
432 ! character(*) name)
433 external nf_inq_attname
434
435 integer nf_copy_att
436 ! (integer ncid_in,
437 ! integer varid_in,
438 ! character(*) name,
439 ! integer ncid_out,
440 ! integer varid_out)
441 external nf_copy_att
442
443 integer nf_rename_att
444 ! (integer ncid,
445 ! integer varid,
446 ! character(*) curname,
447 ! character(*) newname)
448 external nf_rename_att
449
450 integer nf_del_att
451 ! (integer ncid,
452 ! integer varid,
453 ! character(*) name)
454 external nf_del_att
455
456 !
457 ! attribute put/get routines:
458 !
459
460 integer nf_put_att_text
461 ! (integer ncid,
462 ! integer varid,
463 ! character(*) name,
464 ! integer len,
465 ! character(*) text)
466 external nf_put_att_text
467
468 integer nf_get_att_text
469 ! (integer ncid,
470 ! integer varid,
471 ! character(*) name,
472 ! character(*) text)
473 external nf_get_att_text
474
475 integer nf_put_att_int1
476 ! (integer ncid,
477 ! integer varid,
478 ! character(*) name,
479 ! integer xtype,
480 ! integer len,
481 ! nf_int1_t i1vals(1))
482 external nf_put_att_int1
483
484 integer nf_get_att_int1
485 ! (integer ncid,
486 ! integer varid,
487 ! character(*) name,
488 ! nf_int1_t i1vals(1))
489 external nf_get_att_int1
490
491 integer nf_put_att_int2
492 ! (integer ncid,
493 ! integer varid,
494 ! character(*) name,
495 ! integer xtype,
496 ! integer len,
497 ! nf_int2_t i2vals(1))
498 external nf_put_att_int2
499
500 integer nf_get_att_int2
501 ! (integer ncid,
502 ! integer varid,
503 ! character(*) name,
504 ! nf_int2_t i2vals(1))
505 external nf_get_att_int2
506
507 integer nf_put_att_int
508 ! (integer ncid,
509 ! integer varid,
510 ! character(*) name,
511 ! integer xtype,
512 ! integer len,
513 ! integer ivals(1))
514 external nf_put_att_int
515
516 integer nf_get_att_int
517 ! (integer ncid,
518 ! integer varid,
519 ! character(*) name,
520 ! integer ivals(1))
521 external nf_get_att_int
522
523 integer nf_put_att_real
524 ! (integer ncid,
525 ! integer varid,
526 ! character(*) name,
527 ! integer xtype,
528 ! integer len,
529 ! real rvals(1))
530 external nf_put_att_real
531
532 integer nf_get_att_real
533 ! (integer ncid,
534 ! integer varid,
535 ! character(*) name,
536 ! real rvals(1))
537 external nf_get_att_real
538
539 integer nf_put_att_double
540 ! (integer ncid,
541 ! integer varid,
542 ! character(*) name,
543 ! integer xtype,
544 ! integer len,
545 ! double dvals(1))
546 external nf_put_att_double
547
548 integer nf_get_att_double
549 ! (integer ncid,
550 ! integer varid,
551 ! character(*) name,
552 ! double dvals(1))
553 external nf_get_att_double
554
555 !
556 ! general variable routines:
557 !
558
559 integer nf_def_var
560 ! (integer ncid,
561 ! character(*) name,
562 ! integer datatype,
563 ! integer ndims,
564 ! integer dimids(1),
565 ! integer varid)
566 external nf_def_var
567
568 integer nf_inq_var
569 ! (integer ncid,
570 ! integer varid,
571 ! character(*) name,
572 ! integer datatype,
573 ! integer ndims,
574 ! integer dimids(1),
575 ! integer natts)
576 external nf_inq_var
577
578 integer nf_inq_varid
579 ! (integer ncid,
580 ! character(*) name,
581 ! integer varid)
582 external nf_inq_varid
583
584 integer nf_inq_varname
585 ! (integer ncid,
586 ! integer varid,
587 ! character(*) name)
588 external nf_inq_varname
589
590 integer nf_inq_vartype
591 ! (integer ncid,
592 ! integer varid,
593 ! integer xtype)
594 external nf_inq_vartype
595
596 integer nf_inq_varndims
597 ! (integer ncid,
598 ! integer varid,
599 ! integer ndims)
600 external nf_inq_varndims
601
602 integer nf_inq_vardimid
603 ! (integer ncid,
604 ! integer varid,
605 ! integer dimids(1))
606 external nf_inq_vardimid
607
608 integer nf_inq_varnatts
609 ! (integer ncid,
610 ! integer varid,
611 ! integer natts)
612 external nf_inq_varnatts
613
614 integer nf_rename_var
615 ! (integer ncid,
616 ! integer varid,
617 ! character(*) name)
618 external nf_rename_var
619
620 integer nf_copy_var
621 ! (integer ncid_in,
622 ! integer varid,
623 ! integer ncid_out)
624 external nf_copy_var
625
626 !
627 ! entire variable put/get routines:
628 !
629
630 integer nf_put_var_text
631 ! (integer ncid,
632 ! integer varid,
633 ! character(*) text)
634 external nf_put_var_text
635
636 integer nf_get_var_text
637 ! (integer ncid,
638 ! integer varid,
639 ! character(*) text)
640 external nf_get_var_text
641
642 integer nf_put_var_int1
643 ! (integer ncid,
644 ! integer varid,
645 ! nf_int1_t i1vals(1))
646 external nf_put_var_int1
647
648 integer nf_get_var_int1
649 ! (integer ncid,
650 ! integer varid,
651 ! nf_int1_t i1vals(1))
652 external nf_get_var_int1
653
654 integer nf_put_var_int2
655 ! (integer ncid,
656 ! integer varid,
657 ! nf_int2_t i2vals(1))
658 external nf_put_var_int2
659
660 integer nf_get_var_int2
661 ! (integer ncid,
662 ! integer varid,
663 ! nf_int2_t i2vals(1))
664 external nf_get_var_int2
665
666 integer nf_put_var_int
667 ! (integer ncid,
668 ! integer varid,
669 ! integer ivals(1))
670 external nf_put_var_int
671
672 integer nf_get_var_int
673 ! (integer ncid,
674 ! integer varid,
675 ! integer ivals(1))
676 external nf_get_var_int
677
678 integer nf_put_var_real
679 ! (integer ncid,
680 ! integer varid,
681 ! real rvals(1))
682 external nf_put_var_real
683
684 integer nf_get_var_real
685 ! (integer ncid,
686 ! integer varid,
687 ! real rvals(1))
688 external nf_get_var_real
689
690 integer nf_put_var_double
691 ! (integer ncid,
692 ! integer varid,
693 ! doubleprecision dvals(1))
694 external nf_put_var_double
695
696 integer nf_get_var_double
697 ! (integer ncid,
698 ! integer varid,
699 ! doubleprecision dvals(1))
700 external nf_get_var_double
701
702 !
703 ! single variable put/get routines:
704 !
705
706 integer nf_put_var1_text
707 ! (integer ncid,
708 ! integer varid,
709 ! integer index(1),
710 ! character*1 text)
711 external nf_put_var1_text
712
713 integer nf_get_var1_text
714 ! (integer ncid,
715 ! integer varid,
716 ! integer index(1),
717 ! character*1 text)
718 external nf_get_var1_text
719
720 integer nf_put_var1_int1
721 ! (integer ncid,
722 ! integer varid,
723 ! integer index(1),
724 ! nf_int1_t i1val)
725 external nf_put_var1_int1
726
727 integer nf_get_var1_int1
728 ! (integer ncid,
729 ! integer varid,
730 ! integer index(1),
731 ! nf_int1_t i1val)
732 external nf_get_var1_int1
733
734 integer nf_put_var1_int2
735 ! (integer ncid,
736 ! integer varid,
737 ! integer index(1),
738 ! nf_int2_t i2val)
739 external nf_put_var1_int2
740
741 integer nf_get_var1_int2
742 ! (integer ncid,
743 ! integer varid,
744 ! integer index(1),
745 ! nf_int2_t i2val)
746 external nf_get_var1_int2
747
748 integer nf_put_var1_int
749 ! (integer ncid,
750 ! integer varid,
751 ! integer index(1),
752 ! integer ival)
753 external nf_put_var1_int
754
755 integer nf_get_var1_int
756 ! (integer ncid,
757 ! integer varid,
758 ! integer index(1),
759 ! integer ival)
760 external nf_get_var1_int
761
762 integer nf_put_var1_real
763 ! (integer ncid,
764 ! integer varid,
765 ! integer index(1),
766 ! real rval)
767 external nf_put_var1_real
768
769 integer nf_get_var1_real
770 ! (integer ncid,
771 ! integer varid,
772 ! integer index(1),
773 ! real rval)
774 external nf_get_var1_real
775
776 integer nf_put_var1_double
777 ! (integer ncid,
778 ! integer varid,
779 ! integer index(1),
780 ! doubleprecision dval)
781 external nf_put_var1_double
782
783 integer nf_get_var1_double
784 ! (integer ncid,
785 ! integer varid,
786 ! integer index(1),
787 ! doubleprecision dval)
788 external nf_get_var1_double
789
790 !
791 ! variable array put/get routines:
792 !
793
794 integer nf_put_vara_text
795 ! (integer ncid,
796 ! integer varid,
797 ! integer start(1),
798 ! integer count(1),
799 ! character(*) text)
800 external nf_put_vara_text
801
802 integer nf_get_vara_text
803 ! (integer ncid,
804 ! integer varid,
805 ! integer start(1),
806 ! integer count(1),
807 ! character(*) text)
808 external nf_get_vara_text
809
810 integer nf_put_vara_int1
811 ! (integer ncid,
812 ! integer varid,
813 ! integer start(1),
814 ! integer count(1),
815 ! nf_int1_t i1vals(1))
816 external nf_put_vara_int1
817
818 integer nf_get_vara_int1
819 ! (integer ncid,
820 ! integer varid,
821 ! integer start(1),
822 ! integer count(1),
823 ! nf_int1_t i1vals(1))
824 external nf_get_vara_int1
825
826 integer nf_put_vara_int2
827 ! (integer ncid,
828 ! integer varid,
829 ! integer start(1),
830 ! integer count(1),
831 ! nf_int2_t i2vals(1))
832 external nf_put_vara_int2
833
834 integer nf_get_vara_int2
835 ! (integer ncid,
836 ! integer varid,
837 ! integer start(1),
838 ! integer count(1),
839 ! nf_int2_t i2vals(1))
840 external nf_get_vara_int2
841
842 integer nf_put_vara_int
843 ! (integer ncid,
844 ! integer varid,
845 ! integer start(1),
846 ! integer count(1),
847 ! integer ivals(1))
848 external nf_put_vara_int
849
850 integer nf_get_vara_int
851 ! (integer ncid,
852 ! integer varid,
853 ! integer start(1),
854 ! integer count(1),
855 ! integer ivals(1))
856 external nf_get_vara_int
857
858 integer nf_put_vara_real
859 ! (integer ncid,
860 ! integer varid,
861 ! integer start(1),
862 ! integer count(1),
863 ! real rvals(1))
864 external nf_put_vara_real
865
866 integer nf_get_vara_real
867 ! (integer ncid,
868 ! integer varid,
869 ! integer start(1),
870 ! integer count(1),
871 ! real rvals(1))
872 external nf_get_vara_real
873
874 integer nf_put_vara_double
875 ! (integer ncid,
876 ! integer varid,
877 ! integer start(1),
878 ! integer count(1),
879 ! doubleprecision dvals(1))
880 external nf_put_vara_double
881
882 integer nf_get_vara_double
883 ! (integer ncid,
884 ! integer varid,
885 ! integer start(1),
886 ! integer count(1),
887 ! doubleprecision dvals(1))
888 external nf_get_vara_double
889
890 !
891 ! strided variable put/get routines:
892 !
893
894 integer nf_put_vars_text
895 ! (integer ncid,
896 ! integer varid,
897 ! integer start(1),
898 ! integer count(1),
899 ! integer stride(1),
900 ! character(*) text)
901 external nf_put_vars_text
902
903 integer nf_get_vars_text
904 ! (integer ncid,
905 ! integer varid,
906 ! integer start(1),
907 ! integer count(1),
908 ! integer stride(1),
909 ! character(*) text)
910 external nf_get_vars_text
911
912 integer nf_put_vars_int1
913 ! (integer ncid,
914 ! integer varid,
915 ! integer start(1),
916 ! integer count(1),
917 ! integer stride(1),
918 ! nf_int1_t i1vals(1))
919 external nf_put_vars_int1
920
921 integer nf_get_vars_int1
922 ! (integer ncid,
923 ! integer varid,
924 ! integer start(1),
925 ! integer count(1),
926 ! integer stride(1),
927 ! nf_int1_t i1vals(1))
928 external nf_get_vars_int1
929
930 integer nf_put_vars_int2
931 ! (integer ncid,
932 ! integer varid,
933 ! integer start(1),
934 ! integer count(1),
935 ! integer stride(1),
936 ! nf_int2_t i2vals(1))
937 external nf_put_vars_int2
938
939 integer nf_get_vars_int2
940 ! (integer ncid,
941 ! integer varid,
942 ! integer start(1),
943 ! integer count(1),
944 ! integer stride(1),
945 ! nf_int2_t i2vals(1))
946 external nf_get_vars_int2
947
948 integer nf_put_vars_int
949 ! (integer ncid,
950 ! integer varid,
951 ! integer start(1),
952 ! integer count(1),
953 ! integer stride(1),
954 ! integer ivals(1))
955 external nf_put_vars_int
956
957 integer nf_get_vars_int
958 ! (integer ncid,
959 ! integer varid,
960 ! integer start(1),
961 ! integer count(1),
962 ! integer stride(1),
963 ! integer ivals(1))
964 external nf_get_vars_int
965
966 integer nf_put_vars_real
967 ! (integer ncid,
968 ! integer varid,
969 ! integer start(1),
970 ! integer count(1),
971 ! integer stride(1),
972 ! real rvals(1))
973 external nf_put_vars_real
974
975 integer nf_get_vars_real
976 ! (integer ncid,
977 ! integer varid,
978 ! integer start(1),
979 ! integer count(1),
980 ! integer stride(1),
981 ! real rvals(1))
982 external nf_get_vars_real
983
984 integer nf_put_vars_double
985 ! (integer ncid,
986 ! integer varid,
987 ! integer start(1),
988 ! integer count(1),
989 ! integer stride(1),
990 ! doubleprecision dvals(1))
991 external nf_put_vars_double
992
993 integer nf_get_vars_double
994 ! (integer ncid,
995 ! integer varid,
996 ! integer start(1),
997 ! integer count(1),
998 ! integer stride(1),
999 ! doubleprecision dvals(1))
1000 external nf_get_vars_double
1001
1002 !
1003 ! mapped variable put/get routines:
1004 !
1005
1006 integer nf_put_varm_text
1007 ! (integer ncid,
1008 ! integer varid,
1009 ! integer start(1),
1010 ! integer count(1),
1011 ! integer stride(1),
1012 ! integer imap(1),
1013 ! character(*) text)
1014 external nf_put_varm_text
1015
1016 integer nf_get_varm_text
1017 ! (integer ncid,
1018 ! integer varid,
1019 ! integer start(1),
1020 ! integer count(1),
1021 ! integer stride(1),
1022 ! integer imap(1),
1023 ! character(*) text)
1024 external nf_get_varm_text
1025
1026 integer nf_put_varm_int1
1027 ! (integer ncid,
1028 ! integer varid,
1029 ! integer start(1),
1030 ! integer count(1),
1031 ! integer stride(1),
1032 ! integer imap(1),
1033 ! nf_int1_t i1vals(1))
1034 external nf_put_varm_int1
1035
1036 integer nf_get_varm_int1
1037 ! (integer ncid,
1038 ! integer varid,
1039 ! integer start(1),
1040 ! integer count(1),
1041 ! integer stride(1),
1042 ! integer imap(1),
1043 ! nf_int1_t i1vals(1))
1044 external nf_get_varm_int1
1045
1046 integer nf_put_varm_int2
1047 ! (integer ncid,
1048 ! integer varid,
1049 ! integer start(1),
1050 ! integer count(1),
1051 ! integer stride(1),
1052 ! integer imap(1),
1053 ! nf_int2_t i2vals(1))
1054 external nf_put_varm_int2
1055
1056 integer nf_get_varm_int2
1057 ! (integer ncid,
1058 ! integer varid,
1059 ! integer start(1),
1060 ! integer count(1),
1061 ! integer stride(1),
1062 ! integer imap(1),
1063 ! nf_int2_t i2vals(1))
1064 external nf_get_varm_int2
1065
1066 integer nf_put_varm_int
1067 ! (integer ncid,
1068 ! integer varid,
1069 ! integer start(1),
1070 ! integer count(1),
1071 ! integer stride(1),
1072 ! integer imap(1),
1073 ! integer ivals(1))
1074 external nf_put_varm_int
1075
1076 integer nf_get_varm_int
1077 ! (integer ncid,
1078 ! integer varid,
1079 ! integer start(1),
1080 ! integer count(1),
1081 ! integer stride(1),
1082 ! integer imap(1),
1083 ! integer ivals(1))
1084 external nf_get_varm_int
1085
1086 integer nf_put_varm_real
1087 ! (integer ncid,
1088 ! integer varid,
1089 ! integer start(1),
1090 ! integer count(1),
1091 ! integer stride(1),
1092 ! integer imap(1),
1093 ! real rvals(1))
1094 external nf_put_varm_real
1095
1096 integer nf_get_varm_real
1097 ! (integer ncid,
1098 ! integer varid,
1099 ! integer start(1),
1100 ! integer count(1),
1101 ! integer stride(1),
1102 ! integer imap(1),
1103 ! real rvals(1))
1104 external nf_get_varm_real
1105
1106 integer nf_put_varm_double
1107 ! (integer ncid,
1108 ! integer varid,
1109 ! integer start(1),
1110 ! integer count(1),
1111 ! integer stride(1),
1112 ! integer imap(1),
1113 ! doubleprecision dvals(1))
1114 external nf_put_varm_double
1115
1116 integer nf_get_varm_double
1117 ! (integer ncid,
1118 ! integer varid,
1119 ! integer start(1),
1120 ! integer count(1),
1121 ! integer stride(1),
1122 ! integer imap(1),
1123 ! doubleprecision dvals(1))
1124 external nf_get_varm_double
1125
1126
1127 ! NetCDF-2.
1128 !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
1129 ! begin netcdf 2.4 backward compatibility:
1130 !
1131
1132 !
1133 ! functions in the fortran interface
1134 !
1135 integer nccre
1136 integer ncopn
1137 integer ncddef
1138 integer ncdid
1139 integer ncvdef
1140 integer ncvid
1141 integer nctlen
1142 integer ncsfil
1143
1144 external nccre
1145 external ncopn
1146 external ncddef
1147 external ncdid
1148 external ncvdef
1149 external ncvid
1150 external nctlen
1151 external ncsfil
1152
1153
1154 integer ncrdwr
1155 integer nccreat
1156 integer ncexcl
1157 integer ncindef
1158 integer ncnsync
1159 integer nchsync
1160 integer ncndirty
1161 integer nchdirty
1162 integer nclink
1163 integer ncnowrit
1164 integer ncwrite
1165 integer ncclob
1166 integer ncnoclob
1167 integer ncglobal
1168 integer ncfill
1169 integer ncnofill
1170 integer maxncop
1171 integer maxncdim
1172 integer maxncatt
1173 integer maxncvar
1174 integer maxncnam
1175 integer maxvdims
1176 integer ncnoerr
1177 integer ncebadid
1178 integer ncenfile
1179 integer nceexist
1180 integer nceinval
1181 integer nceperm
1182 integer ncenotin
1183 integer nceindef
1184 integer ncecoord
1185 integer ncemaxds
1186 integer ncename
1187 integer ncenoatt
1188 integer ncemaxat
1189 integer ncebadty
1190 integer ncebadd
1191 integer ncests
1192 integer nceunlim
1193 integer ncemaxvs
1194 integer ncenotvr
1195 integer nceglob
1196 integer ncenotnc
1197 integer ncfoobar
1198 integer ncsyserr
1199 integer ncfatal
1200 integer ncverbos
1201 integer ncentool
1202
1203
1204 !
1205 ! netcdf data types:
1206 !
1207 integer ncbyte
1208 integer ncchar
1209 integer ncshort
1210 integer nclong
1211 integer ncfloat
1212 integer ncdouble
1213
1214 parameter(ncbyte = 1)
1215 parameter(ncchar = 2)
1216 parameter(ncshort = 3)
1217 parameter(nclong = 4)
1218 parameter(ncfloat = 5)
1219 parameter(ncdouble = 6)
1220
1221 !
1222 ! masks for the struct nc flag field; passed in as 'mode' arg to
1223 ! nccreate and ncopen.
1224 !
1225
1226 ! read/write, 0 => readonly
1227 parameter(ncrdwr = 1)
1228 ! in create phase, cleared by ncendef
1229 parameter(nccreat = 2)
1230 ! on create destroy existing file
1231 parameter(ncexcl = 4)
1232 ! in define mode, cleared by ncendef
1233 parameter(ncindef = 8)
1234 ! synchronise numrecs on change (x'10')
1235 parameter(ncnsync = 16)
1236 ! synchronise whole header on change (x'20')
1237 parameter(nchsync = 32)
1238 ! numrecs has changed (x'40')
1239 parameter(ncndirty = 64)
1240 ! header info has changed (x'80')
1241 parameter(nchdirty = 128)
1242 ! prefill vars on endef and increase of record, the default behavior
1243 parameter(ncfill = 0)
1244 ! do not fill vars on endef and increase of record (x'100')
1245 parameter(ncnofill = 256)
1246 ! isa link (x'8000')
1247 parameter(nclink = 32768)
1248
1249 !
1250 ! 'mode' arguments for nccreate and ncopen
1251 !
1252 parameter(ncnowrit = 0)
1253 parameter(ncwrite = ncrdwr)
1254 parameter(ncclob = nf_clobber)
1255 parameter(ncnoclob = nf_noclobber)
1256
1257 !
1258 ! 'size' argument to ncdimdef for an unlimited dimension
1259 !
1260 integer ncunlim
1261 parameter(ncunlim = 0)
1262
1263 !
1264 ! attribute id to put/get a global attribute
1265 !
1266 parameter(ncglobal = 0)
1267
1268 !
1269 ! advisory maximums:
1270 !
1271 parameter(maxncop = 64)
1272 parameter(maxncdim = 1024)
1273 parameter(maxncatt = 8192)
1274 parameter(maxncvar = 8192)
1275 ! not enforced
1276 parameter(maxncnam = 256)
1277 parameter(maxvdims = maxncdim)
1278
1279 !
1280 ! global netcdf error status variable
1281 ! initialized in error.c
1282 !
1283
1284 ! no error
1285 parameter(ncnoerr = nf_noerr)
1286 ! not a netcdf id
1287 parameter(ncebadid = nf_ebadid)
1288 ! too many netcdfs open
1289 parameter(ncenfile = -31) ! nc_syserr
1290 ! netcdf file exists && ncnoclob
1291 parameter(nceexist = nf_eexist)
1292 ! invalid argument
1293 parameter(nceinval = nf_einval)
1294 ! write to read only
1295 parameter(nceperm = nf_eperm)
1296 ! operation not allowed in data mode
1297 parameter(ncenotin = nf_enotindefine )
1298 ! operation not allowed in define mode
1299 parameter(nceindef = nf_eindefine)
1300 ! coordinates out of domain
1301 parameter(ncecoord = nf_einvalcoords)
1302 ! maxncdims exceeded
1303 parameter(ncemaxds = nf_emaxdims)
1304 ! string match to name in use
1305 parameter(ncename = nf_enameinuse)
1306 ! attribute not found
1307 parameter(ncenoatt = nf_enotatt)
1308 ! maxncattrs exceeded
1309 parameter(ncemaxat = nf_emaxatts)
1310 ! not a netcdf data type
1311 parameter(ncebadty = nf_ebadtype)
1312 ! invalid dimension id
1313 parameter(ncebadd = nf_ebaddim)
1314 ! ncunlimited in the wrong index
1315 parameter(nceunlim = nf_eunlimpos)
1316 ! maxncvars exceeded
1317 parameter(ncemaxvs = nf_emaxvars)
1318 ! variable not found
1319 parameter(ncenotvr = nf_enotvar)
1320 ! action prohibited on ncglobal varid
1321 parameter(nceglob = nf_eglobal)
1322 ! not a netcdf file
1323 parameter(ncenotnc = nf_enotnc)
1324 parameter(ncests = nf_ests)
1325 parameter (ncentool = nf_emaxname)
1326 parameter(ncfoobar = 32)
1327 parameter(ncsyserr = -31)
1328
1329 !
1330 ! global options variable. used to determine behavior of error handler.
1331 ! initialized in lerror.c
1332 !
1333 parameter(ncfatal = 1)
1334 parameter(ncverbos = 2)
1335
1336 !
1337 ! default fill values. these must be the same as in the c interface.
1338 !
1339 integer filbyte
1340 integer filchar
1341 integer filshort
1342 integer fillong
1343 real filfloat
1344 doubleprecision fildoub
1345
1346 parameter (filbyte = -127)
1347 parameter (filchar = 0)
1348 parameter (filshort = -32767)
1349 parameter (fillong = -2147483647)
1350 parameter (filfloat = 9.9692099683868690e+36)
1351 parameter (fildoub = 9.9692099683868690e+36)
1352 !=======================================================================
1353 !
1354 ! Auteur: F. Hourdin
1355 ! -------
1356 !
1357 ! Objet:
1358 ! ------
1359 ! Light interface for netcdf outputs. can be used outside LMDZ
1360 !
1361 !=======================================================================
1362
1363 integer imax,jmax,lmax,nid
1364 INTEGER dim_coord(4)
1365 real iotd_ts,iotd_t0
1366 integer :: n_names_iotd_def
1367 character*20, dimension(200) :: names_iotd_def
1368 character*20 :: un_nom
1369
1370 common/iotd_ca/imax,jmax,lmax,nid,dim_coord,iotd_t0,iotd_ts
1371 common/iotd_cb/n_names_iotd_def,names_iotd_def
1372 !$OMP THREADPRIVATE(/iotd_ca/)
1373 !$OMP THREADPRIVATE(/iotd_cb/)
1374 integer ierr
1375
1376 ! Arguments:
1377 ! ----------
1378
1379 ierr=NF_close(nid)
1380
1381 END
1382