Changeset 6095
- Timestamp:
- 2015-12-17T15:43:53+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OFF_SRC/domrea.F90
r6077 r6095 555 555 CALL iom_get( inum4, jpdom_unknown, 'esigw', esigw ) 556 556 557 CALL iom_get( inum4, jpdom_data, 'e3t_0', e3t_ n(:,:,:) ) ! scale factors558 CALL iom_get( inum4, jpdom_data, 'e3u_0', e3u_ n(:,:,:) )559 CALL iom_get( inum4, jpdom_data, 'e3v_0', e3v_ n(:,:,:) )560 CALL iom_get( inum4, jpdom_data, 'e3w_0', e3w_ n(:,:,:) )557 CALL iom_get( inum4, jpdom_data, 'e3t_0', e3t_0(:,:,:) ) ! scale factors 558 CALL iom_get( inum4, jpdom_data, 'e3u_0', e3u_0(:,:,:) ) 559 CALL iom_get( inum4, jpdom_data, 'e3v_0', e3v_0(:,:,:) ) 560 CALL iom_get( inum4, jpdom_data, 'e3w_0', e3w_0(:,:,:) ) 561 561 562 562 CALL iom_get( inum4, jpdom_unknown, 'gdept_1d', gdept_1d ) ! depth … … 572 572 ! 573 573 IF( nmsh <= 6 ) THEN ! 3D vertical scale factors 574 CALL iom_get( inum4, jpdom_data, 'e3t_0', e3t_ n(:,:,:) )575 CALL iom_get( inum4, jpdom_data, 'e3u_0', e3u_ n(:,:,:) )576 CALL iom_get( inum4, jpdom_data, 'e3v_0', e3v_ n(:,:,:) )577 CALL iom_get( inum4, jpdom_data, 'e3w_0', e3w_ n(:,:,:) )574 CALL iom_get( inum4, jpdom_data, 'e3t_0', e3t_0(:,:,:) ) 575 CALL iom_get( inum4, jpdom_data, 'e3u_0', e3u_0(:,:,:) ) 576 CALL iom_get( inum4, jpdom_data, 'e3v_0', e3v_0(:,:,:) ) 577 CALL iom_get( inum4, jpdom_data, 'e3w_0', e3w_0(:,:,:) ) 578 578 ELSE ! 2D bottom scale factors 579 579 CALL iom_get( inum4, jpdom_data, 'e3t_ps', e3tp ) … … 581 581 ! ! deduces the 3D scale factors 582 582 DO jk = 1, jpk 583 e3t_ n(:,:,jk) = e3t_1d(jk) ! set to the ref. factors584 e3u_ n(:,:,jk) = e3t_1d(jk)585 e3v_ n(:,:,jk) = e3t_1d(jk)586 e3w_ n(:,:,jk) = e3w_1d(jk)583 e3t_0(:,:,jk) = e3t_1d(jk) ! set to the ref. factors 584 e3u_0(:,:,jk) = e3t_1d(jk) 585 e3v_0(:,:,jk) = e3t_1d(jk) 586 e3w_0(:,:,jk) = e3w_1d(jk) 587 587 END DO 588 588 DO jj = 1,jpj ! adjust the deepest values 589 589 DO ji = 1,jpi 590 590 ik = mbkt(ji,jj) 591 e3t_ n(ji,jj,ik) = e3tp(ji,jj) * tmask(ji,jj,1) + e3t_1d(1) * ( 1._wp - tmask(ji,jj,1) )592 e3w_ n(ji,jj,ik) = e3wp(ji,jj) * tmask(ji,jj,1) + e3w_1d(1) * ( 1._wp - tmask(ji,jj,1) )591 e3t_0(ji,jj,ik) = e3tp(ji,jj) * tmask(ji,jj,1) + e3t_1d(1) * ( 1._wp - tmask(ji,jj,1) ) 592 e3w_0(ji,jj,ik) = e3wp(ji,jj) * tmask(ji,jj,1) + e3w_1d(1) * ( 1._wp - tmask(ji,jj,1) ) 593 593 END DO 594 594 END DO … … 596 596 DO jj = 1, jpjm1 597 597 DO ji = 1, jpim1 598 e3u_ n(ji,jj,jk) = MIN( e3t_n(ji,jj,jk), e3t_n(ji+1,jj,jk) )599 e3v_ n(ji,jj,jk) = MIN( e3t_n(ji,jj,jk), e3t_n(ji,jj+1,jk) )598 e3u_0(ji,jj,jk) = MIN( e3t_0(ji,jj,jk), e3t_0(ji+1,jj,jk) ) 599 e3v_0(ji,jj,jk) = MIN( e3t_0(ji,jj,jk), e3t_0(ji,jj+1,jk) ) 600 600 END DO 601 601 END DO 602 602 END DO 603 CALL lbc_lnk( e3u_ n(:,:,:) , 'U', 1._wp ) ; CALL lbc_lnk( e3uw_n(:,:,:), 'U', 1._wp ) ! lateral boundary conditions604 CALL lbc_lnk( e3v_ n(:,:,:) , 'V', 1._wp ) ; CALL lbc_lnk( e3vw_n(:,:,:), 'V', 1._wp )603 CALL lbc_lnk( e3u_0(:,:,:) , 'U', 1._wp ) ; CALL lbc_lnk( e3uw_0(:,:,:), 'U', 1._wp ) ! lateral boundary conditions 604 CALL lbc_lnk( e3v_0(:,:,:) , 'V', 1._wp ) ; CALL lbc_lnk( e3vw_0(:,:,:), 'V', 1._wp ) 605 605 ! 606 606 DO jk = 1, jpk ! set to z-scale factor if zero (i.e. along closed boundaries) 607 WHERE( e3u_ n(:,:,jk) == 0._wp ) e3u_n(:,:,jk) = e3t_1d(jk)608 WHERE( e3v_ n(:,:,jk) == 0._wp ) e3v_n(:,:,jk) = e3t_1d(jk)607 WHERE( e3u_0(:,:,jk) == 0._wp ) e3u_0(:,:,jk) = e3t_1d(jk) 608 WHERE( e3v_0(:,:,jk) == 0._wp ) e3v_0(:,:,jk) = e3t_1d(jk) 609 609 END DO 610 610 END IF 611 611 612 612 IF( iom_varid( inum4, 'gdept_0', ldstop = .FALSE. ) > 0 ) THEN ! 3D depth of t- and w-level 613 CALL iom_get( inum4, jpdom_data, 'gdept_0', gdept_ n(:,:,:) )614 CALL iom_get( inum4, jpdom_data, 'gdepw_0', gdepw_ n(:,:,:) )613 CALL iom_get( inum4, jpdom_data, 'gdept_0', gdept_0(:,:,:) ) 614 CALL iom_get( inum4, jpdom_data, 'gdepw_0', gdepw_0(:,:,:) ) 615 615 ELSE ! 2D bottom depth 616 616 CALL iom_get( inum4, jpdom_data, 'hdept', zprt ) … … 618 618 ! 619 619 DO jk = 1, jpk ! deduces the 3D depth 620 gdept_ n(:,:,jk) = gdept_1d(jk)621 gdepw_ n(:,:,jk) = gdepw_1d(jk)620 gdept_0(:,:,jk) = gdept_1d(jk) 621 gdepw_0(:,:,jk) = gdepw_1d(jk) 622 622 END DO 623 623 DO jj = 1, jpj … … 625 625 ik = mbkt(ji,jj) 626 626 IF( ik > 0 ) THEN 627 gdepw_ n(ji,jj,ik+1) = zprw(ji,jj)628 gdept_ n(ji,jj,ik ) = zprt(ji,jj)629 gdept_ n(ji,jj,ik+1) = gdept_n(ji,jj,ik) + e3t_n(ji,jj,ik)627 gdepw_0(ji,jj,ik+1) = zprw(ji,jj) 628 gdept_0(ji,jj,ik ) = zprt(ji,jj) 629 gdept_0(ji,jj,ik+1) = gdept_0(ji,jj,ik) + e3t_0(ji,jj,ik) 630 630 ENDIF 631 631 END DO … … 641 641 CALL iom_get( inum4, jpdom_unknown, 'e3w_1d' , e3w_1d ) 642 642 DO jk = 1, jpk 643 e3t_ n(:,:,jk) = e3t_1d(jk) ! set to the ref. factors644 e3u_ n(:,:,jk) = e3t_1d(jk)645 e3v_ n(:,:,jk) = e3t_1d(jk)646 e3w_ n(:,:,jk) = e3w_1d(jk)647 gdept_ n(:,:,jk) = gdept_1d(jk)648 gdepw_ n(:,:,jk) = gdepw_1d(jk)643 e3t_0(:,:,jk) = e3t_1d(jk) ! set to the ref. factors 644 e3u_0(:,:,jk) = e3t_1d(jk) 645 e3v_0(:,:,jk) = e3t_1d(jk) 646 e3w_0(:,:,jk) = e3w_1d(jk) 647 gdept_0(:,:,jk) = gdept_1d(jk) 648 gdepw_0(:,:,jk) = gdepw_1d(jk) 649 649 END DO 650 650 ENDIF 651 652 ! 653 ! !== time varying part of coordinate system ==! 654 ! 655 ! before ! now ! after ! 656 ; gdept_b = gdept_0 ; gdept_n = gdept_0 ! --- ! depth of grid-points 657 ; gdepw_b = gdepw_0 ; gdepw_n = gdepw_0 ! --- ! 658 ; ; gde3w_n = gde3w_0 ! --- ! 659 ! 660 ; e3t_b = e3t_0 ; e3t_n = e3t_0 ; e3t_a = e3t_0 ! scale factors 661 ; e3u_b = e3u_0 ; e3u_n = e3u_0 ; e3u_a = e3u_0 ! 662 ; e3v_b = e3v_0 ; e3v_n = e3v_0 ; e3v_a = e3v_0 ! 663 ; ; e3f_n = e3f_0 ! --- ! 664 ; e3w_b = e3w_0 ; e3w_n = e3w_0 ! --- ! 665 ; e3uw_b = e3uw_0 ; e3uw_n = e3uw_0 ! --- ! 666 ; e3vw_b = e3vw_0 ; e3vw_n = e3vw_0 ! --- ! 667 ! 651 668 652 669 !!gm BUG in s-coordinate this does not work!
Note: See TracChangeset
for help on using the changeset viewer.