source: XMLIO_V2/dev/common/src/xmlio/fortran/oasis_interface.F90 @ 286

Last change on this file since 286 was 286, checked in by ymipsl, 13 years ago

reprise en main de la version de H. Ozdoba. Correction de différentes erreurs de conception et bug.
Version NEMO operationnel en client/server, interoperabilita avec OASIS, reconstition de fichiers via netcdf4/HDF5

YM

File size: 1.7 KB
Line 
1SUBROUTINE fxios_oasis_init(server_id,str_len) BIND(C,NAME="fxios_oasis_init")
2  USE, INTRINSIC :: ISO_C_BINDING
3#ifdef USE_OASIS
4  USE mod_prism_proto
5#endif
6    CHARACTER(kind = C_CHAR),DIMENSION(*) :: server_id
7    INTEGER(kind = C_INT),VALUE   :: str_len
8   
9    INTEGER                :: comp_id
10    CHARACTER(len=str_len) :: oasis_server_id
11    INTEGER                :: ierr
12    INTEGER :: i
13   
14    DO i=1,str_len
15      oasis_server_id(i:i)=server_id(i)
16    ENDDO
17
18#ifdef USE_OASIS
19    CALL prism_init_comp_proto (comp_id, oasis_server_id, ierr)
20#endif
21    PRINT *,"---> prism_init",oasis_server_id,ierr
22
23END SUBROUTINE fxios_oasis_init
24
25
26SUBROUTINE fxios_oasis_finalize BIND(C,NAME="fxios_oasis_finalize")
27  USE, INTRINSIC :: ISO_C_BINDING
28#ifdef USE_OASIS
29  USE mod_prism_proto
30#endif
31  IMPLICIT NONE
32  INTEGER :: ierr
33 
34#ifdef USE_OASIS
35    CALL prism_terminate_proto(ierr)
36#endif
37   
38END SUBROUTINE fxios_oasis_finalize
39
40
41SUBROUTINE fxios_oasis_get_intracomm(f_comm_client_server,client_id,str_len) BIND(C,NAME="fxios_oasis_get_intracomm")
42  USE, INTRINSIC :: ISO_C_BINDING
43#ifdef USE_OASIS
44  USE mod_prism_get_comm 
45#endif
46  IMPLICIT NONE
47  INTEGER(kind=C_INT) :: f_comm_client_server
48  CHARACTER,DIMENSION(*) :: client_id
49  INTEGER,VALUE          :: str_len
50 
51  INTEGER :: comm_client_server
52  CHARACTER(len=str_len) :: oasis_client_id
53  INTEGER :: ierr
54  INTEGER :: i
55   
56    DO i=1,str_len
57      oasis_client_id(i:i)=client_id(i)
58    ENDDO
59   
60#ifdef USE_OASIS
61    CALL prism_get_intracomm(comm_client_server,oasis_client_id,ierr)
62#endif
63    PRINT *,"---> prism_get_intracomm ",oasis_client_id,comm_client_server,ierr
64    f_comm_client_server=comm_client_server
65
66END SUBROUTINE fxios_oasis_get_intracomm
Note: See TracBrowser for help on using the repository browser.