source: codes/icosagcm/trunk/src/output/netcdf_mod.F90

Last change on this file was 899, checked in by adurocher, 5 years ago

trunk : Fixed GCC warnings

Fixed iso c bindings
fixed warnings with -Wall -Wno-aliasing -Wno-unused -Wno-unused-dummy-argument -Wno-maybe-uninitialized -Wno-tabs warnings
Removed all unused variables (-Wunused-variable)
vector%dot_product is now dot_product_3d to avoid compilation warning "dot_product shadows intrinsic" with GCC

File size: 10.1 KB
Line 
1MODULE netcdf_mod
2
3#ifndef CPP_NO_IO
4
5  USE netcdf
6  LOGICAL,PARAMETER :: no_io = .FALSE.
7
8#ifndef CPP_NETCDF4
9  INTEGER ::  NF90_NETCDF4
10  INTEGER ::  NF90_MPIIO
11  INTEGER ::  NF90_CHUNKED
12 
13  INTEGER,EXTERNAL :: NF90_CREATE_PAR
14  INTEGER,EXTERNAL :: NF90_DEF_VAR_CHUNKING 
15#endif
16
17#ifdef CPP_NF90_DEF_VAR_CHUNKING
18  INTEGER,EXTERNAL :: NF90_DEF_VAR_CHUNKING 
19#endif
20
21END MODULE netcdf_mod
22
23#ifndef CPP_NETCDF4
24   SUBROUTINE NF90_CREATE_PAR
25   END
26   
27   SUBROUTINE NF90_DEF_VAR_CHUNKING
28   END
29#endif
30
31#ifdef CPP_NF90_DEF_VAR_CHUNKING
32   SUBROUTINE NF90_DEF_VAR_CHUNKING
33   END
34#endif
35
36
37#else
38
39  LOGICAL,PARAMETER :: no_io = .TRUE.
40
41  INTEGER ::  NF90_NETCDF4
42  INTEGER ::  NF90_MPIIO
43  INTEGER ::  NF90_CHUNKED
44 
45  INTEGER,EXTERNAL :: NF90_CREATE_PAR
46  INTEGER,EXTERNAL :: NF90_DEF_VAR_CHUNKING 
47  INTEGER,EXTERNAL :: NF90_CREATE
48  INTEGER,EXTERNAL ::  NF90_DEF_DIM
49  INTEGER,EXTERNAL :: NF90_PUT_ATT
50  INTEGER,EXTERNAL :: NF90_ENDDEF 
51  INTEGER,EXTERNAL :: NF90_CLOSE
52  INTEGER,EXTERNAL :: NF90_SYNC
53  INTEGER,EXTERNAL :: NF90_OPEN
54  INTEGER,EXTERNAL :: NF90_INQ_VARID
55  INTEGER,EXTERNAL :: NF90_GET_ATT
56 
57  INTEGER ::  NF90_NOWRITE 
58  INTEGER :: NF90_CLOBBER
59  INTEGER ::  NF90_UNLIMITED
60  INTEGER :: NF90_DOUBLE
61  INTEGER :: NF90_FLOAT
62  INTEGER :: NF90_GLOBAL
63 
64  INTERFACE nf90_put_var
65    MODULE PROCEDURE   nf90_put_var_int0, nf90_put_var_int1, nf90_put_var_int2, nf90_put_var_int3,&
66                                                 nf90_put_var_real0, nf90_put_var_real1, nf90_put_var_real2, nf90_put_var_real3
67  END INTERFACE nf90_put_var
68
69  INTERFACE nf90_get_var
70    MODULE PROCEDURE   nf90_get_var_int0, nf90_get_var_int1, nf90_get_var_int2, nf90_get_var_int3,&
71                                                 nf90_get_var_real0, nf90_get_var_real1, nf90_get_var_real2, nf90_get_var_real3
72  END INTERFACE nf90_get_var
73 
74 CONTAINS
75   
76   function nf90_def_var(ncid, name, xtype, dimids, varid)
77        integer,                         intent( in) :: ncid
78        character (len = *),             intent( in) :: name
79        integer,                         intent( in) :: xtype
80        integer, dimension(:), optional, intent( in) :: dimids
81        integer,                         intent(out) :: varid
82        integer                                      :: nf90_def_var
83        nf90_def_var = 0
84    end function nf90_def_var
85   
86   
87    function nf90_put_var_int0(ncid, varid, values, start, count, stride, map)
88        integer,                         intent( in) :: ncid, varid
89        integer,                          intent( in) :: values
90        integer, dimension(:), optional, intent( in) :: start, count, stride, map
91        integer                                      :: nf90_put_var_int0
92        nf90_put_var_int0 = 0
93    end function nf90_put_var_int0
94
95    function nf90_put_var_int1(ncid, varid, values, start, count, stride, map)
96        integer,                         intent( in) :: ncid, varid
97        integer,                          intent( in) :: values(:)
98        integer, dimension(:), optional, intent( in) :: start, count, stride, map
99        integer                                      :: nf90_put_var_int1
100        nf90_put_var_int1 = 0
101    end function nf90_put_var_int1
102
103    function nf90_put_var_int2(ncid, varid, values, start, count, stride, map)
104        integer,                         intent( in) :: ncid, varid
105        integer,                          intent( in) :: values(:,:)
106        integer, dimension(:), optional, intent( in) :: start, count, stride, map
107        integer                                      :: nf90_put_var_int2
108        nf90_put_var_int2 = 0
109    end function nf90_put_var_int2
110
111    function nf90_put_var_int3(ncid, varid, values, start, count, stride, map)
112        integer,                         intent( in) :: ncid, varid
113        integer,                          intent( in) :: values(:,:,:)
114        integer, dimension(:), optional, intent( in) :: start, count, stride, map
115        integer                                      :: nf90_put_var_int3
116        nf90_put_var_int3 = 0
117    end function nf90_put_var_int3
118   
119    function nf90_put_var_real0(ncid, varid, values, start, count, stride, map)
120        integer,                         intent( in) :: ncid, varid
121        real,                              intent( in) :: values
122        integer, dimension(:), optional, intent( in) :: start, count, stride, map
123        integer                                      :: nf90_put_var_real0
124        nf90_put_var_real0 = 0
125   end function nf90_put_var_real0
126
127    function nf90_put_var_real1(ncid, varid, values, start, count, stride, map)
128        integer,                         intent( in) :: ncid, varid
129        real,                              intent( in) :: values(:)
130        integer, dimension(:), optional, intent( in) :: start, count, stride, map
131        integer                                      :: nf90_put_var_real1
132        nf90_put_var_real1 = 0
133   end function nf90_put_var_real1
134
135    function nf90_put_var_real2(ncid, varid, values, start, count, stride, map)
136        integer,                         intent( in) :: ncid, varid
137        real,                              intent( in) :: values(:,:)
138        integer, dimension(:), optional, intent( in) :: start, count, stride, map
139        integer                                      :: nf90_put_var_real2
140        nf90_put_var_real2 = 0
141   end function nf90_put_var_real2
142
143    function nf90_put_var_real3(ncid, varid, values, start, count, stride, map)
144        integer,                         intent( in) :: ncid, varid
145        real,                              intent( in) :: values(:,:,:)
146        integer, dimension(:), optional, intent( in) :: start, count, stride, map
147        integer                                      :: nf90_put_var_real3
148        nf90_put_var_real3 = 0
149   end function nf90_put_var_real3
150 
151 
152     function nf90_get_var_int0(ncid, varid, values, start, count, stride, map)
153        integer,                         intent( in) :: ncid, varid
154        integer,                          intent( out) :: values
155        integer, dimension(:), optional, intent( in) :: start, count, stride, map
156        integer                                      :: nf90_get_var_int0
157        nf90_get_var_int0 = 0
158    end function nf90_get_var_int0
159
160    function nf90_get_var_int1(ncid, varid, values, start, count, stride, map)
161        integer,                         intent( in) :: ncid, varid
162        integer,                          intent( out) :: values(:)
163        integer, dimension(:), optional, intent( in) :: start, count, stride, map
164        integer                                      :: nf90_get_var_int1
165        nf90_get_var_int1 = 0
166    end function nf90_get_var_int1
167
168    function nf90_get_var_int2(ncid, varid, values, start, count, stride, map)
169        integer,                         intent( in) :: ncid, varid
170        integer,                          intent( out) :: values(:,:)
171        integer, dimension(:), optional, intent( in) :: start, count, stride, map
172        integer                                      :: nf90_get_var_int2
173        nf90_get_var_int2 = 0
174    end function nf90_get_var_int2
175
176    function nf90_get_var_int3(ncid, varid, values, start, count, stride, map)
177        integer,                         intent( in) :: ncid, varid
178        integer,                          intent( out) :: values(:,:,:)
179        integer, dimension(:), optional, intent( in) :: start, count, stride, map
180        integer                                      :: nf90_get_var_int3
181        nf90_get_var_int3 = 0
182    end function nf90_get_var_int3
183   
184    function nf90_get_var_real0(ncid, varid, values, start, count, stride, map)
185        integer,                         intent( in) :: ncid, varid
186        real,                              intent( out) :: values
187        integer, dimension(:), optional, intent( in) :: start, count, stride, map
188        integer                                      :: nf90_get_var_real0
189        nf90_get_var_real0 = 0
190   end function nf90_get_var_real0
191
192    function nf90_get_var_real1(ncid, varid, values, start, count, stride, map)
193        integer,                         intent( in) :: ncid, varid
194        real,                              intent( out) :: values(:)
195        integer, dimension(:), optional, intent( in) :: start, count, stride, map
196        integer                                      :: nf90_get_var_real1
197        nf90_get_var_real1 = 0
198   end function nf90_get_var_real1
199
200    function nf90_get_var_real2(ncid, varid, values, start, count, stride, map)
201        integer,                         intent( in) :: ncid, varid
202        real,                              intent( out) :: values(:,:)
203        integer, dimension(:), optional, intent( in) :: start, count, stride, map
204        integer                                      :: nf90_get_var_real2
205        nf90_get_var_real2 = 0
206   end function nf90_get_var_real2
207
208    function nf90_get_var_real3(ncid, varid, values, start, count, stride, map)
209        integer,                         intent( in) :: ncid, varid
210        real,                              intent( out) :: values(:,:,:)
211        integer, dimension(:), optional, intent( in) :: start, count, stride, map
212        integer                                      :: nf90_get_var_real3
213        nf90_get_var_real3 = 0
214   end function nf90_get_var_real3
215 
216END MODULE netcdf_mod
217
218  FUNCTION NF90_CREATE_PAR ()
219    INTEGER ::  NF90_CREATE_PAR
220    NF90_CREATE_PAR = 0
221  END
222 
223 FUNCTION NF90_DEF_VAR_CHUNKING ()
224    INTEGER ::  NF90_DEF_VAR_CHUNKING
225    NF90_DEF_VAR_CHUNKING = 0
226 END
227 
228 FUNCTION NF90_CREATE()
229    INTEGER ::  NF90_CREATE
230    NF90_CREATE = 0
231 END
232 
233 FUNCTION  NF90_DEF_DIM ()
234    INTEGER ::  NF90_DEF_DIM
235    NF90_DEF_DIM = 0
236 END
237 
238 FUNCTION NF90_PUT_ATT ()
239    INTEGER ::  NF90_PUT_ATT
240    NF90_PUT_ATT = 0
241 END
242 
243 FUNCTION NF90_ENDDEF ()
244    INTEGER ::  NF90_ENDDEF
245    NF90_ENDDEF = 0
246 END
247 
248 FUNCTION NF90_CLOSE ()
249    INTEGER ::  NF90_CLOSE
250    NF90_CLOSE = 0
251 END
252 
253 FUNCTION NF90_SYNC ()
254    INTEGER ::  NF90_SYNC
255    NF90_SYNC = 0
256 END
257 
258 FUNCTION NF90_OPEN ()
259    INTEGER ::  NF90_OPEN
260    NF90_OPEN = 0
261 END
262 
263 FUNCTION NF90_INQ_VARID ()
264    INTEGER ::  NF90_INQ_VARID
265    NF90_INQ_VARID = 0
266 END
267 
268 FUNCTION NF90_GET_ATT ()
269    INTEGER ::  NF90_GET_ATT
270    NF90_GET_ATT = 0
271 END
272
273#endif
274
Note: See TracBrowser for help on using the repository browser.