Changeset 3789 for branches/2012
- Timestamp:
- 2013-02-10T14:11:44+01:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90
r3558 r3789 8 8 !! - ! 2008-11 (M. Vancoppenolle, S. Bouillon, Y. Aksenov) add surface tilt in ice rheolohy 9 9 !! 3.3 ! 2009-05 (G.Garric) addition of the lim2_evp cas 10 !! 4.0! 2011-01 (A Porter) dynamical allocation10 !! 3.4 ! 2011-01 (A Porter) dynamical allocation 11 11 !!---------------------------------------------------------------------- 12 12 #if defined key_lim3 || ( defined key_lim2 && ! defined key_lim2_vp ) … … 48 48 # include "vectopt_loop_substitute.h90" 49 49 !!---------------------------------------------------------------------- 50 !! NEMO/LIM3 4.0, UCL - NEMO Consortium (2011)50 !! NEMO/LIM3 3.4 , UCL - NEMO Consortium (2011) 51 51 !! $Id$ 52 52 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 118 118 REAL(wp) :: z0, zr, zcca, zccb ! temporary scalars 119 119 REAL(wp) :: zu_ice2, zv_ice1 ! 120 REAL(wp) :: zddc, zdtc, z dst ! delta on corners and on centre120 REAL(wp) :: zddc, zdtc, zzdst ! delta on corners and on centre 121 121 REAL(wp) :: zdsshx, zdsshy ! term for the gradient of ocean surface 122 122 REAL(wp) :: sigma1, sigma2 ! internal ice stress … … 141 141 REAL(wp), POINTER, DIMENSION(:,:) :: zdd , zdt ! Divergence and tension at centre of grid cells 142 142 REAL(wp), POINTER, DIMENSION(:,:) :: zds ! Shear on northeast corner of grid cells 143 REAL(wp), POINTER, DIMENSION(:,:) :: zdst ! Shear on centre of grid cells 143 144 REAL(wp), POINTER, DIMENSION(:,:) :: deltat, deltac ! Delta at centre and corners of grid cells 144 145 REAL(wp), POINTER, DIMENSION(:,:) :: zs1 , zs2 ! Diagonal stress tensor components zs1 and zs2 145 146 REAL(wp), POINTER, DIMENSION(:,:) :: zs12 ! Non-diagonal stress tensor component zs12 146 147 REAL(wp), POINTER, DIMENSION(:,:) :: zu_ice, zv_ice, zresr ! Local error on velocity 147 148 148 !!------------------------------------------------------------------- 149 149 150 150 CALL wrk_alloc( jpi,jpj, zpresh, zfrld1, zmass1, zcorl1, za1ct , zpreshc, zfrld2, zmass2, zcorl2, za2ct ) 151 151 CALL wrk_alloc( jpi,jpj, zc1 , u_oce1, u_oce2, u_ice2, zusw , v_oce1 , v_oce2, v_ice1 ) 152 CALL wrk_alloc( jpi,jpj, zf1 , deltat, zu_ice, zf2 , deltac, zv_ice , zdd , zdt , zds 152 CALL wrk_alloc( jpi,jpj, zf1 , deltat, zu_ice, zf2 , deltac, zv_ice , zdd , zdt , zds , zdst ) 153 153 CALL wrk_alloc( jpi,jpj, zdd , zdt , zds , zs1 , zs2 , zs12 , zresr ) 154 154 … … 377 377 378 378 !- Calculate Delta at centre of grid cells 379 z dst= ( e2u(ji , jj) * v_ice1(ji ,jj) &379 zzdst = ( e2u(ji , jj) * v_ice1(ji ,jj) & 380 380 & - e2u(ji-1, jj) * v_ice1(ji-1,jj) & 381 381 & + e1v(ji, jj ) * u_ice2(ji,jj ) & … … 384 384 & / area(ji,jj) 385 385 386 delta = SQRT( zdd(ji,jj)*zdd(ji,jj) + ( zdt(ji,jj)*zdt(ji,jj) + zdst*zdst ) * usecc2 ) 387 deltat(ji,jj) = MAX( SQRT(zdd(ji,jj)**2 + (zdt(ji,jj)**2 + zdst**2)*usecc2), creepl ) 386 delta = SQRT( zdd(ji,jj)*zdd(ji,jj) + ( zdt(ji,jj)*zdt(ji,jj) + zzdst*zzdst ) * usecc2 ) 387 deltat(ji,jj) = MAX( SQRT(zdd(ji,jj)**2 + (zdt(ji,jj)**2 + zzdst**2)*usecc2), creepl ) 388 !!gm faster to replace the line above with simply: 389 !! deltat(ji,jj) = MAX( delta, creepl ) 390 !!gm end 388 391 389 392 !-Calculate stress tensor components zs1 and zs2 … … 667 670 & * tmi(ji+1,jj) * tmi(ji+1,jj+1) 668 671 669 zdst = ( e2u( ji , jj ) * v_ice1(ji,jj) & 670 & - e2u( ji-1, jj ) * v_ice1(ji-1,jj) & 671 & + e1v( ji , jj ) * u_ice2(ji,jj) & 672 & - e1v( ji , jj-1 ) * u_ice2(ji,jj-1) & 673 & ) & 674 & / area(ji,jj) 675 676 deltat(ji,jj) = SQRT( zdd(ji,jj)*zdd(ji,jj) + & 677 & ( zdt(ji,jj)*zdt(ji,jj) + zdst*zdst ) * usecc2 & 672 zdst(ji,jj) = ( e2u( ji , jj ) * v_ice1(ji ,jj ) & 673 & - e2u( ji-1, jj ) * v_ice1(ji-1,jj ) & 674 & + e1v( ji , jj ) * u_ice2(ji ,jj ) & 675 & - e1v( ji , jj-1 ) * u_ice2(ji ,jj-1) ) / area(ji,jj) 676 677 deltat(ji,jj) = SQRT( zdd(ji,jj)*zdd(ji,jj) & 678 & + ( zdt(ji,jj)*zdt(ji,jj) + zdst(ji,jj)*zdst(ji,jj) ) * usecc2 & 678 679 & ) + creepl 679 680 … … 688 689 ! 689 690 ! * Invariants of the stress tensor are required for limitd_me 690 ! accelerates convergence and improves stability691 ! (accelerates convergence and improves stability) 691 692 DO jj = k_j1+1, k_jpj-1 692 693 DO ji = fs_2, fs_jpim1 693 694 divu_i (ji,jj) = zdd (ji,jj) 694 695 delta_i(ji,jj) = deltat(ji,jj) 695 shear_i(ji,jj) = zds (ji,jj)696 shear_i(ji,jj) = SQRT( zdt(ji,jj) * zdt(ji,jj) + zdst(ji,jj) * zdst(ji,jj) ) 696 697 END DO 697 698 END DO 698 699 ! Lateral boundary condition 700 CALL lbc_lnk( divu_i (:,:), 'T', 1. ) 699 CALL lbc_lnk( divu_i (:,:), 'T', 1. ) ! Lateral boundary condition 701 700 CALL lbc_lnk( delta_i(:,:), 'T', 1. ) 702 CALL lbc_lnk( shear_i(:,:), ' F', 1. )701 CALL lbc_lnk( shear_i(:,:), 'T', 1. ) 703 702 704 703 ! * Store the stress tensor for the next time step … … 746 745 CALL wrk_dealloc( jpi,jpj, zpresh, zfrld1, zmass1, zcorl1, za1ct , zpreshc, zfrld2, zmass2, zcorl2, za2ct ) 747 746 CALL wrk_dealloc( jpi,jpj, zc1 , u_oce1, u_oce2, u_ice2, zusw , v_oce1 , v_oce2, v_ice1 ) 748 CALL wrk_dealloc( jpi,jpj, zf1 , deltat, zu_ice, zf2 , deltac, zv_ice , zdd , zdt , zds 747 CALL wrk_dealloc( jpi,jpj, zf1 , deltat, zu_ice, zf2 , deltac, zv_ice , zdd , zdt , zds , zdst ) 749 748 CALL wrk_dealloc( jpi,jpj, zdd , zdt , zds , zs1 , zs2 , zs12 , zresr ) 750 749
Note: See TracChangeset
for help on using the changeset viewer.