Changeset 8310


Ignore:
Timestamp:
2017-07-10T15:46:25+02:00 (4 years ago)
Author:
andmirek
Message:

#1882 works with AGRIF and few small fixes/changes

Location:
branches/UKMO/dev_r7573_xios_write/NEMOGCM/NEMO/OPA_SRC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r7573_xios_write/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90

    r8079 r8310  
    195195         WRITE(numout,*) '      overwrite an existing file      ln_clobber = ', ln_clobber 
    196196         WRITE(numout,*) '      NetCDF chunksize (bytes)        nn_chunksz = ', nn_chunksz 
    197          WRITE(numout,*) '      Write restart using XIOS        nn_wxios   = ', nn_wxios 
     197         IF( TRIM(Agrif_CFixed()) == '0' ) & 
     198     &      WRITE(numout,*) '      Write restart using XIOS        nn_wxios   = ', nn_wxios 
    198199      ENDIF 
    199200 
     
    308309      rdtmax    = rn_rdtmin 
    309310      rdth      = rn_rdth 
    310       if (nn_wxios > 0) lwxios = .TRUE.  
    311       wxioso = nn_wxios 
     311 
     312      IF( TRIM(Agrif_CFixed()) == '0' ) THEN 
     313!set output file type for XIOS based on NEMO namelist  
     314         if (nn_wxios > 0) lwxios = .TRUE.  
     315         wxioso = nn_wxios 
     316      ELSE 
     317         IF(lwp) THEN 
     318            write(numout,*) 
     319            write(numout,*) "AGRIF: nn_wxios will be ingored. See setting for NEMO"  
     320            write(numout,*) 
     321         ENDIF 
     322      ENDIF 
    312323 
    313324      REWIND( numnam_ref )              ! Namelist namcla in reference namelist : Cross land advection 
  • branches/UKMO/dev_r7573_xios_write/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90

    r8301 r8310  
    251251   END SUBROUTINE iom_init 
    252252 
    253    SUBROUTINE iom_rstw_init( cdname, filename, it )  
     253   SUBROUTINE iom_rstw_init( cdname, filename )  
    254254      !!---------------------------------------------------------------------- 
    255255      !!                     ***  ROUTINE   *** 
     
    274274      ! 
    275275      CHARACTER(len=*), OPTIONAL, INTENT(in)  :: filename  
    276       INTEGER, OPTIONAL :: it              ! timestep when subroutine was called 
    277276      !!---------------------------------------------------------------------- 
    278277 
    279278      clname = cdname  
    280       if(lwp) write(numout,*) 'initialize CONTEXT:', TRIM(cdname) 
    281279      IF( TRIM(Agrif_CFixed()) /= '0' )   clname = TRIM(Agrif_CFixed())//"_"//TRIM(cdname) 
    282280      CALL xios_context_initialize(TRIM(clname), mpi_comm_opa) 
     
    298296      CALL xios_add_child(domaingroup_hdl, domain_hdl, "grid_N") 
    299297      CALL set_grid("N", glamt, gphit, .FALSE.) 
    300  
     298  
    301299      CALL xios_get_handle("axis_definition",axisgroup_hdl) 
    302300      CALL xios_add_child(axisgroup_hdl, axis_hdl, "deptht") 
    303       CALL xios_set_axis_attr( "deptht", long_name="Vertical levels",  unit="m", positive="down") 
     301!if unit="m" is present AGRIF configuration fails to compile 
     302      CALL xios_set_axis_attr( "deptht", long_name="Vertical levels in meters", positive="down") 
    304303      ! vertical grid definition 
    305304      CALL iom_set_axis_attr( "deptht", paxis = gdept_1d ) 
    306305 
    307       CALL XIOS_GET_HANDLE("scalar_definition",scalargroup_hdl) 
     306      CALL xios_get_handle("scalar_definition",scalargroup_hdl) 
    308307      CALL xios_add_child(scalargroup_hdl, scalar_hdl, "grid_scalar") 
    309308 
     
    311310      IF( TRIM(cdname) == TRIM(wxios_context)) THEN 
    312311!set which fields are to be read from restart file 
    313        CALL set_rstw_active(filename, it) 
     312       CALL set_rstw_active(filename) 
    314313      ENDIF 
    315314 
     
    318317      CALL xios_set_timestep(dtime) 
    319318      CALL xios_close_context_definition() 
    320        
    321319#endif 
    322320 
    323321   END SUBROUTINE iom_rstw_init 
    324322 
    325    SUBROUTINE set_rstw_active(rst_file, it) 
     323   SUBROUTINE set_rstw_active(rst_file) 
    326324!sets enabled = .TRUE. for each field in restart file 
    327325   CHARACTER(len=*) :: rst_file 
    328    INTEGER, INTENT(in) :: it ! timestep when iom_init was called 
    329326   TYPE(xios_file) :: file_hdl 
    330327   TYPE(xios_filegroup) :: filegroup_hdl 
     
    346343        CALL xios_set_file_attr( "wrestart", name=trim(rst_file)) 
    347344        CALL set_numro_active(file_hdl) 
    348  
     345  
    349346    END SUBROUTINE set_rstw_active 
    350347 
     
    768765      TYPE(xios_context) :: nemo_hdl 
    769766 
    770       if(lwp) write(numout,*) 'iom_swap to: ',trim(cdname) 
    771767      IF( TRIM(Agrif_CFixed()) == '0' ) THEN 
    772768        CALL xios_get_handle(TRIM(cdname),nemo_hdl) 
     
    19271923   SUBROUTINE iom_context_finalize( cdname ) 
    19281924      CHARACTER(LEN=*), INTENT(in) :: cdname 
    1929       ! 
    1930       IF( xios_is_valid_context(cdname) ) THEN 
     1925      CHARACTER(LEN=120)           :: clname 
     1926      ! 
     1927      clname = cdname 
     1928      IF( TRIM(Agrif_CFixed()) .NE. '0' ) clname = TRIM(Agrif_CFixed())//"_"//clname  
     1929 
     1930      IF( xios_is_valid_context(clname) ) THEN 
    19311931         CALL iom_swap( cdname )   ! swap to cdname context 
    19321932         CALL xios_context_finalize() ! finalize the context 
  • branches/UKMO/dev_r7573_xios_write/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90

    r8299 r8310  
    6363      CHARACTER(LEN=20)   ::   clkt     ! ocean time-step deine as a character 
    6464      CHARACTER(LEN=50)   ::   clname   ! ocean output restart file name 
     65      CHARACTER(LEN=52)   ::   dlname   ! ocean output restart file name includinf prefix for AGRIF 
    6566      CHARACTER(LEN=150)  ::   clpath   ! full path to ocean output restart file 
    6667      !!---------------------------------------------------------------------- 
     
    106107            IF(lwp) THEN 
    107108               WRITE(numout,*) 
    108                IF(lwxios) THEN 
    109                   WRITE(numout,*)                                                     & 
    110                       '        XIOS open ocean restart NetCDF file: ',TRIM(clpath)//TRIM(clname) 
    111                ELSE 
     109               IF(.NOT.lwxios) THEN 
    112110                  SELECT CASE ( jprstlib ) 
    113111                  CASE ( jprstdimg )   ;   WRITE(numout,*)                            & 
     
    127125            ELSE 
    128126               wxios_context = "rstw_"//TRIM(ADJUSTL(clkt)) 
    129                CALL iom_rstw_init( wxios_context, TRIM(clpath)//TRIM(clname) ) 
     127               IF( TRIM(Agrif_CFixed()) == '0' ) THEN 
     128                  dlname = clname 
     129               ELSE 
     130                  dlname = TRIM(Agrif_CFixed())//"_"//clname    
     131               ENDIF 
     132               CALL iom_rstw_init( wxios_context, TRIM(clpath)//TRIM(dlname)) 
    130133               CALL xios_update_calendar(nitrst) 
    131134               CALL iom_swap(      cxios_context          ) 
     
    196199         ELSE 
    197200            CALL iom_context_finalize(      wxios_context          ) 
    198             CALL iom_swap(      cxios_context          ) 
    199201         ENDIF 
    200202!!gm         IF( .NOT. lk_trdmld )   lrst_oce = .FALSE. 
  • branches/UKMO/dev_r7573_xios_write/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90

    r6487 r8310  
    941941               &                          ' data type: '      ,       sdf(jf)%cltype      ,   & 
    942942               &                          ' land/sea mask:'   , TRIM( sdf(jf)%lsmname    ) 
    943             call flush(numout) 
    944943         END DO 
    945944      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.