Changeset 609 for trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2
- Timestamp:
- Mar 31, 2012, 3:04:57 PM (13 years ago)
- Location:
- trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd_new_storm/libf/phymars
- Files:
-
- 5 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd_new_storm/libf/phymars/STORM_JULIEN_LAST/aeropacity_tachemobile_z.F
r310 r609 1 1 SUBROUTINE aeropacity(ngrid,nlayer,nq,zday,pplay,pplev,ls, 2 2 & pq,ccn,tauref,tau,aerosol,reffrad,nueffrad, 3 & QREFvis3d,QREFir3d,omegaREFvis3d,omegaREFir3d, 3 & QVISsQREF3d,omegaVIS3d,gVIS3d, 4 & QIRsQREF3d,omegaIR3d,gIR3d, 5 & QREFvis3d,QREFir3d, 6 & omegaREFvis3d,omegaREFir3d, 4 7 & zdqnorm,dsodust,pt) 5 8 … … 80 83 REAL reffrad(ngrid,nlayer,naerkind) 81 84 REAL nueffrad(ngrid,nlayer,naerkind) 82 REAL QREFvis3d(ngridmx,nlayermx,naerkind)83 REAL QREFir3d(ngridmx,nlayermx,naerkind)84 REAL omegaREFvis3d(ngridmx,nlayermx,naerkind)85 REAL omegaREFir3d(ngridmx,nlayermx,naerkind)85 ! REAL QREFvis3d(ngridmx,nlayermx,naerkind) 86 ! REAL QREFir3d(ngridmx,nlayermx,naerkind) 87 ! REAL omegaREFvis3d(ngridmx,nlayermx,naerkind) 88 ! REAL omegaREFir3d(ngridmx,nlayermx,naerkind) 86 89 REAL zdqnorm(ngridmx,nlayermx,2) !mass mixing ratio perturbation due to the dust storm. Output for meso_physiq.F 87 90 REAL pt(ngrid,nlayer) !input: temperature. usefull to compute precisely the l_top parameter 91 92 c Aerosol optical properties 93 REAL :: QVISsQREF3d(ngridmx,nlayermx,nsun,naerkind) 94 REAL :: omegaVIS3d(ngridmx,nlayermx,nsun,naerkind) 95 REAL :: gVIS3d(ngridmx,nlayermx,nsun,naerkind) 96 97 REAL :: QIRsQREF3d(ngridmx,nlayermx,nir,naerkind) 98 REAL :: omegaIR3d(ngridmx,nlayermx,nir,naerkind) 99 REAL :: gIR3d(ngridmx,nlayermx,nir,naerkind) 100 101 REAL :: QREFvis3d(ngridmx,nlayermx,naerkind) 102 REAL :: QREFir3d(ngridmx,nlayermx,naerkind) 103 104 REAL :: omegaREFvis3d(ngridmx,nlayermx,naerkind) 105 REAL :: omegaREFir3d(ngridmx,nlayermx,naerkind) 88 106 89 107 … … 142 160 logical localstorm ! =true to create a local dust storm 143 161 real taulocref,ztoploc,radloc,lonloc,latloc !local dust storm parameters 162 real reffstorm, yeah 144 163 REAL ray(ngridmx) !distance from dust storm center 145 164 REAL tauuser(ngridmx) !opacity perturbation due to dust storm … … 488 507 489 508 IF (firstcall) THEN 490 WRITE(*,*) " RENORMALISATION !!! "491 509 c-------------------------------------------------- 492 510 c Parameters of the opacity perturbation … … 494 512 495 513 iaer=1 !!!! PROVISOIRE !!!! 496 taulocref = 4.25 !10 ! ref optical depth of the local dust storm 497 ztoploc = 10 ! target pseudo-altitude of local storm (km) 498 radloc = 0.5 ! radius of dust storm (degree) 499 lonloc = 25. ! center longitude of storm (deg) 500 latloc = -3. ! center latitude of storm (deg) 514 515 write(*,*) "Add a local storm ?" 516 localstorm=.true. ! default value 517 call getin("localstorm",localstorm) 518 write(*,*) " localstorm = ",localstorm 519 520 IF (localstorm) THEN 521 WRITE(*,*) "********************" 522 WRITE(*,*) "ADDING A LOCAL STORM" 523 WRITE(*,*) "********************" 524 525 !!! DEFAULT CASE 526 !4.25 ! ref optical depth of the local dust storm 527 !10 ! target pseudo-altitude of local storm (km) 528 !0.5 ! radius of dust storm (degree) (actual radius is twice this) 529 !25. ! center longitude of storm (deg) 530 !-2.5 ! center latitude of storm (deg) 531 !0.0 ! reff in storm (microns) 0. for background 532 533 write(*,*) "ref opacity of local dust storm" 534 taulocref = 4.25 ! default value 535 call getin("taulocref",taulocref) 536 write(*,*) " taulocref = ",taulocref 537 538 write(*,*) "target altitude of local storm (km)" 539 ztoploc = 10.0 ! default value 540 call getin("ztoploc",ztoploc) 541 write(*,*) " ztoploc = ",ztoploc 542 543 write(*,*) "radius of dust storm (degree)" 544 radloc = 0.5 ! default value 545 call getin("radloc",radloc) 546 write(*,*) " radloc = ",radloc 547 548 write(*,*) "center longitude of storm (deg)" 549 lonloc = 25.0 ! default value 550 call getin("lonloc",lonloc) 551 write(*,*) " lonloc = ",lonloc 552 553 write(*,*) "center latitude of storm (deg)" 554 latloc = -2.5 ! default value 555 call getin("latloc",latloc) 556 write(*,*) " latloc = ",latloc 557 558 write(*,*) "reff storm (mic) 0. for background" 559 reffstorm = 0.0 ! default value 560 call getin("reffstorm",reffstorm) 561 write(*,*) " reffstorm = ",reffstorm 562 ELSE 563 write(*,*) 'I need localstorm = T' 564 STOP 565 ENDIF 501 566 502 567 DO ig=1,ngrid 568 503 569 504 570 c--------------------------------------- … … 509 575 & (long(ig)*180./pi -lonloc)**2) 510 576 577 !! transition factor for storm 578 !! increase factor ray diff for steepness 579 yeah = (TANH(2.+(radloc-ray(ig))*10.)+1.)/2. 580 511 581 c------------------------------------------------- 512 582 c Tau's new map: 513 583 c------------------------------------------ 514 584 515 tauuser(ig)=max(tauref(ig) * pplev(ig,1) / 700.E0 , taulocref516 & * (TANH(2.+(radloc-ray(ig))*2)+1.)/2.)585 tauuser(ig)=max(tauref(ig) * pplev(ig,1) / 700.E0 , 586 & taulocref * yeah) 517 587 518 588 c--------------------------------------------------------- … … 529 599 530 600 ENDDO 531 ENDDO 601 602 c--------------------------------------------------------- 603 c change reffrad if ever needed 604 c---------------------------------------------------------- 605 606 IF (reffstorm .gt. 0.) THEN 607 DO l=1,nlayer 608 IF (l .lt. l_top+1) THEN 609 610 WRITE(*,*) "OLD REFFRAD", reffrad(ig,l,iaer) 611 612 reffrad(ig,l,iaer) = max( reffrad(ig,l,iaer), reffstorm 613 & * 1.e-6 * yeah ) 614 615 WRITE(*,*) "NEW REFFRAD", reffrad(ig,l,iaer), reffstorm 616 & * 1.e-6 * yeah 617 618 ENDIF 619 ENDDO 620 ENDIF 621 622 c--------------------------------------------------------------------------- 623 ENDDO !! boucle sur ngridmx 624 c--------------------------------------------------------------------------- 625 626 !!! ReComputing 3D scattering parameters: if needed. 627 IF (reffstorm .gt. 0.) THEN 628 CALL aeroptproperties(ngrid,nlayer,reffrad,nueffrad, 629 & QVISsQREF3d,omegaVIS3d,gVIS3d, 630 & QIRsQREF3d,omegaIR3d,gIR3d, 631 & QREFvis3d,QREFir3d, 632 & omegaREFvis3d,omegaREFir3d) 633 ENDIF 532 634 533 635 c---------------------------------------------------------------------------- 534 636 c compute int_factor 535 637 c--------------------------------------------------------------------------- 536 537 638 538 639 DO ig=1,ngrid -
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd_new_storm/libf/phymars/STORM_JULIEN_LAST/callradite_tachemobile_z.F
r308 r609 391 391 CALL aeropacity(ngrid,nlayer,nq,zday,pplay,pplev,ls, 392 392 & pq,ccn,tauref,tau,aerosol,reffrad,nueffrad, 393 & QREFvis3d,QREFir3d,omegaREFvis3d,omegaREFir3d, 393 & QVISsQREF3d,omegaVIS3d,gVIS3d, 394 & QIRsQREF3d,omegaIR3d,gIR3d, 395 & QREFvis3d,QREFir3d, 396 & omegaREFvis3d,omegaREFir3d, 394 397 & zdqnorm,dsodust,pt) 395 398 -
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd_new_storm/libf/phymars/callsedim.F
r308 r609 1 link ../../../mars_lmd_new/libf/phymars/callsedim.F1 link callsedim.F.modified -
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd_new_storm/libf/phymars/physiq.F
r308 r609 296 296 SAVE ccn !! in case iradia != 1 297 297 real rdust(ngridmx,nlayermx) ! dust geometric mean radius (m) 298 real reffdust(ngridmx,nlayermx) ! effective radius (m) 298 299 real qtot1,qtot2 ! total aerosol mass 299 300 integer igmin, lmin … … 1046 1047 ENDDO 1047 1048 ENDDO 1049 1050 DO ig=1,ngrid 1051 zdqssed_diag(ig)= zdqssed(ig,igcm_dust_mass) 1052 ENDDO 1053 1048 1054 END IF ! of IF (sedimentation) 1049 1055 … … 1456 1462 . * mugaz / mmol(igcm_h2o_ice) 1457 1463 ENDIF 1464 1458 1465 !! Dust quantity integration along the vertical axe 1459 1466 dustot(:)=0 1467 reffdust(:,:)=0 1460 1468 do ig=1,ngrid 1461 1469 do l=1,nlayermx … … 1463 1471 & zq(ig,l,igcm_dust_mass) 1464 1472 & * (pplev(ig,l) - pplev(ig,l+1)) / g 1473 reffdust(ig,l) = rdust(ig,l)*ref_r0 1465 1474 enddo 1466 1475 enddo
Note: See TracChangeset
for help on using the changeset viewer.