Ignore:
Timestamp:
02/13/12 19:35:25 (12 years ago)
Author:
ymipsl
Message:

nouvelle version de developpement de xios

  • nouvelle interface fortran
  • recodage complet de la couche de communication
  • et bien d'autres choses...

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/common/src/fortran/idata.F90

    r286 r300  
    77   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 
    88 
     9      SUBROUTINE  cxios_init_server() BIND(C) 
     10      END SUBROUTINE cxios_init_server 
     11 
     12     SUBROUTINE cxios_init_client(client_id, len_client_id, f_local_comm, f_return_comm) BIND(C) 
     13         USE ISO_C_BINDING 
     14         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: client_id 
     15         INTEGER  (kind = C_INT)     , VALUE        :: len_client_id 
     16         INTEGER  (kind = C_INT)                    :: f_local_comm 
     17         INTEGER  (kind = C_INT)                    :: f_return_comm 
     18      END SUBROUTINE cxios_init_client 
     19       
     20      SUBROUTINE  cxios_context_initialize(context_id,len_context_id,f_comm) BIND(C) 
     21         USE ISO_C_BINDING 
     22         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: context_id 
     23         INTEGER  (kind = C_INT)     , VALUE        :: len_context_id 
     24         INTEGER  (kind = C_INT)                    :: f_comm 
     25      END SUBROUTINE cxios_context_initialize 
     26 
     27       SUBROUTINE  cxios_context_close_definition() BIND(C) 
     28         USE ISO_C_BINDING 
     29      END SUBROUTINE cxios_context_close_definition 
     30      
     31 
     32       SUBROUTINE  cxios_context_finalize() BIND(C) 
     33         USE ISO_C_BINDING 
     34      END SUBROUTINE cxios_context_finalize 
     35      
    936      SUBROUTINE  cxios_init_ioserver(comm_client,comm_parent) BIND(C) 
    1037         USE ISO_C_BINDING 
     
    1542      SUBROUTINE  cxios_finalize_ioserver BIND(C) 
    1643      END SUBROUTINE cxios_finalize_ioserver 
     44  
     45      SUBROUTINE  cxios_finalize BIND(C) 
     46      END SUBROUTINE cxios_finalize 
    1747 
    1848      SUBROUTINE cxios_dtreatment_start() BIND(C) 
     
    80110   CONTAINS ! Fonctions disponibles pour les utilisateurs. 
    81111 
    82  
    83    SUBROUTINE  xios(initialize)(local_comm,return_comm ) 
     112   SUBROUTINE  xios(init_server)() 
     113   IMPLICIT NONE 
     114     CALL cxios_init_server() 
     115   END SUBROUTINE xios(init_server) 
     116    
     117   SUBROUTINE  xios(initialize)(client_id, local_comm, return_comm) 
    84118   IMPLICIT NONE 
    85119   INCLUDE 'mpif.h' 
    86       INTEGER, INTENT(OUT),OPTIONAL :: return_comm 
    87       INTEGER, INTENT(IN),OPTIONAL :: local_comm 
    88  
    89       INTEGER  :: comm_client 
    90       INTEGER  :: comm_parent 
    91        
     120   CHARACTER(LEN=*),INTENT(IN) :: client_id 
     121   INTEGER,INTENT(IN),OPTIONAL         :: local_comm   
     122   INTEGER,INTENT(OUT),OPTIONAL        :: return_comm 
     123   INTEGER :: f_local_comm 
     124   INTEGER :: f_return_comm 
     125    
    92126      IF (PRESENT(local_comm)) THEN 
    93         comm_parent=local_comm 
     127        f_local_comm=local_comm  
    94128      ELSE 
    95         comm_parent=MPI_COMM_WORLD 
     129        f_local_comm = MPI_COMM_NULL  
    96130      ENDIF 
    97131       
    98       CALL cxios_init_ioserver(comm_client,comm_parent) 
    99       IF (PRESENT(return_comm)) return_comm=comm_client ; 
    100  
    101     END SUBROUTINE  xios(initialize) 
    102  
     132      CALL cxios_init_client(client_id,LEN(client_id),f_local_comm,f_return_comm) 
     133  
     134      IF (PRESENT(return_comm)) return_comm=f_return_comm 
     135 
     136   END SUBROUTINE  xios(initialize) 
     137 
     138 
     139   SUBROUTINE  xios(context_initialize)(context_id,comm) 
     140   IMPLICIT NONE 
     141   CHARACTER(LEN=*),INTENT(IN)  :: context_id 
     142   INTEGER, INTENT(IN)          :: comm 
     143       
     144      CALL cxios_context_initialize(context_id,LEN(context_id),comm) 
     145  
     146    END SUBROUTINE  xios(context_initialize) 
     147     
     148     
    103149   SUBROUTINE  xios(finalize) 
    104150   IMPLICIT NONE 
    105151 
    106       CALL cxios_finalize_ioserver 
     152      CALL cxios_finalize 
    107153 
    108154    END SUBROUTINE  xios(finalize) 
     
    111157   SUBROUTINE xios(close_context_definition)() 
    112158   IMPLICIT NONE 
    113       CALL cxios_dtreatment_start() 
     159      CALL cxios_context_close_definition() 
    114160   END SUBROUTINE xios(close_context_definition) 
    115161 
     
    117163   SUBROUTINE xios(context_finalize)() 
    118164   IMPLICIT NONE 
    119       CALL cxios_dtreatment_end() 
     165      CALL cxios_context_finalize() 
    120166   END SUBROUTINE xios(context_finalize) 
    121167    
Note: See TracChangeset for help on using the changeset viewer.