- Timestamp:
- 2018-08-02T08:19:03+02:00 (6 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM/domvvl_RK3.F90
r10009 r10023 1 MODULE domvvl 1 MODULE domvvl_RK3 2 2 !!====================================================================== 3 !! *** MODULE domvvl ***3 !! *** MODULE domvvl_RK3 *** 4 4 !! Ocean : 5 5 !!====================================================================== … … 9 9 ! 1- remove z-tilde ==>>> pure z-star (or s-star) 10 10 ! 2- remove dom_vvl_interpol 11 ! 3- 11 12 12 13 !!---------------------------------------------------------------------- … … 142 143 ! !* BEFORE fields : 143 144 CALL ssh2e3_before ! set: hu , hv , r1_hu, r1_hv 144 ! ! e3t, e3w, e3u, e3uw, e3v, e3vw (from 1 to jpkm1) 145 ! ! e3t, e3u , e3v (from 1 to jpkm1) 146 ! ! e3w, e3uw, e3vw (from 1 to jpk ) 147 ! ! gdept, gdepw (from 1 to jpk ) 145 148 ! 146 149 ! ! set jpk level one to the e3._0 values 147 e3t_b(:,:,jpk) = e3t_0(:,:,jpk) ; e3u_b(:,:,jpk) = e3w_0(:,:,jpk) ; e3v_b(:,:,jpk) = e3v_0(:,:,jpk) 148 e3w_b(:,:,jpk) = e3w_0(:,:,jpk) ; e3uw_b(:,:,jpk) = e3uw_0(:,:,jpk) ; e3vw_b(:,:,jpk) = e3vw_0(:,:,jpk) 150 e3t_b(:,:,jpk) = e3t_0(:,:,jpk) ; e3u_b(:,:,jpk) = e3u_0(:,:,jpk) ; e3v_b(:,:,jpk) = e3v_0(:,:,jpk) 149 151 ! 150 152 ! !* NOW fields : 151 153 CALL ssh2e3_now ! set: ht , hu , hv , r1_hu, r1_hv 152 ! ! e3t, e3 w, e3u, e3uw, e3v, e3vw, e3f(from 1 to jpkm1)153 ! ! gdept_n, gdepw_n, gde3w_n154 !!gm issue? gdept_n, gdepw_n, gde3w_n never defined at jpk 154 ! ! e3t, e3u , e3v, e3f (from 1 to jpkm1) 155 ! ! e3w, e3uw, e3vw (from 1 to jpk ) 156 ! ! gdept, gdepw, gde3w (from 1 to jpk ) 155 157 ! 156 158 ! ! set one for all last level to the e3._0 value 157 e3t_n(:,:,jpk) = e3t_0(:,:,jpk) ; e3u_n(:,:,jpk) = e3w_0(:,:,jpk) ; e3v_n(:,:,jpk) = e3v_0(:,:,jpk) 158 e3w_n(:,:,jpk) = e3w_0(:,:,jpk) ; e3uw_n(:,:,jpk) = e3uw_0(:,:,jpk) ; e3vw_n(:,:,jpk) = e3vw_0(:,:,jpk) 159 e3t_n(:,:,jpk) = e3t_0(:,:,jpk) ; e3u_n(:,:,jpk) = e3u_0(:,:,jpk) ; e3v_n(:,:,jpk) = e3v_0(:,:,jpk) 159 160 e3f_n(:,:,jpk) = e3f_0(:,:,jpk) 160 161 ! 161 162 ! !* AFTER fields : (last level for OPA, 3D required for AGRIF initialisation) 162 e3t_a(:,:,:) = e3t_n(:,:,:) ; e3u_a(:,:,:) = e3u_n(:,:,:) ; e3v_a(:,:,:) = e3v_n(:,:,:) 163 e3t_a(:,:,:) = e3t_n(:,:,:) ; e3u_a(:,:,:) = e3u_n(:,:,:) 164 e3w_a(:,:,:) = e3w_n(:,:,:) ; e3v_a(:,:,:) = e3v_n(:,:,:) 163 165 164 166 !!gm … … 207 209 !! 208 210 !! Reference : Leclair, M., and Madec, G. 2011, Ocean Modelling. 211 !! 212 ! ! ref. ! before ! now ! after ! 213 ! e3t_0 , e3t_b , e3t_n , e3t_a !: t- vert. scale factor [m] 214 ! e3u_0 , e3u_b , e3u_n , e3u_a !: u- vert. scale factor [m] 215 ! e3v_0 , e3v_b , e3v_n , e3v_a !: v- vert. scale factor [m] 216 ! e3w_0 , e3w_b , e3w_n , e3w_a !: w- vert. scale factor [m] 217 ! e3uw_0 , e3uw_b , e3uw_n !: uw-vert. scale factor [m] 218 ! e3vw_0 , e3vw_b , e3vw_n !: vw-vert. scale factor [m] 219 ! e3f_0 , e3f_n !: f- vert. scale factor [m] 220 ! 221 ! ! ref. ! before ! now ! 222 ! gdept_0 , gdept_b , gdept_n !: t- depth [m] 223 ! gdepw_0 , gdepw_b , gdepw_n !: w- depth [m] 224 ! gde3w_0 , gde3w_n !: w- depth (sum of e3w) [m] 225 ! 226 ! ! ref. ! before ! now ! after ! 227 ! ht_0 , ht_n !: t-depth [m] 228 ! hu_0 , hu_b , hu_n , hu_a !: u-depth [m] 229 ! hv_0 , hv_b , hv_n , hv_a !: v-depth [m] 230 ! hf_0 !: v-depth [m] 231 ! r1_ht_0 !: inverse of u-depth [1/m] 232 ! r1_hu_0 , r1_hu_b , r1_hu_n , r1_hu_a !: inverse of u-depth [1/m] 233 ! r1_hv_0 , r1_hv_b , r1_hv_n , r1_hv_a !: inverse of v-depth [1/m] 234 ! r1_hf_0 !: inverse of v-depth [1/m] 235 ! 209 236 !!---------------------------------------------------------------------- 210 237 INTEGER, INTENT( in ) :: kt ! time step … … 230 257 ! 231 258 ! !== after ssh ==! (u- and v-points) 232 DO jj = 2, jpjm1 ; DO ji = 2, jpim1 233 zsshu_h(ji,jj) = 0.5_wp * ( ssh(ji,jj,Naa) + ssh(ji+1,jj,Naa) ) * ssumask(ji,jj) 234 zsshv_h(ji,jj) = 0.5_wp * ( ssh(ji,jj,Naa) + ssh(ji,jj+1,Naa) ) * ssvmask(ji,jj) 235 END DO ; END DO 259 DO jj = 2, jpjm1 260 DO ji = 2, jpim1 261 zsshu_h(ji,jj) = 0.5_wp * ( ssh(ji,jj,Naa) + ssh(ji+1,jj,Naa) ) * ssumask(ji,jj) 262 zsshv_h(ji,jj) = 0.5_wp * ( ssh(ji,jj,Naa) + ssh(ji,jj+1,Naa) ) * ssvmask(ji,jj) 263 END DO 264 END DO 236 265 CALL lbc_lnk_multi( zsshu_h(:,:), 'U', 1._wp , zsshv_h(:,:), 'V', 1._wp ) 237 266 ! … … 247 276 zsshv_h(:,:) = zsshv_h(:,:) * r1_hv_0(:,:) ! v-point 248 277 DO jk = 1, jpkm1 249 e3t_a(:,:,jk) = e3t_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * tmask(:,:,jk) ) 250 e3u_a(:,:,jk) = e3u_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * umask(:,:,jk) ) 251 e3v_a(:,:,jk) = e3v_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * vmask(:,:,jk) ) 278 e3t_a(:,:,jk) = e3t_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * tmask(:,:,jk) ) 279 e3u_a(:,:,jk) = e3u_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * umask(:,:,jk) ) 280 e3v_a(:,:,jk) = e3v_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * vmask(:,:,jk) ) 281 e3w_a(:,:,jk) = e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk) , tmask(:,:,jk+1) ) ) 252 282 END DO 253 283 ! … … 315 345 gdept_b(:,:,jk) = gdept_n(:,:,jk) ! depth at t and w 316 346 gdepw_b(:,:,jk) = gdepw_n(:,:,jk) 317 e3t_n (:,:,jk) = e3t_a (:,:,jk) ! e3t, e3u, e3v 347 e3t_n (:,:,jk) = e3t_a (:,:,jk) ! e3t, e3u, e3v, e3w 318 348 e3u_n (:,:,jk) = e3u_a (:,:,jk) 319 349 e3v_n (:,:,jk) = e3v_a (:,:,jk) 350 e3w_n (:,:,jk) = e3w_a (:,:,jk) 320 351 END DO 321 352 ht_n(:,:) = ht_0(:,:) + ssh(:,:,Nnn) ! ocean thickness … … 324 355 hv_n(:,:) = hv_a(:,:) ; r1_hv_n(:,:) = r1_hv_a(:,:) 325 356 ! 326 ! !== before :357 ! !== before ==! 327 358 ! !* ssh at u- and v-points) 328 359 DO jj = 2, jpjm1 ; DO ji = 2, jpim1 … … 341 372 e3vw_b(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * vmask(:,:,jk) ) 342 373 END DO 374 ! 375 zssht_h(:,:) = 1._wp + zssht_h(:,:) !* gdept , gdepw 376 ! 377 IF( ln_isfcav ) THEN ! ISF cavities : ssh scaling not applied over the iceshelf thickness 378 DO jk = 1, jpkm1 379 gdept_b(:,:,jk) = ( gdept_0(:,:,jk) - ht_isf(:,:) ) * zssht_h(:,:) + ht_isf(:,:) 380 gdepw_b(:,:,jk) = ( gdepw_0(:,:,jk) - ht_isf(:,:) ) * zssht_h(:,:) + ht_isf(:,:) 381 END DO 382 ELSE ! no ISF cavities 383 DO jk = 1, jpkm1 384 gdept_b(:,:,jk) = gdept_0(:,:,jk) * zssht_h(:,:) 385 gdepw_b(:,:,jk) = gdepw_0(:,:,jk) * zssht_h(:,:) 386 END DO 387 ENDIF 343 388 ! 344 ! !== now :389 ! !== now ==! 345 390 ! !* ssh at u- and v-points) 346 391 DO jj = 1, jpjm1 ; DO ji = 1, jpim1 ! start from 1 for f-point … … 358 403 zsshf_h(:,:) = zsshf_h(:,:) * r1_hf_0(:,:) ! f-point 359 404 DO jk = 1, jpkm1 360 e3w_n(:,:,jk) = e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk) , tmask(:,:,jk+1) ) )361 405 e3uw_n(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * wumask(:,:,jk) ) 362 406 e3vw_n(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * wvmask(:,:,jk) ) … … 364 408 END DO 365 409 ! 366 zssht_h(:,:) = 1._wp + zssht_h(:,:) ! t-point410 zssht_h(:,:) = 1._wp + zssht_h(:,:) !* gdept , gdepw , gde3w 367 411 ! 368 412 IF( ln_isfcav ) THEN ! ISF cavities : ssh scaling not applied over the iceshelf thickness 369 413 DO jk = 1, jpkm1 370 gdept_n(:,:,jk) = ( gdept_0(:,:,jk) - risfdep(:,:) ) * zssht_h(:,:) + risfdep(:,:)371 gdepw_n(:,:,jk) = ( gdepw_0(:,:,jk) - risfdep(:,:) ) * zssht_h(:,:) + risfdep(:,:)414 gdept_n(:,:,jk) = ( gdept_0(:,:,jk) - ht_isf(:,:) ) * zssht_h(:,:) + ht_isf(:,:) 415 gdepw_n(:,:,jk) = ( gdepw_0(:,:,jk) - ht_isf(:,:) ) * zssht_h(:,:) + ht_isf(:,:) 372 416 gde3w_n(:,:,jk) = gdept_n(:,:,jk) - ssh (:,:,Nnn) 373 417 END DO … … 584 628 !!---------------------------------------------------------------------- 585 629 !! *** ROUTINE ssh2e3_now *** 630 ! ! ref. ! before ! now ! after ! 631 ! e3t_0 , e3t_b , e3t_n , e3t_a !: t- vert. scale factor [m] 632 ! e3u_0 , e3u_b , e3u_n , e3u_a !: u- vert. scale factor [m] 633 ! e3v_0 , e3v_b , e3v_n , e3v_a !: v- vert. scale factor [m] 634 ! e3w_0 , e3w_b , e3w_n , e3w_a !: w- vert. scale factor [m] 635 ! e3uw_0 , e3uw_b , e3uw_n !: uw-vert. scale factor [m] 636 ! e3vw_0 , e3vw_b , e3vw_n !: vw-vert. scale factor [m] 637 ! e3f_0 , e3f_n !: f- vert. scale factor [m] 638 ! 639 ! ! ref. ! before ! now ! 640 ! gdept_0 , gdept_b , gdept_n !: t- depth [m] 641 ! gdepw_0 , gdepw_b , gdepw_n !: w- depth [m] 642 ! gde3w_0 , gde3w_n !: w- depth (sum of e3w) [m] 643 ! 644 ! ! ref. ! before ! now ! after ! 645 ! ht_0 , ht_n !: t-depth [m] 646 ! hu_0 , hu_b , hu_n , hu_a !: u-depth [m] 647 ! hv_0 , hv_b , hv_n , hv_a !: v-depth [m] 648 ! hf_0 !: v-depth [m] 649 ! r1_ht_0 !: inverse of u-depth [1/m] 650 ! r1_hu_0 , r1_hu_b , r1_hu_n , r1_hu_a !: inverse of u-depth [1/m] 651 ! r1_hv_0 , r1_hv_b , r1_hv_n , r1_hv_a !: inverse of v-depth [1/m] 652 ! r1_hf_0 !: inverse of v-depth [1/m] 653 ! 586 654 !!---------------------------------------------------------------------- 587 655 INTEGER :: ji, jj, jk … … 616 684 zsshf_h(:,:) = zsshf_h(:,:) * r1_hf_0(:,:) 617 685 ! 618 ! !== e3t , e3w , e3u, e3uw , e3v, e3vw , ande3f ==!686 ! !== e3t , e3u , e3v , e3f ==! 619 687 ! 620 688 DO jk = 1, jpkm1 621 e3t_n(:,:,jk) = e3t_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * tmask(:,:,jk) ) 622 e3w_n(:,:,jk) = e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk) , tmask(:,:,jk+1) ) ) 623 ! 624 e3u_n(:,:,jk) = e3u_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * umask(:,:,jk) ) 625 e3uw_n(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * wumask(:,:,jk) ) 626 ! 627 e3v_n(:,:,jk) = e3v_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * vmask(:,:,jk) ) 628 e3vw_n(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * wvmask(:,:,jk) ) 629 ! 689 e3t_n(:,:,jk) = e3t_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * tmask(:,:,jk) ) 690 e3u_n(:,:,jk) = e3u_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * umask(:,:,jk) ) 691 e3v_n(:,:,jk) = e3v_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * vmask(:,:,jk) ) 630 692 e3f_n(:,:,jk) = e3f_0(:,:,jk) * ( 1._wp + zsshf_h(:,:) * fmask(:,:,jk) ) 631 693 END DO 632 694 ! 695 ! !== e3w , e3uw , e3vw ==! 696 ! 697 e3w_n(:,:,1) = e3w_0(:,:,1) * ( 1._wp + zssht_h(:,:) * tmask(:,:,1) ) 698 e3uw_n(:,:,1) = e3uw_0(:,:,1) * ( 1._wp + zsshu_h(:,:) * wumask(:,:,1) ) 699 e3vw_n(:,:,1) = e3vw_0(:,:,1) * ( 1._wp + zsshv_h(:,:) * wvmask(:,:,1) ) 700 DO jk = 2, jpk 701 e3w_n(:,:,jk) = e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk-1) , tmask(:,:,jk) ) ) 702 e3uw_n(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * MAX( wumask(:,:,jk-1) , wumask(:,:,jk) ) ) 703 e3vw_n(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * MAX( wvmask(:,:,jk-1) , wvmask(:,:,jk) ) ) 704 END DO 705 ! 633 706 ! !== depth of t- and w-points ==! 634 707 ! … … 636 709 ! 637 710 IF( ln_isfcav ) THEN ! ISF cavities : ssh scaling not applied over the iceshelf thickness 638 DO jk = 1, jpk m1639 gdept_n(:,:,jk) = ( gdept_0(:,:,jk) - risfdep(:,:) ) * zssht_h(:,:) + risfdep(:,:)640 gdepw_n(:,:,jk) = ( gdepw_0(:,:,jk) - risfdep(:,:) ) * zssht_h(:,:) + risfdep(:,:)711 DO jk = 1, jpk 712 gdept_n(:,:,jk) = ( gdept_0(:,:,jk) - ht_isf(:,:) ) * zssht_h(:,:) + ht_isf(:,:) 713 gdepw_n(:,:,jk) = ( gdepw_0(:,:,jk) - ht_isf(:,:) ) * zssht_h(:,:) + ht_isf(:,:) 641 714 gde3w_n(:,:,jk) = gdept_n(:,:,jk) - ssh(:,:,Nnn) 642 715 END DO 643 716 ELSE ! no ISF cavities 644 !!gm BUG ??? gdept should be updated down to the ocean floor ! ===>> jpk NOT jpkm1 !!! 645 DO jk = 1, jpkm1 717 DO jk = 1, jpk 646 718 gdept_n(:,:,jk) = gdept_0(:,:,jk) * zssht_h(:,:) 647 719 gdepw_n(:,:,jk) = gdepw_0(:,:,jk) * zssht_h(:,:) … … 656 728 !!---------------------------------------------------------------------- 657 729 !! *** ROUTINE ssh2e3_before *** 730 ! ! ref. ! before ! now ! after ! 731 ! e3t_0 , e3t_b , e3t_n , e3t_a !: t- vert. scale factor [m] 732 ! e3u_0 , e3u_b , e3u_n , e3u_a !: u- vert. scale factor [m] 733 ! e3v_0 , e3v_b , e3v_n , e3v_a !: v- vert. scale factor [m] 734 ! e3w_0 , e3w_b , e3w_n , e3w_a !: w- vert. scale factor [m] 735 ! e3uw_0 , e3uw_b , e3uw_n !: uw-vert. scale factor [m] 736 ! e3vw_0 , e3vw_b , e3vw_n !: vw-vert. scale factor [m] 737 ! e3f_0 , e3f_n !: f- vert. scale factor [m] 738 ! 739 ! ! ref. ! before ! now ! 740 ! gdept_0 , gdept_b , gdept_n !: t- depth [m] 741 ! gdepw_0 , gdepw_b , gdepw_n !: w- depth [m] 742 ! gde3w_0 , gde3w_n !: w- depth (sum of e3w) [m] 743 ! 744 ! ! ref. ! before ! now ! after ! 745 ! ht_0 , ht_n !: t-depth [m] 746 ! hu_0 , hu_b , hu_n , hu_a !: u-depth [m] 747 ! hv_0 , hv_b , hv_n , hv_a !: v-depth [m] 748 ! hf_0 !: v-depth [m] 749 ! r1_ht_0 !: inverse of u-depth [1/m] 750 ! r1_hu_0 , r1_hu_b , r1_hu_n , r1_hu_a !: inverse of u-depth [1/m] 751 ! r1_hv_0 , r1_hv_b , r1_hv_n , r1_hv_a !: inverse of v-depth [1/m] 752 ! r1_hf_0 !: inverse of v-depth [1/m] 753 ! 658 754 !!---------------------------------------------------------------------- 659 755 INTEGER :: ji, jj, jk … … 677 773 ! 678 774 ! 679 ! !== ssh / h factor at t-, u- ,v- & f-points ==!775 ! !== ssh / h factor at t-, u- ,v-points ==! 680 776 zssht_h(:,:) = ssh (:,:,Nbb) * r1_ht_0(:,:) 681 777 zsshu_h(:,:) = zsshu_h(:,:) * r1_hu_0(:,:) 682 778 zsshv_h(:,:) = zsshv_h(:,:) * r1_hv_0(:,:) 683 779 ! 684 ! !== e3t, e3w , e3u, e3uw , and e3v, e3vw ==! 780 ! !== e3t , e3u , e3v ==! 781 ! 685 782 DO jk = 1, jpkm1 686 e3t_b(:,:,jk) = e3t_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * tmask(:,:,jk) ) 687 e3w_b(:,:,jk) = e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk) , tmask(:,:,jk+1) ) ) 688 ! 689 e3u_b(:,:,jk) = e3u_0(:,:,jk) * ( 1._wp + zsshu_h (:,:) * umask(:,:,jk) ) 690 e3uw_b(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h (:,:) * wumask(:,:,jk) ) 691 ! 692 e3v_b(:,:,jk) = e3v_0(:,:,jk) * ( 1._wp + zsshv_h (:,:) * vmask(:,:,jk) ) 693 e3vw_b(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h (:,:) * wvmask(:,:,jk) ) 783 e3t_b(:,:,jk) = e3t_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * tmask(:,:,jk) ) 784 e3u_b(:,:,jk) = e3u_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * umask(:,:,jk) ) 785 e3v_b(:,:,jk) = e3v_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * vmask(:,:,jk) ) 786 END DO 787 ! 788 ! !== e3w , e3uw , e3vw ==! 789 ! 790 e3w_b(:,:,1) = e3w_0(:,:,1) * ( 1._wp + zssht_h(:,:) * tmask(:,:,1) ) 791 e3uw_b(:,:,1) = e3uw_0(:,:,1) * ( 1._wp + zsshu_h(:,:) * wumask(:,:,1) ) 792 e3vw_b(:,:,1) = e3vw_0(:,:,1) * ( 1._wp + zsshv_h(:,:) * wvmask(:,:,1) ) 793 DO jk = 2, jpk 794 e3w_b(:,:,jk) = e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk-1) , tmask(:,:,jk) ) ) 795 e3uw_b(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * MAX( wumask(:,:,jk-1) , wumask(:,:,jk) ) ) 796 e3vw_b(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * MAX( wvmask(:,:,jk-1) , wvmask(:,:,jk) ) ) 694 797 END DO 695 798 ! 799 ! !== depth of t- and w-points ==! 800 ! 801 zssht_h(:,:) = 1._wp + zssht_h(:,:) ! = 1 + ssh(Nnn) / ht_0 802 ! 803 IF( ln_isfcav ) THEN ! ISF cavities : ssh scaling not applied over the iceshelf thickness 804 DO jk = 1, jpk 805 gdept_b(:,:,jk) = ( gdept_0(:,:,jk) - ht_isf(:,:) ) * zssht_h(:,:) + ht_isf(:,:) 806 gdepw_b(:,:,jk) = ( gdepw_0(:,:,jk) - ht_isf(:,:) ) * zssht_h(:,:) + ht_isf(:,:) 807 END DO 808 ELSE ! no ISF cavities 809 DO jk = 1, jpk 810 gdept_b(:,:,jk) = gdept_0(:,:,jk) * zssht_h(:,:) 811 gdepw_b(:,:,jk) = gdepw_0(:,:,jk) * zssht_h(:,:) 812 END DO 813 ENDIF 814 ! 696 815 END SUBROUTINE ssh2e3_before 697 816 698 817 !!====================================================================== 699 END MODULE domvvl 818 END MODULE domvvl_RK3
Note: See TracChangeset
for help on using the changeset viewer.