Ignore:
Timestamp:
10/15/18 16:42:33 (6 years ago)
Author:
ymipsl
Message:

XIOS - OASIS interaction : due to many problem occurring in the oasis/XIOS initialization phase due to a bad order of intialization call from both, you have now the possibily to explicitly inform xios that the servers must call oasis_enddef().
New rules : On model side, before calling oasis_enddef, you must add a call to "xios_oasis_enddef()"
Old rules : oasis_enddef must be call before any call to "xios_context_initialize" otherwise it may lead to a deadlock.
You can use the old rules if the variable <call_oasis_enddef> is set to false (default value is true), and by this way no need to modify the source code of the models

YM

Location:
XIOS/trunk/src/interface/fortran
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/fortran/idata.F90

    r1158 r1587  
    4242      END SUBROUTINE cxios_context_finalize 
    4343 
    44  
     44      SUBROUTINE  cxios_oasis_enddef() BIND(C) 
     45         USE ISO_C_BINDING 
     46      END SUBROUTINE cxios_oasis_enddef 
     47       
    4548      SUBROUTINE  cxios_finalize() BIND(C) 
    4649      END SUBROUTINE cxios_finalize 
     
    507510    END SUBROUTINE  xios(finalize) 
    508511 
     512   SUBROUTINE  xios(oasis_enddef) 
     513   IMPLICIT NONE 
     514 
     515      CALL cxios_oasis_enddef 
     516 
     517    END SUBROUTINE  xios(oasis_enddef) 
    509518 
    510519   SUBROUTINE xios(close_context_definition)() 
  • XIOS/trunk/src/interface/fortran/ixios.F90

    r981 r1587  
    1313 
    1414USE idata, ONLY : xios(initialize), xios(init_server), xios(finalize), xios(context_initialize), xios(context_is_initialized), & 
    15                   xios(close_context_definition), xios(context_finalize), xios(solve_inheritance) 
     15                  xios(close_context_definition), xios(context_finalize), xios(solve_inheritance), xios(oasis_enddef) 
    1616 
    1717USE idomain, ONLY : txios(domain), txios(domaingroup), xios(is_valid_domain), xios(is_valid_domaingroup) 
Note: See TracChangeset for help on using the changeset viewer.