Changeset 171


Ignore:
Timestamp:
09/23/13 18:06:31 (11 years ago)
Author:
ymipsl
Message:
  • XIOS integration -

Compiling with "-with_xios" option. Adapt path to find XIOS library (arch.path)
Retro-compatible with the old output. If xios is not present, dynamico will use the standard writefield function.
Need to have the iodef.xml configuration file in the exec directory

YM

Location:
codes/icosagcm/trunk
Files:
2 added
11 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/arch/arch-X64_CURIE.env

    r143 r171  
    11module unload netcdf 
    22module unload hdf5 
    3 module load netcdf/3.6.3 
    4 module load hdf5 
     3module load netcdf/4.2_hdf5_parallel 
     4module load  hdf5/1.8.9_parallel 
    55module load vampir 
    66module load vampirtrace 
  • codes/icosagcm/trunk/arch/arch-X64_CURIE.fcm

    r152 r171  
    55%MAKE                gmake 
    66%FPP_FLAGS           -P 
    7 %FPP_DEF             KEY_NONE 
     7%FPP_DEF             KEY_NONE CPP_NETCDF4 
    88%BASE_FFLAGS         -i4 -r8 -auto -align all -I${MKLROOT}/include 
    99%PROD_FFLAGS         -g -traceback -O3 -vec-report2 
  • codes/icosagcm/trunk/arch/arch-X64_CURIE.path

    r152 r171  
    1010HDF5_LIBDIR="-Wl,-rpath=$HDF5_LIB_DIR -L$HDF5_LIB_DIR" 
    1111HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz -lcurl" 
     12 
     13XIOS_INCDIR="-I$WORKDIR/XIOS_COMMIT_V1.7/inc" 
     14XIOS_LIBDIR="-L$WORKDIR/XIOS_COMMIT_V1.7/lib" 
     15XIOS_LIB="-lxios -lstdc++" 
  • codes/icosagcm/trunk/bld.cfg

    r152 r171  
    3737bld::excl_dep        use::omp_lib 
    3838bld::excl_dep        inc::mpif.h 
     39bld::excl_dep        use::xios 
    3940 
    4041bld::tool::SHELL   /bin/bash 
  • codes/icosagcm/trunk/make_icosa

    r152 r171  
    88job=1 
    99full_defined="FALSE" 
     10with_xios_defined="FALSE" 
    1011arch_defined="FALSE" 
    1112parallel_defined="FALSE" 
     
    1314parallel="none" 
    1415CPP_KEY="CPP_NONE"  
     16ICOSA_LIB="" 
    1517 
    1618while (($# > 0)) 
     
    4648      "-full") 
    4749          full_defined="TRUE" ; shift ;; 
     50 
     51      "-with_xios") 
     52          with_xios_defined="TRUE" ; shift ;; 
    4853 
    4954      *) 
     
    110115fi 
    111116 
    112 ICOSA_LIB="$NETCDF_LIBDIR $NETCDF_LIB $HDF5_LIBDIR $HDF5_LIB" 
     117if [[ "$with_xios_defined" == "TRUE" ]] 
     118then 
     119  CPP_KEY="$CPP_KEY CPP_USING_XIOS" 
     120  COMPIL_FFLAGS="$COMPIL_FFLAGS $XIOS_INCDIR" 
     121  ICOSA_LIB="$ICOSA_LIB $XIOS_LIBDIR $XIOS_LIB" 
     122fi   
     123 
     124ICOSA_LIB="$ICOSA_LIB $NETCDF_LIBDIR $NETCDF_LIB $HDF5_LIBDIR $HDF5_LIB" 
    113125 
    114126rm -f config.fcm 
  • codes/icosagcm/trunk/src/caldyn_gcm.f90

    r167 r171  
    129129    USE trace 
    130130    USE omp_para 
     131    USE output_field_mod 
    131132    IMPLICIT NONE 
    132133    LOGICAL,INTENT(IN)    :: write_out 
     
    266267!            f_buf_i, f_buf_v, f_buf_u3d, f_buf_ulon, f_buf_ulat, f_buf_s, f_buf_p) 
    267268 
    268        CALL writefield("ps",f_ps) 
    269        CALL writefield("dps",f_dps) 
    270        CALL writefield("mass",f_mass) 
    271        CALL writefield("dmass",f_dmass) 
    272        CALL writefield("vort",f_qu) 
    273        CALL writefield("theta",f_theta) 
    274        CALL writefield("exner",f_pk) 
    275        CALL writefield("pv",f_qv) 
    276  
     269       CALL output_field("ps",f_ps) 
     270       CALL output_field("dps",f_dps) 
     271       CALL output_field("mass",f_mass) 
     272       CALL output_field("dmass",f_dmass) 
     273       CALL output_field("vort",f_qv) 
     274       CALL output_field("theta",f_theta) 
     275       CALL output_field("exner",f_pk) 
     276       CALL output_field("pv",f_qv) 
     277  
    277278    END IF 
    278279     
  • codes/icosagcm/trunk/src/icosa_gcm.f90

    r151 r171  
    99  USE vertical_interp_mod 
    1010  USE trace 
     11  USE output_field_mod 
     12  USE xios_mod 
     13  USE write_field 
    1114  IMPLICIT NONE 
    1215   
     
    2124  
    2225  CALL init_mpipara 
     26  CALL xios_init 
    2327  CALL init_earth_const  
    2428  CALL init_grid_param 
     
    6771  CALL init_time 
    6872 
     73  CALL output_field_init 
    6974  CALL init_timeloop 
    7075 
     
    7378!$OMP END PARALLEL 
    7479 
     80  CALL output_field_finalize 
    7581  CALL close_files 
    7682  CALL close_time_counter 
  • codes/icosagcm/trunk/src/mpi_mod.F90

    r151 r171  
    1111  INTEGER :: MPI_INFO_NULL 
    1212  INTEGER :: MPI_STATUS_SIZE  
     13  INTEGER :: MPI_SUM 
    1314  INTEGER,PARAMETER :: MPI_ADDRESS_KIND=KIND(INTEGER) 
    1415#endif 
  • codes/icosagcm/trunk/src/mpipara.F90

    r151 r171  
    1717  SUBROUTINE init_mpipara 
    1818  USE mpi_mod 
     19#ifdef CPP_USING_XIOS 
     20  USE xios 
     21#endif 
    1922  IMPLICIT NONE 
    2023 
     
    2629    IF (using_mpi) THEN 
    2730      CALL MPI_INIT(ierr) 
    28       comm_icosa=MPI_COMM_WORLD 
     31 
     32#ifdef CPP_USING_XIOS 
     33      CALL xios_initialize("icosagcm",return_comm=comm_icosa) 
     34#else 
     35     comm_icosa=MPI_COMM_WORLD 
     36#endif 
    2937      CALL MPI_COMM_SIZE(comm_icosa,mpi_size,ierr) 
    3038      CALL MPI_COMM_RANK(comm_icosa,mpi_rank,ierr) 
  • codes/icosagcm/trunk/src/timeloop_gcm.f90

    r170 r171  
    4040  USE check_conserve_mod 
    4141  USE ioipsl 
     42  USE output_field_mod 
     43  USE write_field 
    4244  IMPLICIT NONE 
    4345 
     
    7173   CALL getin('start_time',start_time)  
    7274 
     75    
    7376   write_period=0 
    7477   CALL getin('write_period',write_period) 
     
    9699!---------------------------------------------------- 
    97100 
     101   IF (xios_output) itau_out=1 
    98102 
    99103! Time-independant orography 
     
    203207  USE transfert_mod 
    204208  USE check_conserve_mod 
     209  USE xios_mod 
     210  USE output_field_mod 
    205211  IMPLICIT NONE   
    206212    REAL(rstd),POINTER :: q(:,:,:) 
     
    232238 
    233239  DO it=0,itaumax 
     240     
     241    CALL xios_update_calendar(it) 
    234242    IF (MOD(it,itau_sync)==0) THEN 
    235243      CALL send_message(f_ps,req_ps0) 
     
    247255!    IF (is_mpi_root) PRINT *,"It No :",It,"   t :",dt*It 
    248256    IF (mod(it,itau_out)==0 ) THEN 
    249       CALL writefield("q",f_q) 
    250257      CALL update_time_counter(dt*it) 
     258      CALL output_field("q",f_q) 
    251259      CALL check_conserve(f_ps,f_dps,f_u,f_theta_rhodz,f_phis,it)   
    252260    ENDIF 
     
    303311 
    304312!---------------------------------------------------- 
    305     jD_cur = jD_ref + day_ini - day_ref + it/day_step 
    306     jH_cur = jH_ref + start_time + mod(it,day_step)/float(day_step) 
    307     jD_cur = jD_cur + int(jH_cur) 
    308     jH_cur = jH_cur - int(jH_cur) 
     313!    jD_cur = jD_ref + day_ini - day_ref + it/day_step 
     314!    jH_cur = jH_ref + start_time + mod(it,day_step)/float(day_step) 
     315!    jD_cur = jD_cur + int(jH_cur) 
     316!    jH_cur = jH_cur - int(jH_cur) 
    309317    CALL physics(it,jD_cur,jH_cur,f_phis, f_ps, f_theta_rhodz, f_u, f_q) 
    310318    ENDDO 
  • codes/icosagcm/trunk/src/write_field.f90

    r161 r171  
    22USE genmod 
    33implicit none 
    4    
     4  PRIVATE   
    55  INTEGER,SAVE :: ncprec 
    66   
     
    1111  END TYPE ncvar 
    1212 
    13   integer, parameter :: MaxWriteField = 1000 
    14   integer, dimension(MaxWriteField),save :: FieldId 
    15   TYPE(ncvar), dimension(MaxWriteField),save :: FieldVarId 
    16   integer, dimension(MaxWriteField),save :: FieldIndex 
    17   character(len=255), dimension(MaxWriteField) ::  FieldName  
     13  INTEGER, PARAMETER :: MaxWriteField = 1000 
     14  INTEGER, DIMENSION(MaxWriteField),SAVE :: FieldId 
     15  TYPE(ncvar), dimension(MaxWriteField),SAVE :: FieldVarId 
     16  INTEGER, DIMENSION(MaxWriteField),SAVE :: FieldIndex 
     17  CHARACTER(len=255), DIMENSION(MaxWriteField) ::  FieldName  
    1818    
    19   integer,save :: NbField = 0 
     19  INTEGER,SAVE :: NbField = 0 
    2020   
    21   contains 
     21  PUBLIC init_writeField, writefield, close_files 
     22   
     23  CONTAINS 
    2224   
    2325    SUBROUTINE init_writeField 
Note: See TracChangeset for help on using the changeset viewer.