- Timestamp:
- 2017-11-23T16:52:17+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8600_xios_read_write_v2/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90
r8800 r8801 33 33 USE wrk_nemo ! Memory allocation 34 34 USE timing ! Timing 35 USE iom_def, ONLY : l xios_read35 USE iom_def, ONLY : lrxios, lwxios 36 36 37 37 IMPLICIT NONE … … 243 243 ENDIF 244 244 ! 245 IF(lwxios) THEN 246 ! define variables in restart file when writing with XIOS 247 CALL iom_set_rstw_var_active('e3t_b') 248 CALL iom_set_rstw_var_active('e3t_n') 249 ! ! ----------------------- ! 250 IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN ! z_tilde and layer cases ! 251 ! ! ----------------------- ! 252 CALL iom_set_rstw_var_active('tilde_e3t_b') 253 CALL iom_set_rstw_var_active('tilde_e3t_n') 254 END IF 255 ! ! -------------! 256 IF( ln_vvl_ztilde ) THEN ! z_tilde case ! 257 ! ! ------------ ! 258 CALL iom_set_rstw_var_active('hdiv_lf') 259 ENDIF 260 ! 261 ENDIF 262 245 263 IF( nn_timing == 1 ) CALL timing_stop('dom_vvl_init') 246 264 ! … … 800 818 IF( ln_rstart ) THEN !* Read the restart file 801 819 CALL rst_read_open ! open the restart file if necessary 802 CALL iom_get( numror, jpdom_autoglo, 'sshn' , sshn, ldxios = l xios_read)820 CALL iom_get( numror, jpdom_autoglo, 'sshn' , sshn, ldxios = lrxios ) 803 821 ! 804 822 id1 = iom_varid( numror, 'e3t_b', ldstop = .FALSE. ) … … 811 829 ! ! --------- ! 812 830 IF( MIN( id1, id2 ) > 0 ) THEN ! all required arrays exist 813 CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:), ldxios = l xios_read)814 CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t_n(:,:,:), ldxios = l xios_read)831 CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:), ldxios = lrxios ) 832 CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t_n(:,:,:), ldxios = lrxios ) 815 833 ! needed to restart if land processor not computed 816 834 IF(lwp) write(numout,*) 'dom_vvl_rst : e3t_b and e3t_n found in restart files' … … 826 844 IF(lwp) write(numout,*) 'e3t_n set equal to e3t_b.' 827 845 IF(lwp) write(numout,*) 'neuler is forced to 0' 828 CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:), ldxios = l xios_read)846 CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:), ldxios = lrxios ) 829 847 e3t_n(:,:,:) = e3t_b(:,:,:) 830 848 neuler = 0 … … 833 851 IF(lwp) write(numout,*) 'e3t_b set equal to e3t_n.' 834 852 IF(lwp) write(numout,*) 'neuler is forced to 0' 835 CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t_n(:,:,:), ldxios = l xios_read)853 CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t_n(:,:,:), ldxios = lrxios ) 836 854 e3t_b(:,:,:) = e3t_n(:,:,:) 837 855 neuler = 0 … … 858 876 ! ! ----------------------- ! 859 877 IF( MIN( id3, id4 ) > 0 ) THEN ! all required arrays exist 860 CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_b', tilde_e3t_b(:,:,:), ldxios = l xios_read)861 CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_n', tilde_e3t_n(:,:,:), ldxios = l xios_read)878 CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_b', tilde_e3t_b(:,:,:), ldxios = lrxios ) 879 CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_n', tilde_e3t_n(:,:,:), ldxios = lrxios ) 862 880 ELSE ! one at least array is missing 863 881 tilde_e3t_b(:,:,:) = 0.0_wp … … 868 886 ! ! ------------ ! 869 887 IF( id5 > 0 ) THEN ! required array exists 870 CALL iom_get( numror, jpdom_autoglo, 'hdiv_lf', hdiv_lf(:,:,:), ldxios = l xios_read)888 CALL iom_get( numror, jpdom_autoglo, 'hdiv_lf', hdiv_lf(:,:,:), ldxios = lrxios ) 871 889 ELSE ! array is missing 872 890 hdiv_lf(:,:,:) = 0.0_wp … … 929 947 ! ! =================== 930 948 IF(lwp) WRITE(numout,*) '---- dom_vvl_rst ----' 949 IF( lwxios ) CALL iom_swap( cwxios_context ) 931 950 ! ! --------- ! 932 951 ! ! all cases ! 933 952 ! ! --------- ! 934 CALL iom_rstput( kt, nitrst, numrow, 'e3t_b', e3t_b(:,:,:) )935 CALL iom_rstput( kt, nitrst, numrow, 'e3t_n', e3t_n(:,:,:) )953 CALL iom_rstput( kt, nitrst, numrow, 'e3t_b', e3t_b(:,:,:), ldxios = lwxios ) 954 CALL iom_rstput( kt, nitrst, numrow, 'e3t_n', e3t_n(:,:,:), ldxios = lwxios ) 936 955 ! ! ----------------------- ! 937 956 IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN ! z_tilde and layer cases ! 938 957 ! ! ----------------------- ! 939 CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_b', tilde_e3t_b(:,:,:) 940 CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_n', tilde_e3t_n(:,:,:) 958 CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_b', tilde_e3t_b(:,:,:), ldxios = lwxios) 959 CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_n', tilde_e3t_n(:,:,:), ldxios = lwxios) 941 960 END IF 942 961 ! ! -------------! 943 962 IF( ln_vvl_ztilde ) THEN ! z_tilde case ! 944 963 ! ! ------------ ! 945 CALL iom_rstput( kt, nitrst, numrow, 'hdiv_lf', hdiv_lf(:,:,:) ) 946 ENDIF 947 ! 964 CALL iom_rstput( kt, nitrst, numrow, 'hdiv_lf', hdiv_lf(:,:,:), ldxios = lwxios) 965 ENDIF 966 ! 967 IF( lwxios ) CALL iom_swap( cxios_context ) 948 968 ENDIF 949 969 !
Note: See TracChangeset
for help on using the changeset viewer.