Changeset 3900 for LMDZ6/trunk/libf/phylmd/inlandsis/sisvat_sop.F
- Timestamp:
- May 17, 2021, 3:35:58 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/inlandsis/sisvat_sop.F
r3792 r3900 1 2 3 1 subroutine SnOptP(jjtime) 4 2 … … 30 28 C | OUTPUT: albisv : Snow/Ice/Water/Soil Integrated Albedo [-] | 31 29 C | ^^^^^^ sEX_sv : Verticaly Integrated Extinction Coefficient | 30 C | DOPsnSV : Snow Optical diameter [m] | 32 31 C | | 33 32 C | Internal Variables: | … … 68 67 use VARySV 69 68 use VARtSV 70 USE surface_data, only: iflag_alb zenith69 USE surface_data, only: iflag_albcalc,correc_alb 71 70 72 71 IMPLICIT NONE … … 89 88 c #AG real agesno 90 89 91 integer isn ,ikl ,isn1 90 integer isn ,ikl ,isn1, i 92 91 real sbeta1,sbeta2,sbeta3,sbeta4,sbeta5 93 92 real AgeMax,AlbMin,HSnoSV,HIceSV,doptmx,SignG1,Sph_OK 94 93 real dalbed,dalbeS,dalbeW 95 real bsegal,czemax,csegal 94 real bsegal,czemax,csegal,csza 96 95 real RoFrez,DiffRo,SignRo,SnowOK,OpSqrt 97 96 real albSn1,albIc1,a_SnI1,a_SII1 … … 103 102 real albedo_old,albCor 104 103 real ro_ave,dz_ave,minalb 105 real thetazs,thetazs0,aap,bbp,ccp,alb0 ! parameters for zenoth angle effect at Dome C106 107 104 real l1min,l1max,l2min,l2max,l3min,l3max 105 real l6min(6), l6max(6), albSn6(6), a_SII6(6) 106 real lmintmp,lmaxtmp,albtmp 108 107 109 108 C +--Local DATA … … 138 137 data albmax /0.99 / ! Albedo max 139 138 140 C +-- For the computation of solar zenoth angle effect from Dome C data 141 C + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 data aap/0.00016/,bbp/-0.017/,ccp/1.2/ 143 139 C +-- wavelength limits [m] for each broad band 140 141 data l1min/400.0e-9/,l1max/800.0e-9/ 142 data l2min/800.0e-9/,l2max/1500.0e-9/ 143 data l3min/1500.0e-9/,l3max/2800.0e-9/ 144 145 data l6min/185.0e-9,250.0e-9,400.0e-9, 146 . 690.0e-9,1190.0e-9,2380.0e-9/ 147 data l6max/250.0e-9,400.0e-9, 148 . 690.0e-9,1190.0e-9,2380.0e-9,4000.0e-9/ 144 149 145 150 … … 177 182 . *DFcdSV ))) 178 183 SnOpSV(ikl,isn) = max(zero,SnOpSV(ikl,isn)) 184 185 C + --For outputs (Etienne) 186 C + ------------------------ 187 DOPsnSV(ikl,isn)=SnOpSV(ikl,isn) 179 188 END DO 180 189 END DO 181 190 191 192 182 193 183 194 C +--Snow/Ice Albedo … … 191 202 DO ikl=1,knonv 192 203 193 204 isn = max(iun,isnoSV(ikl)) 194 205 195 206 SignRo = sign(unun, rocdSV - ro__SV(ikl,isn)) … … 200 211 cCA +--Correction of snow albedo for Antarctica/Greenland 201 212 cCA -------------------------------------------------- 202 albCor = 1. 213 214 215 albCor = correc_alb 203 216 c #GL albCor = 1.01 204 c #AC albCor = 1.01 205 217 c #AC albCor = 1.01 218 219 220 IF (iflag_albcalc .GE. 1) THEN ! Albedo calculation according to Kokhanovsky and Zege 2004 221 222 dalbed = 0.0 223 doptic=SnOpSV(ikl,isn) 224 csza=coszSV(ikl) 225 226 CALL albedo_kokhanovsky(l1min,l1max,csza,doptic,albSn1) 227 CALL albedo_kokhanovsky(l2min,l2max,csza,doptic,albSn2) 228 CALL albedo_kokhanovsky(l3min,l3max,csza,doptic,albSn3) 229 230 DO i=1,6 231 lmintmp=l6min(i) 232 lmaxtmp=l6max(i) 233 CALL albedo_kokhanovsky(lmintmp,lmaxtmp,csza,doptic,albtmp) 234 albSn6(i)=albtmp 235 ENDDO 236 237 238 ELSE ! Default calculation in SISVAT 239 240 ! Zenith Angle Correction (Segal et al., 1991, JAS 48, p.1025) 241 !--------------------------- (Wiscombe & Warren, dec1980, JAS , p.2723) 242 ! (Warren, 1982, RG , p. 81) 243 ! ------------------------------------------------- 244 245 dalbed = 0.0 246 247 csegal = max(czemax ,coszSV(ikl)) 248 c #cz dalbeS = ((bsegal+unun)/(unun+2.0*bsegal*csegal) 249 c #cz. - unun )*0.32 250 c #cz. / bsegal 251 c #cz dalbeS = max(dalbeS,zero) 252 c #cz dalbed = dalbeS * min(1,isnoSV(ikl)) 253 254 dalbeW =(0.64 - csegal )*0.0625 ! Warren 1982, RevGeo, fig.12b 255 ! 0.0625 = 5% * 1/0.8, p.81 256 ! 0.64 = cos(50) 257 dalbed = dalbeW * min(1,isnoSV(ikl)) 258 !------------------------------------------------------------------------- 259 206 260 albSn1 = 0.96-1.580*OpSqrt 207 261 albSn1 = max(albSn1,AlbMin) … … 219 273 albSn3 = min(albSn3*albCor,unun) 220 274 275 albSn6(1:3)=albSn1 276 albSn6(4:6)=albSn2 277 221 278 !snow albedo corection if wetsnow 222 279 c #GL albSn1 = albSn1*max(0.9,(1.-1.5*eta_SV(ikl,isn))) 223 280 c #GL albSn2 = albSn2*max(0.9,(1.-1.5*eta_SV(ikl,isn))) 224 281 c #GL albSn3 = albSn3*max(0.9,(1.-1.5*eta_SV(ikl,isn))) 282 283 ENDIF 284 225 285 226 286 albSno = So1dSV*albSn1 … … 237 297 albSn2 = SnowOK*albSn2+(1.0-SnowOK)*max(albSno,minalb) 238 298 albSn3 = SnowOK*albSn3+(1.0-SnowOK)*max(albSno,minalb) 299 albSn6(:) = SnowOK*albSn6(:)+(1.0-SnowOK)*max(albSno,minalb) 300 239 301 240 302 c + ro < roSdSV | min al > aI3dSV … … 304 366 a_SII3 = albWIc +(albSn3-albWIc) *SnownH 305 367 a_SII3 = min(a_SII3 ,albSn3) 306 368 369 DO i=1,6 370 a_SII6(i) = albWIc +(albSn6(i)-albWIc) *SnownH 371 a_SII6(i) = min(a_SII6(i) ,albSn6(i)) 372 ENDDO 373 307 374 cc #AG agesno = min(agsnSV(ikl,isn) ,AgeMax) 308 375 cc #AG a_SII1 = a_SII1 -0.175*agesno/AgeMax 309 376 C +... Impurities: Col de Porte Parameter. 310 377 311 312 ! Zenith Angle Correction (Segal et al., 1991, JAS 48, p.1025) 313 ! ----------------------- (Wiscombe & Warren, dec1980, JAS , p.2723) 314 ! (Warren, 1982, RG , p. 81) 315 ! (Vignon, PhD Thesis, pp 150, conditions at Dome C) 316 ! ------------------------------------------------- 317 318 319 dalbed = 0.0 320 321 if (iflag_albzenith .GE. 0) then 322 csegal = max(czemax ,coszSV(ikl)) 323 c #cz dalbeS = ((bsegal+unun)/(unun+2.0*bsegal*csegal) 324 c #cz. - unun )*0.32 325 c #cz. / bsegal 326 c #cz dalbeS = max(dalbeS,zero) 327 c #cz dalbed = dalbeS * min(1,isnoSV(ikl)) 328 329 dalbeW =(0.64 - csegal )*0.0625 ! Warren 1982, RevGeo, fig.12b 330 ! 0.0625 = 5% * 1/0.8, p.81 331 ! 0.64 = cos(50) 332 dalbed = dalbeW * min(1,isnoSV(ikl)) 333 334 335 ! Vignon PhD thesis, Dome C conditions 336 337 if (iflag_albzenith .EQ. 1) then 338 thetazs0=-bbp/(2.0*aap) 339 alb0=(bbp**2)/4./aap-(bbp**2)/2./aap+ccp 340 thetazs=max(acos(coszSV(ikl))/pi*180.0,thetazs0) ! in degrees 341 342 343 dalbeW = aap*(thetazs**2)+bbp*thetazs+ccp-alb0 344 dalbed = dalbeW * min(1,isnoSV(ikl)) 345 end if 346 347 348 end if 378 349 379 350 380 C +--Elsewhere Integrated Snow/Ice Albedo … … 368 398 alb3sv(ikl) = albssv(ikl) +(a_SII3-albssv(ikl))*SIcenH 369 399 alb3sv(ikl) = min(alb3sv(ikl) ,a_SII3) 370 400 371 401 albisv(ikl) = albssv(ikl) +(albSII-albssv(ikl))*SIcenH 372 402 albisv(ikl) = min(albisv(ikl) ,albSII) 373 403 404 DO i=1,6 405 alb6sv(ikl,i) = albssv(ikl) +(a_SII6(i)-albssv(ikl))*SIcenH 406 alb6sv(ikl,i) = min(alb6sv(ikl,i) ,a_SII6(i)) 407 ENDDO 408 374 409 375 410 C +--Integrated Snow/Ice/Soil Albedo: Clouds Correction! Greuell & all., 1994 … … 382 417 alb3sv(ikl) = alb3sv(ikl) + 0.05 *(cld_SV(ikl)-0.5)*SIcenH 383 418 . + dalbed * (1.-cld_SV(ikl)) 419 alb6sv(ikl,:) =alb6sv(ikl,:)+0.05 *(cld_SV(ikl)-0.5)*SIcenH 420 . + dalbed * (1.-cld_SV(ikl)) 384 421 albisv(ikl) = albisv(ikl) + 0.05 *(cld_SV(ikl)-0.5)*SIcenH 385 422 . + dalbed * (1.-cld_SV(ikl)) … … 397 434 alb3sv(ikl) = alb3sv(ikl) - 1.0/3.0 ! 33 % 398 435 . * (albedo_old-albisv(ikl)) / So3dSV 399 400 401 C +--Integrated Snow/Ice/Soil Albedo: Maximum albedo = 95% 436 alb6sv(ikl,1:3) = alb6sv(ikl,1:3) - 1.0/6.0 ! 16 % 437 . * (albedo_old-albisv(ikl)) / (So1dSV/3) 438 alb6sv(ikl,4:6) = alb6sv(ikl,4:6) - 1.0/6.0 ! 16 % 439 . * (albedo_old-albisv(ikl)) / (So2dSV/3) 440 441 442 C +--Integrated Snow/Ice/Soil Albedo: Maximum albedo = 95% 402 443 C + ----------------------------------------------------- 403 444 … … 410 451 alb3sv(ikl) = alb3sv(ikl) - 1.0/3.0 ! 33 % 411 452 . * (albedo_old-albisv(ikl)) / So3dSV 453 alb6sv(ikl,1:3) = alb6sv(ikl,1:3) - 1.0/6.0 ! 16 % 454 . * (albedo_old-albisv(ikl)) / (So1dSV/3) 455 alb6sv(ikl,4:6) = alb6sv(ikl,4:6) - 1.0/6.0 ! 16 % 456 . * (albedo_old-albisv(ikl)) / (So2dSV/3) 412 457 413 458 … … 436 481 alb2sv(ikl) = min(max(zero,alb2sv(ikl)),albmax) 437 482 alb3sv(ikl) = min(max(zero,alb3sv(ikl)),albmax) 438 483 484 DO i=1,6 485 alb6sv(ikl,i) = min(max(zero,alb6sv(ikl,i)),albmax) 486 ENDDO 439 487 END DO 440 488 … … 519 567 520 568 return 569 570 521 571 end 572 573 574 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 575 SUBROUTINE albedo_kokhanovsky(lambdamin,lambdamax, 576 . cossza,dopt,albint) 577 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 578 ! Authors: Hajar El Habchi El Fenniri, Etienne Vignon, Cecile Agosta 579 ! Ghislain Picard 580 ! Routine that calculates the integrated snow spectral albedo between 581 ! lambdamin and lambdamax following Kokhanisky and Zege 2004, 582 ! Scattering optics of snow, Applied Optics, Vol 43, No7 583 ! Code inspired from the snowoptics package of Ghislain Picard: 584 ! https://github.com/ghislainp/snowoptics 585 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 586 587 588 USE VARphy 589 590 IMPLICIT NONE 591 592 ! Inputs 593 !-------- 594 REAL lambdamin ! minimum wavelength for integration [m] 595 REAL lambdamax ! maximum wavelength for integration [m] 596 REAL cossza ! solar zenith angle cosinus 597 REAL dopt ! optical diameter [m] 598 599 !Outputs 600 !------- 601 REAL albint 602 603 ! Local Variables 604 !----------------- 605 606 REAL ropt,cosalb,norm,Pas 607 REAL SSA,alpha,gamm,R,cos30,alb30 608 INTEGER i 609 610 611 REAL B_amp ! amplification factor 612 PARAMETER (B_amp=1.6) 613 614 REAL g_asy ! asymetry factor 615 PARAMETER (g_asy=0.845) 616 617 INTEGER nlambda ! length of wavelength vector 618 PARAMETER(nlambda=200) 619 620 REAL lmin 621 PARAMETER(lmin=185.0E-9) 622 623 REAL lmax 624 PARAMETER(lmax=4000.0E-9) 625 626 REAL albmax 627 PARAMETER(albmax=0.99) 628 629 REAL wavelengths(nlambda) 630 REAL ni(nlambda) 631 632 DATA wavelengths / 1.85000000e-07, 2.04170854e-07, 633 . 2.23341709e-07, 2.42512563e-07, 634 . 2.61683417e-07, 2.80854271e-07, 3.00025126e-07, 3.19195980e-07, 635 . 3.38366834e-07, 3.57537688e-07, 3.76708543e-07, 3.95879397e-07, 636 . 4.15050251e-07, 4.34221106e-07, 4.53391960e-07, 4.72562814e-07, 637 . 4.91733668e-07, 5.10904523e-07, 5.30075377e-07, 5.49246231e-07, 638 . 5.68417085e-07, 5.87587940e-07, 6.06758794e-07, 6.25929648e-07, 639 . 6.45100503e-07, 6.64271357e-07, 6.83442211e-07, 7.02613065e-07, 640 . 7.21783920e-07, 7.40954774e-07, 7.60125628e-07, 7.79296482e-07, 641 . 7.98467337e-07, 8.17638191e-07, 8.36809045e-07, 8.55979899e-07, 642 . 8.75150754e-07, 8.94321608e-07, 9.13492462e-07, 9.32663317e-07, 643 . 9.51834171e-07, 9.71005025e-07, 9.90175879e-07, 1.00934673e-06, 644 . 1.02851759e-06, 1.04768844e-06, 1.06685930e-06, 1.08603015e-06, 645 . 1.10520101e-06, 1.12437186e-06, 1.14354271e-06, 1.16271357e-06, 646 . 1.18188442e-06, 1.20105528e-06, 1.22022613e-06, 1.23939698e-06, 647 . 1.25856784e-06, 1.27773869e-06, 1.29690955e-06, 1.31608040e-06, 648 . 1.33525126e-06, 1.35442211e-06, 1.37359296e-06, 1.39276382e-06, 649 . 1.41193467e-06, 1.43110553e-06, 1.45027638e-06, 1.46944724e-06, 650 . 1.48861809e-06, 1.50778894e-06, 1.52695980e-06, 1.54613065e-06, 651 . 1.56530151e-06, 1.58447236e-06, 1.60364322e-06, 1.62281407e-06, 652 . 1.64198492e-06, 1.66115578e-06, 1.68032663e-06, 1.69949749e-06, 653 . 1.71866834e-06, 1.73783920e-06, 1.75701005e-06, 1.77618090e-06, 654 . 1.79535176e-06, 1.81452261e-06, 1.83369347e-06, 1.85286432e-06, 655 . 1.87203518e-06, 1.89120603e-06, 1.91037688e-06, 1.92954774e-06, 656 . 1.94871859e-06, 1.96788945e-06, 1.98706030e-06, 2.00623116e-06, 657 . 2.02540201e-06, 2.04457286e-06, 2.06374372e-06, 2.08291457e-06, 658 . 2.10208543e-06, 2.12125628e-06, 2.14042714e-06, 2.15959799e-06, 659 . 2.17876884e-06, 2.19793970e-06, 2.21711055e-06, 2.23628141e-06, 660 . 2.25545226e-06, 2.27462312e-06, 2.29379397e-06, 2.31296482e-06, 661 . 2.33213568e-06, 2.35130653e-06, 2.37047739e-06, 2.38964824e-06, 662 . 2.40881910e-06, 2.42798995e-06, 2.44716080e-06, 2.46633166e-06, 663 . 2.48550251e-06, 2.50467337e-06, 2.52384422e-06, 2.54301508e-06, 664 . 2.56218593e-06, 2.58135678e-06, 2.60052764e-06, 2.61969849e-06, 665 . 2.63886935e-06, 2.65804020e-06, 2.67721106e-06, 2.69638191e-06, 666 . 2.71555276e-06, 2.73472362e-06, 2.75389447e-06, 2.77306533e-06, 667 . 2.79223618e-06, 2.81140704e-06, 2.83057789e-06, 2.84974874e-06, 668 . 2.86891960e-06, 2.88809045e-06, 2.90726131e-06, 2.92643216e-06, 669 . 2.94560302e-06, 2.96477387e-06, 2.98394472e-06, 3.00311558e-06, 670 . 3.02228643e-06, 3.04145729e-06, 3.06062814e-06, 3.07979899e-06, 671 . 3.09896985e-06, 3.11814070e-06, 3.13731156e-06, 3.15648241e-06, 672 . 3.17565327e-06, 3.19482412e-06, 3.21399497e-06, 3.23316583e-06, 673 . 3.25233668e-06, 3.27150754e-06, 3.29067839e-06, 3.30984925e-06, 674 . 3.32902010e-06, 3.34819095e-06, 3.36736181e-06, 3.38653266e-06, 675 . 3.40570352e-06, 3.42487437e-06, 3.44404523e-06, 3.46321608e-06, 676 . 3.48238693e-06, 3.50155779e-06, 3.52072864e-06, 3.53989950e-06, 677 . 3.55907035e-06, 3.57824121e-06, 3.59741206e-06, 3.61658291e-06, 678 . 3.63575377e-06, 3.65492462e-06, 3.67409548e-06, 3.69326633e-06, 679 . 3.71243719e-06, 3.73160804e-06, 3.75077889e-06, 3.76994975e-06, 680 . 3.78912060e-06, 3.80829146e-06, 3.82746231e-06, 3.84663317e-06, 681 . 3.86580402e-06, 3.88497487e-06, 3.90414573e-06, 3.92331658e-06, 682 . 3.94248744e-06, 3.96165829e-06, 3.98082915e-06, 4.00000000e-06/ 683 684 685 DATA ni /7.74508407e-10, 7.74508407e-10, 686 . 7.74508407e-10, 7.74508407e-10, 687 . 7.74508407e-10, 7.74508407e-10, 7.74508407e-10, 7.74508407e-10, 688 . 6.98381122e-10, 6.23170274e-10, 5.97655992e-10, 5.84106004e-10, 689 . 5.44327597e-10, 5.71923510e-10, 6.59723827e-10, 8.05183870e-10, 690 . 1.03110161e-09, 1.36680386e-09, 1.85161253e-09, 2.56487751e-09, 691 . 3.56462855e-09, 4.89450926e-09, 6.49252022e-09, 9.62029335e-09, 692 . 1.32335015e-08, 1.75502184e-08, 2.19240625e-08, 3.03304156e-08, 693 . 4.07715972e-08, 5.00414911e-08, 7.09722331e-08, 1.00773751e-07, 694 . 1.31427409e-07, 1.42289041e-07, 1.49066787e-07, 2.01558515e-07, 695 . 2.99106105e-07, 4.03902086e-07, 4.54292169e-07, 5.21906983e-07, 696 . 6.27643362e-07, 9.43955678e-07, 1.33464494e-06, 1.97278315e-06, 697 . 2.31801329e-06, 2.20584676e-06, 1.85568138e-06, 1.73395193e-06, 698 . 1.73101406e-06, 1.91333936e-06, 2.26413019e-06, 3.23959718e-06, 699 . 4.94316963e-06, 6.89378896e-06, 1.02237444e-05, 1.21439656e-05, 700 . 1.31567585e-05, 1.33448288e-05, 1.32000000e-05, 1.31608040e-05, 701 . 1.33048369e-05, 1.40321464e-05, 1.51526244e-05, 1.80342858e-05, 702 . 3.82875736e-05, 1.07325259e-04, 2.11961637e-04, 3.82008054e-04, 703 . 5.30897470e-04, 5.29244735e-04, 4.90876605e-04, 4.33905427e-04, 704 . 3.77795349e-04, 3.17633099e-04, 2.81078564e-04, 2.57579485e-04, 705 . 2.42203100e-04, 2.23789060e-04, 2.04306870e-04, 1.87909255e-04, 706 . 1.73117146e-04, 1.61533186e-04, 1.53420328e-04, 1.47578033e-04, 707 . 1.42334776e-04, 1.35691466e-04, 1.30495414e-04, 1.36065123e-04, 708 . 1.70928821e-04, 2.66389730e-04, 4.80957955e-04, 8.25041961e-04, 709 . 1.21654792e-03, 1.50232875e-03, 1.62316078e-03, 1.61649750e-03, 710 . 1.53736801e-03, 1.42343711e-03, 1.24459117e-03, 1.02388611e-03, 711 . 7.89112523e-04, 5.97204264e-04, 4.57152413e-04, 3.62341259e-04, 712 . 2.99128332e-04, 2.57035569e-04, 2.26992203e-04, 2.07110355e-04, 713 . 2.05835688e-04, 2.25108810e-04, 2.64262893e-04, 3.23594011e-04, 714 . 3.93061117e-04, 4.62789970e-04, 5.19664416e-04, 5.59739628e-04, 715 . 5.93476084e-04, 6.22797885e-04, 6.57484833e-04, 6.92849600e-04, 716 . 7.26584901e-04, 7.56604648e-04, 7.68009488e-04, 7.65579073e-04, 717 . 7.50526164e-04, 7.39809972e-04, 7.55622847e-04, 8.05099514e-04, 718 . 9.67279246e-04, 1.16281559e-03, 1.42570247e-03, 2.04986585e-03, 719 . 2.93971170e-03, 4.49827711e-03, 7.32537532e-03, 1.18889734e-02, 720 . 1.85851805e-02, 2.86242532e-02, 4.34131035e-02, 6.37828307e-02, 721 . 9.24145850e-02, 1.35547945e-01, 1.94143245e-01, 2.54542814e-01, 722 . 3.02282024e-01, 3.42214181e-01, 3.85475065e-01, 4.38000000e-01, 723 . 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 724 . 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 725 . 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 726 . 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 727 . 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 728 . 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 729 . 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 730 . 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 731 . 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 732 . 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 733 . 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 734 . 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 735 . 4.38000000e-01, 4.38000000e-01, 4.38000000e-01, 4.38000000e-01/ 736 737 738 Pas =(lmax-lmin)/nlambda 739 ropt = dopt/2.0 740 SSA = 3.0/(rhoIce*ropt) 741 cos30 = cos(30.0/180.0*pi) 742 743 744 albint=0. 745 norm=0. 746 747 DO i = 1,nlambda 748 gamm = 4.0 * pi * ni(i) / wavelengths(i) 749 cosalb = 2.0 / (SSA * rhoice) * B_amp * gamm 750 alpha = 16. / 3 * cosalb / (1.0 - g_asy) 751 R = exp(-(alpha**0.5) * 3.0 / 7.0 * (1.0 + 2.0 * cossza)) 752 alb30 = exp(-(alpha**0.5)* 3.0 / 7.0 * (1.0 + 20 * cos30)) 753 754 IF ((wavelengths(i).GE.lambdamin).AND. 755 . (wavelengths(i).LT.lambdamax)) THEN 756 albint=albint+R*Pas ! rectangle integration -> can be improved with trapezintegration 757 norm=norm+Pas 758 ENDIF 759 760 END DO 761 762 albint=max(0.,min(albint/max(norm,1E-10),albmax)) 763 764 END 765
Note: See TracChangeset
for help on using the changeset viewer.