Changeset 6075
- Timestamp:
- 2015-12-17T09:50:30+01:00 (8 years ago)
- Location:
- branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DIA/diacfl.F90
r6073 r6075 34 34 35 35 !! * Substitutions 36 # include "domzgr_substitute.h90"37 36 # include "vectopt_loop_substitute.h90" 38 37 !!---------------------------------------------------------------------- -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DIA/diahsb.F90
r6069 r6075 165 165 ! heat content variation 166 166 zdiff_hc = zdiff_hc + glob_sum_full( surf(:,:) * tmask(:,:,jk) & 167 & * e3t_n(:,:,jk) * tsn(:,:,jk,jp_tem) - surf_ini(:,:) * hc_loc_ini(:,:,jk) ) )167 & * e3t_n(:,:,jk) * tsn(:,:,jk,jp_tem) - surf_ini(:,:) * hc_loc_ini(:,:,jk) ) 168 168 ! salt content variation 169 169 zdiff_sc = zdiff_sc + glob_sum_full( surf (:,:) * tmask(:,:,jk) & -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DIU/cool_skin.F90
r6010 r6075 40 40 41 41 !! * Substitutions 42 # include "domzgr_substitute.h90"43 42 # include "vectopt_loop_substitute.h90" 44 43 -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90
r6069 r6075 119 119 CALL wrk_alloc( jpi,jpj, z1_hu_0, z1_hv_0 ) 120 120 ! 121 z1_hu_0(:,:) = umask_i(:,:) / ( hu_0(:,:) + 1._wp - umask_i(:,:) ) ! _i mask due to ISF122 z1_hv_0(:,:) = vmask_i(:,:) / ( hv_0(:,:) + 1._wp - vmask_i(:,:) )121 z1_hu_0(:,:) = ssumask(:,:) / ( hu_0(:,:) + 1._wp - ssumask(:,:) ) ! _i mask due to ISF 122 z1_hv_0(:,:) = ssvmask(:,:) / ( hv_0(:,:) + 1._wp - ssvmask(:,:) ) 123 123 ! 124 124 ! before ! now ! after ! -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90
r6069 r6075 537 537 END DO 538 538 ! ! Inverse of the local depth 539 <<<<<<< .working540 539 !!gm BUG ? don't understand the use of umask_i here ..... 541 540 r1_hu_a(:,:) = ssumask(:,:) / ( hu_a(:,:) + 1._wp - ssumask(:,:) ) -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/iscplhsb.F90
r6074 r6075 32 32 PUBLIC iscpl_cons 33 33 !! * Substitutions 34 # include "domzgr_substitute.h90"35 34 # include "vectopt_loop_substitute.h90" 36 35 !!---------------------------------------------------------------------- … … 95 94 ! 96 95 zdssh(:,:) = sshn(:,:) * ssmask(:,:) - sshb(:,:) * psmask_b(:,:) 97 IF ( lk_vvl) zdssh = 0.0_wp ! already included in the levels by definition96 IF (.NOT. ln_linssh ) zdssh = 0.0_wp ! already included in the levels by definition 98 97 99 98 DO jk = 1,jpk-1 -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/iscplini.F90
r6069 r6075 30 30 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: hdiv_iscpl 31 31 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: htsc_iscpl 32 !! * Substitutions33 # include "domzgr_substitute.h90"34 32 !!---------------------------------------------------------------------- 35 33 !! NEMO/OPA 3.3 , NEMO Consortium (2010) -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/iscplrst.F90
r6074 r6075 32 32 !! 33 33 !! * Substitutions 34 # include "domzgr_substitute.h90"35 34 # include "vectopt_loop_substitute.h90" 36 35 !!---------------------------------------------------------------------- … … 211 210 212 211 !============================================================================= 213 IF ( lk_vvl ) THEN 212 !PM: Is this needed since introduction of VVL by default? 213 IF (.NOT.ln_linssh) THEN 214 214 ! Reconstruction of all vertical scale factors at now time steps 215 215 ! ============================================================================= … … 264 264 ! t-, u- and v- water column thickness 265 265 ! ------------------------------------ 266 ht (:,:) = 0._wp ; hu(:,:) = 0._wp ; hv(:,:) = 0._wp266 ht_n(:,:) = 0._wp ; hu_n(:,:) = 0._wp ; hv_n(:,:) = 0._wp 267 267 DO jk = 1, jpkm1 268 268 hu_n(:,:) = hu_n(:,:) + e3u_n(:,:,jk) * umask(:,:,jk) … … 386 386 387 387 ! compute new T/S (interpolation) if vvl only for common wet cell in before and after wmask 388 IF ( lk_vvl ) THEN 388 !PM: Is this IF needed since change to VVL by default 389 IF (.NOT.ln_linssh) THEN 389 390 DO jk = 2,jpk-1 390 391 DO jj = 1,jpj -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90
r6074 r6075 228 228 DO ji = 1, jpi 229 229 ikt=mikt(ji,jj) 230 ziceload(ji,jj) = ziceload(ji,jj) + (znad + zrhd(ji,jj,1) ) * e3w (ji,jj,1) * (1._wp - tmask(ji,jj,1))230 ziceload(ji,jj) = ziceload(ji,jj) + (znad + zrhd(ji,jj,1) ) * e3w_n(ji,jj,1) * (1._wp - tmask(ji,jj,1)) 231 231 DO jk=2,ikt-1 232 ziceload(ji,jj) = ziceload(ji,jj) + (2._wp * znad + zrhd(ji,jj,jk-1) + zrhd(ji,jj,jk)) * e3w (ji,jj,jk) &232 ziceload(ji,jj) = ziceload(ji,jj) + (2._wp * znad + zrhd(ji,jj,jk-1) + zrhd(ji,jj,jk)) * e3w_n(ji,jj,jk) & 233 233 & * (1._wp - tmask(ji,jj,jk)) 234 234 END DO -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r6069 r6075 795 795 & + rdtbt * ( zhust_e(ji,jj) * zwx(ji,jj) & 796 796 & + zhup2_e(ji,jj) * zu_trd(ji,jj) & 797 & + hu(ji,jj) * zu_frc(ji,jj) ) &797 & + hu_n(ji,jj) * zu_frc(ji,jj) ) & 798 798 & ) * zhura 799 799 … … 801 801 & + rdtbt * ( zhvst_e(ji,jj) * zwy(ji,jj) & 802 802 & + zhvp2_e(ji,jj) * zv_trd(ji,jj) & 803 & + hv(ji,jj) * zv_frc(ji,jj) ) &803 & + hv_n(ji,jj) * zv_frc(ji,jj) ) & 804 804 & ) * zhvra 805 805 END DO -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90
r6073 r6075 79 79 !!---------------------------------------------------------------------- 80 80 81 !! * Substitutions82 # include "domzgr_substitute.h90"83 81 CONTAINS 84 82 … … 529 527 !! * Modules used 530 528 USE dom_oce, ONLY : & ! Ocean space and time domain variables 531 & gdept_n 529 & gdept_n, & 532 530 & gdept_1d 533 531 USE phycst, ONLY : & ! Physical constants -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/OBS/obs_oper.F90
r6073 r6075 56 56 !!---------------------------------------------------------------------- 57 57 58 !! * Substitutions59 # include "domzgr_substitute.h90"60 58 CONTAINS 61 59 -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/OBS/obs_prep.F90
r6073 r6075 43 43 !!---------------------------------------------------------------------- 44 44 45 !! * Substitutions46 # include "domzgr_substitute.h90"47 45 48 46 CONTAINS -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90
r6069 r6075 150 150 DO jj = 1,jpj 151 151 DO ji = 1,jpi 152 zdep(ji,jj)= fsdepw_n(ji,jj,misfkt(ji,jj))152 zdep(ji,jj)=gdepw_n(ji,jj,misfkt(ji,jj)) 153 153 END DO 154 154 END DO … … 299 299 DO jj = 1, jpj 300 300 ik = 2 301 DO WHILE ( ik <= mbkt(ji,jj) .AND. fsdepw(ji,jj,ik) < rzisf_tbl(ji,jj) ) ; ik = ik + 1 ; END DO301 DO WHILE ( ik <= mbkt(ji,jj) .AND. gdepw_n(ji,jj,ik) < rzisf_tbl(ji,jj) ) ; ik = ik + 1 ; END DO 302 302 misfkt(ji,jj) = ik-1 303 303 END DO … … 324 324 ikb = misfkt(ji,jj) 325 325 ! thickness of boundary layer at least the top level thickness 326 rhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), fse3t_n(ji,jj,ikt))326 rhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), e3t_n(ji,jj,ikt)) 327 327 328 328 ! determine the deepest level influenced by the boundary layer 329 329 DO jk = ikt+1, mbkt(ji,jj) 330 IF ( (SUM( fse3t_n(ji,jj,ikt:jk-1)) < rhisf_tbl(ji,jj)) .AND. (tmask(ji,jj,jk) == 1) ) ikb = jk331 END DO 332 rhisf_tbl(ji,jj) = MIN(rhisf_tbl(ji,jj), SUM( fse3t_n(ji,jj,ikt:ikb))) ! limit the tbl to water thickness.330 IF ( (SUM(e3t_n(ji,jj,ikt:jk-1)) < rhisf_tbl(ji,jj)) .AND. (tmask(ji,jj,jk) == 1) ) ikb = jk 331 END DO 332 rhisf_tbl(ji,jj) = MIN(rhisf_tbl(ji,jj), SUM(e3t_n(ji,jj,ikt:ikb))) ! limit the tbl to water thickness. 333 333 misfkb(ji,jj) = ikb ! last wet level of the tbl 334 334 r1_hisf_tbl(ji,jj) = 1._wp / rhisf_tbl(ji,jj) 335 335 336 zhk = SUM( fse3t(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj) ! proportion of tbl cover by cell from ikt to ikb - 1337 ralpha(ji,jj) = rhisf_tbl(ji,jj) * (1._wp - zhk ) / fse3t(ji,jj,ikb) ! proportion of bottom cell influenced by boundary layer336 zhk = SUM( e3t_n(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj) ! proportion of tbl cover by cell from ikt to ikb - 1 337 ralpha(ji,jj) = rhisf_tbl(ji,jj) * (1._wp - zhk ) / e3t_n(ji,jj,ikb) ! proportion of bottom cell influenced by boundary layer 338 338 END DO 339 339 END DO … … 608 608 ELSE 609 609 !! compute Rc number (as done in zdfric.F90) 610 zcoef = 0.5_wp / fse3w(ji,jj,ikt)610 zcoef = 0.5_wp / e3w_n(ji,jj,ikt) 611 611 ! ! shear of horizontal velocity 612 612 zdku = zcoef * ( un(ji-1,jj ,ikt ) + un(ji,jj,ikt ) & … … 620 620 zts(jp_tem) = ttbl(ji,jj) 621 621 zts(jp_sal) = stbl(ji,jj) 622 zdep = fsdepw(ji,jj,ikt)622 zdep = gdepw_n(ji,jj,ikt) 623 623 ! 624 624 CALL eos_rab( zts, zdep, zab ) … … 627 627 zbuofdep = grav * ( zab(jp_tem) * pqhisf(ji,jj) - zab(jp_sal) * pqwisf(ji,jj) ) !!!!!!!!!!!!!!!!!!!!!!!!!!!! 628 628 629 !! compute Monin Obukov Length630 ! Maximum boundary layer depth631 zhmax = gdept_n(ji,jj,mbkt(ji,jj)) - gdepw_n(ji,jj,mikt(ji,jj)) -0.001_wp632 ! Compute Monin obukhov length scale at the surface and Ekman depth:633 zmob = zustar ** 3 / (vkarmn * (zbuofdep + epsln))634 zmols = SIGN(1._wp, zmob) * MIN(ABS(zmob), zhmax) * tmask(ji,jj,ikt)629 !! compute Monin Obukov Length 630 ! Maximum boundary layer depth 631 zhmax = gdept_n(ji,jj,mbkt(ji,jj)) - gdepw_n(ji,jj,mikt(ji,jj)) -0.001_wp 632 ! Compute Monin obukhov length scale at the surface and Ekman depth: 633 zmob = zustar(ji,jj) ** 3 / (vkarmn * (zbuofdep + zeps)) 634 zmols = SIGN(1._wp, zmob) * MIN(ABS(zmob), zhmax) * tmask(ji,jj,ikt) 635 635 636 636 !! compute eta* (stability parameter) … … 686 686 ikt = miku(ji,jj) ; ikb = miku(ji,jj) 687 687 ! thickness of boundary layer at least the top level thickness 688 zhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), fse3u_n(ji,jj,ikt))688 zhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), e3u_n(ji,jj,ikt)) 689 689 690 690 ! determine the deepest level influenced by the boundary layer 691 691 DO jk = ikt+1, mbku(ji,jj) 692 IF ( (SUM( fse3u_n(ji,jj,ikt:jk-1)) < zhisf_tbl(ji,jj)) .AND. (umask(ji,jj,jk) == 1) ) ikb = jk693 END DO 694 zhisf_tbl(ji,jj) = MIN(zhisf_tbl(ji,jj), SUM( fse3u_n(ji,jj,ikt:ikb))) ! limit the tbl to water thickness.692 IF ( (SUM(e3u_n(ji,jj,ikt:jk-1)) < zhisf_tbl(ji,jj)) .AND. (umask(ji,jj,jk) == 1) ) ikb = jk 693 END DO 694 zhisf_tbl(ji,jj) = MIN(zhisf_tbl(ji,jj), SUM(e3u_n(ji,jj,ikt:ikb))) ! limit the tbl to water thickness. 695 695 696 696 ! level fully include in the ice shelf boundary layer 697 697 DO jk = ikt, ikb - 1 698 ze3 = fse3u_n(ji,jj,jk)698 ze3 = e3u_n(ji,jj,jk) 699 699 pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,jk) / zhisf_tbl(ji,jj) * ze3 700 700 END DO 701 701 702 702 ! level partially include in ice shelf boundary layer 703 zhk = SUM( fse3u_n(ji, jj, ikt:ikb - 1)) / zhisf_tbl(ji,jj)703 zhk = SUM( e3u_n(ji, jj, ikt:ikb - 1)) / zhisf_tbl(ji,jj) 704 704 pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,ikb) * (1._wp - zhk) 705 705 END DO … … 717 717 ikt = mikv(ji,jj) ; ikb = mikv(ji,jj) 718 718 ! thickness of boundary layer at least the top level thickness 719 zhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), fse3v_n(ji,jj,ikt))719 zhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), e3v_n(ji,jj,ikt)) 720 720 721 721 ! determine the deepest level influenced by the boundary layer 722 722 DO jk = ikt+1, mbkv(ji,jj) 723 IF ( (SUM( fse3v_n(ji,jj,ikt:jk-1)) < zhisf_tbl(ji,jj)) .AND. (vmask(ji,jj,jk) == 1) ) ikb = jk724 END DO 725 zhisf_tbl(ji,jj) = MIN(zhisf_tbl(ji,jj), SUM( fse3v_n(ji,jj,ikt:ikb))) ! limit the tbl to water thickness.723 IF ( (SUM(e3v_n(ji,jj,ikt:jk-1)) < zhisf_tbl(ji,jj)) .AND. (vmask(ji,jj,jk) == 1) ) ikb = jk 724 END DO 725 zhisf_tbl(ji,jj) = MIN(zhisf_tbl(ji,jj), SUM(e3v_n(ji,jj,ikt:ikb))) ! limit the tbl to water thickness. 726 726 727 727 ! level fully include in the ice shelf boundary layer 728 728 DO jk = ikt, ikb - 1 729 ze3 = fse3v_n(ji,jj,jk)729 ze3 = e3v_n(ji,jj,jk) 730 730 pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,jk) / zhisf_tbl(ji,jj) * ze3 731 731 END DO 732 732 733 733 ! level partially include in ice shelf boundary layer 734 zhk = SUM( fse3v_n(ji, jj, ikt:ikb - 1)) / zhisf_tbl(ji,jj)734 zhk = SUM( e3v_n(ji, jj, ikt:ikb - 1)) / zhisf_tbl(ji,jj) 735 735 pvarout(ji,jj) = pvarout(ji,jj) + pvarin(ji,jj,ikb) * (1._wp - zhk) 736 736 END DO -
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/zpshde.F90
r6069 r6075 419 419 ze3wv = gdept_n(ji,jj,ikv) - gdept_n(ji,jj+1,ikv) 420 420 ! 421 IF( ze3wu >= 0._wp ) THEN ; zhi(ji,jj) = gdept (ji ,jj,iku) ! i-direction: case 1422 ELSE ; zhi(ji,jj) = gdept (ji+1,jj,iku) ! - - case 2423 ENDIF 424 425 IF( ze3wv >= 0._wp ) THEN ; zhj(ji,jj) = gdept (ji,jj ,ikv) ! j-direction: case 1426 ELSE ; zhj(ji,jj) = gdept (ji,jj+1,ikv) ! - - case 2421 IF( ze3wu >= 0._wp ) THEN ; zhi(ji,jj) = gdept_n(ji ,jj,iku) ! i-direction: case 1 422 ELSE ; zhi(ji,jj) = gdept_n(ji+1,jj,iku) ! - - case 2 423 ENDIF 424 425 IF( ze3wv >= 0._wp ) THEN ; zhj(ji,jj) = gdept_n(ji,jj ,ikv) ! j-direction: case 1 426 ELSE ; zhj(ji,jj) = gdept_n(ji,jj+1,ikv) ! - - case 2 427 427 ENDIF 428 428
Note: See TracChangeset
for help on using the changeset viewer.