- Timestamp:
- 2017-12-08T16:15:25+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk.F90
r8920 r8962 843 843 REAL(wp) :: zcoef_dqlw, zcoef_dqla ! - - 844 844 REAL(wp) :: zztmp, z1_lsub ! - - 845 REAL(wp) :: zfrqsr_tr_i ! sea ice shortwave fraction transmitted below through the ice 846 REAL(wp) :: zfr1, zfr2, zfac ! local variables 845 REAL(wp) :: zfr1, zfr2 ! local variables 847 846 REAL(wp), DIMENSION(jpi,jpj,jpl) :: z_qlw ! long wave heat flux over ice 848 847 REAL(wp), DIMENSION(jpi,jpj,jpl) :: z_qsb ! sensible heat flux over ice … … 951 950 END DO 952 951 953 ! --- absorbed and transmitted shortwave radiation (W/m2) --- ! 954 ! 955 ! former coding was 956 ! fr1_i0(:,:) = ( 0.18 * ( 1.0 - cldf_ice ) + 0.35 * cldf_ice ) 957 ! fr2_i0(:,:) = ( 0.82 * ( 1.0 - cldf_ice ) + 0.65 * cldf_ice ) 958 959 ! --- surface transmission parameter (i0, Grenfell Maykut 77) --- ! 960 zfr1 = ( 0.18 * ( 1.0 - cldf_ice ) + 0.35 * cldf_ice ) ! standard value 961 zfr2 = ( 0.82 * ( 1.0 - cldf_ice ) + 0.65 * cldf_ice ) ! zfr2 such that zfr1 + zfr2 to equal 1 962 963 qsr_ice_tr(:,:,:) = 0._wp 964 965 DO jl = 1, jpl 966 DO jj = 1, jpj 967 DO ji = 1, jpi 968 ! 969 zfac = MAX( 0._wp , 1._wp - phi(ji,jj,jl) * 10._wp ) ! linear weighting factor: =0 for phi=0, =1 for phi = 0.1 970 zfrqsr_tr_i = zfr1 + zfac * zfr2 ! below 10 cm, linearly increase zfrqsr_tr_i until 1 at zero thickness 971 ! 972 IF ( phs(ji,jj,jl) <= 0._wp ) THEN ; zfrqsr_tr_i = zfr1 + zfac * zfr2 973 ELSE ; zfrqsr_tr_i = 0._wp ! snow fully opaque 974 ENDIF 975 ! 976 qsr_ice_tr(ji,jj,jl) = zfrqsr_tr_i * qsr_ice(ji,jj,jl) ! transmitted solar radiation 977 ! 978 END DO 979 END DO 980 END DO 952 ! --- shortwave radiation transmitted below the surface (W/m2, see Grenfell Maykut 77) --- ! 953 zfr1 = ( 0.18 * ( 1.0 - cldf_ice ) + 0.35 * cldf_ice ) ! transmission when hi>10cm 954 zfr2 = ( 0.82 * ( 1.0 - cldf_ice ) + 0.65 * cldf_ice ) ! zfr2 such that zfr1 + zfr2 to equal 1 955 ! 956 WHERE ( phs(:,:,:) <= 0._wp .AND. phi(:,:,:) < 0.1_wp ) ! linear decrease from hi=0 to 10cm 957 qsr_ice_tr(:,:,:) = qsr_ice(:,:,:) * ( zfr1 + zfr2 * ( 1._wp - phi(:,:,:) * 10._wp ) ) 958 ELSEWHERE( phs(:,:,:) <= 0._wp .AND. phi(:,:,:) >= 0.1_wp ) ! constant (zfr1) when hi>10cm 959 qsr_ice_tr(:,:,:) = qsr_ice(:,:,:) * zfr1 960 ELSEWHERE ! zero when hs>0 961 qsr_ice_tr(:,:,:) = 0._wp 962 END WHERE 981 963 ! 982 964 IF(ln_ctl) THEN
Note: See TracChangeset
for help on using the changeset viewer.