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 8801 for branches/2017/dev_r8600_xios_read_write_v2/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssm.F90 – NEMO

Ignore:
Timestamp:
2017-11-23T16:52:17+01:00 (6 years ago)
Author:
andmirek
Message:

#1953 and #1962 merge dev_r8600_xios_read_write r8793

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8600_xios_read_write_v2/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssm.F90

    r8800 r8801  
    2222   USE prtctl         ! Print control 
    2323   USE iom            ! IOM library 
    24    USE iom_def, ONLY : lxios_read 
     24   USE iom_def, ONLY : lrxios, lwxios 
    2525 
    2626   IMPLICIT NONE 
     
    156156            IF(lwp) WRITE(numout,*) '~~~~~~~' 
    157157            zf_sbc = REAL( nn_fsbc, wp ) 
    158             CALL iom_rstput( kt, nitrst, numrow, 'nn_fsbc', zf_sbc )    ! sbc frequency 
    159             CALL iom_rstput( kt, nitrst, numrow, 'ssu_m'  , ssu_m  )    ! sea surface mean fields 
    160             CALL iom_rstput( kt, nitrst, numrow, 'ssv_m'  , ssv_m  ) 
    161             CALL iom_rstput( kt, nitrst, numrow, 'sst_m'  , sst_m  ) 
    162             CALL iom_rstput( kt, nitrst, numrow, 'sss_m'  , sss_m  ) 
    163             CALL iom_rstput( kt, nitrst, numrow, 'ssh_m'  , ssh_m  ) 
    164             CALL iom_rstput( kt, nitrst, numrow, 'e3t_m'  , e3t_m  ) 
    165             CALL iom_rstput( kt, nitrst, numrow, 'frq_m'  , frq_m  ) 
    166             ! 
     158            IF( lwxios ) CALL iom_swap(      cwxios_context          ) 
     159            CALL iom_rstput( kt, nitrst, numrow, 'nn_fsbc', zf_sbc, ldxios = lwxios )    ! sbc frequency 
     160            CALL iom_rstput( kt, nitrst, numrow, 'ssu_m'  , ssu_m, ldxios = lwxios  )    ! sea surface mean fields 
     161            CALL iom_rstput( kt, nitrst, numrow, 'ssv_m'  , ssv_m, ldxios = lwxios  ) 
     162            CALL iom_rstput( kt, nitrst, numrow, 'sst_m'  , sst_m, ldxios = lwxios  ) 
     163            CALL iom_rstput( kt, nitrst, numrow, 'sss_m'  , sss_m, ldxios = lwxios  ) 
     164            CALL iom_rstput( kt, nitrst, numrow, 'ssh_m'  , ssh_m, ldxios = lwxios  ) 
     165            CALL iom_rstput( kt, nitrst, numrow, 'e3t_m'  , e3t_m, ldxios = lwxios  ) 
     166            CALL iom_rstput( kt, nitrst, numrow, 'frq_m'  , frq_m, ldxios = lwxios  ) 
     167            ! 
     168            IF( lwxios ) CALL iom_swap(      cxios_context          ) 
    167169         ENDIF 
    168170         ! 
     
    207209         IF( ln_rstart .AND. iom_varid( numror, 'nn_fsbc', ldstop = .FALSE. ) > 0 ) THEN 
    208210            l_ssm_mean = .TRUE. 
    209             CALL iom_get( numror               , 'nn_fsbc', zf_sbc, ldxios = lxios_read )    ! sbc frequency of previous run 
    210             CALL iom_get( numror, jpdom_autoglo, 'ssu_m'  , ssu_m, ldxios = lxios_read  )    ! sea surface mean velocity    (U-point) 
    211             CALL iom_get( numror, jpdom_autoglo, 'ssv_m'  , ssv_m, ldxios = lxios_read  )    !   "         "    velocity    (V-point) 
    212             CALL iom_get( numror, jpdom_autoglo, 'sst_m'  , sst_m, ldxios = lxios_read  )    !   "         "    temperature (T-point) 
    213             CALL iom_get( numror, jpdom_autoglo, 'sss_m'  , sss_m, ldxios = lxios_read  )    !   "         "    salinity    (T-point) 
    214             CALL iom_get( numror, jpdom_autoglo, 'ssh_m'  , ssh_m, ldxios = lxios_read  )    !   "         "    height      (T-point) 
    215             CALL iom_get( numror, jpdom_autoglo, 'e3t_m'  , e3t_m, ldxios = lxios_read  )    ! 1st level thickness          (T-point) 
    216             CALL iom_get( numror, jpdom_autoglo, 'e3t_m', e3t_m, ldxios = lxios_read ) 
     211            CALL iom_get( numror               , 'nn_fsbc', zf_sbc, ldxios = lrxios )    ! sbc frequency of previous run 
     212            CALL iom_get( numror, jpdom_autoglo, 'ssu_m'  , ssu_m, ldxios = lrxios  )    ! sea surface mean velocity    (U-point) 
     213            CALL iom_get( numror, jpdom_autoglo, 'ssv_m'  , ssv_m, ldxios = lrxios  )    !   "         "    velocity    (V-point) 
     214            CALL iom_get( numror, jpdom_autoglo, 'sst_m'  , sst_m, ldxios = lrxios  )    !   "         "    temperature (T-point) 
     215            CALL iom_get( numror, jpdom_autoglo, 'sss_m'  , sss_m, ldxios = lrxios  )    !   "         "    salinity    (T-point) 
     216            CALL iom_get( numror, jpdom_autoglo, 'ssh_m'  , ssh_m, ldxios = lrxios  )    !   "         "    height      (T-point) 
     217            CALL iom_get( numror, jpdom_autoglo, 'e3t_m'  , e3t_m, ldxios = lrxios  )    ! 1st level thickness          (T-point) 
     218            CALL iom_get( numror, jpdom_autoglo, 'e3t_m', e3t_m, ldxios = lrxios ) 
    217219            ! fraction of solar net radiation absorbed in 1st T level 
    218220            IF( iom_varid( numror, 'frq_m', ldstop = .FALSE. ) > 0 ) THEN 
    219                CALL iom_get( numror, jpdom_autoglo, 'frq_m'  , frq_m, ldxios = lxios_read  ) 
     221               CALL iom_get( numror, jpdom_autoglo, 'frq_m'  , frq_m, ldxios = lrxios  ) 
    220222            ELSE 
    221223               frq_m(:,:) = 1._wp   ! default definition 
     
    253255      ENDIF 
    254256      ! 
     257      IF( lwxios.AND.nn_fsbc > 1 ) THEN 
     258         CALL iom_set_rstw_var_active('nn_fsbc') 
     259         CALL iom_set_rstw_var_active('ssu_m') 
     260         CALL iom_set_rstw_var_active('ssv_m') 
     261         CALL iom_set_rstw_var_active('sst_m') 
     262         CALL iom_set_rstw_var_active('sss_m') 
     263         CALL iom_set_rstw_var_active('ssh_m') 
     264         CALL iom_set_rstw_var_active('e3t_m') 
     265         CALL iom_set_rstw_var_active('frq_m') 
     266      ENDIF 
     267 
    255268   END SUBROUTINE sbc_ssm_init 
    256269 
Note: See TracChangeset for help on using the changeset viewer.