New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 9367 for branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90 – NEMO

Ignore:
Timestamp:
2018-02-28T17:23:20+01:00 (6 years ago)
Author:
mathiot
Message:

Add restart read/write via XIOS capability (#1953 and #1962 and twiki: 2017WP/Met_Office-1_Mirek_XIOSread). WARNING: need to upgrade XIOS to r1296 to compile

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r9169 r9367  
    13471347      ! 
    13481348      IF( TRIM(cdrw) == 'READ' ) THEN 
    1349          CALL iom_get( numror, jpdom_autoglo, 'ub2_b'  , ub2_b  (:,:) )    
    1350          CALL iom_get( numror, jpdom_autoglo, 'vb2_b'  , vb2_b  (:,:) )  
    1351          CALL iom_get( numror, jpdom_autoglo, 'un_bf'  , un_bf  (:,:) )    
    1352          CALL iom_get( numror, jpdom_autoglo, 'vn_bf'  , vn_bf  (:,:) )  
     1349         CALL iom_get( numror, jpdom_autoglo, 'ub2_b'  , ub2_b  (:,:), ldxios = lrxios )    
     1350         CALL iom_get( numror, jpdom_autoglo, 'vb2_b'  , vb2_b  (:,:), ldxios = lrxios )  
     1351         CALL iom_get( numror, jpdom_autoglo, 'un_bf'  , un_bf  (:,:), ldxios = lrxios )    
     1352         CALL iom_get( numror, jpdom_autoglo, 'vn_bf'  , vn_bf  (:,:), ldxios = lrxios )  
    13531353         IF( .NOT.ln_bt_av ) THEN 
    1354             CALL iom_get( numror, jpdom_autoglo, 'sshbb_e'  , sshbb_e(:,:) )    
    1355             CALL iom_get( numror, jpdom_autoglo, 'ubb_e'    ,   ubb_e(:,:) )    
    1356             CALL iom_get( numror, jpdom_autoglo, 'vbb_e'    ,   vbb_e(:,:) ) 
    1357             CALL iom_get( numror, jpdom_autoglo, 'sshb_e'   ,  sshb_e(:,:) )  
    1358             CALL iom_get( numror, jpdom_autoglo, 'ub_e'     ,    ub_e(:,:) )    
    1359             CALL iom_get( numror, jpdom_autoglo, 'vb_e'     ,    vb_e(:,:) ) 
     1354            CALL iom_get( numror, jpdom_autoglo, 'sshbb_e'  , sshbb_e(:,:), ldxios = lrxios )    
     1355            CALL iom_get( numror, jpdom_autoglo, 'ubb_e'    ,   ubb_e(:,:), ldxios = lrxios )    
     1356            CALL iom_get( numror, jpdom_autoglo, 'vbb_e'    ,   vbb_e(:,:), ldxios = lrxios ) 
     1357            CALL iom_get( numror, jpdom_autoglo, 'sshb_e'   ,  sshb_e(:,:), ldxios = lrxios )  
     1358            CALL iom_get( numror, jpdom_autoglo, 'ub_e'     ,    ub_e(:,:), ldxios = lrxios )    
     1359            CALL iom_get( numror, jpdom_autoglo, 'vb_e'     ,    vb_e(:,:), ldxios = lrxios ) 
    13601360         ENDIF 
    13611361#if defined key_agrif 
    13621362         ! Read time integrated fluxes 
    13631363         IF ( .NOT.Agrif_Root() ) THEN 
    1364             CALL iom_get( numror, jpdom_autoglo, 'ub2_i_b'  , ub2_i_b(:,:) )    
    1365             CALL iom_get( numror, jpdom_autoglo, 'vb2_i_b'  , vb2_i_b(:,:) ) 
     1364            CALL iom_get( numror, jpdom_autoglo, 'ub2_i_b'  , ub2_i_b(:,:), ldxios = lrxios )    
     1365            CALL iom_get( numror, jpdom_autoglo, 'vb2_i_b'  , vb2_i_b(:,:), ldxios = lrxios ) 
    13661366         ENDIF 
    13671367#endif 
    13681368      ! 
    13691369      ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN 
    1370          CALL iom_rstput( kt, nitrst, numrow, 'ub2_b'   , ub2_b  (:,:) ) 
    1371          CALL iom_rstput( kt, nitrst, numrow, 'vb2_b'   , vb2_b  (:,:) ) 
    1372          CALL iom_rstput( kt, nitrst, numrow, 'un_bf'   , un_bf  (:,:) ) 
    1373          CALL iom_rstput( kt, nitrst, numrow, 'vn_bf'   , vn_bf  (:,:) ) 
     1370         IF( lwxios ) CALL iom_swap(      cwxios_context          ) 
     1371         CALL iom_rstput( kt, nitrst, numrow, 'ub2_b'   , ub2_b  (:,:), ldxios = lwxios ) 
     1372         CALL iom_rstput( kt, nitrst, numrow, 'vb2_b'   , vb2_b  (:,:), ldxios = lwxios ) 
     1373         CALL iom_rstput( kt, nitrst, numrow, 'un_bf'   , un_bf  (:,:), ldxios = lwxios ) 
     1374         CALL iom_rstput( kt, nitrst, numrow, 'vn_bf'   , vn_bf  (:,:), ldxios = lwxios ) 
    13741375         ! 
    13751376         IF (.NOT.ln_bt_av) THEN 
    1376             CALL iom_rstput( kt, nitrst, numrow, 'sshbb_e'  , sshbb_e(:,:) )  
    1377             CALL iom_rstput( kt, nitrst, numrow, 'ubb_e'    ,   ubb_e(:,:) ) 
    1378             CALL iom_rstput( kt, nitrst, numrow, 'vbb_e'    ,   vbb_e(:,:) ) 
    1379             CALL iom_rstput( kt, nitrst, numrow, 'sshb_e'   ,  sshb_e(:,:) ) 
    1380             CALL iom_rstput( kt, nitrst, numrow, 'ub_e'     ,    ub_e(:,:) ) 
    1381             CALL iom_rstput( kt, nitrst, numrow, 'vb_e'     ,    vb_e(:,:) ) 
     1377            CALL iom_rstput( kt, nitrst, numrow, 'sshbb_e'  , sshbb_e(:,:), ldxios = lwxios )  
     1378            CALL iom_rstput( kt, nitrst, numrow, 'ubb_e'    ,   ubb_e(:,:), ldxios = lwxios ) 
     1379            CALL iom_rstput( kt, nitrst, numrow, 'vbb_e'    ,   vbb_e(:,:), ldxios = lwxios ) 
     1380            CALL iom_rstput( kt, nitrst, numrow, 'sshb_e'   ,  sshb_e(:,:), ldxios = lwxios ) 
     1381            CALL iom_rstput( kt, nitrst, numrow, 'ub_e'     ,    ub_e(:,:), ldxios = lwxios ) 
     1382            CALL iom_rstput( kt, nitrst, numrow, 'vb_e'     ,    vb_e(:,:), ldxios = lwxios ) 
    13821383         ENDIF 
    13831384#if defined key_agrif 
    13841385         ! Save time integrated fluxes 
    13851386         IF ( .NOT.Agrif_Root() ) THEN 
    1386             CALL iom_rstput( kt, nitrst, numrow, 'ub2_i_b'  , ub2_i_b(:,:) ) 
    1387             CALL iom_rstput( kt, nitrst, numrow, 'vb2_i_b'  , vb2_i_b(:,:) ) 
     1387            CALL iom_rstput( kt, nitrst, numrow, 'ub2_i_b'  , ub2_i_b(:,:), ldxios = lwxios ) 
     1388            CALL iom_rstput( kt, nitrst, numrow, 'vb2_i_b'  , vb2_i_b(:,:), ldxios = lwxios ) 
    13881389         ENDIF 
    13891390#endif 
     1391         IF( lwxios ) CALL iom_swap(      cxios_context          ) 
    13901392      ENDIF 
    13911393      ! 
     
    14821484      IF( neuler /= 0 .AND. ln_bt_fw )   CALL ts_rst( nit000, 'READ' ) 
    14831485      ! 
     1486      IF( lwxios ) THEN 
     1487! define variables in restart file when writing with XIOS 
     1488         CALL iom_set_rstw_var_active('ub2_b') 
     1489         CALL iom_set_rstw_var_active('vb2_b') 
     1490         CALL iom_set_rstw_var_active('un_bf') 
     1491         CALL iom_set_rstw_var_active('vn_bf') 
     1492         ! 
     1493         IF (.NOT.ln_bt_av) THEN 
     1494            CALL iom_set_rstw_var_active('sshbb_e') 
     1495            CALL iom_set_rstw_var_active('ubb_e') 
     1496            CALL iom_set_rstw_var_active('vbb_e') 
     1497            CALL iom_set_rstw_var_active('sshb_e') 
     1498            CALL iom_set_rstw_var_active('ub_e') 
     1499            CALL iom_set_rstw_var_active('vb_e') 
     1500         ENDIF 
     1501#if defined key_agrif 
     1502         ! Save time integrated fluxes 
     1503         IF ( .NOT.Agrif_Root() ) THEN 
     1504            CALL iom_set_rstw_var_active('ub2_i_b') 
     1505            CALL iom_set_rstw_var_active('vb2_i_b') 
     1506         ENDIF 
     1507#endif 
     1508      ENDIF 
     1509      ! 
    14841510   END SUBROUTINE dyn_spg_ts_init 
    14851511 
Note: See TracChangeset for help on using the changeset viewer.