Changeset 8842 for branches/2017/dev_r8624_ENHANCE4_FREESURFACE/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
- Timestamp:
- 2017-11-29T10:42:39+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8624_ENHANCE4_FREESURFACE/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r8805 r8842 16 16 !! 3.7 ! 2015-11 (J. Chanut) free surface simplification 17 17 !! - ! 2016-12 (G. Madec, E. Clementi) update for Stoke-Drift divergence 18 !! - ! 2017-11 (J. Chanut) add optional temporal diffusion 18 19 !!--------------------------------------------------------------------- 19 20 … … 150 151 REAL(wp) :: zhura, zhvra ! - - 151 152 REAL(wp) :: za0, za1, za2, za3 ! - - 153 REAL(wp) :: zepsilon, zgamma ! - - 152 154 ! 153 155 REAL(wp), POINTER, DIMENSION(:,:) :: zsshp2_e … … 758 760 za3= 0._wp 759 761 ELSE ! AB3-AM4 Coefficients; bet=0.281105 ; eps=0.013 ; gam=0.0880 760 za0=0.614_wp ! za0 = 1/2 + gam + 2*eps 761 za1=0.285_wp ! za1 = 1/2 - 2*gam - 3*eps 762 za2=0.088_wp ! za2 = gam 763 za3=0.013_wp ! za3 = eps 762 IF (rn_bt_alpha==0._wp) THEN 763 za0=0.614_wp ! za0 = 1/2 + gam + 2*eps 764 za1=0.285_wp ! za1 = 1/2 - 2*gam - 3*eps 765 za2=0.088_wp ! za2 = gam 766 za3=0.013_wp ! za3 = eps 767 ELSE 768 zepsilon = 0.00976186_wp - 0.13451357_wp * rn_bt_alpha 769 zgamma = 0.08344500_wp - 0.51358400_wp * rn_bt_alpha 770 za0 = 0.5_wp + zgamma + 2._wp * rn_bt_alpha + 2._wp * zepsilon 771 za1 = 1._wp - za0 - zgamma - zepsilon 772 za2 = zgamma 773 za3 = zepsilon 774 ENDIF 764 775 ENDIF 765 776 ! … … 1021 1032 zwx(:,:) = un_adv(:,:) 1022 1033 zwy(:,:) = vn_adv(:,:) 1034 IF ( kt == nit000 .AND. neuler==0 ) un_bf(:,:) = 0._wp ; vn_bf(:,:) = 0._wp 1035 ! 1023 1036 IF( ( kt == nit000 .AND. neuler==0 ) .OR. .NOT.ln_bt_fw ) THEN 1024 1037 un_adv(:,:) = zwx(:,:) * r1_hu_n(:,:) 1025 1038 vn_adv(:,:) = zwy(:,:) * r1_hv_n(:,:) 1026 !1027 un_bf(:,:) = 0._wp1028 vn_bf(:,:) = 0._wp1029 1039 ELSE 1030 1040 un_adv(:,:) = z1_2 * ( ub2_b(:,:) + zwx(:,:) - atfp * un_bf(:,:) ) * r1_hu_n(:,:) … … 1323 1333 IF(lwp) WRITE(numout,*) ' Maximum Courant number is :', zcmax 1324 1334 ! 1335 IF(lwp) WRITE(numout,*) ' Time diffusion parameter rn_bt_alpha: ', rn_bt_alpha 1336 1337 IF (rn_bt_alpha < 0._wp ) THEN 1338 CALL ctl_stop( 'dynspg_ts ERROR: rn_bt_alpha < 0, it must be >= 0.' ) 1339 ENDIF 1340 1341 IF ( ln_bt_av.AND.(rn_bt_alpha > 0._wp) ) THEN 1342 CALL ctl_stop( 'dynspg_ts ERROR: if rn_bt_alpha > 0, remove temporal averaging' ) 1343 ENDIF 1344 ! 1325 1345 IF( .NOT.ln_bt_av .AND. .NOT.ln_bt_fw ) THEN 1326 1346 CALL ctl_stop( 'dynspg_ts ERROR: No time averaging => only forward integration is possible' )
Note: See TracChangeset
for help on using the changeset viewer.