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 8987 for branches/2017/dev_METO_2017/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90 – NEMO

Ignore:
Timestamp:
2017-12-12T11:41:19+01:00 (6 years ago)
Author:
timgraham
Message:

Merge in XIOS read/write branch again

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_METO_2017/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90

    r8985 r8987  
    242242      ENDIF 
    243243      ! 
     244      IF(lwxios) THEN 
     245! define variables in restart file when writing with XIOS 
     246         CALL iom_set_rstw_var_active('e3t_b') 
     247         CALL iom_set_rstw_var_active('e3t_n') 
     248         !                                           ! ----------------------- ! 
     249         IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN  ! z_tilde and layer cases ! 
     250            !                                        ! ----------------------- ! 
     251            CALL iom_set_rstw_var_active('tilde_e3t_b') 
     252            CALL iom_set_rstw_var_active('tilde_e3t_n') 
     253         END IF 
     254         !                                           ! -------------!     
     255         IF( ln_vvl_ztilde ) THEN                    ! z_tilde case ! 
     256            !                                        ! ------------ ! 
     257            CALL iom_set_rstw_var_active('hdiv_lf') 
     258         ENDIF 
     259         ! 
     260      ENDIF 
     261 
    244262      IF( nn_timing == 1 )  CALL timing_stop('dom_vvl_init') 
    245263      ! 
     
    799817         IF( ln_rstart ) THEN                   !* Read the restart file 
    800818            CALL rst_read_open                  !  open the restart file if necessary 
    801             CALL iom_get( numror, jpdom_autoglo, 'sshn'   , sshn    ) 
     819            CALL iom_get( numror, jpdom_autoglo, 'sshn'   , sshn, ldxios = lrxios    ) 
    802820            ! 
    803821            id1 = iom_varid( numror, 'e3t_b', ldstop = .FALSE. ) 
     
    810828            !                             ! --------- ! 
    811829            IF( MIN( id1, id2 ) > 0 ) THEN       ! all required arrays exist 
    812                CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:) ) 
    813                CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t_n(:,:,:) ) 
     830               CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:), ldxios = lrxios ) 
     831               CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t_n(:,:,:), ldxios = lrxios ) 
    814832               ! needed to restart if land processor not computed  
    815833               IF(lwp) write(numout,*) 'dom_vvl_rst : e3t_b and e3t_n found in restart files' 
     
    825843               IF(lwp) write(numout,*) 'e3t_n set equal to e3t_b.' 
    826844               IF(lwp) write(numout,*) 'neuler is forced to 0' 
    827                CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:) ) 
     845               CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:), ldxios = lrxios ) 
    828846               e3t_n(:,:,:) = e3t_b(:,:,:) 
    829847               neuler = 0 
     
    832850               IF(lwp) write(numout,*) 'e3t_b set equal to e3t_n.' 
    833851               IF(lwp) write(numout,*) 'neuler is forced to 0' 
    834                CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t_n(:,:,:) ) 
     852               CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t_n(:,:,:), ldxios = lrxios ) 
    835853               e3t_b(:,:,:) = e3t_n(:,:,:) 
    836854               neuler = 0 
     
    857875               !                          ! ----------------------- ! 
    858876               IF( MIN( id3, id4 ) > 0 ) THEN  ! all required arrays exist 
    859                   CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_b', tilde_e3t_b(:,:,:) ) 
    860                   CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_n', tilde_e3t_n(:,:,:) ) 
     877                  CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_b', tilde_e3t_b(:,:,:), ldxios = lrxios ) 
     878                  CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_n', tilde_e3t_n(:,:,:), ldxios = lrxios ) 
    861879               ELSE                            ! one at least array is missing 
    862880                  tilde_e3t_b(:,:,:) = 0.0_wp 
     
    867885                  !                       ! ------------ ! 
    868886                  IF( id5 > 0 ) THEN  ! required array exists 
    869                      CALL iom_get( numror, jpdom_autoglo, 'hdiv_lf', hdiv_lf(:,:,:) ) 
     887                     CALL iom_get( numror, jpdom_autoglo, 'hdiv_lf', hdiv_lf(:,:,:), ldxios = lrxios ) 
    870888                  ELSE                ! array is missing 
    871889                     hdiv_lf(:,:,:) = 0.0_wp 
     
    938956         !                                   ! =================== 
    939957         IF(lwp) WRITE(numout,*) '---- dom_vvl_rst ----' 
     958         IF( lwxios ) CALL iom_swap(      cwxios_context          ) 
    940959         !                                           ! --------- ! 
    941960         !                                           ! all cases ! 
    942961         !                                           ! --------- ! 
    943          CALL iom_rstput( kt, nitrst, numrow, 'e3t_b', e3t_b(:,:,:) ) 
    944          CALL iom_rstput( kt, nitrst, numrow, 'e3t_n', e3t_n(:,:,:) ) 
     962         CALL iom_rstput( kt, nitrst, numrow, 'e3t_b', e3t_b(:,:,:), ldxios = lwxios ) 
     963         CALL iom_rstput( kt, nitrst, numrow, 'e3t_n', e3t_n(:,:,:), ldxios = lwxios ) 
    945964         !                                           ! ----------------------- ! 
    946965         IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN  ! z_tilde and layer cases ! 
    947966            !                                        ! ----------------------- ! 
    948             CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_b', tilde_e3t_b(:,:,:) ) 
    949             CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_n', tilde_e3t_n(:,:,:) ) 
     967            CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_b', tilde_e3t_b(:,:,:), ldxios = lwxios) 
     968            CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_n', tilde_e3t_n(:,:,:), ldxios = lwxios) 
    950969         END IF 
    951970         !                                           ! -------------!     
    952971         IF( ln_vvl_ztilde ) THEN                    ! z_tilde case ! 
    953972            !                                        ! ------------ ! 
    954             CALL iom_rstput( kt, nitrst, numrow, 'hdiv_lf', hdiv_lf(:,:,:) ) 
    955          ENDIF 
    956          ! 
     973            CALL iom_rstput( kt, nitrst, numrow, 'hdiv_lf', hdiv_lf(:,:,:), ldxios = lwxios) 
     974         ENDIF 
     975         ! 
     976         IF( lwxios ) CALL iom_swap(      cxios_context          ) 
    957977      ENDIF 
    958978      ! 
Note: See TracChangeset for help on using the changeset viewer.