Ignore:
Timestamp:
09/06/11 16:45:08 (13 years ago)
Author:
hozdoba
Message:

Corrections après tests sur titane

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/common/src/xmlio/fortran/ixmlioserver.f03.in

    r219 r266  
    66#include "macro.inc" 
    77 
    8 MODULE IXMLIOSERVER 
     8MODULE XIOS 
    99   USE, INTRINSIC :: ISO_C_BINDING 
    1010 
     
    110110 
    111111      SUBROUTINE xios_write_data(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
    112          import C_INT, C_CHAR, C_PTR, C_FLOAT, C_DOUBLE, C_BOOL 
     112         import C_INT, C_CHAR, C_PTR, C_DOUBLE, C_BOOL 
    113113         CHARACTER(kind = C_CHAR), DIMENSION(*) :: fieldid 
    114114         INTEGER  (kind = C_INT),  VALUE        :: fieldid_size 
     
    116116         INTEGER  (kind = C_INT), VALUE         :: data_Xsize, data_Ysize, data_Zsize 
    117117      END SUBROUTINE xios_write_data 
     118       
     119      SUBROUTINE xios_write_data_f(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
     120         import C_INT, C_CHAR, C_PTR, C_FLOAT, C_BOOL 
     121         CHARACTER(kind = C_CHAR), DIMENSION(*) :: fieldid 
     122         INTEGER  (kind = C_INT),  VALUE        :: fieldid_size 
     123         REAL(kind = C_FLOAT), DIMENSION(*)     :: data_k4 
     124         INTEGER  (kind = C_INT), VALUE         :: data_Xsize, data_Ysize, data_Zsize 
     125      END SUBROUTINE xios_write_data_f 
     126 
     127      SUBROUTINE  xios_init_ioserver(comm_client) BIND(C) 
     128         import C_INT 
     129         INTEGER  (kind = C_INT) :: comm_client 
     130      END SUBROUTINE xios_init_ioserver 
    118131 
    119132#define DECLARE_ATTRIBUTE(type, name) \ 
     
    149162 
    150163   CONTAINS ! Fonctions disponibles pour les utilisateurs. 
     164 
     165   SUBROUTINE  init_ioserver(comm_client) 
     166      INTEGER, INTENT(INOUT) :: comm_client 
     167      CALL xios_init_ioserver(comm_client) 
     168   END SUBROUTINE init_ioserver 
    151169 
    152170   SUBROUTINE handle_create(ret, dtype, idt) 
     
    165183   SUBROUTINE update_calendar(step) 
    166184      INTEGER, INTENT(IN):: step 
    167       IF (step < 1) THEN 
    168          PRINT *, "L'argument 'step' ne peut être négatif ou nul" 
    169          STOP 
    170       END IF 
    171185      CALL xios_update_calendar(step) 
    172186   END SUBROUTINE update_calendar 
     
    255269   SUBROUTINE dtreatment_end(context_hdl) 
    256270      TYPE(XHandle), INTENT(IN), VALUE :: context_hdl 
    257       CALL context_set_current(context_hdl) 
     271      !CALL context_set_current(context_hdl) 
    258272      CALL xios_dtreatment_end() 
    259273   END SUBROUTINE dtreatment_end 
    260274 
    261    SUBROUTINE write_data (fieldid,                         & 
    262                           data1d_k8, data2d_k8, data3d_k8) 
     275   SUBROUTINE write_data (fieldid, data1d_k4, data2d_k4, data3d_k4, data1d_k8, data2d_k8, data3d_k8) 
    263276      CHARACTER(len = *), INTENT(IN)                     :: fieldid 
    264277      REAL(kind = 8), DIMENSION(*), OPTIONAL, INTENT(IN) :: data1d_k8(:), data2d_k8(:,:), data3d_k8(:,:,:) 
     278      REAL(kind = 4), DIMENSION(*), OPTIONAL, INTENT(IN) :: data1d_k4(:), data2d_k4(:,:), data3d_k4(:,:,:) 
     279       
    265280      IF((.NOT. PRESENT(data1d_k8)) .AND. & 
    266281         (.NOT. PRESENT(data2d_k8)) .AND. & 
     
    269284         STOP 
    270285      END IF 
     286       
    271287      IF (PRESENT (data1d_k8)) THEN 
    272          CALL xios_write_data(fieldid, len(fieldid), data1d_k8, & 
    273                               size(data1d_k8, 1), -1, -1) 
     288         CALL xios_write_data(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1), -1, -1) 
    274289      ELSE IF (PRESENT (data2d_k8)) THEN 
    275          CALL xios_write_data(fieldid, len(fieldid), data2d_k8, & 
    276                               size(data2d_k8, 1), size(data2d_k8, 2), -1) 
     290         CALL xios_write_data(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2), -1) 
    277291      ELSE IF (PRESENT (data3d_k8)) THEN 
    278          CALL xios_write_data(fieldid, len(fieldid), data3d_k8, & 
    279                               size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3)) 
    280       END IF 
     292         CALL xios_write_data(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3)) 
     293      END IF 
     294       
     295      IF (PRESENT (data1d_k4)) THEN 
     296         CALL xios_write_data_f(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1), -1, -1) 
     297      ELSE IF (PRESENT (data2d_k4)) THEN 
     298         CALL xios_write_data_f(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2), -1) 
     299      ELSE IF (PRESENT (data3d_k4)) THEN 
     300         CALL xios_write_data_f(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3)) 
     301      END IF 
     302       
     303       
    281304   END SUBROUTINE 
    282305 
     
    389412   END SUBROUTINE set_file_attributes 
    390413 
    391 END MODULE IXMLIOSERVER 
     414END MODULE XIOS 
Note: See TracChangeset for help on using the changeset viewer.