- Timestamp:
- 2013-11-07T11:01:27+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90
r3791 r4161 41 41 USE agrif_lim2_interp 42 42 #endif 43 #if defined key_bdy 44 USE bdyice_lim 45 #endif 43 46 44 47 IMPLICIT NONE … … 53 56 # include "vectopt_loop_substitute.h90" 54 57 !!---------------------------------------------------------------------- 55 !! NEMO/LIM3 3.4, UCL - NEMO Consortium (2011)58 !! NEMO/LIM3 4.0 , UCL - NEMO Consortium (2011) 56 59 !! $Id$ 57 60 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 413 416 414 417 delta = SQRT( zdd(ji,jj)*zdd(ji,jj) + ( zdt(ji,jj)*zdt(ji,jj) + zzdst*zzdst ) * usecc2 ) 415 deltat(ji,jj) = MAX( SQRT(zdd(ji,jj)**2 + (zdt(ji,jj)**2 + zzdst**2)*usecc2), creepl ) 416 !!gm faster to replace the line above with simply: 417 !! deltat(ji,jj) = MAX( delta, creepl ) 418 !!gm end 419 418 ! MV rewriting 419 ! deltat(ji,jj) = MAX( SQRT(zdd(ji,jj)**2 + (zdt(ji,jj)**2 + zzdst**2)*usecc2), creepl ) 420 !!gm faster to replace the line above with simply: 421 !! deltat(ji,jj) = MAX( delta, creepl ) 422 !!gm end 423 deltat(ji,jj) = delta + creepl 424 ! END MV 420 425 !-Calculate stress tensor components zs1 and zs2 421 426 !-at centre of grid cells (see section 3.5 of CICE user's guide). … … 472 477 473 478 CALL lbc_lnk( zs12(:,:), 'F', 1. ) 479 480 !#if defined key_bdy 481 ! ! clem: change zs1, zs2, zs12 at the boundary for each iteration 482 ! CALL bdy_ice_lim_dyn( 2, zs1, zs2, zs12 ) 483 ! CALL lbc_lnk( zs1 (:,:), 'T', 1. ) 484 ! CALL lbc_lnk( zs2 (:,:), 'T', 1. ) 485 ! CALL lbc_lnk( zs12(:,:), 'F', 1. ) 486 !#endif 474 487 475 488 ! Ice internal stresses (Appendix C of Hunke and Dukowicz, 2002) … … 520 533 521 534 CALL lbc_lnk( u_ice(:,:), 'U', -1. ) 522 #if defined key_agrif 535 #if defined key_agrif && defined key_lim2 523 536 CALL agrif_rhg_lim2( jter, nevp, 'U' ) 524 537 #endif … … 548 561 549 562 CALL lbc_lnk( v_ice(:,:), 'V', -1. ) 550 #if defined key_agrif 563 #if defined key_agrif && defined key_lim2 551 564 CALL agrif_rhg_lim2( jter, nevp, 'V' ) 552 565 #endif … … 577 590 578 591 CALL lbc_lnk( v_ice(:,:), 'V', -1. ) 579 #if defined key_agrif 592 #if defined key_agrif && defined key_lim2 580 593 CALL agrif_rhg_lim2( jter, nevp , 'V' ) 581 594 #endif … … 608 621 609 622 CALL lbc_lnk( u_ice(:,:), 'U', -1. ) 610 #if defined key_agrif 623 #if defined key_agrif && defined key_lim2 611 624 CALL agrif_rhg_lim2( jter, nevp, 'U' ) 612 625 #endif 613 626 614 627 ENDIF 628 629 !#if defined key_bdy 630 ! ! clem: change u_ice and v_ice at the boundary for each iteration 631 ! CALL bdy_ice_lim_dyn( 1 ) 632 !#endif 615 633 616 634 IF(ln_ctl) THEN … … 624 642 ENDIF 625 643 626 ! 644 ! ! ==================== ! 627 645 END DO ! end loop over jter ! 628 646 ! ! ==================== ! 629 630 647 ! 631 648 !------------------------------------------------------------------------------! 632 649 ! 4) Prevent ice velocities when the ice is thin 633 650 !------------------------------------------------------------------------------! 634 ! 635 ! If the ice thickness is below 1cm then ice velocity should equal the 651 !clem : add hminrhg in the namelist 652 ! 653 ! If the ice thickness is below hminrhg (5cm) then ice velocity should equal the 636 654 ! ocean velocity, 637 655 ! This prevents high velocity when ice is thin … … 641 659 DO ji = fs_2, fs_jpim1 642 660 zindb = MAX( 0.0, SIGN( 1.0, at_i(ji,jj) - 1.0e-6 ) ) 643 zdummy = zindb * vt_i(ji,jj) / MAX(at_i(ji,jj) , 1.0e-06 ) 644 IF ( zdummy .LE. 5.0e-2 ) THEN 661 !zdummy = zindb * vt_i(ji,jj) / MAX(at_i(ji,jj) , 1.0e-06 ) 662 zdummy = vt_i(ji,jj) 663 IF ( zdummy .LE. hminrhg ) THEN 645 664 u_ice(ji,jj) = u_oce(ji,jj) 646 665 v_ice(ji,jj) = v_oce(ji,jj) … … 651 670 CALL lbc_lnk( u_ice(:,:), 'U', -1. ) 652 671 CALL lbc_lnk( v_ice(:,:), 'V', -1. ) 653 #if defined key_agrif 672 #if defined key_agrif && defined key_lim2 654 673 CALL agrif_rhg_lim2( nevp , nevp, 'U' ) 655 674 CALL agrif_rhg_lim2( nevp , nevp, 'V' ) 656 675 #endif 676 #if defined key_bdy 677 ! clem: change u_ice and v_ice at the boundary 678 CALL bdy_ice_lim_dyn( 1 ) 679 #endif 657 680 658 681 DO jj = k_j1+1, k_jpj-1 659 682 DO ji = fs_2, fs_jpim1 660 683 zindb = MAX( 0.0, SIGN( 1.0, at_i(ji,jj) - 1.0e-6 ) ) 661 zdummy = zindb * vt_i(ji,jj) / MAX(at_i(ji,jj) , 1.0e-06 ) 662 IF ( zdummy .LE. 5.0e-2 ) THEN 684 !zdummy = zindb * vt_i(ji,jj) / MAX(at_i(ji,jj) , 1.0e-06 ) 685 zdummy = vt_i(ji,jj) 686 IF ( zdummy .LE. hminrhg ) THEN 663 687 v_ice1(ji,jj) = 0.5*( (v_ice(ji,jj)+v_ice(ji,jj-1))*e1t(ji+1,jj) & 664 688 & +(v_ice(ji+1,jj)+v_ice(ji+1,jj-1))*e1t(ji,jj)) & … … 683 707 !- zds(:,:): shear on northeast corner of grid cells 684 708 zindb = MAX( 0.0, SIGN( 1.0, at_i(ji,jj) - 1.0e-6 ) ) 685 zdummy = zindb * vt_i(ji,jj) / MAX(at_i(ji,jj) , 1.0e-06 )686 687 IF ( zdummy .LE. 5.0e-2) THEN709 !zdummy = zindb * vt_i(ji,jj) / MAX(at_i(ji,jj) , 1.0e-06 ) 710 zdummy = vt_i(ji,jj) 711 IF ( zdummy .LE. hminrhg ) THEN 688 712 689 713 zdd(ji,jj) = ( e2u(ji,jj)*u_ice(ji,jj) & … … 719 743 & - e1v( ji , jj-1 ) * u_ice2(ji ,jj-1) ) / area(ji,jj) 720 744 721 deltat(ji,jj) = SQRT( zdd(ji,jj)*zdd(ji,jj) & 722 & + ( zdt(ji,jj)*zdt(ji,jj) + zdst(ji,jj)*zdst(ji,jj) ) * usecc2 & 723 & ) + creepl 724 745 ! deltat(ji,jj) = SQRT( zdd(ji,jj)*zdd(ji,jj) & 746 ! & + ( zdt(ji,jj)*zdt(ji,jj) + zdst(ji,jj)*zdst(ji,jj) ) * usecc2 & 747 ! & ) + creepl 748 ! MV rewriting 749 delta = SQRT( zdd(ji,jj)*zdd(ji,jj) + ( zdt(ji,jj)*zdt(ji,jj) + zdst(ji,jj)*zdst(ji,jj) ) * usecc2 ) 750 deltat(ji,jj) = delta + creepl 751 ! END MV 752 725 753 ENDIF ! zdummy 726 754 … … 738 766 divu_i (ji,jj) = zdd (ji,jj) 739 767 delta_i(ji,jj) = deltat(ji,jj) 768 ! begin TECLIM change 769 zdst(ji,jj)= ( e2u( ji , jj ) * v_ice1(ji,jj) & 770 & - e2u( ji-1, jj ) * v_ice1(ji-1,jj) & 771 & + e1v( ji , jj ) * u_ice2(ji,jj) & 772 & - e1v( ji , jj-1 ) * u_ice2(ji,jj-1) ) / area(ji,jj) 740 773 shear_i(ji,jj) = SQRT( zdt(ji,jj) * zdt(ji,jj) + zdst(ji,jj) * zdst(ji,jj) ) 774 ! end TECLIM change 741 775 END DO 742 776 END DO 743 CALL lbc_lnk( divu_i (:,:), 'T', 1. ) ! Lateral boundary condition 777 778 ! Lateral boundary condition 779 CALL lbc_lnk( divu_i (:,:), 'T', 1. ) 744 780 CALL lbc_lnk( delta_i(:,:), 'T', 1. ) 781 ! CALL lbc_lnk( shear_i(:,:), 'F', 1. ) 745 782 CALL lbc_lnk( shear_i(:,:), 'T', 1. ) 746 783
Note: See TracChangeset
for help on using the changeset viewer.