Changeset 3951
- Timestamp:
- 2013-07-01T17:43:44+02:00 (11 years ago)
- Location:
- branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90
r3896 r3951 48 48 LOGICAL , PUBLIC :: ln_vvl_layer = .FALSE. ! level vertical coordinate 49 49 LOGICAL , PUBLIC :: ln_vvl_ztilde_as_zstar = .FALSE. ! ztilde vertical coordinate 50 LOGICAL , PUBLIC :: ln_vvl_zstar_at_eqtor = .FALSE. ! ztilde vertical coordinate 50 51 LOGICAL , PUBLIC :: ln_vvl_kepe = .FALSE. ! kinetic/potential energy transfer 51 52 ! ! conservation: not used yet … … 59 60 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: un_td, vn_td ! thickness diffusion transport 60 61 REAL(wp) , ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hdiv_lf ! low frequency part of hz divergence 61 REAL(wp) 62 REAL(wp) 62 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tilde_e3t_b, tilde_e3t_n ! baroclinic scale factors 63 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tilde_e3t_a ! baroclinic scale factors 63 64 REAL(wp) , ALLOCATABLE, SAVE, DIMENSION(:,:) :: frq_rst_e3t ! retoring period for scale factors 64 65 REAL(wp) , ALLOCATABLE, SAVE, DIMENSION(:,:) :: frq_rst_hdv ! retoring period for low freq. divergence … … 119 120 !! Reference : Leclair, M., and G. Madec, 2011, Ocean Modelling. 120 121 !!---------------------------------------------------------------------- 121 USE phycst, ONLY : rpi, rsmall 122 USE phycst, ONLY : rpi, rsmall, rad 122 123 !! * Local declarations 123 INTEGER :: jk 124 INTEGER :: ji,jj,jk 125 INTEGER :: ii0, ii1, ij0, ij1 124 126 !!---------------------------------------------------------------------- 125 127 IF( nn_timing == 1 ) CALL timing_start('dom_vvl_init') … … 190 192 frq_rst_hdv(:,:) = 1.0_wp / rdt 191 193 ENDIF 194 IF ( ln_vvl_zstar_at_eqtor ) THEN 195 DO jj = 1, jpj 196 DO ji = 1, jpi 197 IF( ABS(gphit(ji,jj)) >= 6.) THEN 198 ! values outside the equatorial band and transition zone (ztilde) 199 frq_rst_e3t(ji,jj) = 2.0_wp * rpi / ( MAX( rn_rst_e3t , rsmall ) * 86400.e0_wp ) 200 frq_rst_hdv(ji,jj) = 2.0_wp * rpi / ( MAX( rn_lf_cutoff, rsmall ) * 86400.e0_wp ) 201 ELSEIF( ABS(gphit(ji,jj)) <= 2.5) THEN 202 ! values inside the equatorial band (ztilde as zstar) 203 frq_rst_e3t(ji,jj) = 0.0_wp 204 frq_rst_hdv(ji,jj) = 1.0_wp / rdt 205 ELSE 206 ! values in the transition band (linearly vary from ztilde to ztilde as zstar values) 207 frq_rst_e3t(ji,jj) = 0.0_wp + (frq_rst_e3t(ji,jj)-0.0_wp)*0.5_wp & 208 & * ( 1.0_wp - COS( rad*(ABS(gphit(ji,jj))-2.5_wp) & 209 & * 180._wp / 3.5_wp ) ) 210 frq_rst_hdv(ji,jj) = (1.0_wp / rdt) & 211 & + ( frq_rst_hdv(ji,jj)-(1.e0_wp / rdt) )*0.5_wp & 212 & * ( 1._wp - COS( rad*(ABS(gphit(ji,jj))-2.5_wp) & 213 & * 180._wp / 3.5_wp ) ) 214 ENDIF 215 END DO 216 END DO 217 IF( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN 218 ii0 = 103 ; ii1 = 111 ! Suppress ztilde in the Foxe Basin for ORCA2 219 ij0 = 128 ; ij1 = 135 ; 220 frq_rst_e3t( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.0_wp 221 frq_rst_hdv( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0_wp / rdt 222 ENDIF 223 ENDIF 192 224 ENDIF 193 225 … … 420 452 z_tmax = MAXVAL( tmask(:,:,1) * tmask_i(:,:) * ABS( zht(:,:) ) ) 421 453 IF( lk_mpp ) CALL mpp_max( z_tmax ) ! max over the global domain 422 IF( lwp ) WRITE(numout, *) 'MAXVAL(abs(SUM(tilde_e3t_a))) =', z_tmax454 IF( lwp ) WRITE(numout, *) kt,' MAXVAL(abs(SUM(tilde_e3t_a))) =', z_tmax 423 455 END IF 424 456 ! … … 814 846 815 847 NAMELIST/nam_vvl/ ln_vvl_zstar, ln_vvl_ztilde, ln_vvl_layer, ln_vvl_ztilde_as_zstar, & 816 & rn_ahe3, rn_rst_e3t, rn_lf_cutoff, rn_zdef_max, &817 & ln_vvl_dbg! not yet implemented: ln_vvl_kepe848 & ln_vvl_zstar_at_eqtor , rn_ahe3 , rn_rst_e3t , & 849 & rn_lf_cutoff , rn_zdef_max , ln_vvl_dbg ! not yet implemented: ln_vvl_kepe 818 850 !!---------------------------------------------------------------------- 819 851 … … 830 862 WRITE(numout,*) ' layer ln_vvl_layer = ', ln_vvl_layer 831 863 WRITE(numout,*) ' ztilde as zstar ln_vvl_ztilde_as_zstar = ', ln_vvl_ztilde_as_zstar 864 WRITE(numout,*) ' ztilde near the equator ln_vvl_zstar_at_eqtor = ', ln_vvl_zstar_at_eqtor 832 865 ! WRITE(numout,*) ' Namelist nam_vvl : chose kinetic-to-potential energy conservation' 833 866 ! WRITE(numout,*) ' ln_vvl_kepe = ', ln_vvl_kepe … … 892 925 INTEGER :: ji, jj, jk ! dummy loop indices 893 926 INTEGER :: ij0, ij1, ii0, ii1 ! dummy loop indices 927 !! acc 928 !! Hmm with the time splitting these "fixes" seem to do more harm than good. Temporarily disabled for 929 !! the ORCA2 tests (by changing jp_cfg test from 2 to 3) pending further investigations 930 !! 894 931 ! ! ===================== 895 IF( cp_cfg == "orca" .AND. jp_cfg == 2) THEN ! ORCA R2 configuration932 IF( cp_cfg == "orca" .AND. jp_cfg == 3 ) THEN ! ORCA R2 configuration 896 933 ! ! ===================== 934 !! acc 897 935 IF( nn_cla == 0 ) THEN 898 936 ! -
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r3870 r3951 754 754 DO jk = 1, jpkm1 755 755 DO ji = 1, jpij 756 ub_b (ji,1) = ub_b (ji,1) + fse3u_b(ji,1,jk) * ub (ji,1,jk)757 vb_b (ji,1) = vb_b (ji,1) + fse3v_b(ji,1,jk) * vb (ji,1,jk)758 zzhu_b(ji,1) = z hu_b(ji,1) + fse3u_b(ji,1,jk) * umask(ji,1,jk)759 zzhv_b(ji,1) = z hv_b(ji,1) + fse3v_b(ji,1,jk) * vmask(ji,1,jk)756 ub_b (ji,1) = ub_b (ji,1) + fse3u_b(ji,1,jk) * ub (ji,1,jk) 757 vb_b (ji,1) = vb_b (ji,1) + fse3v_b(ji,1,jk) * vb (ji,1,jk) 758 zzhu_b(ji,1) = zzhu_b(ji,1) + fse3u_b(ji,1,jk) * umask(ji,1,jk) 759 zzhv_b(ji,1) = zzhv_b(ji,1) + fse3v_b(ji,1,jk) * vmask(ji,1,jk) 760 760 END DO 761 761 END DO
Note: See TracChangeset
for help on using the changeset viewer.