Changeset 15579
- Timestamp:
- 2021-12-07T12:48:08+01:00 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.4_ice_strength/src/ICE/icedyn_rdgrft.F90
r15542 r15579 62 62 ! ** namelist (namdyn_rdgrft) ** 63 63 LOGICAL :: ln_str_H79 ! ice strength parameterization (Hibler79) 64 REAL(wp) :: rn_pstar ! determines ice strength, Hibler JPO7964 REAL(wp) :: rn_pstar ! determines ice strength, Hibler JPO79 65 65 LOGICAL :: ln_str_R75 ! ice strength parameterization (Rothrock75) 66 66 REAL(wp) :: rn_Cf ! ratio of ridging work to PE change in ridging, R75 67 INTEGER :: rdg_redistr ! redistribution of ridged ice (0 = uniform (Hibler 1980), 1 = exponential) 68 REAL(wp) :: rn_murdg ! gives e-folding scale of ridged ice (m^.5) for rdg_redistr = 1 67 INTEGER :: ismooth ! smoothing the resistance to deformation (strength) 68 LOGICAL :: ln_redist_ufm ! uniform redistribution of ridged ice (Hibler, 1980) 69 LOGICAL :: ln_redist_exp ! exponential redistribution of ridged ice 70 REAL(wp) :: rn_murdg ! gives e-folding scale of ridged ice (m^.5) for ln_redist_exp 69 71 REAL(wp) :: rn_csrdg ! fraction of shearing energy contributing to ridging 70 72 LOGICAL :: ln_partf_lin ! participation function linear (Thorndike et al. (1975)) … … 454 456 hraft (ji,jl) = zhi(ji,jl) * zfac 455 457 ! 456 IF ( rdg_redistr == 0) THEN458 IF ( ln_redist_ufm ) THEN 457 459 hrmax (ji,jl) = 2._wp * zhmean - hrmin(ji,jl) 458 460 hi_hrdg(ji,jl) = zhi(ji,jl) / zhmean 459 ELSE IF ( rdg_redistr == 1) THEN461 ELSE IF ( ln_redist_exp ) THEN 460 462 hrexp (ji,jl) = rn_murdg * SQRT( zhi(ji,jl) ) 461 463 hi_hrdg(ji,jl) = zhi(ji,jl) / ( hrmin(ji,jl) + hrexp(ji,jl) ) … … 703 705 ! Compute the fraction of ridged ice area and volume going to thickness category jl2 704 706 ! 705 IF ( rdg_redistr == 0) THEN ! Hibler 1980 uniform formulation707 IF ( ln_redist_ufm ) THEN ! Hibler 1980 uniform formulation 706 708 ! 707 709 IF( hrmin(ji,jl1) <= hi_max(jl2) .AND. hrmax(ji,jl1) > hi_max(jl2-1) ) THEN … … 717 719 ENDIF 718 720 ! 719 ELSE IF ( rdg_redistr == 1) THEN ! exponential formulation721 ELSE IF ( ln_redist_exp ) THEN ! exponential formulation 720 722 ! 721 723 IF (jl2 < jpl) THEN … … 743 745 END IF ! jl2 < jpl 744 746 ! 745 END IF ! r dg_redistr747 END IF ! ridge redistribution 746 748 747 749 ! Compute the fraction of rafted ice area and volume going to thickness category jl2 … … 826 828 !!---------------------------------------------------------------------- 827 829 INTEGER :: ji, jj, jl ! dummy loop indices 828 INTEGER :: ismooth ! smoothing the resistance to deformation829 830 INTEGER :: itframe ! number of time steps for the P smoothing 830 831 REAL(wp) :: zp, z1_3 ! local scalars … … 842 843 ! !--------------------------------------------------! 843 844 strength(:,:) = rn_pstar * SUM( v_i(:,:,:), dim=3 ) * EXP( -rn_crhg * ( 1._wp - SUM( a_i(:,:,:), dim=3 ) ) ) 844 845 ! Recommend ismooth = 1 845 846 ! !--------------------------------------------------! 846 847 ELSE IF( ln_str_R75 ) THEN ! Ice strength => Rothrock (1975) method ! … … 849 850 ! Initialise the strength field at each timestep 850 851 strength(:,:) = 0._wp 851 852 ! Recommend ismooth = 0 852 853 853 854 !-------------------------------- … … 891 892 IF ( apartf(ji,jl) > 0._wp ) THEN 892 893 ! 893 IF ( rdg_redistr == 0) THEN ! Uniform distribution of ridged ice894 IF ( ln_redist_ufm ) THEN ! Uniform distribution of ridged ice 894 895 h2rdg = (1._wp/3._wp) * (hrmax(ji,jl)**3._wp - hrmin(ji,jl)**3._wp) & 895 896 / (hrmax(ji,jl) - hrmin(ji,jl)) 896 897 ! 897 ELSE IF ( rdg_redistr == 1) THEN ! Exponential distribution of ridged ice898 ELSE IF ( ln_redist_exp ) THEN ! Exponential distribution of ridged ice 898 899 h2rdg = hrmin(ji,jl) * hrmin(ji,jl) & 899 900 + 2._wp * hrmin(ji,jl) * hrexp(ji,jl) & … … 939 940 ! !--------------------------------------------------! 940 941 strength(:,:) = 0._wp 941 ismooth = 0942 ! 942 943 ENDIF ! Ice strength formulation 943 944 ! … … 1086 1087 INTEGER :: ios ! Local integer output status for namelist read 1087 1088 !! 1088 NAMELIST/namdyn_rdgrft/ ln_str_H79, rn_pstar, &1089 & ln_str_R75, rn_Cf, &1090 & rdg_redistr, rn_murdg,&1089 NAMELIST/namdyn_rdgrft/ ismooth, ln_str_H79, rn_pstar, & 1090 & ln_str_R75, rn_Cf, & 1091 & ln_redist_ufm, ln_redist_exp, rn_murdg, & 1091 1092 & rn_crhg, rn_csrdg, & 1092 1093 & ln_partf_lin, rn_gstar, & … … 1114 1115 WRITE(numout,*) ' ice strength parameterization Rothrock (1975) ln_str_R75 = ', ln_str_R75 1115 1116 WRITE(numout,*) ' ratio of ridging work to PE change in ridging rn_Cf = ', rn_Cf 1116 WRITE(numout,*) ' redistribution of ridged ice rdg_redistr = ', rdg_redistr 1117 WRITE(numout,*) ' (0 = uniform (Hibler 1980), 1 = exponential) ' 1118 WRITE(numout,*) ' e-folding scale of ridged ice for rdg_redistr=1 rn_murdg = ', rn_murdg 1117 WRITE(numout,*) ' smoothing the resistance to deformation (strength) ismooth = ', ismooth 1118 WRITE(numout,*) ' uniform redistribution of ridged ice (Hibler, 1980) ln_redist_ufm = ', ln_redist_ufm 1119 WRITE(numout,*) ' exponential redistribution of ridged ice ln_redist_exp = ', ln_redist_exp 1120 WRITE(numout,*) ' e-folding scale of ridged ice for ln_redist_exp rn_murdg = ', rn_murdg 1119 1121 WRITE(numout,*) ' Fraction of shear energy contributing to ridging rn_csrdg = ', rn_csrdg 1120 1122 WRITE(numout,*) ' linear ridging participation function ln_partf_lin = ', ln_partf_lin … … 1142 1144 ENDIF 1143 1145 ! 1144 ! IF ( ( rdg_redistr .NE. 0 ) .OR. ( rdg_redistr .NE. 1 ) ) THEN ! why doesn't this work? 1145 ! CALL ctl_stop( 'ice_dyn_rdgrft_init: ice redistribution function rdg_redistr must be 0 (uniform) or 1 (exponential)' ) 1146 ! ENDIF 1147 ! 1146 IF ( ( ln_redist_ufm .AND. ln_redist_exp ) .OR. ( .NOT.ln_redist_ufm .AND. .NOT.ln_redist_exp ) ) THEN 1147 CALL ctl_stop( 'ice_dyn_rdgrft_init: choose one and only one ice redistribution function (ln_redist_ufm or ln_redist_exp)' ) 1148 ENDIF 1149 ! 1150 !! Add check for ismooth too, =0, 1 or 2 1151 1148 1152 IF( .NOT. ln_icethd ) THEN 1149 1153 rn_porordg = 0._wp
Note: See TracChangeset
for help on using the changeset viewer.