Changeset 14037 for NEMO/branches/2020/dev_r13333_KERNEL-08_techene_gm_HPG_SPG/src/OCE/DYN/dynspg_ts.F90
- Timestamp:
- 2020-12-03T12:20:38+01:00 (3 years ago)
- Location:
- NEMO/branches/2020/dev_r13333_KERNEL-08_techene_gm_HPG_SPG
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r13333_KERNEL-08_techene_gm_HPG_SPG
- Property svn:externals
-
old new 8 8 9 9 # SETTE 10 ^/utils/CI/sette @13292sette10 ^/utils/CI/sette_wave@13990 sette
-
- Property svn:externals
-
NEMO/branches/2020/dev_r13333_KERNEL-08_techene_gm_HPG_SPG/src/OCE/DYN/dynspg_ts.F90
r13363 r14037 267 267 & zu_trd, zv_trd ) ! ==>> out 268 268 ! 269 DO_2D( 0, 0, 0, 0 ) 269 DO_2D( 0, 0, 0, 0 ) ! Remove coriolis term (and possibly spg) from barotropic trend 270 270 zu_frc(ji,jj) = zu_frc(ji,jj) - zu_trd(ji,jj) * ssumask(ji,jj) 271 271 zv_frc(ji,jj) = zv_frc(ji,jj) - zv_trd(ji,jj) * ssvmask(ji,jj) … … 464 464 ! 465 465 ! ! ocean u- and v-depth at mid-step (separate DO-loops remove the need of a lbc_lnk) 466 DO_2D( 1, 1, 1, 0 ) 466 DO_2D( 1, 1, 1, 0 ) ! not jpi-column 467 467 zhup2_e(ji,jj) = hu_0(ji,jj) + r1_2 * r1_e1e2u(ji,jj) & 468 468 & * ( e1e2t(ji ,jj) * zsshp2_e(ji ,jj) & 469 469 & + e1e2t(ji+1,jj) * zsshp2_e(ji+1,jj) ) * ssumask(ji,jj) 470 470 END_2D 471 DO_2D( 1, 0, 1, 1 ) 471 DO_2D( 1, 0, 1, 1 ) ! not jpj-row 472 472 zhvp2_e(ji,jj) = hv_0(ji,jj) + r1_2 * r1_e1e2v(ji,jj) & 473 473 & * ( e1e2t(ji,jj ) * zsshp2_e(ji,jj ) & … … 889 889 ! ! --------------- 890 890 IF( ln_rstart .AND. ln_bt_fw .AND. (.NOT.l_1st_euler) ) THEN !* Read the restart file 891 CALL iom_get( numror, jpdom_auto, 'ub2_b' , ub2_b (:,:), cd_type = 'U', psgn = -1._wp , ldxios = lrxios)892 CALL iom_get( numror, jpdom_auto, 'vb2_b' , vb2_b (:,:), cd_type = 'V', psgn = -1._wp , ldxios = lrxios)893 CALL iom_get( numror, jpdom_auto, 'un_bf' , un_bf (:,:), cd_type = 'U', psgn = -1._wp , ldxios = lrxios)894 CALL iom_get( numror, jpdom_auto, 'vn_bf' , vn_bf (:,:), cd_type = 'V', psgn = -1._wp , ldxios = lrxios)891 CALL iom_get( numror, jpdom_auto, 'ub2_b' , ub2_b (:,:), cd_type = 'U', psgn = -1._wp ) 892 CALL iom_get( numror, jpdom_auto, 'vb2_b' , vb2_b (:,:), cd_type = 'V', psgn = -1._wp ) 893 CALL iom_get( numror, jpdom_auto, 'un_bf' , un_bf (:,:), cd_type = 'U', psgn = -1._wp ) 894 CALL iom_get( numror, jpdom_auto, 'vn_bf' , vn_bf (:,:), cd_type = 'V', psgn = -1._wp ) 895 895 IF( .NOT.ln_bt_av ) THEN 896 CALL iom_get( numror, jpdom_auto, 'sshbb_e' , sshbb_e(:,:), cd_type = 'T', psgn = 1._wp , ldxios = lrxios)897 CALL iom_get( numror, jpdom_auto, 'ubb_e' , ubb_e(:,:), cd_type = 'U', psgn = -1._wp , ldxios = lrxios)898 CALL iom_get( numror, jpdom_auto, 'vbb_e' , vbb_e(:,:), cd_type = 'V', psgn = -1._wp , ldxios = lrxios)899 CALL iom_get( numror, jpdom_auto, 'sshb_e' , sshb_e(:,:), cd_type = 'T', psgn = 1._wp , ldxios = lrxios)900 CALL iom_get( numror, jpdom_auto, 'ub_e' , ub_e(:,:), cd_type = 'U', psgn = -1._wp , ldxios = lrxios)901 CALL iom_get( numror, jpdom_auto, 'vb_e' , vb_e(:,:), cd_type = 'V', psgn = -1._wp , ldxios = lrxios)896 CALL iom_get( numror, jpdom_auto, 'sshbb_e' , sshbb_e(:,:), cd_type = 'T', psgn = 1._wp ) 897 CALL iom_get( numror, jpdom_auto, 'ubb_e' , ubb_e(:,:), cd_type = 'U', psgn = -1._wp ) 898 CALL iom_get( numror, jpdom_auto, 'vbb_e' , vbb_e(:,:), cd_type = 'V', psgn = -1._wp ) 899 CALL iom_get( numror, jpdom_auto, 'sshb_e' , sshb_e(:,:), cd_type = 'T', psgn = 1._wp ) 900 CALL iom_get( numror, jpdom_auto, 'ub_e' , ub_e(:,:), cd_type = 'U', psgn = -1._wp ) 901 CALL iom_get( numror, jpdom_auto, 'vb_e' , vb_e(:,:), cd_type = 'V', psgn = -1._wp ) 902 902 ENDIF 903 903 #if defined key_agrif 904 904 ! Read time integrated fluxes 905 905 IF ( .NOT.Agrif_Root() ) THEN 906 CALL iom_get( numror, jpdom_auto, 'ub2_i_b' , ub2_i_b(:,:), cd_type = 'U', psgn = -1._wp, ldxios = lrxios ) 907 CALL iom_get( numror, jpdom_auto, 'vb2_i_b' , vb2_i_b(:,:), cd_type = 'V', psgn = -1._wp, ldxios = lrxios ) 906 CALL iom_get( numror, jpdom_auto, 'ub2_i_b' , ub2_i_b(:,:), cd_type = 'U', psgn = -1._wp ) 907 CALL iom_get( numror, jpdom_auto, 'vb2_i_b' , vb2_i_b(:,:), cd_type = 'V', psgn = -1._wp ) 908 ELSE 909 ub2_i_b(:,:) = 0._wp ; vb2_i_b(:,:) = 0._wp ! used in the 1st update of agrif 908 910 ENDIF 909 911 #endif … … 911 913 IF(lwp) WRITE(numout,*) 912 914 IF(lwp) WRITE(numout,*) ' ==>>> start from rest: set barotropic values to 0' 913 ub2_b (:,:) = 0._wp ; vb2_b(:,:) = 0._wp ! used in the 1st interpol of agrif914 un_adv (:,:) = 0._wp ; vn_adv(:,:) = 0._wp ! used in the 1st interpol of agrif915 un_bf (:,:) = 0._wp ; vn_bf(:,:) = 0._wp ! used in the 1st update of agrif915 ub2_b (:,:) = 0._wp ; vb2_b (:,:) = 0._wp ! used in the 1st interpol of agrif 916 un_adv (:,:) = 0._wp ; vn_adv (:,:) = 0._wp ! used in the 1st interpol of agrif 917 un_bf (:,:) = 0._wp ; vn_bf (:,:) = 0._wp ! used in the 1st update of agrif 916 918 #if defined key_agrif 917 IF ( .NOT.Agrif_Root() ) THEN 918 ub2_i_b(:,:) = 0._wp ; vb2_i_b(:,:) = 0._wp ! used in the 1st update of agrif 919 ENDIF 919 ub2_i_b(:,:) = 0._wp ; vb2_i_b(:,:) = 0._wp ! used in the 1st update of agrif 920 920 #endif 921 921 ENDIF … … 924 924 ! ! ------------------- 925 925 IF(lwp) WRITE(numout,*) '---- ts_rst ----' 926 IF( lwxios ) CALL iom_swap( cwxios_context ) 927 CALL iom_rstput( kt, nitrst, numrow, 'ub2_b' , ub2_b (:,:), ldxios = lwxios ) 928 CALL iom_rstput( kt, nitrst, numrow, 'vb2_b' , vb2_b (:,:), ldxios = lwxios ) 929 CALL iom_rstput( kt, nitrst, numrow, 'un_bf' , un_bf (:,:), ldxios = lwxios ) 930 CALL iom_rstput( kt, nitrst, numrow, 'vn_bf' , vn_bf (:,:), ldxios = lwxios ) 926 CALL iom_rstput( kt, nitrst, numrow, 'ub2_b' , ub2_b (:,:) ) 927 CALL iom_rstput( kt, nitrst, numrow, 'vb2_b' , vb2_b (:,:) ) 928 CALL iom_rstput( kt, nitrst, numrow, 'un_bf' , un_bf (:,:) ) 929 CALL iom_rstput( kt, nitrst, numrow, 'vn_bf' , vn_bf (:,:) ) 931 930 ! 932 931 IF (.NOT.ln_bt_av) THEN 933 CALL iom_rstput( kt, nitrst, numrow, 'sshbb_e' , sshbb_e(:,:) , ldxios = lwxios)934 CALL iom_rstput( kt, nitrst, numrow, 'ubb_e' , ubb_e(:,:) , ldxios = lwxios)935 CALL iom_rstput( kt, nitrst, numrow, 'vbb_e' , vbb_e(:,:) , ldxios = lwxios)936 CALL iom_rstput( kt, nitrst, numrow, 'sshb_e' , sshb_e(:,:) , ldxios = lwxios)937 CALL iom_rstput( kt, nitrst, numrow, 'ub_e' , ub_e(:,:) , ldxios = lwxios)938 CALL iom_rstput( kt, nitrst, numrow, 'vb_e' , vb_e(:,:) , ldxios = lwxios)932 CALL iom_rstput( kt, nitrst, numrow, 'sshbb_e' , sshbb_e(:,:) ) 933 CALL iom_rstput( kt, nitrst, numrow, 'ubb_e' , ubb_e(:,:) ) 934 CALL iom_rstput( kt, nitrst, numrow, 'vbb_e' , vbb_e(:,:) ) 935 CALL iom_rstput( kt, nitrst, numrow, 'sshb_e' , sshb_e(:,:) ) 936 CALL iom_rstput( kt, nitrst, numrow, 'ub_e' , ub_e(:,:) ) 937 CALL iom_rstput( kt, nitrst, numrow, 'vb_e' , vb_e(:,:) ) 939 938 ENDIF 940 939 #if defined key_agrif 941 940 ! Save time integrated fluxes 942 941 IF ( .NOT.Agrif_Root() ) THEN 943 CALL iom_rstput( kt, nitrst, numrow, 'ub2_i_b' , ub2_i_b(:,:) , ldxios = lwxios)944 CALL iom_rstput( kt, nitrst, numrow, 'vb2_i_b' , vb2_i_b(:,:) , ldxios = lwxios)942 CALL iom_rstput( kt, nitrst, numrow, 'ub2_i_b' , ub2_i_b(:,:) ) 943 CALL iom_rstput( kt, nitrst, numrow, 'vb2_i_b' , vb2_i_b(:,:) ) 945 944 ENDIF 946 945 #endif 947 IF( lwxios ) CALL iom_swap( cxios_context )948 946 ENDIF 949 947 ! … … 1037 1035 ! ! read restart when needed 1038 1036 CALL ts_rst( nit000, 'READ' ) 1039 !1040 IF( lwxios ) THEN1041 ! define variables in restart file when writing with XIOS1042 CALL iom_set_rstw_var_active('ub2_b')1043 CALL iom_set_rstw_var_active('vb2_b')1044 CALL iom_set_rstw_var_active('un_bf')1045 CALL iom_set_rstw_var_active('vn_bf')1046 !1047 IF (.NOT.ln_bt_av) THEN1048 CALL iom_set_rstw_var_active('sshbb_e')1049 CALL iom_set_rstw_var_active('ubb_e')1050 CALL iom_set_rstw_var_active('vbb_e')1051 CALL iom_set_rstw_var_active('sshb_e')1052 CALL iom_set_rstw_var_active('ub_e')1053 CALL iom_set_rstw_var_active('vb_e')1054 ENDIF1055 #if defined key_agrif1056 ! Save time integrated fluxes1057 IF ( .NOT.Agrif_Root() ) THEN1058 CALL iom_set_rstw_var_active('ub2_i_b')1059 CALL iom_set_rstw_var_active('vb2_i_b')1060 ENDIF1061 #endif1062 ENDIF1063 1037 ! 1064 1038 END SUBROUTINE dyn_spg_ts_init … … 1297 1271 !!---------------------------------------------------------------------- 1298 1272 ! 1299 DO_2D( 1, 1, 1, 0 ) 1273 DO_2D( 1, 1, 1, 0 ) ! not jpi-column 1300 1274 IF ( phU(ji,jj) > 0._wp ) THEN ; pUmsk(ji,jj) = pTmsk(ji ,jj) 1301 1275 ELSE ; pUmsk(ji,jj) = pTmsk(ji+1,jj) … … 1305 1279 END_2D 1306 1280 ! 1307 DO_2D( 1, 0, 1, 1 ) 1281 DO_2D( 1, 0, 1, 1 ) ! not jpj-row 1308 1282 IF ( phV(ji,jj) > 0._wp ) THEN ; pVmsk(ji,jj) = pTmsk(ji,jj ) 1309 1283 ELSE ; pVmsk(ji,jj) = pTmsk(ji,jj+1) … … 1394 1368 ! !== Set the barotropic drag coef. ==! 1395 1369 ! 1396 IF( ln_isfcav ) THEN ! top+bottom friction (ocean cavities)1370 IF( ln_isfcav.OR.ln_drgice_imp ) THEN ! top+bottom friction (ocean cavities) 1397 1371 1398 1372 DO_2D( 0, 0, 0, 0 ) … … 1445 1419 ! !== TOP stress contribution from baroclinic velocities ==! (no W/D case) 1446 1420 ! 1447 IF( ln_isfcav ) THEN1421 IF( ln_isfcav.OR.ln_drgice_imp ) THEN 1448 1422 ! 1449 1423 IF( ln_bt_fw ) THEN ! FORWARD integration: use NOW top baroclinic velocity
Note: See TracChangeset
for help on using the changeset viewer.