[26] | 1 | MODULE netcdf_mod |
---|
[488] | 2 | |
---|
| 3 | #ifndef CPP_NO_IO |
---|
| 4 | |
---|
[26] | 5 | USE netcdf |
---|
[488] | 6 | LOGICAL,PARAMETER :: no_io = .FALSE. |
---|
| 7 | |
---|
[44] | 8 | #ifndef CPP_NETCDF4 |
---|
[26] | 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 |
---|
[44] | 15 | #endif |
---|
[26] | 16 | |
---|
[398] | 17 | #ifdef CPP_NF90_DEF_VAR_CHUNKING |
---|
| 18 | INTEGER,EXTERNAL :: NF90_DEF_VAR_CHUNKING |
---|
| 19 | #endif |
---|
| 20 | |
---|
[26] | 21 | END MODULE netcdf_mod |
---|
| 22 | |
---|
[44] | 23 | #ifndef CPP_NETCDF4 |
---|
[26] | 24 | SUBROUTINE NF90_CREATE_PAR |
---|
| 25 | END |
---|
| 26 | |
---|
| 27 | SUBROUTINE NF90_DEF_VAR_CHUNKING |
---|
| 28 | END |
---|
[44] | 29 | #endif |
---|
[398] | 30 | |
---|
| 31 | #ifdef CPP_NF90_DEF_VAR_CHUNKING |
---|
| 32 | SUBROUTINE NF90_DEF_VAR_CHUNKING |
---|
| 33 | END |
---|
| 34 | #endif |
---|
[488] | 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 |
---|
[899] | 83 | nf90_def_var = 0 |
---|
[488] | 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 |
---|
[899] | 92 | nf90_put_var_int0 = 0 |
---|
[488] | 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 |
---|
[899] | 100 | nf90_put_var_int1 = 0 |
---|
[488] | 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 |
---|
[899] | 108 | nf90_put_var_int2 = 0 |
---|
[488] | 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 |
---|
[899] | 116 | nf90_put_var_int3 = 0 |
---|
[488] | 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 |
---|
[899] | 123 | integer :: nf90_put_var_real0 |
---|
| 124 | nf90_put_var_real0 = 0 |
---|
[488] | 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 |
---|
[899] | 131 | integer :: nf90_put_var_real1 |
---|
| 132 | nf90_put_var_real1 = 0 |
---|
[488] | 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 |
---|
[899] | 139 | integer :: nf90_put_var_real2 |
---|
| 140 | nf90_put_var_real2 = 0 |
---|
[488] | 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 |
---|
[899] | 147 | integer :: nf90_put_var_real3 |
---|
| 148 | nf90_put_var_real3 = 0 |
---|
[488] | 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 |
---|
[899] | 157 | nf90_get_var_int0 = 0 |
---|
[488] | 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 |
---|
[899] | 165 | nf90_get_var_int1 = 0 |
---|
[488] | 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 |
---|
[899] | 173 | nf90_get_var_int2 = 0 |
---|
[488] | 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 |
---|
[899] | 181 | nf90_get_var_int3 = 0 |
---|
[488] | 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 |
---|
[899] | 188 | integer :: nf90_get_var_real0 |
---|
| 189 | nf90_get_var_real0 = 0 |
---|
[488] | 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 |
---|
[899] | 196 | integer :: nf90_get_var_real1 |
---|
| 197 | nf90_get_var_real1 = 0 |
---|
[488] | 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 |
---|
[899] | 204 | integer :: nf90_get_var_real2 |
---|
| 205 | nf90_get_var_real2 = 0 |
---|
[488] | 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 |
---|
[899] | 212 | integer :: nf90_get_var_real3 |
---|
| 213 | nf90_get_var_real3 = 0 |
---|
[488] | 214 | end function nf90_get_var_real3 |
---|
| 215 | |
---|
| 216 | END MODULE netcdf_mod |
---|
| 217 | |
---|
[803] | 218 | FUNCTION NF90_CREATE_PAR () |
---|
[788] | 219 | INTEGER :: NF90_CREATE_PAR |
---|
[803] | 220 | NF90_CREATE_PAR = 0 |
---|
[488] | 221 | END |
---|
| 222 | |
---|
[803] | 223 | FUNCTION NF90_DEF_VAR_CHUNKING () |
---|
[788] | 224 | INTEGER :: NF90_DEF_VAR_CHUNKING |
---|
[803] | 225 | NF90_DEF_VAR_CHUNKING = 0 |
---|
[488] | 226 | END |
---|
| 227 | |
---|
[803] | 228 | FUNCTION NF90_CREATE() |
---|
[788] | 229 | INTEGER :: NF90_CREATE |
---|
[803] | 230 | NF90_CREATE = 0 |
---|
[488] | 231 | END |
---|
| 232 | |
---|
[803] | 233 | FUNCTION NF90_DEF_DIM () |
---|
[788] | 234 | INTEGER :: NF90_DEF_DIM |
---|
[803] | 235 | NF90_DEF_DIM = 0 |
---|
[488] | 236 | END |
---|
| 237 | |
---|
[803] | 238 | FUNCTION NF90_PUT_ATT () |
---|
[788] | 239 | INTEGER :: NF90_PUT_ATT |
---|
[803] | 240 | NF90_PUT_ATT = 0 |
---|
[488] | 241 | END |
---|
| 242 | |
---|
[803] | 243 | FUNCTION NF90_ENDDEF () |
---|
[788] | 244 | INTEGER :: NF90_ENDDEF |
---|
[803] | 245 | NF90_ENDDEF = 0 |
---|
[488] | 246 | END |
---|
| 247 | |
---|
[803] | 248 | FUNCTION NF90_CLOSE () |
---|
[788] | 249 | INTEGER :: NF90_CLOSE |
---|
[803] | 250 | NF90_CLOSE = 0 |
---|
[488] | 251 | END |
---|
| 252 | |
---|
[803] | 253 | FUNCTION NF90_SYNC () |
---|
[788] | 254 | INTEGER :: NF90_SYNC |
---|
[803] | 255 | NF90_SYNC = 0 |
---|
[488] | 256 | END |
---|
| 257 | |
---|
[803] | 258 | FUNCTION NF90_OPEN () |
---|
[788] | 259 | INTEGER :: NF90_OPEN |
---|
[803] | 260 | NF90_OPEN = 0 |
---|
[488] | 261 | END |
---|
| 262 | |
---|
[803] | 263 | FUNCTION NF90_INQ_VARID () |
---|
[788] | 264 | INTEGER :: NF90_INQ_VARID |
---|
[803] | 265 | NF90_INQ_VARID = 0 |
---|
[488] | 266 | END |
---|
| 267 | |
---|
[803] | 268 | FUNCTION NF90_GET_ATT () |
---|
[788] | 269 | INTEGER :: NF90_GET_ATT |
---|
[803] | 270 | NF90_GET_ATT = 0 |
---|
[488] | 271 | END |
---|
| 272 | |
---|
| 273 | #endif |
---|
| 274 | |
---|