Changeset 961 for XIOS/trunk
- Timestamp:
- 10/04/16 18:59:37 (8 years ago)
- Location:
- XIOS/trunk/src/interface
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/interface/c/icdata.cpp
r932 r961 698 698 // ---------------------- Lecture des données ------------------------------ 699 699 700 void cxios_read_data_k80(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize) 701 { 702 std::string fieldid_str; 703 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 704 705 CTimer::get("XIOS").resume(); 706 CTimer::get("XIOS recv field").resume(); 707 708 CContext* context = CContext::getCurrent(); 709 if (!context->hasServer && !context->client->isAttachedModeEnabled()) 710 context->checkBuffersAndListen(); 711 712 CArray<double, 1> data(data_k8, shape(data_Xsize), neverDeleteData); 713 CField::get(fieldid_str)->getData(data); 714 715 CTimer::get("XIOS recv field").suspend(); 716 CTimer::get("XIOS").suspend(); 717 } 718 700 719 void cxios_read_data_k81(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize) 701 720 { … … 840 859 } 841 860 861 void cxios_read_data_k40(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 862 { 863 std::string fieldid_str; 864 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 865 866 CTimer::get("XIOS").resume(); 867 CTimer::get("XIOS recv field").resume(); 868 869 CContext* context = CContext::getCurrent(); 870 if (!context->hasServer && !context->client->isAttachedModeEnabled()) 871 context->checkBuffersAndListen(); 872 873 CArray<double, 1> data(data_Xsize); 874 CField::get(fieldid_str)->getData(data); 875 CArray<float, 1> data_tmp(data_k4, shape(data_Xsize), neverDeleteData); 876 data_tmp = data; 877 878 CTimer::get("XIOS recv field").suspend(); 879 CTimer::get("XIOS").suspend(); 880 } 881 842 882 void cxios_read_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 843 883 { -
XIOS/trunk/src/interface/fortran/idata.F90
r932 r961 206 206 207 207 ! Read data 208 SUBROUTINE cxios_read_data_k80(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C) 209 USE ISO_C_BINDING 210 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid 211 REAL (kind = C_DOUBLE), DIMENSION(*) :: data_k8 212 INTEGER (kind = C_INT) , VALUE :: fieldid_size 213 INTEGER (kind = C_INT) , VALUE :: data_Xsize 214 END SUBROUTINE cxios_read_data_k80 215 208 216 SUBROUTINE cxios_read_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C) 209 217 USE ISO_C_BINDING … … 275 283 INTEGER (kind = C_INT) , VALUE :: data_6size 276 284 END SUBROUTINE cxios_read_data_k87 285 286 SUBROUTINE cxios_read_data_k40(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C) 287 USE ISO_C_BINDING 288 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid 289 REAL (kind = C_FLOAT) , DIMENSION(*) :: data_k4 290 INTEGER (kind = C_INT) , VALUE :: fieldid_size 291 INTEGER (kind = C_INT) , VALUE :: data_Xsize 292 END SUBROUTINE cxios_read_data_k40 277 293 278 294 SUBROUTINE cxios_read_data_k41(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C) … … 640 656 641 657 ! Receive field functions 658 SUBROUTINE xios(recv_field_r8_0d)(fieldid, data1d_k8) 659 IMPLICIT NONE 660 CHARACTER(len = *) , INTENT(IN) :: fieldid 661 REAL (kind = 8), DIMENSION(*), INTENT(OUT) :: data1d_k8(:) 662 CALL cxios_read_data_k80(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1)) 663 END SUBROUTINE xios(recv_field_r8_0d) 664 642 665 SUBROUTINE xios(recv_field_r8_1d)(fieldid, data1d_k8) 643 666 IMPLICIT NONE … … 698 721 END SUBROUTINE xios(recv_field_r8_7d) 699 722 723 SUBROUTINE xios(recv_field_r4_0d)(fieldid, data0d_k4) 724 IMPLICIT NONE 725 CHARACTER(len = *) , INTENT(IN) :: fieldid 726 REAL (kind = 4), DIMENSION(*), INTENT(OUT) :: data0d_k4(:) 727 CALL cxios_read_data_k40(fieldid, len(fieldid), data0d_k4, size(data0d_k4, 1)) 728 END SUBROUTINE xios(recv_field_r4_0d) 729 700 730 SUBROUTINE xios(recv_field_r4_1d)(fieldid, data1d_k4) 701 731 IMPLICIT NONE -
XIOS/trunk/src/interface/fortran/ixios_interfaces.F90
r943 r961 11 11 xios(send_field_r4_0d), xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), & 12 12 xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d), & 13 xios(recv_field_r8_ 1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d),&13 xios(recv_field_r8_0d), xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d), & 14 14 xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), & 15 xios(recv_field_r4_ 1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d),&15 xios(recv_field_r4_0d), xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d), & 16 16 xios(recv_field_r4_4d), xios(recv_field_r4_5d), xios(recv_field_r4_6d), xios(recv_field_r4_7d), & 17 17 xios(getVar_k8), xios(getVar_k4), xios(getVar_int), xios(getVar_logic), xios(getVar_char), & … … 187 187 188 188 INTERFACE xios(recv_field) 189 MODULE PROCEDURE xios(recv_field_r8_ 1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d), &189 MODULE PROCEDURE xios(recv_field_r8_0d), xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d), & 190 190 xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), & 191 xios(recv_field_r4_ 1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d), &191 xios(recv_field_r4_0d), xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d), & 192 192 xios(recv_field_r4_4d), xios(recv_field_r4_5d), xios(recv_field_r4_6d), xios(recv_field_r4_7d) 193 193 END INTERFACE xios(recv_field)
Note: See TracChangeset
for help on using the changeset viewer.