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 8644 for branches/2017/dev_r8600_xios_write/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90 – NEMO

Ignore:
Timestamp:
2017-10-20T10:04:07+02:00 (7 years ago)
Author:
andmirek
Message:

ticket #1962 xios write functionality works

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8600_xios_write/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90

    r8630 r8644  
    100100               IF(.NOT.lwxios) THEN 
    101101                  SELECT CASE ( jprstlib ) 
    102                   CASE ( jprstdimg )   ;   WRITE(numout,*)                            & 
    103                       '             open ocean restart binary file: ',TRIM(clpath)//TRIM(clname) 
    104102                  CASE DEFAULT         ;   WRITE(numout,*)                            & 
    105103                      '             open ocean restart NetCDF file: ',TRIM(clpath)//TRIM(clname) 
     
    121119                  dlname = TRIM(Agrif_CFixed())//"_"//clname    
    122120               ENDIF 
    123                CALL iom_rstw_init( wxios_context, TRIM(clpath)//TRIM(dlname)) 
     121               CALL iom_init( wxios_context, TRIM(clpath)//TRIM(dlname)) 
    124122               CALL xios_update_calendar(nitrst) 
    125123               CALL iom_swap(      cxios_context          ) 
     
    146144                     IF(lwxios) CALL iom_swap(      wxios_context          ) 
    147145                     CALL iom_rstput( kt, nitrst, numrow, 'rdt'    , rdt       , lxios = lwxios)   ! dynamics time step 
    148                      CALL iom_rstput( kt, nitrst, numrow, 'rdttra1', rdttra(1) , lxios = lwxios)   ! surface tracer time step 
    149                      CALL iom_rstput( kt, nitrst, numrow, 'rdt'    , rdt       )   ! dynamics and tracer time step 
    150146 
    151147      IF ( .NOT. ln_diurnal_only ) THEN 
    152                      CALL iom_rstput( kt, nitrst, numrow, 'ub'     , ub, lxios = lwxios)        )     ! before fields 
    153                      CALL iom_rstput( kt, nitrst, numrow, 'vb'     , vb, lxios = lwxios)        ) 
    154                      CALL iom_rstput( kt, nitrst, numrow, 'tb'     , tsb(:,:,:,jp_tem), lxios = lwxios) ) 
    155                      CALL iom_rstput( kt, nitrst, numrow, 'sb'     , tsb(:,:,:,jp_sal), lxios = lwxios) ) 
    156                      CALL iom_rstput( kt, nitrst, numrow, 'sshb'   , sshb, lxios = lwxios)      ) 
     148                     CALL iom_rstput( kt, nitrst, numrow, 'ub'     , ub, lxios = lwxios        )     ! before fields 
     149                     CALL iom_rstput( kt, nitrst, numrow, 'vb'     , vb, lxios = lwxios        ) 
     150                     CALL iom_rstput( kt, nitrst, numrow, 'tb'     , tsb(:,:,:,jp_tem), lxios = lwxios ) 
     151                     CALL iom_rstput( kt, nitrst, numrow, 'sb'     , tsb(:,:,:,jp_sal), lxios = lwxios ) 
     152                     CALL iom_rstput( kt, nitrst, numrow, 'sshb'   , sshb, lxios = lwxios      ) 
    157153                     ! 
    158154                     CALL iom_rstput( kt, nitrst, numrow, 'un'     , un, lxios = lwxios        )     ! now fields 
     
    164160                  ! extra variable needed for the ice sheet coupling 
    165161                  IF ( ln_iscpl ) THEN  
    166                      CALL iom_rstput( kt, nitrst, numrow, 'tmask'  , tmask    ) ! need to extrapolate T/S 
    167                      CALL iom_rstput( kt, nitrst, numrow, 'umask'  , umask    ) ! need to correct barotropic velocity 
    168                      CALL iom_rstput( kt, nitrst, numrow, 'vmask'  , vmask    ) ! need to correct barotropic velocity 
    169                      CALL iom_rstput( kt, nitrst, numrow, 'smask'  , ssmask    ) ! need to correct barotropic velocity 
    170                      CALL iom_rstput( kt, nitrst, numrow, 'e3t_n', e3t_n(:,:,:) )   ! need to compute temperature correction 
    171                      CALL iom_rstput( kt, nitrst, numrow, 'e3u_n', e3u_n(:,:,:) )   ! need to compute bt conservation 
    172                      CALL iom_rstput( kt, nitrst, numrow, 'e3v_n', e3v_n(:,:,:) )   ! need to compute bt conservation 
    173                      CALL iom_rstput( kt, nitrst, numrow, 'gdepw_n', gdepw_n(:,:,:) ) ! need to compute extrapolation if vvl 
     162                     CALL iom_rstput( kt, nitrst, numrow, 'tmask'  , tmask, lxios = lwxios ) ! need to extrapolate T/S 
     163                     CALL iom_rstput( kt, nitrst, numrow, 'umask'  , umask, lxios = lwxios ) ! need to correct barotropic velocity 
     164                     CALL iom_rstput( kt, nitrst, numrow, 'vmask'  , vmask, lxios = lwxios ) ! need to correct barotropic velocity 
     165                     CALL iom_rstput( kt, nitrst, numrow, 'smask'  , ssmask, lxios = lwxios) ! need to correct barotropic velocity 
     166                     CALL iom_rstput( kt, nitrst, numrow, 'e3t_n', e3t_n(:,:,:), lxios = lwxios )   ! need to compute temperature correction 
     167                     CALL iom_rstput( kt, nitrst, numrow, 'e3u_n', e3u_n(:,:,:), lxios = lwxios )   ! need to compute bt conservation 
     168                     CALL iom_rstput( kt, nitrst, numrow, 'e3v_n', e3v_n(:,:,:), lxios = lwxios )   ! need to compute bt conservation 
     169                     CALL iom_rstput( kt, nitrst, numrow, 'gdepw_n', gdepw_n(:,:,:), lxios = lwxios ) ! need to compute extrapolation if vvl 
    174170                  END IF 
    175171      ENDIF 
    176172       
    177       IF (ln_diurnal) CALL iom_rstput( kt, nitrst, numrow, 'Dsst', x_dsst    
    178  
     173      IF (ln_diurnal) CALL iom_rstput( kt, nitrst, numrow, 'Dsst', x_dsst, lxios = lwxios 
     174      IF(lwxios) CALL iom_swap(      cxios_context          ) 
    179175      IF( kt == nitrst ) THEN 
    180176         IF(.NOT.lwxios) THEN 
Note: See TracChangeset for help on using the changeset viewer.