Changeset 488


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

New version independant of netcd I/O for benchmarking.

YM

Location:
codes/icosagcm/trunk
Files:
4 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/make_icosa

    r347 r488  
    1818external_ioipsl="FALSE" 
    1919external_physics="FALSE" 
     20no_io_defined="FALSE" 
    2021 
    2122CPP_KEY="CPP_NONE"  
     
    6364      "-with_xios") 
    6465          with_xios_defined="TRUE" ; shift ;; 
    65  
     66   
     67        "-no_io") 
     68          no_io_defined="TRUE" ; shift ;; 
     69   
    6670      "-external_ioipsl") 
    6771          external_ioipsl="TRUE" ; shift ;; 
     
    141145fi 
    142146 
     147if [[ "$no_io_defined" == "TRUE" ]] 
     148then 
     149  CPP_KEY="$CPP_KEY CPP_NO_IO" 
     150  with_xios_defined="FALSE" 
     151fi   
     152 
    143153if [[ "$with_xios_defined" == "TRUE" ]] 
    144154then 
     
    164174fi 
    165175 
    166 ICOSA_LIB="$ICOSA_LIB $NETCDF_LIBDIR $NETCDF_LIB $HDF5_LIBDIR $HDF5_LIB" 
    167  
     176if [[ "$no_io_defined" == "FALSE" ]] 
     177then  
     178  ICOSA_LIB="$ICOSA_LIB $NETCDF_LIBDIR $NETCDF_LIB $HDF5_LIBDIR $HDF5_LIB" 
     179  COMPIL_FFLAGS="$COMPIL_FFLAGS $NETCDF_INCDIR" 
     180fi 
    168181 
    169182rm -f config.fcm 
    170183 
    171 echo "%COMPIL_FFLAGS $COMPIL_FFLAGS $NETCDF_INCDIR" >> config.fcm 
     184echo "%COMPIL_FFLAGS $COMPIL_FFLAGS" >> config.fcm 
    172185echo "%LD_FLAGS $LD_FLAGS" >> config.fcm 
    173186echo "%CPP_KEY $CPP_KEY" >> config.fcm 
  • codes/icosagcm/trunk/src/disvert.f90

    r467 r488  
    192192    INTEGER :: ncid,levid,ilevid,hyaiid,hybiid,hyamid,hybmid,P0id 
    193193    INTEGER :: l 
    194  
     194     
     195    IF (no_io) RETURN 
     196     
    195197!$OMP BARRIER 
    196198!$OMP MASTER     
  • 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 
  • codes/icosagcm/trunk/src/restart.f90

    r483 r488  
    7070  REAL(rstd),ALLOCATABLE :: lon(:),lat(:),bounds_lon(:,:),bounds_lat(:,:) 
    7171    
     72    IF (no_io) RETURN 
     73     
    7274    restart_file_name="restart" 
    7375    CALL getin("restart_file_name",restart_file_name) 
     
    419421  REAL(rstd),ALLOCATABLE :: lon(:),lat(:),bounds_lon(:,:),bounds_lat(:,:) 
    420422  REAL(rstd) :: it_temp(1) 
     423   
     424    IF (no_io) RETURN 
     425     
    421426    start_file_name="start" 
    422427    CALL getin("start_file_name",start_file_name) 
  • codes/icosagcm/trunk/src/time.f90

    r347 r488  
    105105  CHARACTER(LEN=255) :: time_frequency 
    106106 
     107  IF (no_io) RETURN 
    107108  CALL getin("dt",dt) 
    108109 
    109110!$OMP BARRIER 
    110111!$OMP MASTER   
    111     IF (is_mpi_root) THEN  
     112    IF (is_mpi_root ) THEN  
    112113      status = NF90_CREATE('time_counter.nc', NF90_CLOBBER, ncid) 
    113114      status = NF90_DEF_DIM(ncid,'time_counter',NF90_UNLIMITED,timeid) 
     
    141142  REAL(rstd) ::time_array(1) 
    142143 
     144  IF (no_io) RETURN 
     145 
    143146!$OMP BARRIER 
    144147!$OMP MASTER 
     
    160163  IMPLICIT NONE 
    161164    INTEGER :: status 
     165 
     166    IF (no_io) RETURN 
    162167     
    163168!$OMP BARRIER 
  • codes/icosagcm/trunk/src/write_field.f90

    r378 r488  
    2727      use netcdf_mod 
    2828      CHARACTER(LEN=255) :: netcdf_prec 
     29       
    2930      !$OMP CRITICAL 
    3031      netcdf_prec='float' 
     
    6869    USE dimensions 
    6970    USE mpipara 
     71    USE netcdf_mod 
    7072    IMPLICIT NONE   
    7173     CHARACTER(LEN=*),INTENT(IN) :: name_in 
     
    7678       
    7779      TYPE(t_field),POINTER :: field_glo(:) 
    78  
     80       
     81      IF (no_io) RETURN 
     82       
    7983!$OMP BARRIER 
    8084!$OMP MASTER       
     
    17771781    
    17781782   SUBROUTINE Close_files 
    1779    USE netcdf 
     1783   USE netcdf_mod 
    17801784   IMPLICIT NONE 
    17811785     INTEGER :: i,k,status 
  • codes/icosagcm/trunk/tools/ioipsl/ioipsl.f90

    r11 r488  
    88  USE errioipsl  
    99  USE stringop 
    10   USE mathelp     
     10 ! USE mathelp     
    1111  USE getincom 
    12   USE calendar    
    13   USE fliocom     
    14   USE flincom     
    15   USE histcom     
    16   USE restcom 
     12!  USE calendar    
     13!  USE fliocom     
     14!  USE flincom     
     15!  USE histcom     
     16!  USE restcom 
    1717END MODULE ioipsl 
Note: See TracChangeset for help on using the changeset viewer.