- Timestamp:
- 2015-02-06T19:12:57+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5044_CNRS_LIM3CLEAN/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90
r5064 r5067 191 191 ! (thick, newly ridged ice). 192 192 193 closing_net(ji,jj) = Cs * 0.5 * ( Delta_i(ji,jj) - ABS( divu_i(ji,jj) ) ) - MIN( divu_i(ji,jj), 0._wp )193 closing_net(ji,jj) = rn_cs * 0.5 * ( Delta_i(ji,jj) - ABS( divu_i(ji,jj) ) ) - MIN( divu_i(ji,jj), 0._wp ) 194 194 195 195 ! 2.2 divu_adv … … 488 488 END DO !jl 489 489 490 zzc = Cf * Cp ! where Cp = (g/2)*(rhow-rhoi)*(rhoi/rhow) and Cfaccounts for frictional dissipation490 zzc = rn_pe_rdg * Cp ! where Cp = (g/2)*(rhow-rhoi)*(rhoi/rhow) and rn_pe_rdg accounts for frictional dissipation 491 491 strength(:,:) = zzc * strength(:,:) / aksum(:,:) 492 492 … … 498 498 ELSE ! kstrngth ne 1: Hibler (1979) form 499 499 ! 500 strength(:,:) = Pstar * vt_i(:,:) * EXP( - C_rhg * ( 1._wp - at_i(:,:) ) )500 strength(:,:) = rn_pstar * vt_i(:,:) * EXP( - rn_crhg * ( 1._wp - at_i(:,:) ) ) 501 501 ! 502 502 ksmooth = 1 … … 510 510 ! CAN BE REMOVED 511 511 ! 512 IF ( brinstren_swi== 1 ) THEN512 IF ( nn_icestr_bvf == 1 ) THEN 513 513 514 514 DO jj = 1, jpj … … 542 542 ! present 543 543 zworka(ji,jj) = 4.0 * strength(ji,jj) & 544 & + strength(ji-1,jj) * tm s(ji-1,jj) &545 & + strength(ji+1,jj) * tm s(ji+1,jj) &546 & + strength(ji,jj-1) * tm s(ji,jj-1) &547 & + strength(ji,jj+1) * tm s(ji,jj+1)548 549 zw1 = 4.0 + tm s(ji-1,jj) + tms(ji+1,jj) + tms(ji,jj-1) + tms(ji,jj+1)544 & + strength(ji-1,jj) * tmask(ji-1,jj,1) & 545 & + strength(ji+1,jj) * tmask(ji+1,jj,1) & 546 & + strength(ji,jj-1) * tmask(ji,jj-1,1) & 547 & + strength(ji,jj+1) * tmask(ji,jj+1,1) 548 549 zw1 = 4.0 + tmask(ji-1,jj,1) + tmask(ji+1,jj,1) + tmask(ji,jj-1,1) + tmask(ji,jj+1,1) 550 550 zworka(ji,jj) = zworka(ji,jj) / zw1 551 551 ELSE … … 619 619 CALL wrk_alloc( jpi,jpj,jpl+2, Gsum, kkstart = -1 ) 620 620 621 Gstari = 1.0/ Gstar622 astari = 1.0/ astar621 Gstari = 1.0/rn_gstar 622 astari = 1.0/rn_astar 623 623 aksum(:,:) = 0.0 624 624 athorn(:,:,:) = 0.0 … … 686 686 !----------------------------------------------------------------- 687 687 688 IF( partfun_swi== 0 ) THEN !--- Linear formulation (Thorndike et al., 1975)688 IF( nn_partfun == 0 ) THEN !--- Linear formulation (Thorndike et al., 1975) 689 689 DO jl = 0, jpl 690 690 DO jj = 1, jpj 691 691 DO ji = 1, jpi 692 IF( Gsum(ji,jj,jl) < Gstar) THEN692 IF( Gsum(ji,jj,jl) < rn_gstar) THEN 693 693 athorn(ji,jj,jl) = Gstari * (Gsum(ji,jj,jl)-Gsum(ji,jj,jl-1)) * & 694 694 (2.0 - (Gsum(ji,jj,jl-1)+Gsum(ji,jj,jl))*Gstari) 695 ELSEIF (Gsum(ji,jj,jl-1) < Gstar) THEN696 athorn(ji,jj,jl) = Gstari * ( Gstar-Gsum(ji,jj,jl-1)) * &697 (2.0 - (Gsum(ji,jj,jl-1)+ Gstar)*Gstari)695 ELSEIF (Gsum(ji,jj,jl-1) < rn_gstar) THEN 696 athorn(ji,jj,jl) = Gstari * (rn_gstar-Gsum(ji,jj,jl-1)) * & 697 (2.0 - (Gsum(ji,jj,jl-1)+rn_gstar)*Gstari) 698 698 ELSE 699 699 athorn(ji,jj,jl) = 0.0 … … 714 714 END DO 715 715 ! 716 ENDIF ! partfun_swi717 718 IF( raft_swi== 1 ) THEN ! Ridging and rafting ice participation functions716 ENDIF ! nn_partfun 717 718 IF( nn_rafting == 1 ) THEN ! Ridging and rafting ice participation functions 719 719 ! 720 720 DO jl = 1, jpl … … 723 723 IF ( athorn(ji,jj,jl) .GT. 0._wp ) THEN 724 724 !!gm TANH( -X ) = - TANH( X ) so can be computed only 1 time.... 725 aridge(ji,jj,jl) = ( TANH ( Craft * ( ht_i(ji,jj,jl) - hparmeter) ) + 1.0 ) * 0.5 * athorn(ji,jj,jl)726 araft (ji,jj,jl) = ( TANH ( - Craft * ( ht_i(ji,jj,jl) - hparmeter) ) + 1.0 ) * 0.5 * athorn(ji,jj,jl)725 aridge(ji,jj,jl) = ( TANH ( rn_craft * ( ht_i(ji,jj,jl) - rn_hraft ) ) + 1.0 ) * 0.5 * athorn(ji,jj,jl) 726 araft (ji,jj,jl) = ( TANH ( -rn_craft * ( ht_i(ji,jj,jl) - rn_hraft ) ) + 1.0 ) * 0.5 * athorn(ji,jj,jl) 727 727 IF ( araft(ji,jj,jl) < epsi06 ) araft(ji,jj,jl) = 0._wp 728 728 aridge(ji,jj,jl) = MAX( athorn(ji,jj,jl) - araft(ji,jj,jl), 0.0 ) … … 732 732 END DO ! jl 733 733 734 ELSE ! raft_swi= 0734 ELSE ! nn_rafting = 0 735 735 ! 736 736 DO jl = 1, jpl … … 740 740 ENDIF 741 741 742 IF ( raft_swi== 1 ) THEN742 IF ( nn_rafting == 1 ) THEN 743 743 744 744 IF( MAXVAL(aridge + araft - athorn(:,:,1:jpl)) .GT. epsi10 ) THEN … … 794 794 IF (a_i(ji,jj,jl) .GT. epsi10 .AND. athorn(ji,jj,jl) .GT. 0.0 ) THEN 795 795 hi = v_i(ji,jj,jl) / a_i(ji,jj,jl) 796 hrmean = MAX(SQRT( Hstar*hi), hi*krdgmin)796 hrmean = MAX(SQRT(rn_hstar*hi), hi*krdgmin) 797 797 hrmin(ji,jj,jl) = MIN(2.0*hi, 0.5*(hrmean + hi)) 798 798 hrmax(ji,jj,jl) = 2.0*hrmean - hrmin(ji,jj,jl) … … 1030 1030 !-------------------------------------------------------------------------- 1031 1031 vrdg1(ji,jj) = vicen_init(ji,jj,jl1) * afrac(ji,jj) 1032 vrdg2(ji,jj) = vrdg1(ji,jj) * ( 1. + r idge_por)1033 vsw (ji,jj) = vrdg1(ji,jj) * r idge_por1032 vrdg2(ji,jj) = vrdg1(ji,jj) * ( 1. + rn_por_rdg ) 1033 vsw (ji,jj) = vrdg1(ji,jj) * rn_por_rdg 1034 1034 1035 1035 vsrdg(ji,jj) = vsnwn_init(ji,jj,jl1) * afrac(ji,jj) … … 1061 1061 srdg2(ji,jj) = srdg1(ji,jj) + smsw(ji,jj) ! salt content of new ridge 1062 1062 1063 !srdg2(ji,jj) = MIN( s_i_max * vrdg2(ji,jj) , zsrdg2 ) ! impose a maximum salinity1063 !srdg2(ji,jj) = MIN( rn_simax * vrdg2(ji,jj) , zsrdg2 ) ! impose a maximum salinity 1064 1064 1065 1065 sfx_dyn(ji,jj) = sfx_dyn(ji,jj) - smsw(ji,jj) * rhoic * r1_rdtice … … 1090 1090 ! ij looping 1-icells 1091 1091 1092 msnow_mlt(ji,jj) = msnow_mlt(ji,jj) + rhosn*vsrdg(ji,jj)*(1.0- fsnowrdg) & ! rafting included1093 & + rhosn*vsrft(ji,jj)*(1.0- fsnowrft)1092 msnow_mlt(ji,jj) = msnow_mlt(ji,jj) + rhosn*vsrdg(ji,jj)*(1.0-rn_fsnowrdg) & ! rafting included 1093 & + rhosn*vsrft(ji,jj)*(1.0-rn_fsnowrft) 1094 1094 1095 1095 ! in J/m2 (same as e_s) 1096 esnow_mlt(ji,jj) = esnow_mlt(ji,jj) - esrdg(ji,jj)*(1.0- fsnowrdg) & !rafting included1097 & - esrft(ji,jj)*(1.0- fsnowrft)1096 esnow_mlt(ji,jj) = esnow_mlt(ji,jj) - esrdg(ji,jj)*(1.0-rn_fsnowrdg) & !rafting included 1097 & - esrft(ji,jj)*(1.0-rn_fsnowrft) 1098 1098 1099 1099 !----------------------------------------------------------------- … … 1206 1206 a_i (ji,jj ,jl2) = a_i (ji,jj ,jl2) + ardg2 (ji,jj) * farea 1207 1207 v_i (ji,jj ,jl2) = v_i (ji,jj ,jl2) + vrdg2 (ji,jj) * fvol(ji,jj) 1208 v_s (ji,jj ,jl2) = v_s (ji,jj ,jl2) + vsrdg (ji,jj) * fvol(ji,jj) * fsnowrdg1209 e_s (ji,jj,1,jl2) = e_s (ji,jj,1,jl2) + esrdg (ji,jj) * fvol(ji,jj) * fsnowrdg1208 v_s (ji,jj ,jl2) = v_s (ji,jj ,jl2) + vsrdg (ji,jj) * fvol(ji,jj) * rn_fsnowrdg 1209 e_s (ji,jj,1,jl2) = e_s (ji,jj,1,jl2) + esrdg (ji,jj) * fvol(ji,jj) * rn_fsnowrdg 1210 1210 smv_i(ji,jj ,jl2) = smv_i(ji,jj ,jl2) + srdg2 (ji,jj) * fvol(ji,jj) 1211 1211 oa_i (ji,jj ,jl2) = oa_i (ji,jj ,jl2) + oirdg2(ji,jj) * farea … … 1238 1238 a_i (ji,jj ,jl2) = a_i (ji,jj ,jl2) + arft2 (ji,jj) 1239 1239 v_i (ji,jj ,jl2) = v_i (ji,jj ,jl2) + virft (ji,jj) 1240 v_s (ji,jj ,jl2) = v_s (ji,jj ,jl2) + vsrft (ji,jj) * fsnowrft1241 e_s (ji,jj,1,jl2) = e_s (ji,jj,1,jl2) + esrft (ji,jj) * fsnowrft1240 v_s (ji,jj ,jl2) = v_s (ji,jj ,jl2) + vsrft (ji,jj) * rn_fsnowrft 1241 e_s (ji,jj,1,jl2) = e_s (ji,jj,1,jl2) + esrft (ji,jj) * rn_fsnowrft 1242 1242 smv_i(ji,jj ,jl2) = smv_i(ji,jj ,jl2) + smrft (ji,jj) 1243 1243 oa_i (ji,jj ,jl2) = oa_i (ji,jj ,jl2) + oirft2(ji,jj) … … 1331 1331 !!------------------------------------------------------------------- 1332 1332 INTEGER :: ios ! Local integer output status for namelist read 1333 NAMELIST/namiceitdme/ r idge_scheme_swi, Cs, Cf, fsnowrdg,fsnowrft, &1334 & Gstar, astar, Hstar, raft_swi, hparmeter, Craft, ridge_por, &1335 & partfun_swi, brinstren_swi1333 NAMELIST/namiceitdme/ rn_cs, rn_pe_rdg, rn_fsnowrdg, rn_fsnowrft, & 1334 & rn_gstar, rn_astar, rn_hstar, nn_rafting, rn_hraft, rn_craft, rn_por_rdg, & 1335 & nn_partfun 1336 1336 !!------------------------------------------------------------------- 1337 1337 ! … … 1349 1349 WRITE(numout,*)' lim_itd_me_init : ice parameters for mechanical ice redistribution ' 1350 1350 WRITE(numout,*)' ~~~~~~~~~~~~~~~' 1351 WRITE(numout,*)' Switch choosing the ice redistribution scheme ridge_scheme_swi', ridge_scheme_swi 1352 WRITE(numout,*)' Fraction of shear energy contributing to ridging Cs ', Cs 1353 WRITE(numout,*)' Ratio of ridging work to PotEner change in ridging Cf ', Cf 1354 WRITE(numout,*)' Fraction of snow volume conserved during ridging fsnowrdg ', fsnowrdg 1355 WRITE(numout,*)' Fraction of snow volume conserved during ridging fsnowrft ', fsnowrft 1356 WRITE(numout,*)' Fraction of total ice coverage contributing to ridging Gstar ', Gstar 1357 WRITE(numout,*)' Equivalent to G* for an exponential part function astar ', astar 1358 WRITE(numout,*)' Quantity playing a role in max ridged ice thickness Hstar ', Hstar 1359 WRITE(numout,*)' Rafting of ice sheets or not raft_swi ', raft_swi 1360 WRITE(numout,*)' Parmeter thickness (threshold between ridge-raft) hparmeter ', hparmeter 1361 WRITE(numout,*)' Rafting hyperbolic tangent coefficient Craft ', Craft 1362 WRITE(numout,*)' Initial porosity of ridges ridge_por ', ridge_por 1363 WRITE(numout,*)' Switch for part. function (0) linear (1) exponential partfun_swi ', partfun_swi 1364 WRITE(numout,*)' Switch for including brine volume in ice strength comp. brinstren_swi ', brinstren_swi 1351 WRITE(numout,*)' Fraction of shear energy contributing to ridging rn_cs ', rn_cs 1352 WRITE(numout,*)' Ratio of ridging work to PotEner change in ridging rn_pe_rdg ', rn_pe_rdg 1353 WRITE(numout,*)' Fraction of snow volume conserved during ridging rn_fsnowrdg ', rn_fsnowrdg 1354 WRITE(numout,*)' Fraction of snow volume conserved during ridging rn_fsnowrft ', rn_fsnowrft 1355 WRITE(numout,*)' Fraction of total ice coverage contributing to ridging rn_gstar ', rn_gstar 1356 WRITE(numout,*)' Equivalent to G* for an exponential part function rn_astar ', rn_astar 1357 WRITE(numout,*)' Quantity playing a role in max ridged ice thickness rn_hstar ', rn_hstar 1358 WRITE(numout,*)' Rafting of ice sheets or not nn_rafting ', nn_rafting 1359 WRITE(numout,*)' Parmeter thickness (threshold between ridge-raft) rn_hraft ', rn_hraft 1360 WRITE(numout,*)' Rafting hyperbolic tangent coefficient rn_craft ', rn_craft 1361 WRITE(numout,*)' Initial porosity of ridges rn_por_rdg ', rn_por_rdg 1362 WRITE(numout,*)' Switch for part. function (0) linear (1) exponential nn_partfun ', nn_partfun 1365 1363 ENDIF 1366 1364 !
Note: See TracChangeset
for help on using the changeset viewer.