Changeset 461 for XIOS


Ignore:
Timestamp:
01/20/14 15:01:03 (10 years ago)
Author:
ymipsl
Message:

New function available form fortran interface : LOGICAL xios_context_is_initialized("context_id")
Return .true. if the context "context_id" has been initialized before.

YM

Location:
XIOS/trunk/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/c/icdata.cpp

    r445 r461  
    7575   } 
    7676  
     77   void cxios_context_is_initialized(const char * context_id , int len_context_id, bool* initialized) 
     78   { 
     79     std::string str;  
     80      
     81     if (!cstr2string(context_id, len_context_id, str)) return; 
     82     CTimer::get("XIOS").resume() ; 
     83     CContext* context = CContext::get(str,str) ; 
     84     *initialized=context->isInitialized() ; 
     85     CTimer::get("XIOS").suspend() ; 
     86   }   
     87    
    7788    void cxios_context_close_definition() 
    7889   { 
  • XIOS/trunk/src/interface/fortran/idata.F90

    r445 r461  
    2525      END SUBROUTINE cxios_context_initialize 
    2626 
     27      SUBROUTINE cxios_context_is_initialized(context_id,len_context_id,initialized) BIND(C) 
     28         USE ISO_C_BINDING 
     29         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: context_id 
     30         INTEGER  (kind = C_INT)     , VALUE        :: len_context_id 
     31         LOGICAL  (kind = C_BOOL)                   :: initialized 
     32      END SUBROUTINE cxios_context_is_initialized 
     33       
     34       
    2735       SUBROUTINE  cxios_context_close_definition() BIND(C) 
    2836         USE ISO_C_BINDING 
     
    130138  
    131139    END SUBROUTINE  xios(context_initialize) 
    132      
     140 
     141 
     142   LOGICAL FUNCTION  xios(context_is_initialized)(context_id) 
     143   USE ISO_C_BINDING 
     144   IMPLICIT NONE 
     145   CHARACTER(LEN=*),INTENT(IN)  :: context_id 
     146   LOGICAL(KIND=C_BOOL) :: is_init 
     147          
     148      CALL cxios_context_is_initialized(context_id, LEN(context_id), is_init) 
     149      xios(context_is_initialized) = is_init 
     150  
     151    END FUNCTION xios(context_is_initialized)    
     152 
    133153     
    134154   SUBROUTINE  xios(finalize) 
  • XIOS/trunk/src/interface/fortran/ixios.F90

    r445 r461  
    1212                                                
    1313USE idata, ONLY : xios(initialize),xios(init_server), xios(finalize), xios(context_initialize),  & 
    14                   xios(close_context_definition),xios(solve_inheritance),       & 
     14                  xios(context_is_initialized), xios(close_context_definition),xios(solve_inheritance),       & 
    1515                  xios(context_finalize), xios(send_field_r8_1d), xios(send_field_r8_2d), & 
    1616                  xios(send_field_r8_3d), xios(send_field_r4_1d), xios(send_field_r4_2d), & 
     
    155155 PUBLIC :: xios(set_current_context)   
    156156 PUBLIC :: xios(set_timestep),xios(update_calendar) 
    157  PUBLIC :: xios(initialize), xios(init_server), xios(finalize), xios(context_initialize),xios(solve_inheritance), & 
    158            xios(close_context_definition), xios(context_finalize), xios(send_field),xios(field_is_active) 
     157 PUBLIC :: xios(initialize), xios(init_server), xios(finalize), xios(context_initialize),xios(context_is_initialized), & 
     158           xios(solve_inheritance), xios(close_context_definition), xios(context_finalize), xios(send_field),          & 
     159           xios(field_is_active) 
    159160 
    160161END MODULE XIOS 
  • XIOS/trunk/src/node/context.cpp

    r459 r461  
    260260   }  
    261261 
     262   bool CContext::isInitialized(void) 
     263   { 
     264     return hasClient ; 
     265   } 
     266     
    262267   void CContext::initServer(MPI_Comm intraComm,MPI_Comm interComm) 
    263268   { 
  • XIOS/trunk/src/node/context.hpp

    r459 r461  
    103103         void initServer(MPI_Comm intraComm, MPI_Comm interComm) ; 
    104104         void initClient(MPI_Comm intraComm, MPI_Comm interComm) ; 
     105         bool isInitialized(void) ; 
    105106         CContextServer* server ; 
    106107         CContextClient* client ; 
Note: See TracChangeset for help on using the changeset viewer.