Changeset 10030 for NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM
- Timestamp:
- 2018-08-03T10:18:16+02:00 (6 years ago)
- Location:
- NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM/dom_oce.F90
r10023 r10030 135 135 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3v_0 , e3v_b , e3v_n , e3v_a !: v- vert. scale factor [m] 136 136 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3w_0 , e3w_b , e3w_n , e3w_a !: w- vert. scale factor [m] 137 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3uw_0 , e3uw_b , e3uw_n!: uw-vert. scale factor [m]138 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3vw_0 , e3vw_b , e3vw_n!: vw-vert. scale factor [m]137 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3uw_0 !: uw-vert. scale factor [m] 138 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3vw_0 !: vw-vert. scale factor [m] 139 139 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3f_0 , e3f_n !: f- vert. scale factor [m] 140 140 … … 270 270 & e3t(jpi,jpj,jpk,Nt) , e3u(jpi,jpj,jpk,Nt) , e3v(jpi,jpj,jpk,Nt) , & 271 271 ! ! 272 & e3uw_0(jpi,jpj,jpk) , e3vw_0(jpi,jpj,jpk) , & 273 & e3uw_b(jpi,jpj,jpk) , e3vw_b(jpi,jpj,jpk) , & 274 & e3uw_n(jpi,jpj,jpk) , e3vw_n(jpi,jpj,jpk) , STAT=ierr(5) ) 272 & e3uw_0(jpi,jpj,jpk) , e3vw_0(jpi,jpj,jpk) , STAT=ierr(5) ) 275 273 ! 276 274 ALLOCATE( ht_0(jpi,jpj) , hu_0(jpi,jpj) , hv_0(jpi,jpj) , hf_0(jpi,jpj) , & -
NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM/domain.F90
r10023 r10030 170 170 gde3w_n = gde3w_0 ! --- ! grid-points 171 171 ! ! ! ! 172 e3t_b= e3t_0 ; e3t_n = e3t_0 ; e3t_a = e3t_0 ! scale173 e3u_b= e3u_0 ; e3u_n = e3u_0 ; e3u_a = e3u_0 ! factors174 e3v_b= e3v_0 ; e3v_n = e3v_0 ; e3v_a = e3v_0 !172 e3t_b = e3t_0 ; e3t_n = e3t_0 ; e3t_a = e3t_0 ! scale 173 e3u_b = e3u_0 ; e3u_n = e3u_0 ; e3u_a = e3u_0 ! factors 174 e3v_b = e3v_0 ; e3v_n = e3v_0 ; e3v_a = e3v_0 ! 175 175 e3f_n = e3f_0 ! --- ! 176 e3w_b = e3w_0 ; e3w_n = e3w_0 ! --- ! 177 e3uw_b = e3uw_0 ; e3uw_n = e3uw_0 ! --- ! 178 e3vw_b = e3vw_0 ; e3vw_n = e3vw_0 ! --- ! 176 e3w_b = e3w_0 ; e3w_n = e3w_0 ! --- ! 179 177 ! ! 180 178 ht_n = ht_0 ! ! water column -
NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM/domvvl.F90
r10023 r10030 144 144 CALL ssh2e3_before ! set: hu , hv , r1_hu, r1_hv 145 145 ! ! e3t, e3u , e3v (from 1 to jpkm1) 146 ! ! e3w, e3uw, e3vw (from 1 to jpk ) 147 ! ! gdept, gdepw (from 1 to jpk ) 146 ! ! e3w, gdept, gdepw (from 1 to jpk ) 148 147 ! 149 148 ! ! set jpk level one to the e3._0 values … … 153 152 CALL ssh2e3_now ! set: ht , hu , hv , r1_hu, r1_hv 154 153 ! ! e3t, e3u , e3v, e3f (from 1 to jpkm1) 155 ! ! e3w, e3uw, e3vw (from 1 to jpk ) 156 ! ! gdept, gdepw, gde3w (from 1 to jpk ) 154 ! ! e3w, gdept, gdepw, gde3w (from 1 to jpk ) 157 155 ! 158 156 ! ! set one for all last level to the e3._0 value 159 e3t_n(:,:,jpk) = e3t_0(:,:,jpk) ; e3u_n(:,:,jpk) = e3u_0(:,:,jpk) ; e3v_n(:,:,jpk) = e3v_0(:,:,jpk)160 e3f_n(:,:,jpk) = e3f_0(:,:,jpk) 157 e3t_n(:,:,jpk) = e3t_0(:,:,jpk) ; e3u_n(:,:,jpk) = e3u_0(:,:,jpk) 158 e3f_n(:,:,jpk) = e3f_0(:,:,jpk) ; e3v_n(:,:,jpk) = e3v_0(:,:,jpk) 161 159 ! 162 160 ! !* AFTER fields : (last level for OPA, 3D required for AGRIF initialisation) … … 215 213 ! e3v_0 , e3v_b , e3v_n , e3v_a !: v- vert. scale factor [m] 216 214 ! 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 215 ! e3f_0 , e3f_n !: f- vert. scale factor [m] 220 216 ! … … 332 328 ! - JC - hu_b, hv_b, hur_b, hvr_b also 333 329 ! 334 ! - GM - to be updated : e3f_n, e3w_n , e3uw_n , e3vw_n 335 ! e3w_b , e3uw_b , e3vw_b 330 ! - GM - to be updated : e3f_n , e3w_n , e3w_b 336 331 ! gdept_n , gdepw_n , gde3w_n 337 332 ! ht_n … … 356 351 ! 357 352 ! !== before ==! 358 ! !* ssh at u- and v-points) 359 DO jj = 2, jpjm1 ; DO ji = 2, jpim1 360 zsshu_h(ji,jj) = 0.5_wp * ( ssh(ji,jj,Nbb) + ssh(ji+1,jj ,Nbb) ) * ssumask(ji,jj) 361 zsshv_h(ji,jj) = 0.5_wp * ( ssh(ji,jj,Nbb) + ssh(ji ,jj+1,Nbb) ) * ssvmask(ji,jj) 362 END DO ; END DO 363 CALL lbc_lnk_multi( zsshu_h(:,:),'U', 1._wp , zsshv_h(:,:),'V', 1._wp ) 364 ! 365 ! !* e3w_b , e3uw_b , e3vw_b 353 ! !* e3w_b 366 354 zssht_h(:,:) = ssh (:,:,Nbb) * r1_ht_0(:,:) ! w-point 367 zsshu_h(:,:) = zsshu_h(:,:) * r1_hu_0(:,:) ! uw-point 368 zsshv_h(:,:) = zsshv_h(:,:) * r1_hv_0(:,:) ! vw-point 369 DO jk = 1, jpkm1 370 e3w_b(:,:,jk) = e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk) , tmask(:,:,jk+1) ) ) 371 e3uw_b(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * umask(:,:,jk) ) 372 e3vw_b(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * vmask(:,:,jk) ) 355 ! 356 e3w_b(:,:,1) = e3w_0(:,:,1) * ( 1._wp + zssht_h(:,:) * tmask(:,:,1) ) 357 DO jk = 2, jpk 358 e3w_b(:,:,jk) = e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk-1) , tmask(:,:,jk) ) ) 373 359 END DO 374 360 ! … … 388 374 ! 389 375 ! !== now ==! 390 ! !* ssh at u- and v-points) 391 DO jj = 1, jpjm1 ; DO ji = 1, jpim1 ! start from 1 for f-point 392 zsshu_h(ji,jj) = 0.50_wp * ( ssh(ji ,jj,Nnn) + ssh(ji+1,jj ,Nnn) ) * ssumask(ji,jj) 393 zsshv_h(ji,jj) = 0.50_wp * ( ssh(ji ,jj,Nnn) + ssh(ji ,jj+1,Nnn) ) * ssvmask(ji,jj) 394 zsshf_h(ji,jj) = 0.25_wp * ( ssh(ji ,jj,Nnn) + ssh(ji ,jj+1,Nnn) & 395 & + ssh(ji+1,jj,Nnn) + ssh(ji+1,jj+1,Nnn) ) * ssfmask(ji,jj) 396 END DO ; END DO 397 CALL lbc_lnk_multi( zsshu_h(:,:),'U', 1._wp , zsshv_h(:,:),'V', 1._wp , zsshf_h(:,:),'F', 1._wp ) 398 ! 399 ! !* e3w_n , e3uw_n , e3vw_n, e3f_n 400 zssht_h(:,:) = ssh (:,:,Nnn) * r1_ht_0(:,:) ! t- & w-point 401 zsshu_h(:,:) = zsshu_h(:,:) * r1_hu_0(:,:) ! uw-point 402 zsshv_h(:,:) = zsshv_h(:,:) * r1_hv_0(:,:) ! vw-point 403 zsshf_h(:,:) = zsshf_h(:,:) * r1_hf_0(:,:) ! f-point 376 ! !* ssh at f-points 377 DO jj = 1, jpjm1 378 DO ji = 1, jpim1 ! start from 1 for f-point 379 zsshf_h(ji,jj) = 0.25_wp * ( ssh(ji ,jj,Nnn) + ssh(ji ,jj+1,Nnn) & 380 & + ssh(ji+1,jj,Nnn) + ssh(ji+1,jj+1,Nnn) ) * ssfmask(ji,jj) 381 END DO 382 END DO 383 CALL lbc_lnk( zsshf_h(:,:),'F', 1._wp ) 384 ! 385 ! !* e3f_n 386 zsshf_h(:,:) = zsshf_h(:,:) * r1_hf_0(:,:) ! f-point 387 ! 404 388 DO jk = 1, jpkm1 405 e3uw_n(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * wumask(:,:,jk) ) 406 e3vw_n(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * wvmask(:,:,jk) ) 407 e3f_n(:,:,jk) = e3f_0(:,:,jk) * ( 1._wp + zsshf_h(:,:) * fmask(:,:,jk) ) 389 e3f_n(:,:,jk) = e3f_0(:,:,jk) * ( 1._wp + zsshf_h(:,:) * fmask(:,:,jk) ) 408 390 END DO 409 ! 410 zssht_h(:,:) = 1._wp + zssht_h(:,:) !* gdept , gdepw , gde3w 391 ! 392 ! !* gdept_n , gdepw_n , gde3w_n 393 zssht_h(:,:) = 1._wp + ssh(:,:,Nnn) * r1_ht_0(:,:) 411 394 ! 412 395 IF( ln_isfcav ) THEN ! ISF cavities : ssh scaling not applied over the iceshelf thickness … … 633 616 ! e3v_0 , e3v_b , e3v_n , e3v_a !: v- vert. scale factor [m] 634 617 ! 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 618 ! e3f_0 , e3f_n !: f- vert. scale factor [m] 638 619 ! … … 658 639 ! 659 640 ! !== ssh at u- and v-points ==! 660 ! 661 DO jj = 1, jpjm1 ! start from 1 due to f-point 662 DO ji = 1, jpim1 641 DO jj = 1, jpjm1 642 DO ji = 1, jpim1 ! start from 1 due to f-point 663 643 zsshu_h(ji,jj) = 0.50_wp * ( ssh(ji ,jj,Nnn) + ssh(ji+1,jj ,Nnn) ) * ssumask(ji,jj) 664 644 zsshv_h(ji,jj) = 0.50_wp * ( ssh(ji ,jj,Nnn) + ssh(ji ,jj+1,Nnn) ) * ssvmask(ji,jj) … … 670 650 ! 671 651 ! !== ht, hu and hv == ! (and their inverse) 672 !673 652 ht_n (:,:) = ht_0(:,:) + ssh (:,:,Nnn) 674 653 hu_n (:,:) = hu_0(:,:) + zsshu_h(:,:) … … 678 657 ! 679 658 ! !== ssh / h factor at t-, u- ,v- & f-points ==! 680 !681 659 zssht_h(:,:) = ssh (:,:,Nnn) * r1_ht_0(:,:) 682 660 zsshu_h(:,:) = zsshu_h(:,:) * r1_hu_0(:,:) … … 684 662 zsshf_h(:,:) = zsshf_h(:,:) * r1_hf_0(:,:) 685 663 ! 686 ! !== e3t , e3u , e3v , e3f ==! 687 ! 664 ! !== e3t , e3u , e3v , e3f , e3w ==! 688 665 DO jk = 1, jpkm1 689 666 e3t_n(:,:,jk) = e3t_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * tmask(:,:,jk) ) … … 692 669 e3f_n(:,:,jk) = e3f_0(:,:,jk) * ( 1._wp + zsshf_h(:,:) * fmask(:,:,jk) ) 693 670 END DO 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) ) 671 e3w_n(:,:,1) = e3w_0(:,:,1) * ( 1._wp + zssht_h(:,:) * tmask(:,:,1) ) 700 672 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) ) ) 673 e3w_n(:,:,jk) = e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk-1) , tmask(:,:,jk) ) ) 704 674 END DO 705 675 ! … … 733 703 ! e3v_0 , e3v_b , e3v_n , e3v_a !: v- vert. scale factor [m] 734 704 ! 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 705 ! e3f_0 , e3f_n !: f- vert. scale factor [m] 738 706 ! … … 778 746 zsshv_h(:,:) = zsshv_h(:,:) * r1_hv_0(:,:) 779 747 ! 780 ! !== e3t , e3u , e3v ==! 781 ! 748 ! !== e3t , e3u , e3v , e3w ==! 782 749 DO jk = 1, jpkm1 783 750 e3t_b(:,:,jk) = e3t_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * tmask(:,:,jk) ) … … 785 752 e3v_b(:,:,jk) = e3v_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * vmask(:,:,jk) ) 786 753 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) ) 754 e3w_b(:,:,1) = e3w_0(:,:,1) * ( 1._wp + zssht_h(:,:) * tmask(:,:,1) ) 793 755 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) ) ) 756 e3w_b(:,:,jk) = e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk-1) , tmask(:,:,jk) ) ) 797 757 END DO 798 758 ! -
NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM/domvvl_RK3.F90
r10023 r10030 144 144 CALL ssh2e3_before ! set: hu , hv , r1_hu, r1_hv 145 145 ! ! e3t, e3u , e3v (from 1 to jpkm1) 146 ! ! e3w, e3uw, e3vw (from 1 to jpk ) 147 ! ! gdept, gdepw (from 1 to jpk ) 146 ! ! e3w, gdept, gdepw (from 1 to jpk ) 148 147 ! 149 148 ! ! set jpk level one to the e3._0 values … … 153 152 CALL ssh2e3_now ! set: ht , hu , hv , r1_hu, r1_hv 154 153 ! ! e3t, e3u , e3v, e3f (from 1 to jpkm1) 155 ! ! e3w, e3uw, e3vw (from 1 to jpk ) 156 ! ! gdept, gdepw, gde3w (from 1 to jpk ) 154 ! ! e3w, gdept, gdepw, gde3w (from 1 to jpk ) 157 155 ! 158 156 ! ! set one for all last level to the e3._0 value … … 215 213 ! e3v_0 , e3v_b , e3v_n , e3v_a !: v- vert. scale factor [m] 216 214 ! 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]215 ! e3uw_0 !: uw-vert. scale factor [m] 216 ! e3vw_0 !: vw-vert. scale factor [m] 219 217 ! e3f_0 , e3f_n !: f- vert. scale factor [m] 220 218 ! … … 332 330 ! - JC - hu_b, hv_b, hur_b, hvr_b also 333 331 ! 334 ! - GM - to be updated : e3f_n, e3w_n , e3uw_n , e3vw_n 335 ! e3w_b , e3uw_b , e3vw_b 332 ! - GM - to be updated : e3f_n , e3w_n , e3w_b 336 333 ! gdept_n , gdepw_n , gde3w_n 337 334 ! ht_n … … 356 353 ! 357 354 ! !== before ==! 358 ! !* ssh at u- and v-points) 359 DO jj = 2, jpjm1 ; DO ji = 2, jpim1 360 zsshu_h(ji,jj) = 0.5_wp * ( ssh(ji,jj,Nbb) + ssh(ji+1,jj ,Nbb) ) * ssumask(ji,jj) 361 zsshv_h(ji,jj) = 0.5_wp * ( ssh(ji,jj,Nbb) + ssh(ji ,jj+1,Nbb) ) * ssvmask(ji,jj) 362 END DO ; END DO 363 CALL lbc_lnk_multi( zsshu_h(:,:),'U', 1._wp , zsshv_h(:,:),'V', 1._wp ) 364 ! 365 ! !* e3w_b , e3uw_b , e3vw_b 355 ! !* e3w_b 366 356 zssht_h(:,:) = ssh (:,:,Nbb) * r1_ht_0(:,:) ! w-point 367 zsshu_h(:,:) = zsshu_h(:,:) * r1_hu_0(:,:) ! uw-point 368 zsshv_h(:,:) = zsshv_h(:,:) * r1_hv_0(:,:) ! vw-point 369 DO jk = 1, jpkm1 370 e3w_b(:,:,jk) = e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk) , tmask(:,:,jk+1) ) ) 371 e3uw_b(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * umask(:,:,jk) ) 372 e3vw_b(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * vmask(:,:,jk) ) 357 ! 358 e3w_b(:,:,1) = e3w_0(:,:,1) * ( 1._wp + zssht_h(:,:) * tmask(:,:,1) ) 359 DO jk = 2, jpk 360 e3w_b(:,:,jk) = e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk-1) , tmask(:,:,jk) ) ) 373 361 END DO 374 362 ! … … 388 376 ! 389 377 ! !== now ==! 390 ! !* ssh at u- and v-points) 391 DO jj = 1, jpjm1 ; DO ji = 1, jpim1 ! start from 1 for f-point 392 zsshu_h(ji,jj) = 0.50_wp * ( ssh(ji ,jj,Nnn) + ssh(ji+1,jj ,Nnn) ) * ssumask(ji,jj) 393 zsshv_h(ji,jj) = 0.50_wp * ( ssh(ji ,jj,Nnn) + ssh(ji ,jj+1,Nnn) ) * ssvmask(ji,jj) 394 zsshf_h(ji,jj) = 0.25_wp * ( ssh(ji ,jj,Nnn) + ssh(ji ,jj+1,Nnn) & 395 & + ssh(ji+1,jj,Nnn) + ssh(ji+1,jj+1,Nnn) ) * ssfmask(ji,jj) 396 END DO ; END DO 397 CALL lbc_lnk_multi( zsshu_h(:,:),'U', 1._wp , zsshv_h(:,:),'V', 1._wp , zsshf_h(:,:),'F', 1._wp ) 398 ! 399 ! !* e3w_n , e3uw_n , e3vw_n, e3f_n 400 zssht_h(:,:) = ssh (:,:,Nnn) * r1_ht_0(:,:) ! t- & w-point 401 zsshu_h(:,:) = zsshu_h(:,:) * r1_hu_0(:,:) ! uw-point 402 zsshv_h(:,:) = zsshv_h(:,:) * r1_hv_0(:,:) ! vw-point 403 zsshf_h(:,:) = zsshf_h(:,:) * r1_hf_0(:,:) ! f-point 378 ! !* ssh at f-points 379 DO jj = 1, jpjm1 380 DO ji = 1, jpim1 ! start from 1 for f-point 381 zsshf_h(ji,jj) = 0.25_wp * ( ssh(ji ,jj,Nnn) + ssh(ji ,jj+1,Nnn) & 382 & + ssh(ji+1,jj,Nnn) + ssh(ji+1,jj+1,Nnn) ) * ssfmask(ji,jj) 383 END DO 384 END DO 385 CALL lbc_lnk( zsshf_h(:,:),'F', 1._wp ) 386 ! 387 ! !* e3f_n 388 zsshf_h(:,:) = zsshf_h(:,:) * r1_hf_0(:,:) ! f-point 389 ! 404 390 DO jk = 1, jpkm1 405 e3uw_n(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * wumask(:,:,jk) ) 406 e3vw_n(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * wvmask(:,:,jk) ) 407 e3f_n(:,:,jk) = e3f_0(:,:,jk) * ( 1._wp + zsshf_h(:,:) * fmask(:,:,jk) ) 391 e3f_n(:,:,jk) = e3f_0(:,:,jk) * ( 1._wp + zsshf_h(:,:) * fmask(:,:,jk) ) 408 392 END DO 409 ! 410 zssht_h(:,:) = 1._wp + zssht_h(:,:) !* gdept , gdepw , gde3w 393 ! 394 ! !* gdept_n , gdepw_n , gde3w_n 395 zssht_h(:,:) = 1._wp + ssh(:,:,Nnn) * r1_ht_0(:,:) 411 396 ! 412 397 IF( ln_isfcav ) THEN ! ISF cavities : ssh scaling not applied over the iceshelf thickness … … 633 618 ! e3v_0 , e3v_b , e3v_n , e3v_a !: v- vert. scale factor [m] 634 619 ! 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]620 ! e3uw_0 !: uw-vert. scale factor [m] 621 ! e3vw_0 !: vw-vert. scale factor [m] 637 622 ! e3f_0 , e3f_n !: f- vert. scale factor [m] 638 623 ! … … 658 643 ! 659 644 ! !== ssh at u- and v-points ==! 660 ! 661 DO jj = 1, jpjm1 ! start from 1 due to f-point 662 DO ji = 1, jpim1 645 DO jj = 1, jpjm1 646 DO ji = 1, jpim1 ! start from 1 due to f-point 663 647 zsshu_h(ji,jj) = 0.50_wp * ( ssh(ji ,jj,Nnn) + ssh(ji+1,jj ,Nnn) ) * ssumask(ji,jj) 664 648 zsshv_h(ji,jj) = 0.50_wp * ( ssh(ji ,jj,Nnn) + ssh(ji ,jj+1,Nnn) ) * ssvmask(ji,jj) … … 670 654 ! 671 655 ! !== ht, hu and hv == ! (and their inverse) 672 !673 656 ht_n (:,:) = ht_0(:,:) + ssh (:,:,Nnn) 674 657 hu_n (:,:) = hu_0(:,:) + zsshu_h(:,:) … … 678 661 ! 679 662 ! !== ssh / h factor at t-, u- ,v- & f-points ==! 680 !681 663 zssht_h(:,:) = ssh (:,:,Nnn) * r1_ht_0(:,:) 682 664 zsshu_h(:,:) = zsshu_h(:,:) * r1_hu_0(:,:) … … 684 666 zsshf_h(:,:) = zsshf_h(:,:) * r1_hf_0(:,:) 685 667 ! 686 ! !== e3t , e3u , e3v , e3f ==! 687 ! 668 ! !== e3t , e3u , e3v , e3f , e3w ==! 688 669 DO jk = 1, jpkm1 689 670 e3t_n(:,:,jk) = e3t_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * tmask(:,:,jk) ) … … 692 673 e3f_n(:,:,jk) = e3f_0(:,:,jk) * ( 1._wp + zsshf_h(:,:) * fmask(:,:,jk) ) 693 674 END DO 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) ) 675 e3w_n(:,:,1) = e3w_0(:,:,1) * ( 1._wp + zssht_h(:,:) * tmask(:,:,1) ) 700 676 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) ) ) 677 e3w_n(:,:,jk) = e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk-1) , tmask(:,:,jk) ) ) 704 678 END DO 705 679 ! … … 733 707 ! e3v_0 , e3v_b , e3v_n , e3v_a !: v- vert. scale factor [m] 734 708 ! 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]709 ! e3uw_0 !: uw-vert. scale factor [m] 710 ! e3vw_0 !: vw-vert. scale factor [m] 737 711 ! e3f_0 , e3f_n !: f- vert. scale factor [m] 738 712 ! … … 778 752 zsshv_h(:,:) = zsshv_h(:,:) * r1_hv_0(:,:) 779 753 ! 780 ! !== e3t , e3u , e3v ==! 781 ! 754 ! !== e3t , e3u , e3v , e3w ==! 782 755 DO jk = 1, jpkm1 783 756 e3t_b(:,:,jk) = e3t_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * tmask(:,:,jk) ) … … 785 758 e3v_b(:,:,jk) = e3v_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * vmask(:,:,jk) ) 786 759 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) ) 760 e3w_b(:,:,1) = e3w_0(:,:,1) * ( 1._wp + zssht_h(:,:) * tmask(:,:,1) ) 793 761 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) ) ) 762 e3w_b(:,:,jk) = e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk-1) , tmask(:,:,jk) ) ) 797 763 END DO 798 764 ! -
NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM/iscplrst.F90
r10023 r10030 102 102 e3v_b (:,:,:) = e3v_n (:,:,:) 103 103 ! 104 e3uw_b (:,:,:) = e3uw_n (:,:,:)105 e3vw_b (:,:,:) = e3vw_n (:,:,:)106 104 gdept_b(:,:,:) = gdept_n(:,:,:) 107 105 gdepw_b(:,:,:) = gdepw_n(:,:,:) … … 206 204 CALL ssh2e3_now ! set: ht , hu , hv , r1_hu, r1_hv 207 205 ! ! e3t, e3u , e3v, e3f (from 1 to jpkm1) 208 ! ! e3w, e3uw, e3vw (from 1 to jpk ) 209 ! ! gdept, gdepw, gde3w (from 1 to jpk ) 206 ! ! e3w, gdept, gdepw, gde3w (from 1 to jpk ) 210 207 ! 211 208
Note: See TracChangeset
for help on using the changeset viewer.