Ignore:
Timestamp:
10/12/16 16:14:03 (8 years ago)
Author:
ymipsl
Message:

New version independant of netcd I/O for benchmarking.

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/netcdf_mod.F90

    r398 r488  
    11MODULE netcdf_mod 
     2 
     3#ifndef CPP_NO_IO 
     4 
    25  USE netcdf 
     6  LOGICAL,PARAMETER :: no_io = .FALSE. 
     7 
    38#ifndef CPP_NETCDF4 
    49  INTEGER ::  NF90_NETCDF4 
     
    2833   END 
    2934#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    end function nf90_def_var 
     84     
     85     
     86    function nf90_put_var_int0(ncid, varid, values, start, count, stride, map) 
     87        integer,                         intent( in) :: ncid, varid 
     88        integer,                          intent( in) :: values 
     89        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
     90        integer                                      :: nf90_put_var_int0 
     91    end function nf90_put_var_int0 
     92 
     93    function nf90_put_var_int1(ncid, varid, values, start, count, stride, map) 
     94        integer,                         intent( in) :: ncid, varid 
     95        integer,                          intent( in) :: values(:) 
     96        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
     97        integer                                      :: nf90_put_var_int1 
     98    end function nf90_put_var_int1 
     99 
     100    function nf90_put_var_int2(ncid, varid, values, start, count, stride, map) 
     101        integer,                         intent( in) :: ncid, varid 
     102        integer,                          intent( in) :: values(:,:) 
     103        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
     104        integer                                      :: nf90_put_var_int2 
     105    end function nf90_put_var_int2 
     106 
     107    function nf90_put_var_int3(ncid, varid, values, start, count, stride, map) 
     108        integer,                         intent( in) :: ncid, varid 
     109        integer,                          intent( in) :: values(:,:,:) 
     110        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
     111        integer                                      :: nf90_put_var_int3 
     112    end function nf90_put_var_int3 
     113     
     114    function nf90_put_var_real0(ncid, varid, values, start, count, stride, map) 
     115        integer,                         intent( in) :: ncid, varid 
     116        real,                              intent( in) :: values 
     117        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
     118        integer                                      :: nf90_put_var_real0    
     119   end function nf90_put_var_real0 
     120 
     121    function nf90_put_var_real1(ncid, varid, values, start, count, stride, map) 
     122        integer,                         intent( in) :: ncid, varid 
     123        real,                              intent( in) :: values(:) 
     124        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
     125        integer                                      :: nf90_put_var_real1    
     126   end function nf90_put_var_real1 
     127 
     128    function nf90_put_var_real2(ncid, varid, values, start, count, stride, map) 
     129        integer,                         intent( in) :: ncid, varid 
     130        real,                              intent( in) :: values(:,:) 
     131        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
     132        integer                                      :: nf90_put_var_real2    
     133   end function nf90_put_var_real2 
     134 
     135    function nf90_put_var_real3(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_real3    
     140   end function nf90_put_var_real3 
     141  
     142  
     143     function nf90_get_var_int0(ncid, varid, values, start, count, stride, map) 
     144        integer,                         intent( in) :: ncid, varid 
     145        integer,                          intent( out) :: values 
     146        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
     147        integer                                      :: nf90_get_var_int0 
     148    end function nf90_get_var_int0 
     149 
     150    function nf90_get_var_int1(ncid, varid, values, start, count, stride, map) 
     151        integer,                         intent( in) :: ncid, varid 
     152        integer,                          intent( out) :: values(:) 
     153        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
     154        integer                                      :: nf90_get_var_int1 
     155    end function nf90_get_var_int1 
     156 
     157    function nf90_get_var_int2(ncid, varid, values, start, count, stride, map) 
     158        integer,                         intent( in) :: ncid, varid 
     159        integer,                          intent( out) :: values(:,:) 
     160        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
     161        integer                                      :: nf90_get_var_int2 
     162    end function nf90_get_var_int2 
     163 
     164    function nf90_get_var_int3(ncid, varid, values, start, count, stride, map) 
     165        integer,                         intent( in) :: ncid, varid 
     166        integer,                          intent( out) :: values(:,:,:) 
     167        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
     168        integer                                      :: nf90_get_var_int3 
     169    end function nf90_get_var_int3 
     170     
     171    function nf90_get_var_real0(ncid, varid, values, start, count, stride, map) 
     172        integer,                         intent( in) :: ncid, varid 
     173        real,                              intent( out) :: values 
     174        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
     175        integer                                      :: nf90_get_var_real0    
     176   end function nf90_get_var_real0 
     177 
     178    function nf90_get_var_real1(ncid, varid, values, start, count, stride, map) 
     179        integer,                         intent( in) :: ncid, varid 
     180        real,                              intent( out) :: values(:) 
     181        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
     182        integer                                      :: nf90_get_var_real1    
     183   end function nf90_get_var_real1 
     184 
     185    function nf90_get_var_real2(ncid, varid, values, start, count, stride, map) 
     186        integer,                         intent( in) :: ncid, varid 
     187        real,                              intent( out) :: values(:,:) 
     188        integer, dimension(:), optional, intent( in) :: start, count, stride, map 
     189        integer                                      :: nf90_get_var_real2    
     190   end function nf90_get_var_real2 
     191 
     192    function nf90_get_var_real3(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_real3    
     197   end function nf90_get_var_real3 
     198   
     199END MODULE netcdf_mod 
     200 
     201  SUBROUTINE NF90_CREATE_PAR 
     202  END 
     203   
     204 SUBROUTINE NF90_DEF_VAR_CHUNKING  
     205 END 
     206  
     207 SUBROUTINE NF90_CREATE 
     208 END 
     209  
     210 SUBROUTINE  NF90_DEF_DIM 
     211 END 
     212  
     213 SUBROUTINE NF90_PUT_ATT 
     214 END 
     215  
     216 SUBROUTINE NF90_ENDDEF  
     217 END 
     218   
     219 SUBROUTINE NF90_CLOSE 
     220 END 
     221  
     222 SUBROUTINE NF90_SYNC 
     223 END 
     224  
     225 SUBROUTINE NF90_OPEN 
     226 END 
     227  
     228 SUBROUTINE NF90_INQ_VARID 
     229 END 
     230  
     231 SUBROUTINE NF90_GET_ATT 
     232 END 
     233 
     234#endif 
     235 
Note: See TracChangeset for help on using the changeset viewer.