- Timestamp:
- 02/14/12 15:36:14 (13 years ago)
- Location:
- XIOS/trunk/src/fortran
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/fortran/context_interface.f90
r286 r312 38 38 END SUBROUTINE cxios_context_set_current 39 39 40 SUBROUTINE cxios_context_create(context, context_id, context_id_size, calendar_type, &41 year, month, day, hour, minute, second) BIND(C)42 USE ISO_C_BINDING43 INTEGER (kind = C_INTPTR_T) :: context44 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: context_id45 INTEGER (kind = C_INT) , VALUE :: context_id_size46 INTEGER (kind = C_INT) , VALUE :: calendar_type, year, month, day, hour, minute, second47 END SUBROUTINE cxios_context_create48 49 40 SUBROUTINE cxios_context_valid_id(ret, idt, idt_size) BIND(C) 50 41 USE ISO_C_BINDING -
XIOS/trunk/src/fortran/domain_interface.f90
r286 r312 142 142 END SUBROUTINE cxios_set_domain_zoom_jbegin 143 143 144 SUBROUTINE cxios_set_domain_zoom_ni_loc(domain_hdl, zoom_ni_loc) BIND(C)145 USE ISO_C_BINDING146 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl147 INTEGER (kind = C_INT) , VALUE :: zoom_ni_loc148 END SUBROUTINE cxios_set_domain_zoom_ni_loc149 150 SUBROUTINE cxios_set_domain_zoom_nj_loc(domain_hdl, zoom_nj_loc) BIND(C)151 USE ISO_C_BINDING152 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl153 INTEGER (kind = C_INT) , VALUE :: zoom_nj_loc154 END SUBROUTINE cxios_set_domain_zoom_nj_loc155 156 SUBROUTINE cxios_set_domain_zoom_ibegin_loc(domain_hdl, zoom_ibegin_loc) BIND(C)157 USE ISO_C_BINDING158 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl159 INTEGER (kind = C_INT) , VALUE :: zoom_ibegin_loc160 END SUBROUTINE cxios_set_domain_zoom_ibegin_loc161 162 SUBROUTINE cxios_set_domain_zoom_jbegin_loc(domain_hdl, zoom_jbegin_loc) BIND(C)163 USE ISO_C_BINDING164 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl165 INTEGER (kind = C_INT) , VALUE :: zoom_jbegin_loc166 END SUBROUTINE cxios_set_domain_zoom_jbegin_loc167 168 144 SUBROUTINE cxios_set_domain_data_n_index(domain_hdl, data_n_index) BIND(C) 169 145 USE ISO_C_BINDING -
XIOS/trunk/src/fortran/domaingroup_interface.f90
r286 r312 142 142 END SUBROUTINE cxios_set_domaingroup_zoom_jbegin 143 143 144 SUBROUTINE cxios_set_domaingroup_zoom_ni_loc(domaingroup_hdl, zoom_ni_loc) BIND(C)145 USE ISO_C_BINDING146 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl147 INTEGER (kind = C_INT) , VALUE :: zoom_ni_loc148 END SUBROUTINE cxios_set_domaingroup_zoom_ni_loc149 150 SUBROUTINE cxios_set_domaingroup_zoom_nj_loc(domaingroup_hdl, zoom_nj_loc) BIND(C)151 USE ISO_C_BINDING152 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl153 INTEGER (kind = C_INT) , VALUE :: zoom_nj_loc154 END SUBROUTINE cxios_set_domaingroup_zoom_nj_loc155 156 SUBROUTINE cxios_set_domaingroup_zoom_ibegin_loc(domaingroup_hdl, zoom_ibegin_loc) BIND(C)157 USE ISO_C_BINDING158 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl159 INTEGER (kind = C_INT) , VALUE :: zoom_ibegin_loc160 END SUBROUTINE cxios_set_domaingroup_zoom_ibegin_loc161 162 SUBROUTINE cxios_set_domaingroup_zoom_jbegin_loc(domaingroup_hdl, zoom_jbegin_loc) BIND(C)163 USE ISO_C_BINDING164 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl165 INTEGER (kind = C_INT) , VALUE :: zoom_jbegin_loc166 END SUBROUTINE cxios_set_domaingroup_zoom_jbegin_loc167 168 144 SUBROUTINE cxios_set_domaingroup_data_n_index(domaingroup_hdl, data_n_index) BIND(C) 169 145 USE ISO_C_BINDING -
XIOS/trunk/src/fortran/iaxis.F90
r286 r312 5 5 USE AXIS_INTERFACE 6 6 USE AXISGROUP_INTERFACE 7 8 TYPE XAxisHandle9 INTEGER(kind = C_INTPTR_T) :: daddr10 END TYPE XAxisHandle11 12 TYPE XAxisGroupHandle13 INTEGER(kind = C_INTPTR_T) :: daddr14 END TYPE XAxisGroupHandle15 7 16 8 TYPE txios(axis) … … 22 14 END TYPE txios(axisgroup) 23 15 24 !----------------------------------------------------------------------------25 INTERFACE set_axis_attributes26 MODULE PROCEDURE set_axis_attributes_id,set_axis_attributes_hdl27 END INTERFACE28 29 INTERFACE set_axis_group_attributes30 MODULE PROCEDURE set_axisgroup_attributes_id,set_axisgroup_attributes_hdl31 END INTERFACE32 !----------------------------------------------------------------------------33 16 34 17 … … 199 182 200 183 END FUNCTION xios(is_valid_axisgroup) 201 202 203 204 205 !!!!!!!!!!!!! anciennes interfaces !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!206 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!207 208 SUBROUTINE set_axis_attributes_id(axis_id, name_, standard_name_, long_name_, unit_, size_, zvalue_)209 IMPLICIT NONE210 TYPE(XAxisHandle) :: axis_hdl211 CHARACTER(len = *) , INTENT(IN) :: axis_id212 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_213 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_214 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_215 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_216 INTEGER , OPTIONAL, INTENT(IN) :: size_217 REAL (kind = 8), dimension(*), OPTIONAL, INTENT(IN) :: zvalue_(:)218 219 CALL axis_handle_create(axis_hdl, axis_id)220 CALL set_axis_attributes_hdl(axis_hdl, name_, standard_name_, long_name_, unit_, size_, zvalue_)221 222 END SUBROUTINE set_axis_attributes_id223 224 SUBROUTINE set_axis_attributes_hdl(axis_hdl, name_, standard_name_, long_name_, unit_, size_, zvalue_)225 IMPLICIT NONE226 TYPE(XAxisHandle) , INTENT(IN) :: axis_hdl227 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_228 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_229 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_230 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_231 INTEGER , OPTIONAL, INTENT(IN) :: size_232 REAL (kind = 8), dimension(*), OPTIONAL, INTENT(IN) :: zvalue_(:)233 234 IF (PRESENT(name_)) THEN235 CALL cxios_set_axis_name(axis_hdl%daddr, name_, len(name_))236 END IF237 IF (PRESENT(standard_name_)) THEN238 CALL cxios_set_axis_standard_name(axis_hdl%daddr, standard_name_, len(standard_name_))239 END IF240 IF (PRESENT(long_name_)) THEN241 CALL cxios_set_axis_long_name(axis_hdl%daddr, long_name_, len(long_name_))242 END IF243 IF (PRESENT(unit_)) THEN244 CALL cxios_set_axis_unit(axis_hdl%daddr, unit_, len(unit_))245 END IF246 IF (PRESENT(size_)) THEN247 CALL cxios_set_axis_size(axis_hdl%daddr, size_)248 END IF249 IF (PRESENT(zvalue_)) THEN250 CALL cxios_set_axis_zvalue(axis_hdl%daddr, zvalue_, size(zvalue_, 1))251 END IF252 END SUBROUTINE set_axis_attributes_hdl253 254 SUBROUTINE set_axisgroup_attributes_id(axisgroup_id, name_, standard_name_, long_name_, unit_, size_, zvalue_)255 IMPLICIT NONE256 TYPE(XAxisGroupHandle) :: axisgroup_hdl257 CHARACTER(len = *) , INTENT(IN) :: axisgroup_id258 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_259 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_260 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_261 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_262 INTEGER , OPTIONAL, INTENT(IN) :: size_263 REAL (kind = 8), dimension(*), OPTIONAL, INTENT(IN) :: zvalue_(:)264 265 CALL axisgroup_handle_create(axisgroup_hdl, axisgroup_id)266 CALL set_axisgroup_attributes_hdl(axisgroup_hdl, name_, standard_name_, long_name_, unit_, size_, zvalue_)267 268 END SUBROUTINE set_axisgroup_attributes_id269 270 SUBROUTINE set_axisgroup_attributes_hdl(axisgroup_hdl, name_, standard_name_, long_name_, unit_, size_, zvalue_)271 IMPLICIT NONE272 TYPE(XAxisGroupHandle) , INTENT(IN) :: axisgroup_hdl273 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_274 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_275 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_276 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_277 INTEGER , OPTIONAL, INTENT(IN) :: size_278 REAL (kind = 8), dimension(*), OPTIONAL, INTENT(IN) :: zvalue_(:)279 280 IF (PRESENT(name_)) THEN281 CALL cxios_set_axisgroup_name(axisgroup_hdl%daddr, name_, len(name_))282 END IF283 IF (PRESENT(standard_name_)) THEN284 CALL cxios_set_axisgroup_standard_name(axisgroup_hdl%daddr, standard_name_, len(standard_name_))285 END IF286 IF (PRESENT(long_name_)) THEN287 CALL cxios_set_axisgroup_long_name(axisgroup_hdl%daddr, long_name_, len(long_name_))288 END IF289 IF (PRESENT(unit_)) THEN290 CALL cxios_set_axisgroup_unit(axisgroup_hdl%daddr, unit_, len(unit_))291 END IF292 IF (PRESENT(size_)) THEN293 CALL cxios_set_axisgroup_size(axisgroup_hdl%daddr, size_)294 END IF295 IF (PRESENT(zvalue_)) THEN296 CALL cxios_set_axisgroup_zvalue(axisgroup_hdl%daddr, zvalue_, size(zvalue_, 1))297 END IF298 END SUBROUTINE set_axisgroup_attributes_hdl299 300 SUBROUTINE axis_handle_create(ret, idt)301 IMPLICIT NONE302 TYPE(XAxisHandle) , INTENT(OUT):: ret303 CHARACTER(len = *), INTENT(IN) :: idt304 CALL cxios_axis_handle_create(ret%daddr, idt, len(idt))305 END SUBROUTINE axis_handle_create306 307 SUBROUTINE axisgroup_handle_create(ret, idt)308 IMPLICIT NONE309 TYPE(XAxisGroupHandle), INTENT(OUT):: ret310 CHARACTER(len = *) , INTENT(IN) :: idt311 CALL cxios_axisgroup_handle_create(ret%daddr, idt, len(idt))312 END SUBROUTINE axisgroup_handle_create313 314 LOGICAL FUNCTION axis_valid_id(idt)315 IMPLICIT NONE316 CHARACTER(len = *) , INTENT(IN) :: idt317 LOGICAL (kind = 1) :: val318 CALL cxios_axis_valid_id(val, idt, len(idt));319 axis_valid_id = val320 END FUNCTION axis_valid_id321 322 LOGICAL FUNCTION axisgroup_valid_id(idt)323 IMPLICIT NONE324 CHARACTER(len = *) , INTENT(IN) :: idt325 LOGICAL (kind = 1) :: val326 CALL cxios_axisgroup_valid_id(val, idt, len(idt));327 axisgroup_valid_id = val328 END FUNCTION axisgroup_valid_id329 184 330 185 END MODULE IAXIS -
XIOS/trunk/src/fortran/iccontext.cpp
r300 r312 81 81 } 82 82 83 // ------------------------ Création de contexte ---------------------------- 84 85 void cxios_context_create(XContextPtr * context, 86 const char * context_id, 87 int context_id_size, 88 XCalendarType calendar_type, 89 int year, 90 int month, 91 int day, 92 int hour, 93 int minute, 94 int second) 95 { 96 std::string context_id_str; 97 if (!cstr2string(context_id, context_id_size, context_id_str)) return; 98 try 99 { 100 boost::shared_ptr<xmlioserver::tree::CContext> _context = 101 CTreeManager::CreateContext(context_id_str); 102 *context = _context.get(); 103 switch(calendar_type) 104 { 105 case (D360) : 106 _context->setCalendar(boost::shared_ptr<xmlioserver::date::CCalendar> 107 (new xmlioserver::date::CD360Calendar 108 (year, month, day, hour, minute, second))); 109 break; 110 case (ALLLEAP) : 111 _context->setCalendar(boost::shared_ptr<xmlioserver::date::CCalendar> 112 (new xmlioserver::date::CAllLeapCalendar 113 (year, month, day, hour, minute, second))); 114 break; 115 case (NOLEAP) : 116 _context->setCalendar(boost::shared_ptr<xmlioserver::date::CCalendar> 117 (new xmlioserver::date::CNoLeapCalendar 118 (year, month, day, hour, minute, second))); 119 break; 120 case (JULIAN) : 121 _context->setCalendar(boost::shared_ptr<xmlioserver::date::CCalendar> 122 (new xmlioserver::date::CJulianCalendar 123 (year, month, day, hour, minute, second))); 124 break; 125 case (GREGORIAN): 126 _context->setCalendar(boost::shared_ptr<xmlioserver::date::CCalendar> 127 (new xmlioserver::date::CGregorianCalendar 128 (year, month, day, hour, minute, second))); 129 break; 130 default: 131 std::cerr << "Le calendrier n'est pas identifié" << std::endl; 132 exit (EXIT_FAILURE); 133 } 134 } 135 catch (xmlioserver::CException & exc) 136 { 137 std::cerr << exc.getMessage() << std::endl; 138 exit (EXIT_FAILURE); 139 } 140 } 141 83 142 84 // -------------------- Vérification des identifiants ----------------------- 143 85 -
XIOS/trunk/src/fortran/icdata.cpp
r300 r312 84 84 } 85 85 86 87 void cxios_dtreatment_start() 88 { 89 using namespace xmlioserver::tree; 90 using namespace xmlioserver; 91 try 92 { 93 MPI_Comm comm_client_server=comm::CMPIManager::GetCommClientServer() ; 94 MPI_Comm comm_server=comm::CMPIManager::GetCommServer() ; 95 96 boost::shared_ptr<CContext> context = 97 CObjectFactory::GetObject<CContext>(CObjectFactory::GetCurrentContextId()); 98 99 StdOStringStream oss; 100 oss << StdString("def_client_next.") 101 << CMPIManager::GetCommRank(CMPIManager::GetCommClient()); 102 CTreeManager::PrintTreeToFile(oss.str()); 103 oss.str(""); 104 boost::shared_ptr<CDataTreatment> dt(new CDataTreatment (context)); 105 context->setDataTreatment(dt); 106 107 oss << StdString("def_client_end.") 108 << CMPIManager::GetCommRank(CMPIManager::GetCommClient()); 109 CTreeManager::PrintTreeToFile(oss.str()); 110 111 if ( !comm::CMPIManager::IsConnected() ) 112 { 113 MPI_Request request = 0; 114 StdOStringStream ostrs; 115 116 CTreeManager::ToBinary(ostrs); 117 CLinearBuffer lbuffer(ostrs.str().size()+CBuffer::getDataHeaderSize()); 118 lbuffer.appendString(ostrs.str()); 119 CMPIManager::SendLinearBuffer(comm_client_server, 0, lbuffer, request); 120 CMPIManager::Wait(request); // Pas encore en mode RPC 121 122 123 CXIOSManager::RunClient(false, CMPIManager::GetCommClient()); 124 CClient::CreateClient(CMPIManager::GetCommClientServer()); 125 } 126 else 127 { 128 dt->createDataOutput<CNc4DataOutput>(CMPIManager::GetCommClient()); 129 } 130 } 131 catch (CException & exc) 132 { 133 std::cerr << exc.getMessage() << std::endl; 134 exit (EXIT_FAILURE); 135 } 136 } 137 138 void cxios_dtreatment_end(void) 139 { 140 try 141 { 142 boost::shared_ptr<xmlioserver::tree::CContext> context = 143 xmlioserver::CObjectFactory::GetObject<xmlioserver::tree::CContext> 144 (CObjectFactory::GetCurrentContextId()); 145 boost::shared_ptr<xmlioserver::data::CDataTreatment> dtreat = context->getDataTreatment(); 146 dtreat->finalize(); 147 148 // CMPIManager::Finalize(); 149 } 150 catch (CException & exc) 151 { 152 std::cerr << exc.getMessage() << std::endl; 153 exit (EXIT_FAILURE); 154 } 155 } 156 157 // ---------------------- Finalize du serveur ------------------------- 158 159 void cxios_finalize_ioserver(void) 160 { 161 try 162 { 163 CMPIManager::Finalize(); 164 } 165 catch (CException & exc) 166 { 167 std::cerr << exc.getMessage() << std::endl; 168 exit (EXIT_FAILURE); 169 } 170 } 171 172 // ---------------------- Initialisation du serveur ------------------------- 173 174 void cxios_init_ioserver(MPIComm * f_comm_client, MPIComm * f_comm_parent) 175 { 176 try 177 { 178 MPI_Comm comm_client_server, comm_server,comm_client,comm_parent; 179 xmlioserver::CTreeManager::ParseFile("iodef.xml"); 180 CTreeManager::SetCurrentContextId(StdString("xios")); 181 CMPIManager::InitialiseClient(NULL, NULL); 182 comm_parent=MPI_Comm_f2c(*f_comm_parent) ; 183 CMPIManager::DispatchClient(false, comm_client, comm_client_server, comm_server,comm_parent); 184 *f_comm_client=MPI_Comm_c2f(comm_client) ; 185 } 186 catch (CException & exc) 187 { 188 std::cerr << exc.getMessage() << std::endl; 189 exit (EXIT_FAILURE); 190 } 191 } 86 192 87 193 88 // ---------------------- Ecriture des données ------------------------------ -
XIOS/trunk/src/fortran/icdomain.cpp
r300 r312 172 172 } 173 173 174 void cxios_set_domain_zoom_ni_loc(XDomainPtr domain_hdl, int zoom_ni_loc)175 {176 domain_hdl->zoom_ni_loc.setValue(zoom_ni_loc);177 domain_hdl->sendAttributToServer(domain_hdl->zoom_ni_loc) ;178 }179 180 void cxios_set_domain_zoom_nj_loc(XDomainPtr domain_hdl, int zoom_nj_loc)181 {182 domain_hdl->zoom_nj_loc.setValue(zoom_nj_loc);183 domain_hdl->sendAttributToServer(domain_hdl->zoom_nj_loc) ;184 }185 186 void cxios_set_domain_zoom_ibegin_loc(XDomainPtr domain_hdl, int zoom_ibegin_loc)187 {188 domain_hdl->zoom_ibegin_loc.setValue(zoom_ibegin_loc);189 domain_hdl->sendAttributToServer(domain_hdl->zoom_ibegin_loc) ;190 }191 192 void cxios_set_domain_zoom_jbegin_loc(XDomainPtr domain_hdl, int zoom_jbegin_loc)193 {194 domain_hdl->zoom_jbegin_loc.setValue(zoom_jbegin_loc);195 domain_hdl->sendAttributToServer(domain_hdl->zoom_jbegin_loc) ;196 }197 198 174 void cxios_set_domain_data_n_index(XDomainPtr domain_hdl, int data_n_index) 199 175 { … … 389 365 } 390 366 391 void cxios_set_domaingroup_zoom_ni_loc(XDomainGroupPtr domaingroup_hdl, int zoom_ni_loc)392 {393 domaingroup_hdl->zoom_ni_loc.setValue(zoom_ni_loc);394 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->zoom_ni_loc) ;395 }396 397 void cxios_set_domaingroup_zoom_nj_loc(XDomainGroupPtr domaingroup_hdl, int zoom_nj_loc)398 {399 domaingroup_hdl->zoom_nj_loc.setValue(zoom_nj_loc);400 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->zoom_nj_loc) ;401 }402 403 void cxios_set_domaingroup_zoom_ibegin_loc(XDomainGroupPtr domaingroup_hdl, int zoom_ibegin_loc)404 {405 domaingroup_hdl->zoom_ibegin_loc.setValue(zoom_ibegin_loc);406 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->zoom_ibegin_loc) ;407 }408 409 void cxios_set_domaingroup_zoom_jbegin_loc(XDomainGroupPtr domaingroup_hdl, int zoom_jbegin_loc)410 {411 domaingroup_hdl->zoom_jbegin_loc.setValue(zoom_jbegin_loc);412 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->zoom_jbegin_loc) ;413 }414 415 367 void cxios_set_domaingroup_data_n_index(XDomainGroupPtr domaingroup_hdl, int data_n_index) 416 368 { -
XIOS/trunk/src/fortran/icontext.F90
r286 r312 6 6 USE IDATE 7 7 8 TYPE XContextHandle9 INTEGER(kind = C_INTPTR_T) :: daddr10 END TYPE XContextHandle11 8 12 9 TYPE txios(context) … … 14 11 END TYPE txios(context) 15 12 16 !----------------------------------------------------------------------------17 INTERFACE set_context_attributes18 MODULE PROCEDURE set_context_attributes_id,set_context_attributes_hdl19 END INTERFACE20 !----------------------------------------------------------------------------21 13 22 14 CONTAINS ! Fonctions disponibles pour les utilisateurs. … … 100 92 101 93 END SUBROUTINE xios(set_current_context) 102 103 104 ! SUBROUTINE context_create(context_hdl, context_id, calendar_type, init_date) 105 ! TYPE(XContextHandle) , INTENT(OUT) :: context_hdl 106 ! CHARACTER(len = *) , INTENT(IN) :: context_id 107 ! INTEGER , INTENT(IN) :: calendar_type 108 ! TYPE(XDate) , OPTIONAL, INTENT(IN) :: init_date 109 ! IF (PRESENT(init_date)) THEN 110 ! CALL cxios_context_create(context_hdl%daddr, context_id, len(context_id), calendar_type, & 111 ! init_date%year, init_date%month, init_date%day, & 112 ! init_date%hour, init_date%minute, init_date%second) 113 ! ELSE 114 ! CALL cxios_context_create(context_hdl%daddr, context_id, len(context_id), calendar_type, & 115 ! 0, 1, 1, 0, 0, 0) 116 ! END IF 117 ! END SUBROUTINE context_create 118 94 119 95 LOGICAL FUNCTION xios(is_valid_context)(idt) 120 96 IMPLICIT NONE … … 127 103 END FUNCTION xios(is_valid_context) 128 104 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 !!!!!!!! ancienne interface149 150 SUBROUTINE set_context_attributes_id( context_id, calendar_type_, start_date_, output_dir_)151 IMPLICIT NONE152 TYPE(XContextHandle) :: context_hdl153 CHARACTER(len = *) , INTENT(IN) :: context_id154 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type_155 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date_156 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir_157 158 CALL context_handle_create(context_hdl, context_id)159 CALL set_context_attributes_hdl( context_hdl, calendar_type_, start_date_, output_dir_)160 END SUBROUTINE set_context_attributes_id161 162 SUBROUTINE set_context_attributes_hdl( context_hdl, calendar_type_, start_date_, output_dir_)163 IMPLICIT NONE164 TYPE(XContextHandle) , INTENT(IN) :: context_hdl165 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type_166 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date_167 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir_168 169 IF (PRESENT(calendar_type_)) THEN170 CALL cxios_set_context_calendar_type(context_hdl%daddr, calendar_type_, len(calendar_type_))171 END IF172 IF (PRESENT(start_date_)) THEN173 CALL cxios_set_context_start_date(context_hdl%daddr, start_date_, len(start_date_))174 END IF175 IF (PRESENT(output_dir_)) THEN176 CALL cxios_set_context_output_dir(context_hdl%daddr, output_dir_, len(output_dir_))177 END IF178 END SUBROUTINE set_context_attributes_hdl179 180 SUBROUTINE context_handle_create(ret, idt)181 IMPLICIT NONE182 TYPE(XContextHandle), INTENT(OUT):: ret183 CHARACTER(len = *) , INTENT(IN) :: idt184 CALL cxios_context_handle_create(ret%daddr, idt, len(idt))185 END SUBROUTINE context_handle_create186 187 SUBROUTINE context_set_current(context, withswap)188 TYPE(XContextHandle) , INTENT(IN) :: context189 LOGICAL , OPTIONAL, INTENT(IN) :: withswap190 LOGICAL (kind = 1) :: wswap191 IF (PRESENT(withswap)) THEN192 wswap = withswap193 ELSE194 wswap = .FALSE.195 END IF196 CALL cxios_context_set_current(context%daddr, wswap)197 END SUBROUTINE context_set_current198 199 SUBROUTINE context_create(context_hdl, context_id, calendar_type, init_date)200 TYPE(XContextHandle) , INTENT(OUT) :: context_hdl201 CHARACTER(len = *) , INTENT(IN) :: context_id202 INTEGER , INTENT(IN) :: calendar_type203 TYPE(XDate) , OPTIONAL, INTENT(IN) :: init_date204 IF (PRESENT(init_date)) THEN205 CALL cxios_context_create(context_hdl%daddr, context_id, len(context_id), calendar_type, &206 init_date%year, init_date%month, init_date%day, &207 init_date%hour, init_date%minute, init_date%second)208 ELSE209 CALL cxios_context_create(context_hdl%daddr, context_id, len(context_id), calendar_type, &210 0, 1, 1, 0, 0, 0)211 END IF212 END SUBROUTINE context_create213 214 LOGICAL FUNCTION context_valid_id(idt)215 IMPLICIT NONE216 CHARACTER(len = *) , INTENT(IN) :: idt217 LOGICAL (kind = 1) :: val218 CALL cxios_context_valid_id(val, idt, len(idt));219 context_valid_id = val220 END FUNCTION context_valid_id221 222 223 105 224 106 END MODULE ICONTEXT -
XIOS/trunk/src/fortran/idata.F90
r300 r312 34 34 END SUBROUTINE cxios_context_finalize 35 35 36 SUBROUTINE cxios_init_ioserver(comm_client,comm_parent) BIND(C)37 USE ISO_C_BINDING38 INTEGER (kind = C_INT) :: comm_client39 INTEGER (kind = C_INT) :: comm_parent40 END SUBROUTINE cxios_init_ioserver41 42 SUBROUTINE cxios_finalize_ioserver BIND(C)43 END SUBROUTINE cxios_finalize_ioserver44 36 45 37 SUBROUTINE cxios_finalize BIND(C) 46 38 END SUBROUTINE cxios_finalize 47 39 48 SUBROUTINE cxios_dtreatment_start() BIND(C) 49 USE ISO_C_BINDING 50 END SUBROUTINE cxios_dtreatment_start 51 52 SUBROUTINE cxios_dtreatment_end() BIND(C) 53 ! Sans argument 54 END SUBROUTINE cxios_dtreatment_end 55 40 56 41 SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C) 57 42 USE ISO_C_BINDING … … 104 89 END INTERFACE 105 90 106 INTERFACE write_data107 MODULE PROCEDURE write_data_k81,write_data_k82,write_data_k83,write_data_k41,write_data_k42,write_data_k43108 END INTERFACE109 91 110 92 CONTAINS ! Fonctions disponibles pour les utilisateurs. … … 210 192 END SUBROUTINE xios(send_field_r4_3d) 211 193 212 213 214 215 !!!!!!!!!!!!!! anciennes Interfaces !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!216 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!217 218 SUBROUTINE init_ioserver(local_comm,return_comm )219 IMPLICIT NONE220 INCLUDE 'mpif.h'221 INTEGER, INTENT(OUT),OPTIONAL :: return_comm222 INTEGER, INTENT(IN),OPTIONAL :: local_comm223 224 INTEGER :: comm_client225 INTEGER :: comm_parent226 227 IF (PRESENT(local_comm)) THEN228 comm_parent=local_comm229 ELSE230 comm_parent=MPI_COMM_WORLD231 ENDIF232 233 CALL cxios_init_ioserver(comm_client,comm_parent)234 IF (PRESENT(return_comm)) return_comm=comm_client ;235 236 END SUBROUTINE init_ioserver237 238 SUBROUTINE finalize_ioserver239 IMPLICIT NONE240 241 CALL cxios_finalize_ioserver242 243 END SUBROUTINE finalize_ioserver244 245 246 SUBROUTINE dtreatment_start(context_hdl, filetype)247 TYPE(XContextHandle), INTENT(IN) :: context_hdl248 INTEGER , INTENT(IN), OPTIONAL :: filetype249 INTEGER :: filetype_250 IF (PRESENT(filetype)) THEN251 filetype_ = filetype252 ELSE253 filetype_ = NETCDF4254 END IF255 CALL context_set_current(context_hdl)256 CALL cxios_dtreatment_start()257 END SUBROUTINE dtreatment_start258 259 SUBROUTINE dtreatment_end(context_hdl)260 TYPE(XContextHandle), INTENT(IN), OPTIONAL :: context_hdl261 CALL cxios_dtreatment_end()262 END SUBROUTINE dtreatment_end263 264 SUBROUTINE write_data_k81(fieldid, data1d_k8)265 CHARACTER(len = *) , INTENT(IN) :: fieldid266 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:)267 CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1))268 END SUBROUTINE write_data_k81269 270 SUBROUTINE write_data_k82(fieldid, data2d_k8)271 CHARACTER(len = *) , INTENT(IN) :: fieldid272 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:)273 CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2))274 END SUBROUTINE write_data_k82275 276 SUBROUTINE write_data_k83(fieldid, data3d_k8)277 CHARACTER(len = *) , INTENT(IN) :: fieldid278 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:)279 CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3))280 END SUBROUTINE write_data_k83281 282 SUBROUTINE write_data_k41(fieldid, data1d_k4)283 CHARACTER(len = *) , INTENT(IN) :: fieldid284 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:)285 CALL cxios_write_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1))286 END SUBROUTINE write_data_k41287 288 SUBROUTINE write_data_k42(fieldid, data2d_k4)289 CHARACTER(len = *) , INTENT(IN) :: fieldid290 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data2d_k4(:,:)291 CALL cxios_write_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2))292 END SUBROUTINE write_data_k42293 294 SUBROUTINE write_data_k43(fieldid, data3d_k4)295 CHARACTER(len = *) , INTENT(IN) :: fieldid296 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data3d_k4(:,:,:)297 CALL cxios_write_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3))298 END SUBROUTINE write_data_k43299 194 300 195 END MODULE IDATA -
XIOS/trunk/src/fortran/idate.F90
r300 r312 5 5 ! enum XCalendarType 6 6 INTEGER(kind = C_INT), PARAMETER :: D360 = 0 , ALLLEAP = 1 , NOLEAP = 2 , JULIAN = 3 , GREGORIAN = 4 7 8 TYPE XDate9 INTEGER :: year, month, day, hour, minute, second10 END TYPE XDate11 12 TYPE XDuration13 REAL(kind = 8) :: year, month, day, hour, minute, second14 END TYPE XDuration15 7 16 8 TYPE txios(date) … … 63 55 END SUBROUTINE xios(update_calendar) 64 56 65 66 !!!!!!!!!!!! anciennes interfaces !!!!!!!!!!!!!!!!67 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!68 69 SUBROUTINE set_timestep(timestep)70 TYPE(XDuration), INTENT(IN):: timestep71 CALL cxios_set_timestep(timestep%year, timestep%month , timestep%day, &72 timestep%hour, timestep%minute, timestep%second)73 END SUBROUTINE set_timestep74 75 SUBROUTINE update_calendar(step)76 INTEGER, INTENT(IN):: step77 IF (step < 0) THEN78 PRINT *, "L'argument 'step' ne peut être négatif"79 STOP80 END IF81 CALL cxios_update_calendar(step)82 END SUBROUTINE update_calendar83 57 84 58 END MODULE IDATE -
XIOS/trunk/src/fortran/idomain.F90
r286 r312 6 6 USE DOMAINGROUP_INTERFACE 7 7 8 TYPE XDomainHandle9 INTEGER(kind = C_INTPTR_T) :: daddr10 END TYPE XDomainHandle11 12 TYPE XDomainGroupHandle13 INTEGER(kind = C_INTPTR_T) :: daddr14 END TYPE XDomainGroupHandle15 16 8 TYPE txios(domain) 17 9 INTEGER(kind = C_INTPTR_T) :: daddr … … 22 14 END TYPE txios(domaingroup) 23 15 24 !----------------------------------------------------------------------------25 INTERFACE set_domain_attributes26 MODULE PROCEDURE set_domain_attributes_id,set_domain_attributes_hdl27 END INTERFACE28 29 INTERFACE set_domain_group_attributes30 MODULE PROCEDURE set_domaingroup_attributes_id,set_domaingroup_attributes_hdl31 END INTERFACE32 !----------------------------------------------------------------------------33 16 34 17 CONTAINS ! Fonctions disponibles pour les utilisateurs. … … 38 21 ( domaingroup_id, name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, & 39 22 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, & 40 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, zoom_ni_loc, zoom_nj_loc, zoom_ibegin_loc,&41 zoom_jbegin_loc, data_n_index, data_i_index, data_j_index,lonvalue, latvalue)23 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index, & 24 lonvalue, latvalue) 42 25 IMPLICIT NONE 43 26 TYPE(txios(domaingroup)) :: domaingroup_hdl … … 65 48 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin 66 49 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin 67 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_loc68 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_loc69 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc70 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc71 50 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index 72 51 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index(:) … … 79 58 ( domaingroup_hdl, name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, & 80 59 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, & 81 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, zoom_ni_loc, zoom_nj_loc, zoom_ibegin_loc,&82 zoom_jbegin_loc, data_n_index, data_i_index, data_j_index,lonvalue, latvalue)60 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index, & 61 lonvalue, latvalue) 83 62 84 63 END SUBROUTINE xios(set_domaingroup_attr) … … 87 66 ( domaingroup_hdl,name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, & 88 67 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, & 89 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, zoom_ni_loc, zoom_nj_loc, zoom_ibegin_loc,&90 zoom_jbegin_loc, data_n_index, data_i_index,data_j_index, lonvalue, latvalue)68 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, & 69 data_j_index, lonvalue, latvalue) 91 70 IMPLICIT NONE 92 71 TYPE(txios(domaingroup)) , INTENT(IN) :: domaingroup_hdl … … 113 92 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin 114 93 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin 115 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_loc116 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_loc117 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc118 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc119 94 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index 120 95 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index(:) … … 123 98 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: latvalue(:) 124 99 125 CALL xios(set_domaingroup_attr_hdl_) 126 ( domaingroup_hdl,name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, 100 CALL xios(set_domaingroup_attr_hdl_) & 101 ( domaingroup_hdl,name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, & 127 102 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, & 128 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, zoom_ni_loc, zoom_nj_loc, zoom_ibegin_loc,&129 zoom_jbegin_loc, data_n_index, data_i_index, data_j_index,lonvalue, latvalue)103 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index, & 104 lonvalue, latvalue) 130 105 131 106 END SUBROUTINE xios(set_domaingroup_attr_hdl) … … 134 109 ( domaingroup_hdl, name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_, & 135 110 ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_, & 136 zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_,&137 zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_,lonvalue_, latvalue_)111 zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, data_n_index_, data_i_index_, data_j_index_, & 112 lonvalue_, latvalue_) 138 113 IMPLICIT NONE 139 114 TYPE(txios(domaingroup)) , INTENT(IN) :: domaingroup_hdl … … 161 136 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_ 162 137 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_ 163 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_loc_164 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_loc_165 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc_166 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc_167 138 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index_ 168 139 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index_(:) … … 240 211 CALL cxios_set_domaingroup_zoom_jbegin(domaingroup_hdl%daddr, zoom_jbegin_) 241 212 END IF 242 IF (PRESENT(zoom_ni_loc_)) THEN 243 CALL cxios_set_domaingroup_zoom_ni_loc(domaingroup_hdl%daddr, zoom_ni_loc_) 244 END IF 245 IF (PRESENT(zoom_nj_loc_)) THEN 246 CALL cxios_set_domaingroup_zoom_nj_loc(domaingroup_hdl%daddr, zoom_nj_loc_) 247 END IF 248 IF (PRESENT(zoom_ibegin_loc_)) THEN 249 CALL cxios_set_domaingroup_zoom_ibegin_loc(domaingroup_hdl%daddr, zoom_ibegin_loc_) 250 END IF 251 IF (PRESENT(zoom_jbegin_loc_)) THEN 252 CALL cxios_set_domaingroup_zoom_jbegin_loc(domaingroup_hdl%daddr, zoom_jbegin_loc_) 253 END IF 213 254 214 IF (PRESENT(data_n_index_)) THEN 255 215 CALL cxios_set_domaingroup_data_n_index(domaingroup_hdl%daddr, data_n_index_) … … 274 234 ( domain_id, name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, & 275 235 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, & 276 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, zoom_ni_loc, zoom_nj_loc, zoom_ibegin_loc, & 277 zoom_jbegin_loc, data_n_index, data_i_index, data_j_index, lonvalue, latvalue) 278 IMPLICIT NONE 236 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index, & 237 lonvalue, latvalue) 238 IMPLICIT NONE 239 279 240 TYPE(txios(domain)) :: domain_hdl 280 241 CHARACTER(len = *) , INTENT(IN) :: domain_id … … 301 262 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin 302 263 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin 303 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_loc304 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_loc305 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc306 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc307 264 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index 308 265 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index(:) … … 312 269 313 270 CALL xios(get_domain_handle)(domain_id,domain_hdl) 314 CALL xios(set_domain_attr_hdl_) 271 CALL xios(set_domain_attr_hdl_) & 315 272 ( domain_hdl, name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, & 316 273 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, & 317 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, zoom_ni_loc, zoom_nj_loc, zoom_ibegin_loc,&318 zoom_jbegin_loc, data_n_index, data_i_index, data_j_index,lonvalue, latvalue)274 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index, & 275 lonvalue, latvalue) 319 276 320 277 END SUBROUTINE xios(set_domain_attr) 321 278 322 279 323 SUBROUTINE xios(set_domain_attr_hdl) 280 SUBROUTINE xios(set_domain_attr_hdl) & 324 281 ( domain_hdl,name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, & 325 282 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, & 326 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, zoom_ni_loc, zoom_nj_loc, zoom_ibegin_loc, & 327 zoom_jbegin_loc, data_n_index, data_i_index, data_j_index, lonvalue, latvalue) 328 IMPLICIT NONE 283 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, & 284 data_j_index, lonvalue, latvalue) 285 IMPLICIT NONE 286 329 287 TYPE(txios(domain)) , INTENT(IN) :: domain_hdl 330 288 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name … … 350 308 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin 351 309 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin 352 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_loc353 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_loc354 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc355 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc356 310 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index 357 311 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index(:) … … 363 317 ( domain_hdl,name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, & 364 318 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, & 365 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, zoom_ni_loc, zoom_nj_loc, zoom_ibegin_loc,&366 zoom_jbegin_loc, data_n_index, data_i_index, data_j_index,lonvalue, latvalue)319 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index, & 320 lonvalue, latvalue) 367 321 368 322 END SUBROUTINE xios(set_domain_attr_hdl) 369 323 370 SUBROUTINE xios(set_domain_attr_hdl_) 324 SUBROUTINE xios(set_domain_attr_hdl_) & 371 325 ( domain_hdl,name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_, & 372 326 ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_, & 373 zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_, & 374 zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_, lonvalue_, latvalue_) 327 zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, data_n_index_, data_i_index_, data_j_index_, & 328 lonvalue_, latvalue_) 329 375 330 IMPLICIT NONE 376 331 TYPE(txios(domain)) , INTENT(IN) :: domain_hdl … … 398 353 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_ 399 354 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_ 400 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_loc_401 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_loc_402 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc_403 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc_404 355 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index_ 405 356 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index_(:) … … 476 427 CALL cxios_set_domain_zoom_jbegin(domain_hdl%daddr, zoom_jbegin_) 477 428 END IF 478 IF (PRESENT(zoom_ni_loc_)) THEN479 CALL cxios_set_domain_zoom_ni_loc(domain_hdl%daddr, zoom_ni_loc_)480 END IF481 IF (PRESENT(zoom_nj_loc_)) THEN482 CALL cxios_set_domain_zoom_nj_loc(domain_hdl%daddr, zoom_nj_loc_)483 END IF484 IF (PRESENT(zoom_ibegin_loc_)) THEN485 CALL cxios_set_domain_zoom_ibegin_loc(domain_hdl%daddr, zoom_ibegin_loc_)486 END IF487 IF (PRESENT(zoom_jbegin_loc_)) THEN488 CALL cxios_set_domain_zoom_jbegin_loc(domain_hdl%daddr, zoom_jbegin_loc_)489 END IF490 429 IF (PRESENT(data_n_index_)) THEN 491 430 CALL cxios_set_domain_data_n_index(domain_hdl%daddr, data_n_index_) … … 541 480 xios(is_valid_domaingroup) = val 542 481 END FUNCTION xios(is_valid_domaingroup) 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 !!!!!!!!!!!! Ancienne interfaces !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!575 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!576 577 SUBROUTINE set_domaingroup_attributes_id &578 ( domaingroup_id, name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_, &579 ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_, &580 zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_, &581 zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_, lonvalue_, latvalue_)582 IMPLICIT NONE583 TYPE(XDomainGroupHandle) :: domaingroup_hdl584 CHARACTER(len = *) , INTENT(IN) :: domaingroup_id585 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_586 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_587 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_588 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref_589 INTEGER , OPTIONAL, INTENT(IN) :: ni_glo_590 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo_591 INTEGER , OPTIONAL, INTENT(IN) :: ibegin_592 INTEGER , OPTIONAL, INTENT(IN) :: iend_593 INTEGER , OPTIONAL, INTENT(IN) :: ni_594 INTEGER , OPTIONAL, INTENT(IN) :: jbegin_595 INTEGER , OPTIONAL, INTENT(IN) :: jend_596 INTEGER , OPTIONAL, INTENT(IN) :: nj_597 LOGICAL , dimension(*), OPTIONAL, INTENT(IN) :: mask_(:,:)598 INTEGER , OPTIONAL, INTENT(IN) :: data_dim_599 INTEGER , OPTIONAL, INTENT(IN) :: data_ni_600 INTEGER , OPTIONAL, INTENT(IN) :: data_nj_601 INTEGER , OPTIONAL, INTENT(IN) :: data_ibegin_602 INTEGER , OPTIONAL, INTENT(IN) :: data_jbegin_603 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_604 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_605 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_606 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_607 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_loc_608 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_loc_609 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc_610 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc_611 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index_612 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index_(:)613 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_j_index_(:)614 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: lonvalue_(:)615 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: latvalue_(:)616 617 CALL domaingroup_handle_create(domaingroup_hdl, domaingroup_id)618 CALL set_domaingroup_attributes_hdl &619 ( domaingroup_hdl, name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_, &620 ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_, &621 zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_, &622 zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_, lonvalue_, latvalue_)623 624 END SUBROUTINE set_domaingroup_attributes_id625 626 SUBROUTINE set_domaingroup_attributes_hdl &627 ( domaingroup_hdl,name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_, &628 ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_, &629 zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_, &630 zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_, lonvalue_, latvalue_)631 IMPLICIT NONE632 TYPE(XDomainGroupHandle) , INTENT(IN) :: domaingroup_hdl633 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_634 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_635 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_636 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref_637 INTEGER , OPTIONAL, INTENT(IN) :: ni_glo_638 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo_639 INTEGER , OPTIONAL, INTENT(IN) :: ibegin_640 INTEGER , OPTIONAL, INTENT(IN) :: iend_641 INTEGER , OPTIONAL, INTENT(IN) :: ni_642 INTEGER , OPTIONAL, INTENT(IN) :: jbegin_643 INTEGER , OPTIONAL, INTENT(IN) :: jend_644 INTEGER , OPTIONAL, INTENT(IN) :: nj_645 LOGICAL , dimension(*) , OPTIONAL, INTENT(IN) :: mask_(:,:)646 LOGICAL(kind = 1), dimension(:,:), ALLOCATABLE :: mask__! (size(mask_,1),size(mask,2))647 INTEGER , OPTIONAL, INTENT(IN) :: data_dim_648 INTEGER , OPTIONAL, INTENT(IN) :: data_ni_649 INTEGER , OPTIONAL, INTENT(IN) :: data_nj_650 INTEGER , OPTIONAL, INTENT(IN) :: data_ibegin_651 INTEGER , OPTIONAL, INTENT(IN) :: data_jbegin_652 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_653 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_654 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_655 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_656 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_loc_657 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_loc_658 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc_659 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc_660 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index_661 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index_(:)662 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_j_index_(:)663 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: lonvalue_(:)664 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: latvalue_(:)665 666 IF (PRESENT(name_)) THEN667 CALL cxios_set_domaingroup_name(domaingroup_hdl%daddr, name_, len(name_))668 END IF669 IF (PRESENT(standard_name_)) THEN670 CALL cxios_set_domaingroup_standard_name(domaingroup_hdl%daddr, standard_name_, len(standard_name_))671 END IF672 IF (PRESENT(long_name_)) THEN673 CALL cxios_set_domaingroup_long_name(domaingroup_hdl%daddr, long_name_, len(long_name_))674 END IF675 IF (PRESENT(domain_group_ref_)) THEN676 CALL cxios_set_domaingroup_domain_group_ref(domaingroup_hdl%daddr, domain_group_ref_, len(domain_group_ref_))677 END IF678 IF (PRESENT(ni_glo_)) THEN679 CALL cxios_set_domaingroup_ni_glo(domaingroup_hdl%daddr, ni_glo_)680 END IF681 IF (PRESENT(nj_glo_)) THEN682 CALL cxios_set_domaingroup_nj_glo(domaingroup_hdl%daddr, nj_glo_)683 END IF684 IF (PRESENT(ibegin_)) THEN685 CALL cxios_set_domaingroup_ibegin(domaingroup_hdl%daddr, ibegin_)686 END IF687 IF (PRESENT(iend_)) THEN688 CALL cxios_set_domaingroup_iend(domaingroup_hdl%daddr, iend_)689 END IF690 IF (PRESENT(ni_)) THEN691 CALL cxios_set_domaingroup_ni(domaingroup_hdl%daddr, ni_)692 END IF693 IF (PRESENT(jbegin_)) THEN694 CALL cxios_set_domaingroup_jbegin(domaingroup_hdl%daddr, jbegin_)695 END IF696 IF (PRESENT(jend_)) THEN697 CALL cxios_set_domaingroup_jend(domaingroup_hdl%daddr, jend_)698 END IF699 IF (PRESENT(nj_)) THEN700 CALL cxios_set_domaingroup_nj(domaingroup_hdl%daddr, nj_)701 END IF702 IF (PRESENT(mask_)) THEN703 ALLOCATE(mask__(size(mask_, 1), size(mask_, 2)))704 mask__(:,:) = mask_(:,:)705 CALL cxios_set_domaingroup_mask(domaingroup_hdl%daddr, mask__, size(mask_, 1), size(mask_, 2))706 DEALLOCATE(mask__)707 END IF708 IF (PRESENT(data_dim_)) THEN709 CALL cxios_set_domaingroup_data_dim(domaingroup_hdl%daddr, data_dim_)710 END IF711 IF (PRESENT(data_ni_)) THEN712 CALL cxios_set_domaingroup_data_ni(domaingroup_hdl%daddr, data_ni_)713 END IF714 IF (PRESENT(data_nj_)) THEN715 CALL cxios_set_domaingroup_data_nj(domaingroup_hdl%daddr, data_nj_)716 END IF717 IF (PRESENT(data_ibegin_)) THEN718 CALL cxios_set_domaingroup_data_ibegin(domaingroup_hdl%daddr, data_ibegin_)719 END IF720 IF (PRESENT(data_jbegin_)) THEN721 CALL cxios_set_domaingroup_data_jbegin(domaingroup_hdl%daddr, data_jbegin_)722 END IF723 IF (PRESENT(zoom_ni_)) THEN724 CALL cxios_set_domaingroup_zoom_ni(domaingroup_hdl%daddr, zoom_ni_)725 END IF726 IF (PRESENT(zoom_nj_)) THEN727 CALL cxios_set_domaingroup_zoom_nj(domaingroup_hdl%daddr, zoom_nj_)728 END IF729 IF (PRESENT(zoom_ibegin_)) THEN730 CALL cxios_set_domaingroup_zoom_ibegin(domaingroup_hdl%daddr, zoom_ibegin_)731 END IF732 IF (PRESENT(zoom_jbegin_)) THEN733 CALL cxios_set_domaingroup_zoom_jbegin(domaingroup_hdl%daddr, zoom_jbegin_)734 END IF735 IF (PRESENT(zoom_ni_loc_)) THEN736 CALL cxios_set_domaingroup_zoom_ni_loc(domaingroup_hdl%daddr, zoom_ni_loc_)737 END IF738 IF (PRESENT(zoom_nj_loc_)) THEN739 CALL cxios_set_domaingroup_zoom_nj_loc(domaingroup_hdl%daddr, zoom_nj_loc_)740 END IF741 IF (PRESENT(zoom_ibegin_loc_)) THEN742 CALL cxios_set_domaingroup_zoom_ibegin_loc(domaingroup_hdl%daddr, zoom_ibegin_loc_)743 END IF744 IF (PRESENT(zoom_jbegin_loc_)) THEN745 CALL cxios_set_domaingroup_zoom_jbegin_loc(domaingroup_hdl%daddr, zoom_jbegin_loc_)746 END IF747 IF (PRESENT(data_n_index_)) THEN748 CALL cxios_set_domaingroup_data_n_index(domaingroup_hdl%daddr, data_n_index_)749 END IF750 IF (PRESENT(data_i_index_)) THEN751 CALL cxios_set_domaingroup_data_i_index(domaingroup_hdl%daddr, data_i_index_, size(data_i_index_, 1))752 END IF753 IF (PRESENT(data_j_index_)) THEN754 CALL cxios_set_domaingroup_data_j_index(domaingroup_hdl%daddr, data_j_index_, size(data_j_index_, 1))755 END IF756 IF (PRESENT(lonvalue_)) THEN757 CALL cxios_set_domaingroup_lonvalue(domaingroup_hdl%daddr, lonvalue_, size(lonvalue_, 1))758 END IF759 IF (PRESENT(latvalue_)) THEN760 CALL cxios_set_domaingroup_latvalue(domaingroup_hdl%daddr, latvalue_, size(latvalue_, 1))761 END IF762 763 END SUBROUTINE set_domaingroup_attributes_hdl764 765 SUBROUTINE set_domain_attributes_id &766 ( domain_id, name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_, &767 ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_, &768 zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_, &769 zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_, lonvalue_, latvalue_)770 IMPLICIT NONE771 TYPE(XDomainHandle) :: domain_hdl772 CHARACTER(len = *) , INTENT(IN) :: domain_id773 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_774 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_775 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_776 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref_777 INTEGER , OPTIONAL, INTENT(IN) :: ni_glo_778 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo_779 INTEGER , OPTIONAL, INTENT(IN) :: ibegin_780 INTEGER , OPTIONAL, INTENT(IN) :: iend_781 INTEGER , OPTIONAL, INTENT(IN) :: ni_782 INTEGER , OPTIONAL, INTENT(IN) :: jbegin_783 INTEGER , OPTIONAL, INTENT(IN) :: jend_784 INTEGER , OPTIONAL, INTENT(IN) :: nj_785 LOGICAL , dimension(*), OPTIONAL, INTENT(IN) :: mask_(:,:)786 INTEGER , OPTIONAL, INTENT(IN) :: data_dim_787 INTEGER , OPTIONAL, INTENT(IN) :: data_ni_788 INTEGER , OPTIONAL, INTENT(IN) :: data_nj_789 INTEGER , OPTIONAL, INTENT(IN) :: data_ibegin_790 INTEGER , OPTIONAL, INTENT(IN) :: data_jbegin_791 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_792 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_793 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_794 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_795 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_loc_796 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_loc_797 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc_798 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc_799 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index_800 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index_(:)801 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_j_index_(:)802 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: lonvalue_(:)803 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: latvalue_(:)804 805 CALL domain_handle_create(domain_hdl, domain_id)806 CALL set_domain_attributes_hdl &807 ( domain_hdl, name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_, &808 ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_, &809 zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_, &810 zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_, lonvalue_, latvalue_)811 812 END SUBROUTINE set_domain_attributes_id813 814 SUBROUTINE set_domain_attributes_hdl &815 ( domain_hdl,name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_, &816 ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_, &817 zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_, &818 zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_, lonvalue_, latvalue_)819 IMPLICIT NONE820 TYPE(XDomainHandle) , INTENT(IN) :: domain_hdl821 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_822 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_823 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_824 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref_825 INTEGER , OPTIONAL, INTENT(IN) :: ni_glo_826 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo_827 INTEGER , OPTIONAL, INTENT(IN) :: ibegin_828 INTEGER , OPTIONAL, INTENT(IN) :: iend_829 INTEGER , OPTIONAL, INTENT(IN) :: ni_830 INTEGER , OPTIONAL, INTENT(IN) :: jbegin_831 INTEGER , OPTIONAL, INTENT(IN) :: jend_832 INTEGER , OPTIONAL, INTENT(IN) :: nj_833 LOGICAL , dimension(*) , OPTIONAL, INTENT(IN) :: mask_(:,:)834 LOGICAL(kind = 1), dimension(:,:), ALLOCATABLE :: mask__835 INTEGER , OPTIONAL, INTENT(IN) :: data_dim_836 INTEGER , OPTIONAL, INTENT(IN) :: data_ni_837 INTEGER , OPTIONAL, INTENT(IN) :: data_nj_838 INTEGER , OPTIONAL, INTENT(IN) :: data_ibegin_839 INTEGER , OPTIONAL, INTENT(IN) :: data_jbegin_840 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_841 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_842 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_843 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_844 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_loc_845 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_loc_846 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc_847 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc_848 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index_849 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index_(:)850 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_j_index_(:)851 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: lonvalue_(:)852 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: latvalue_(:)853 IF (PRESENT(name_)) THEN854 CALL cxios_set_domain_name(domain_hdl%daddr, name_, len(name_))855 END IF856 IF (PRESENT(standard_name_)) THEN857 CALL cxios_set_domain_standard_name(domain_hdl%daddr, standard_name_, len(standard_name_))858 END IF859 IF (PRESENT(long_name_)) THEN860 CALL cxios_set_domain_long_name(domain_hdl%daddr, long_name_, len(long_name_))861 END IF862 IF (PRESENT(domain_group_ref_)) THEN863 CALL cxios_set_domain_domain_group_ref(domain_hdl%daddr, domain_group_ref_, len(domain_group_ref_))864 END IF865 IF (PRESENT(ni_glo_)) THEN866 CALL cxios_set_domain_ni_glo(domain_hdl%daddr, ni_glo_)867 END IF868 IF (PRESENT(nj_glo_)) THEN869 CALL cxios_set_domain_nj_glo(domain_hdl%daddr, nj_glo_)870 END IF871 IF (PRESENT(ibegin_)) THEN872 CALL cxios_set_domain_ibegin(domain_hdl%daddr, ibegin_)873 END IF874 IF (PRESENT(iend_)) THEN875 CALL cxios_set_domain_iend(domain_hdl%daddr, iend_)876 END IF877 IF (PRESENT(ni_)) THEN878 CALL cxios_set_domain_ni(domain_hdl%daddr, ni_)879 END IF880 IF (PRESENT(jbegin_)) THEN881 CALL cxios_set_domain_jbegin(domain_hdl%daddr, jbegin_)882 END IF883 IF (PRESENT(jend_)) THEN884 CALL cxios_set_domain_jend(domain_hdl%daddr, jend_)885 END IF886 IF (PRESENT(nj_)) THEN887 CALL cxios_set_domain_nj(domain_hdl%daddr, nj_)888 END IF889 IF (PRESENT(mask_)) THEN890 ALLOCATE(mask__(size(mask_, 1), size(mask_, 2)))891 mask__(:,:) = mask_(:,:)892 CALL cxios_set_domain_mask(domain_hdl%daddr, mask__, size(mask_, 1), size(mask_, 2))893 DEALLOCATE(mask__)894 END IF895 IF (PRESENT(data_dim_)) THEN896 CALL cxios_set_domain_data_dim(domain_hdl%daddr, data_dim_)897 END IF898 IF (PRESENT(data_ni_)) THEN899 CALL cxios_set_domain_data_ni(domain_hdl%daddr, data_ni_)900 END IF901 IF (PRESENT(data_nj_)) THEN902 CALL cxios_set_domain_data_nj(domain_hdl%daddr, data_nj_)903 END IF904 IF (PRESENT(data_ibegin_)) THEN905 CALL cxios_set_domain_data_ibegin(domain_hdl%daddr, data_ibegin_)906 END IF907 IF (PRESENT(data_jbegin_)) THEN908 CALL cxios_set_domain_data_jbegin(domain_hdl%daddr, data_jbegin_)909 END IF910 IF (PRESENT(zoom_ni_)) THEN911 CALL cxios_set_domain_zoom_ni(domain_hdl%daddr, zoom_ni_)912 END IF913 IF (PRESENT(zoom_nj_)) THEN914 CALL cxios_set_domain_zoom_nj(domain_hdl%daddr, zoom_nj_)915 END IF916 IF (PRESENT(zoom_ibegin_)) THEN917 CALL cxios_set_domain_zoom_ibegin(domain_hdl%daddr, zoom_ibegin_)918 END IF919 IF (PRESENT(zoom_jbegin_)) THEN920 CALL cxios_set_domain_zoom_jbegin(domain_hdl%daddr, zoom_jbegin_)921 END IF922 IF (PRESENT(zoom_ni_loc_)) THEN923 CALL cxios_set_domain_zoom_ni_loc(domain_hdl%daddr, zoom_ni_loc_)924 END IF925 IF (PRESENT(zoom_nj_loc_)) THEN926 CALL cxios_set_domain_zoom_nj_loc(domain_hdl%daddr, zoom_nj_loc_)927 END IF928 IF (PRESENT(zoom_ibegin_loc_)) THEN929 CALL cxios_set_domain_zoom_ibegin_loc(domain_hdl%daddr, zoom_ibegin_loc_)930 END IF931 IF (PRESENT(zoom_jbegin_loc_)) THEN932 CALL cxios_set_domain_zoom_jbegin_loc(domain_hdl%daddr, zoom_jbegin_loc_)933 END IF934 IF (PRESENT(data_n_index_)) THEN935 CALL cxios_set_domain_data_n_index(domain_hdl%daddr, data_n_index_)936 END IF937 IF (PRESENT(data_i_index_)) THEN938 CALL cxios_set_domain_data_i_index(domain_hdl%daddr, data_i_index_, size(data_i_index_, 1))939 END IF940 IF (PRESENT(data_j_index_)) THEN941 CALL cxios_set_domain_data_j_index(domain_hdl%daddr, data_j_index_, size(data_j_index_, 1))942 END IF943 IF (PRESENT(lonvalue_)) THEN944 CALL cxios_set_domain_lonvalue(domain_hdl%daddr, lonvalue_, size(lonvalue_, 1))945 END IF946 IF (PRESENT(latvalue_)) THEN947 CALL cxios_set_domain_latvalue(domain_hdl%daddr, latvalue_, size(latvalue_, 1))948 END IF949 950 END SUBROUTINE set_domain_attributes_hdl951 952 SUBROUTINE domain_handle_create(ret, idt)953 IMPLICIT NONE954 TYPE(XDomainHandle), INTENT(OUT):: ret955 CHARACTER(len = *) , INTENT(IN) :: idt956 CALL cxios_domain_handle_create(ret%daddr, idt, len(idt))957 END SUBROUTINE domain_handle_create958 959 SUBROUTINE domaingroup_handle_create(ret, idt)960 IMPLICIT NONE961 TYPE(XDomainGroupHandle), INTENT(OUT):: ret962 CHARACTER(len = *) , INTENT(IN) :: idt963 CALL cxios_domaingroup_handle_create(ret%daddr, idt, len(idt))964 END SUBROUTINE domaingroup_handle_create965 966 LOGICAL FUNCTION domain_valid_id(idt)967 IMPLICIT NONE968 CHARACTER(len = *) , INTENT(IN) :: idt969 LOGICAL (kind = 1) :: val970 CALL cxios_domain_valid_id(val, idt, len(idt));971 domain_valid_id = val972 END FUNCTION domain_valid_id973 974 LOGICAL FUNCTION domaingroup_valid_id(idt)975 IMPLICIT NONE976 CHARACTER(len = *) , INTENT(IN) :: idt977 LOGICAL (kind = 1) :: val978 CALL cxios_domaingroup_valid_id(val, idt, len(idt));979 domaingroup_valid_id = val980 END FUNCTION domaingroup_valid_id981 482 982 483 END MODULE IDOMAIN -
XIOS/trunk/src/fortran/ifield.F90
r310 r312 6 6 USE FIELDGROUP_INTERFACE 7 7 8 TYPE XFieldHandle9 INTEGER(kind = C_INTPTR_T) :: daddr10 END TYPE XFieldHandle11 12 TYPE XFieldGroupHandle13 INTEGER(kind = C_INTPTR_T) :: daddr14 END TYPE XFieldGroupHandle15 16 8 TYPE txios(field) 17 9 INTEGER(kind = C_INTPTR_T) :: daddr … … 21 13 INTEGER(kind = C_INTPTR_T) :: daddr 22 14 END TYPE txios(fieldgroup) 23 24 !----------------------------------------------------------------------------25 INTERFACE set_field_attributes26 MODULE PROCEDURE set_field_attributes_id,set_field_attributes_hdl27 END INTERFACE28 29 INTERFACE set_field_group_attributes30 MODULE PROCEDURE set_fieldgroup_attributes_id,set_fieldgroup_attributes_hdl31 END INTERFACE32 !----------------------------------------------------------------------------33 34 15 35 16 CONTAINS ! Fonctions disponibles pour les utilisateurs. … … 341 322 END FUNCTION xios(field_is_active_hdl) 342 323 343 344 345 346 347 348 349 350 351 352 !!!!!!!!!!!!!!!!!!!!!!!!!! Ancienne interfaces !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!353 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!354 SUBROUTINE set_fieldgroup_attributes_id &355 (fieldgroup_id, name_, standard_name_, long_name_, unit_, operation_, freq_op_, level_, &356 prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, field_ref_, default_value_)357 358 IMPLICIT NONE359 TYPE(XFieldGroupHandle) :: fieldgroup_hdl360 CHARACTER(len = *) , INTENT(IN) :: fieldgroup_id361 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_362 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_363 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_364 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_365 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_366 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op_367 INTEGER , OPTIONAL, INTENT(IN) :: level_368 INTEGER , OPTIONAL, INTENT(IN) :: prec_369 LOGICAL , OPTIONAL, INTENT(IN) :: enabled_370 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_371 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_372 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref_373 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref_374 REAL(kind=8) , OPTIONAL, INTENT(IN) :: default_value_375 376 CALL fieldgroup_handle_create(fieldgroup_hdl, fieldgroup_id)377 CALL set_fieldgroup_attributes_hdl &378 (fieldgroup_hdl, name_, standard_name_, long_name_, unit_, operation_, freq_op_, level_, &379 prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, field_ref_, default_value_)380 381 END SUBROUTINE set_fieldgroup_attributes_id382 383 SUBROUTINE set_fieldgroup_attributes_hdl &384 (fieldgroup_hdl, name_, standard_name_, long_name_, unit_, operation_, freq_op_, level_, &385 prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, field_ref_, default_value_)386 IMPLICIT NONE387 TYPE(XFieldgroupHandle) , INTENT(IN) :: fieldgroup_hdl388 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_389 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_390 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_391 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_392 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_393 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op_394 INTEGER , OPTIONAL, INTENT(IN) :: level_395 INTEGER , OPTIONAL, INTENT(IN) :: prec_396 LOGICAL(kind = 1) :: enabled__397 LOGICAL , OPTIONAL, INTENT(IN) :: enabled_398 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_399 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_400 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref_401 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref_402 REAL(kind=8) , OPTIONAL, INTENT(IN) :: default_value_403 404 IF (PRESENT(name_)) THEN405 CALL cxios_set_fieldgroup_name(fieldgroup_hdl%daddr, name_, len(name_))406 END IF407 IF (PRESENT(standard_name_)) THEN408 CALL cxios_set_fieldgroup_standard_name(fieldgroup_hdl%daddr, standard_name_, len(standard_name_))409 END IF410 IF (PRESENT(long_name_)) THEN411 CALL cxios_set_fieldgroup_long_name(fieldgroup_hdl%daddr, long_name_, len(long_name_))412 END IF413 IF (PRESENT(unit_)) THEN414 CALL cxios_set_fieldgroup_unit(fieldgroup_hdl%daddr, unit_, len(unit_))415 END IF416 IF (PRESENT(operation_)) THEN417 CALL cxios_set_fieldgroup_operation(fieldgroup_hdl%daddr, operation_, len(operation_))418 END IF419 IF (PRESENT(freq_op_)) THEN420 CALL cxios_set_fieldgroup_freq_op(fieldgroup_hdl%daddr, freq_op_, len(freq_op_))421 END IF422 IF (PRESENT(level_)) THEN423 CALL cxios_set_fieldgroup_level(fieldgroup_hdl%daddr, level_)424 END IF425 IF (PRESENT(prec_)) THEN426 CALL cxios_set_fieldgroup_prec(fieldgroup_hdl%daddr, prec_)427 END IF428 IF (PRESENT(enabled_)) THEN429 enabled__ = enabled_430 CALL cxios_set_fieldgroup_enabled(fieldgroup_hdl%daddr, enabled__)431 END IF432 IF (PRESENT(domain_ref_)) THEN433 CALL cxios_set_fieldgroup_domain_ref(fieldgroup_hdl%daddr, domain_ref_, len(domain_ref_))434 END IF435 IF (PRESENT(axis_ref_)) THEN436 CALL cxios_set_fieldgroup_axis_ref(fieldgroup_hdl%daddr, axis_ref_, len(axis_ref_))437 END IF438 IF (PRESENT(grid_ref_)) THEN439 CALL cxios_set_fieldgroup_grid_ref(fieldgroup_hdl%daddr, grid_ref_, len(grid_ref_))440 END IF441 IF (PRESENT(field_ref_)) THEN442 CALL cxios_set_fieldgroup_field_ref(fieldgroup_hdl%daddr, field_ref_, len(field_ref_))443 END IF444 IF (PRESENT(default_value_)) THEN445 CALL cxios_set_fieldgroup_default_value(fieldgroup_hdl%daddr, default_value_)446 END IF447 448 END SUBROUTINE set_fieldgroup_attributes_hdl449 450 SUBROUTINE set_field_attributes_id &451 (field_id, name_, standard_name_, long_name_, unit_, operation_, freq_op_, level_, &452 prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, field_ref_, default_value_)453 454 IMPLICIT NONE455 TYPE(XFieldHandle) :: field_hdl456 CHARACTER(len = *) , INTENT(IN) :: field_id457 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_458 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_459 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_460 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_461 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_462 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op_463 INTEGER , OPTIONAL, INTENT(IN) :: level_464 INTEGER , OPTIONAL, INTENT(IN) :: prec_465 LOGICAL , OPTIONAL, INTENT(IN) :: enabled_466 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_467 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_468 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref_469 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref_470 REAL(kind=8) , OPTIONAL, INTENT(IN) :: default_value_471 472 CALL field_handle_create(field_hdl, field_id)473 CALL set_field_attributes_hdl &474 (field_hdl, name_, standard_name_, long_name_, unit_, operation_, freq_op_, level_, &475 prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, field_ref_, default_value_)476 477 END SUBROUTINE set_field_attributes_id478 479 SUBROUTINE set_field_attributes_hdl &480 (field_hdl, name_, standard_name_, long_name_, unit_, operation_, freq_op_, level_, &481 prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, field_ref_, default_value_)482 IMPLICIT NONE483 TYPE(XFieldHandle) , INTENT(IN) :: field_hdl484 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_485 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_486 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_487 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_488 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_489 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op_490 INTEGER , OPTIONAL, INTENT(IN) :: level_491 INTEGER , OPTIONAL, INTENT(IN) :: prec_492 LOGICAL(kind = 1) :: enabled__493 LOGICAL , OPTIONAL, INTENT(IN) :: enabled_494 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_495 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_496 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref_497 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref_498 REAL(kind=8) , OPTIONAL, INTENT(IN) :: default_value_499 500 IF (PRESENT(name_)) THEN501 CALL cxios_set_field_name(field_hdl%daddr, name_, len(name_))502 END IF503 IF (PRESENT(standard_name_)) THEN504 CALL cxios_set_field_standard_name(field_hdl%daddr, standard_name_, len(standard_name_))505 END IF506 IF (PRESENT(long_name_)) THEN507 CALL cxios_set_field_long_name(field_hdl%daddr, long_name_, len(long_name_))508 END IF509 IF (PRESENT(unit_)) THEN510 CALL cxios_set_field_unit(field_hdl%daddr, unit_, len(unit_))511 END IF512 IF (PRESENT(operation_)) THEN513 CALL cxios_set_field_operation(field_hdl%daddr, operation_, len(operation_))514 END IF515 IF (PRESENT(freq_op_)) THEN516 CALL cxios_set_field_freq_op(field_hdl%daddr, freq_op_, len(freq_op_))517 END IF518 IF (PRESENT(level_)) THEN519 CALL cxios_set_field_level(field_hdl%daddr, level_)520 END IF521 IF (PRESENT(prec_)) THEN522 CALL cxios_set_field_prec(field_hdl%daddr, prec_)523 END IF524 IF (PRESENT(enabled_)) THEN525 enabled__ = enabled_526 CALL cxios_set_field_enabled(field_hdl%daddr, enabled__)527 END IF528 IF (PRESENT(domain_ref_)) THEN529 CALL cxios_set_field_domain_ref(field_hdl%daddr, domain_ref_, len(domain_ref_))530 END IF531 IF (PRESENT(axis_ref_)) THEN532 CALL cxios_set_field_axis_ref(field_hdl%daddr, axis_ref_, len(axis_ref_))533 END IF534 IF (PRESENT(grid_ref_)) THEN535 CALL cxios_set_field_grid_ref(field_hdl%daddr, grid_ref_, len(grid_ref_))536 END IF537 IF (PRESENT(field_ref_)) THEN538 CALL cxios_set_field_field_ref(field_hdl%daddr, field_ref_, len(field_ref_))539 END IF540 IF (PRESENT(default_value_)) THEN541 CALL cxios_set_field_default_value(field_hdl%daddr, default_value_)542 END IF543 544 END SUBROUTINE set_field_attributes_hdl545 546 SUBROUTINE field_handle_create(ret, idt)547 IMPLICIT NONE548 TYPE(XFieldHandle), INTENT(OUT):: ret549 CHARACTER(len = *), INTENT(IN) :: idt550 CALL cxios_field_handle_create(ret%daddr, idt, len(idt))551 END SUBROUTINE field_handle_create552 553 SUBROUTINE fieldgroup_handle_create(ret, idt)554 IMPLICIT NONE555 TYPE(XFieldGroupHandle), INTENT(OUT):: ret556 CHARACTER(len = *) , INTENT(IN) :: idt557 CALL cxios_fieldgroup_handle_create(ret%daddr, idt, len(idt))558 END SUBROUTINE fieldgroup_handle_create559 560 LOGICAL FUNCTION field_valid_id(idt)561 IMPLICIT NONE562 CHARACTER(len = *) , INTENT(IN) :: idt563 LOGICAL (kind = 1) :: val564 CALL cxios_field_valid_id(val, idt, len(idt));565 field_valid_id = val566 END FUNCTION field_valid_id567 568 569 LOGICAL FUNCTION fieldgroup_valid_id(idt)570 IMPLICIT NONE571 CHARACTER(len = *) , INTENT(IN) :: idt572 LOGICAL (kind = 1) :: val573 CALL cxios_fieldgroup_valid_id(val, idt, len(idt));574 fieldgroup_valid_id = val575 END FUNCTION fieldgroup_valid_id576 324 577 325 END MODULE IFIELD -
XIOS/trunk/src/fortran/ifile.F90
r300 r312 6 6 USE FILEGROUP_INTERFACE 7 7 8 TYPE XFileHandle9 INTEGER(kind = C_INTPTR_T) :: daddr10 END TYPE XFileHandle11 12 TYPE XFileGroupHandle13 INTEGER(kind = C_INTPTR_T) :: daddr14 END TYPE XFileGroupHandle15 16 8 TYPE txios(file) 17 9 INTEGER(kind = C_INTPTR_T) :: daddr … … 22 14 END TYPE txios(filegroup) 23 15 24 !----------------------------------------------------------------------------25 INTERFACE set_file_attributes26 MODULE PROCEDURE set_file_attributes_id,set_file_attributes_hdl27 END INTERFACE28 29 INTERFACE set_file_group_attributes30 MODULE PROCEDURE set_filegroup_attributes_id,set_filegroup_attributes_hdl31 END INTERFACE32 !----------------------------------------------------------------------------33 34 16 CONTAINS ! Fonctions disponibles pour les utilisateurs. 35 17 … … 180 162 181 163 182 183 164 SUBROUTINE xios(get_file_handle)( idt, ret) 184 165 IMPLICIT NONE … … 219 200 END FUNCTION xios(is_valid_filegroup) 220 201 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 !!!!!!!!!!!!!! Anciennes interfaces !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!237 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!238 239 SUBROUTINE set_file_attributes_id(file_id, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_)240 IMPLICIT NONE241 TYPE(XFileHandle) :: file_hdl242 CHARACTER(len = *) , INTENT(IN) :: file_id243 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_244 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_245 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix_246 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_247 INTEGER , OPTIONAL, INTENT(IN) :: output_level_248 LOGICAL , OPTIONAL, INTENT(IN) :: enabled_249 250 CALL file_handle_create(file_hdl, file_id)251 CALL set_file_attributes_hdl(file_hdl, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_)252 253 END SUBROUTINE set_file_attributes_id254 255 SUBROUTINE set_file_attributes_hdl(file_hdl, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_)256 TYPE(XFileHandle) , INTENT(IN) :: file_hdl257 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_258 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_259 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix_260 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_261 INTEGER , OPTIONAL, INTENT(IN) :: output_level_262 LOGICAL(kind = 1) :: enabled__263 LOGICAL , OPTIONAL, INTENT(IN) :: enabled_264 265 IF (PRESENT(name_)) THEN266 CALL cxios_set_file_name(file_hdl%daddr, name_, len(name_))267 END IF268 IF (PRESENT(description_)) THEN269 CALL cxios_set_file_description(file_hdl%daddr, description_, len(description_))270 END IF271 IF (PRESENT(name_suffix_)) THEN272 CALL cxios_set_file_name_suffix(file_hdl%daddr, name_suffix_, len(name_suffix_))273 END IF274 IF (PRESENT(output_freq_)) THEN275 CALL cxios_set_file_output_freq(file_hdl%daddr, output_freq_, len(output_freq_))276 END IF277 IF (PRESENT(output_level_)) THEN278 CALL cxios_set_file_output_level(file_hdl%daddr, output_level_)279 END IF280 IF (PRESENT(enabled_)) THEN281 enabled__ = enabled_282 CALL cxios_set_file_enabled(file_hdl%daddr, enabled__)283 END IF284 285 END SUBROUTINE set_file_attributes_hdl286 287 SUBROUTINE set_filegroup_attributes_id(filegroup_id, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_)288 IMPLICIT NONE289 TYPE(XFileGroupHandle) :: filegroup_hdl290 CHARACTER(len = *) , INTENT(IN) :: filegroup_id291 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_292 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_293 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix_294 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_295 INTEGER , OPTIONAL, INTENT(IN) :: output_level_296 LOGICAL , OPTIONAL, INTENT(IN) :: enabled_297 298 CALL filegroup_handle_create(filegroup_hdl, filegroup_id)299 CALL set_filegroup_attributes_hdl(filegroup_hdl, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_)300 301 END SUBROUTINE set_filegroup_attributes_id302 303 SUBROUTINE set_filegroup_attributes_hdl(filegroup_hdl, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_)304 IMPLICIT NONE305 TYPE(XFileGroupHandle) , INTENT(IN) :: filegroup_hdl306 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_307 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_308 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix_309 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_310 INTEGER , OPTIONAL, INTENT(IN) :: output_level_311 LOGICAL(kind = 1) :: enabled__312 LOGICAL , OPTIONAL, INTENT(IN) :: enabled_313 314 IF (PRESENT(name_)) THEN315 CALL cxios_set_filegroup_name(filegroup_hdl%daddr, name_, len(name_))316 END IF317 IF (PRESENT(description_)) THEN318 CALL cxios_set_filegroup_description(filegroup_hdl%daddr, description_, len(description_))319 END IF320 IF (PRESENT(name_suffix_)) THEN321 CALL cxios_set_filegroup_name_suffix(filegroup_hdl%daddr, name_suffix_, len(name_suffix_))322 END IF323 IF (PRESENT(output_freq_)) THEN324 CALL cxios_set_filegroup_output_freq(filegroup_hdl%daddr, output_freq_, len(output_freq_))325 END IF326 IF (PRESENT(output_level_)) THEN327 CALL cxios_set_filegroup_output_level(filegroup_hdl%daddr, output_level_)328 END IF329 IF (PRESENT(enabled_)) THEN330 enabled__ = enabled_331 CALL cxios_set_filegroup_enabled(filegroup_hdl%daddr, enabled__)332 END IF333 334 END SUBROUTINE set_filegroup_attributes_hdl335 336 SUBROUTINE file_handle_create(ret, idt)337 IMPLICIT NONE338 TYPE(XFileHandle) , INTENT(OUT):: ret339 CHARACTER(len = *), INTENT(IN) :: idt340 CALL cxios_file_handle_create(ret%daddr, idt, len(idt))341 END SUBROUTINE file_handle_create342 343 SUBROUTINE filegroup_handle_create(ret, idt)344 IMPLICIT NONE345 TYPE(XFileGroupHandle), INTENT(OUT):: ret346 CHARACTER(len = *) , INTENT(IN) :: idt347 CALL cxios_filegroup_handle_create(ret%daddr, idt, len(idt))348 END SUBROUTINE filegroup_handle_create349 350 LOGICAL FUNCTION file_valid_id(idt)351 IMPLICIT NONE352 CHARACTER(len = *) , INTENT(IN) :: idt353 LOGICAL (kind = 1) :: val354 CALL cxios_file_valid_id(val, idt, len(idt));355 file_valid_id = val356 END FUNCTION file_valid_id357 358 LOGICAL FUNCTION filegroup_valid_id(idt)359 IMPLICIT NONE360 CHARACTER(len = *) , INTENT(IN) :: idt361 LOGICAL (kind = 1) :: val362 CALL cxios_filegroup_valid_id(val, idt, len(idt));363 filegroup_valid_id = val364 END FUNCTION filegroup_valid_id365 202 366 203 END MODULE IFILE -
XIOS/trunk/src/fortran/igrid.F90
r286 r312 5 5 USE GRID_INTERFACE 6 6 USE GRIDGROUP_INTERFACE 7 8 TYPE XGridHandle9 INTEGER(kind = C_INTPTR_T) :: daddr10 END TYPE XGridHandle11 12 TYPE XGridGroupHandle13 INTEGER(kind = C_INTPTR_T) :: daddr14 END TYPE XGridGroupHandle15 7 16 8 TYPE txios(grid) … … 22 14 END TYPE txios(gridgroup) 23 15 24 !----------------------------------------------------------------------------25 INTERFACE set_grid_attributes26 MODULE PROCEDURE set_grid_attributes_id,set_grid_attributes_hdl27 END INTERFACE28 29 INTERFACE set_grid_group_attributes30 MODULE PROCEDURE set_gridgroup_attributes_id,set_gridgroup_attributes_hdl31 END INTERFACE32 !----------------------------------------------------------------------------33 16 34 17 CONTAINS ! Fonctions disponibles pour les utilisateurs. … … 175 158 END FUNCTION xios(is_valid_gridgroup) 176 159 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 !!!!!!!!!!!!!!!!!!!! Anciennes interfaces !!!!!!!!!!!!!!!!!!!!!!!!!!!!198 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!199 200 SUBROUTINE set_grid_attributes_id(grid_id, name_, description_, domain_ref_, axis_ref_)201 IMPLICIT NONE202 TYPE(XGridHandle) :: grid_hdl203 CHARACTER(len = *) , INTENT(IN) :: grid_id204 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_205 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_206 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_207 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_208 209 CALL grid_handle_create(grid_hdl, grid_id)210 CALL set_grid_attributes_hdl(grid_hdl, name_, description_, domain_ref_, axis_ref_)211 212 END SUBROUTINE set_grid_attributes_id213 214 SUBROUTINE set_grid_attributes_hdl(grid_hdl, name_, description_, domain_ref_, axis_ref_)215 IMPLICIT NONE216 TYPE (XGridHandle) :: grid_hdl217 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_218 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_219 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_220 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_221 222 IF (PRESENT(name_)) THEN223 CALL cxios_set_grid_name(grid_hdl%daddr, name_, len(name_))224 END IF225 IF (PRESENT(description_)) THEN226 CALL cxios_set_grid_description(grid_hdl%daddr, description_, len(description_))227 END IF228 IF (PRESENT(domain_ref_)) THEN229 CALL cxios_set_grid_domain_ref(grid_hdl%daddr, domain_ref_, len(domain_ref_))230 END IF231 IF (PRESENT(axis_ref_)) THEN232 CALL cxios_set_grid_axis_ref(grid_hdl%daddr, axis_ref_, len(axis_ref_))233 END IF234 END SUBROUTINE set_grid_attributes_hdl235 236 SUBROUTINE set_gridgroup_attributes_id(gridgroup_id, name_, description_, domain_ref_, axis_ref_)237 IMPLICIT NONE238 TYPE(XGridGroupHandle) :: gridgroup_hdl239 CHARACTER(len = *) , INTENT(IN) :: gridgroup_id240 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_241 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_242 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_243 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_244 245 CALL gridgroup_handle_create(gridgroup_hdl, gridgroup_id)246 CALL set_gridgroup_attributes_hdl(gridgroup_hdl, name_, description_, domain_ref_, axis_ref_)247 248 END SUBROUTINE set_gridgroup_attributes_id249 250 SUBROUTINE set_gridgroup_attributes_hdl(gridgroup_hdl, name_, description_, domain_ref_, axis_ref_)251 IMPLICIT NONE252 TYPE (XGridGroupHandle) :: gridgroup_hdl253 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_254 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_255 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_256 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_257 258 IF (PRESENT(name_)) THEN259 CALL cxios_set_gridgroup_name(gridgroup_hdl%daddr, name_, len(name_))260 END IF261 IF (PRESENT(description_)) THEN262 CALL cxios_set_gridgroup_description(gridgroup_hdl%daddr, description_, len(description_))263 END IF264 IF (PRESENT(domain_ref_)) THEN265 CALL cxios_set_gridgroup_domain_ref(gridgroup_hdl%daddr, domain_ref_, len(domain_ref_))266 END IF267 IF (PRESENT(axis_ref_)) THEN268 CALL cxios_set_gridgroup_axis_ref(gridgroup_hdl%daddr, axis_ref_, len(axis_ref_))269 END IF270 END SUBROUTINE set_gridgroup_attributes_hdl271 272 SUBROUTINE grid_handle_create(ret, idt)273 IMPLICIT NONE274 TYPE(XGridHandle), INTENT(OUT):: ret275 CHARACTER(len = *), INTENT(IN) :: idt276 CALL cxios_grid_handle_create(ret%daddr, idt, len(idt))277 END SUBROUTINE grid_handle_create278 279 SUBROUTINE gridgroup_handle_create(ret, idt)280 IMPLICIT NONE281 TYPE(XGridGroupHandle), INTENT(OUT):: ret282 CHARACTER(len = *) , INTENT(IN) :: idt283 CALL cxios_gridgroup_handle_create(ret%daddr, idt, len(idt))284 END SUBROUTINE gridgroup_handle_create285 286 LOGICAL FUNCTION grid_valid_id(idt)287 IMPLICIT NONE288 CHARACTER(len = *) , INTENT(IN) :: idt289 LOGICAL (kind = 1) :: val290 CALL cxios_grid_valid_id(val, idt, len(idt));291 grid_valid_id = val292 END FUNCTION grid_valid_id293 294 LOGICAL FUNCTION gridgroup_valid_id(idt)295 IMPLICIT NONE296 CHARACTER(len = *) , INTENT(IN) :: idt297 LOGICAL (kind = 1) :: val298 CALL cxios_gridgroup_valid_id(val, idt, len(idt));299 gridgroup_valid_id = val300 END FUNCTION gridgroup_valid_id301 160 302 161 END MODULE IGRID -
XIOS/trunk/src/fortran/ixml_tree.F90
r286 r312 126 126 127 127 END INTERFACE 128 129 !---------------------------------------------------------------------------- 130 INTERFACE xml_tree_add 131 MODULE PROCEDURE xml_tree_add_axis, xml_tree_add_axisgroup, & 132 xml_tree_add_file, xml_tree_add_filegroup, & 133 xml_tree_add_grid, xml_tree_add_gridgroup, & 134 xml_tree_add_field, xml_tree_add_fieldgroup, & 135 xml_tree_add_domain, xml_tree_add_domaingroup, & 136 xml_tree_add_fieldgrouptofile, xml_tree_add_fieldtofile 137 END INTERFACE 138 !---------------------------------------------------------------------------- 128 139 129 140 130 CONTAINS ! Fonctions disponibles pour les utilisateurs. … … 298 288 299 289 END SUBROUTINE xios(add_fieldgrouptofile) 300 301 ! SUBROUTINE xml_tree_show(filename)302 ! CHARACTER(len = *), OPTIONAL, INTENT(IN) :: filename303 ! IF (PRESENT(filename)) THEN304 ! CALL cxios_xml_tree_show(filename, len(filename))305 ! ELSE306 ! CALL cxios_xml_tree_show("NONE", -1)307 ! END IF308 ! END SUBROUTINE xml_tree_show309 310 ! SUBROUTINE xml_parse_file(filename)311 ! CHARACTER(len = *), INTENT(IN) :: filename312 ! CALL cxios_xml_parse_file(filename, len(filename))313 ! END SUBROUTINE xml_Parse_File314 315 ! SUBROUTINE xml_parse_string(xmlcontent)316 ! CHARACTER(len = *), INTENT(IN) :: xmlcontent317 ! CALL cxios_xml_parse_string(xmlcontent, len(xmlcontent))318 ! END SUBROUTINE xml_Parse_String319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 !!!!!!!!!!!!! Anciennes interfaces !!!!!!!!!!!!!!!!!!!!!!!!!!!!335 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!336 337 SUBROUTINE xml_tree_add_axis(parent_hdl, child_hdl, child_id)338 TYPE(XAxisGroupHandle) , INTENT(IN) :: parent_hdl339 TYPE(XAxisHandle) , INTENT(OUT):: child_hdl340 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id341 IF (PRESENT(child_id)) THEN342 CALL cxios_xml_tree_add_axis(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))343 ELSE344 CALL cxios_xml_tree_add_axis(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)345 END IF346 END SUBROUTINE xml_tree_add_axis347 348 SUBROUTINE xml_tree_add_file(parent_hdl, child_hdl, child_id)349 TYPE(XFileGroupHandle) , INTENT(IN) :: parent_hdl350 TYPE(XFileHandle) , INTENT(OUT):: child_hdl351 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id352 IF (PRESENT(child_id)) THEN353 CALL cxios_xml_tree_add_file(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))354 ELSE355 CALL cxios_xml_tree_add_file(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)356 END IF357 END SUBROUTINE xml_tree_add_file358 359 SUBROUTINE xml_tree_add_grid(parent_hdl, child_hdl, child_id)360 TYPE(XGridGroupHandle) , INTENT(IN) :: parent_hdl361 TYPE(XGridHandle) , INTENT(OUT):: child_hdl362 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id363 IF (PRESENT(child_id)) THEN364 CALL cxios_xml_tree_add_grid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))365 ELSE366 CALL cxios_xml_tree_add_grid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)367 END IF368 END SUBROUTINE xml_tree_add_grid369 370 SUBROUTINE xml_tree_add_field(parent_hdl, child_hdl, child_id)371 TYPE(XFieldGroupHandle) , INTENT(IN) :: parent_hdl372 TYPE(XFieldHandle) , INTENT(OUT):: child_hdl373 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id374 IF (PRESENT(child_id)) THEN375 CALL cxios_xml_tree_add_field(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))376 ELSE377 CALL cxios_xml_tree_add_field(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)378 END IF379 END SUBROUTINE xml_tree_add_field380 381 SUBROUTINE xml_tree_add_domain(parent_hdl, child_hdl, child_id)382 TYPE(XDomainGroupHandle) , INTENT(IN) :: parent_hdl383 TYPE(XDomainHandle) , INTENT(OUT):: child_hdl384 CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id385 IF (PRESENT(child_id)) THEN386 CALL cxios_xml_tree_add_domain(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))387 ELSE388 CALL cxios_xml_tree_add_domain(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)389 END IF390 END SUBROUTINE xml_tree_add_domain391 392 SUBROUTINE xml_tree_add_fieldtofile(parent_hdl, child_hdl, child_id)393 TYPE(XFileHandle) , INTENT(IN) :: parent_hdl394 TYPE(XFieldHandle) , INTENT(OUT):: child_hdl395 CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id396 IF (PRESENT(child_id)) THEN397 CALL cxios_xml_tree_add_fieldtofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))398 ELSE399 CALL cxios_xml_tree_add_fieldtofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)400 END IF401 END SUBROUTINE xml_tree_add_fieldtofile402 403 SUBROUTINE xml_tree_add_axisgroup(parent_hdl, child_hdl, child_id)404 TYPE(XAxisGroupHandle) , INTENT(IN) :: parent_hdl405 TYPE(XAxisGroupHandle) , INTENT(OUT):: child_hdl406 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id407 IF (PRESENT(child_id)) THEN408 CALL cxios_xml_tree_add_axisgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))409 ELSE410 CALL cxios_xml_tree_add_axisgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)411 END IF412 END SUBROUTINE xml_tree_add_axisgroup413 414 SUBROUTINE xml_tree_add_filegroup(parent_hdl, child_hdl, child_id)415 TYPE(XFileGroupHandle) , INTENT(IN) :: parent_hdl416 TYPE(XFileGroupHandle) , INTENT(OUT):: child_hdl417 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id418 IF (PRESENT(child_id)) THEN419 CALL cxios_xml_tree_add_filegroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))420 ELSE421 CALL cxios_xml_tree_add_filegroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)422 END IF423 END SUBROUTINE xml_tree_add_filegroup424 425 SUBROUTINE xml_tree_add_gridgroup(parent_hdl, child_hdl, child_id)426 TYPE(XGridGroupHandle) , INTENT(IN) :: parent_hdl427 TYPE(XGridGroupHandle) , INTENT(OUT):: child_hdl428 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id429 IF (PRESENT(child_id)) THEN430 CALL cxios_xml_tree_add_gridgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))431 ELSE432 CALL cxios_xml_tree_add_gridgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)433 END IF434 END SUBROUTINE xml_tree_add_gridgroup435 436 SUBROUTINE xml_tree_add_fieldgroup(parent_hdl, child_hdl, child_id)437 TYPE(XFieldGroupHandle) , INTENT(IN) :: parent_hdl438 TYPE(XFieldGroupHandle) , INTENT(OUT):: child_hdl439 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id440 IF (PRESENT(child_id)) THEN441 CALL cxios_xml_tree_add_fieldgroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))442 ELSE443 CALL cxios_xml_tree_add_fieldgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)444 END IF445 END SUBROUTINE xml_tree_add_fieldgroup446 447 SUBROUTINE xml_tree_add_domaingroup(parent_hdl, child_hdl, child_id)448 TYPE(XDomainGroupHandle) , INTENT(IN) :: parent_hdl449 TYPE(XDomainGroupHandle) , INTENT(OUT):: child_hdl450 CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id451 IF (PRESENT(child_id)) THEN452 CALL cxios_xml_tree_add_domaingroup(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))453 ELSE454 CALL cxios_xml_tree_add_domaingroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)455 END IF456 END SUBROUTINE xml_tree_add_domaingroup457 458 SUBROUTINE xml_tree_add_fieldgrouptofile(parent_hdl, child_hdl, child_id)459 TYPE(XFileHandle) , INTENT(IN) :: parent_hdl460 TYPE(XFieldGroupHandle) , INTENT(OUT):: child_hdl461 CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id462 IF (PRESENT(child_id)) THEN463 CALL cxios_xml_tree_add_fieldgrouptofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id))464 ELSE465 CALL cxios_xml_tree_add_fieldgrouptofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1)466 END IF467 END SUBROUTINE xml_tree_add_fieldgrouptofile468 469 SUBROUTINE xml_tree_show(filename)470 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: filename471 IF (PRESENT(filename)) THEN472 CALL cxios_xml_tree_show(filename, len(filename))473 ELSE474 CALL cxios_xml_tree_show("NONE", -1)475 END IF476 END SUBROUTINE xml_tree_show477 478 SUBROUTINE xml_parse_file(filename)479 CHARACTER(len = *), INTENT(IN) :: filename480 CALL cxios_xml_parse_file(filename, len(filename))481 END SUBROUTINE xml_Parse_File482 483 SUBROUTINE xml_parse_string(xmlcontent)484 CHARACTER(len = *), INTENT(IN) :: xmlcontent485 CALL cxios_xml_parse_string(xmlcontent, len(xmlcontent))486 END SUBROUTINE xml_Parse_String487 290 488 291 END MODULE IXML_TREE
Note: See TracChangeset
for help on using the changeset viewer.