Changeset 2690 for LMDZ5/trunk/libf/phylmd/phytrac_mod.F90
- Timestamp:
- Oct 30, 2016, 4:35:25 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/phytrac_mod.F90
r2637 r2690 97 97 USE tracreprobus_mod 98 98 USE indice_sol_mod 99 100 99 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_root 101 100 USE print_control_mod, ONLY: lunout 102 101 USE aero_mod, ONLY : naero_grp 102 103 #ifdef CPP_StratAer 104 USE traccoag_mod 105 USE phys_local_var_mod, ONLY: mdw, sulf_dep_dry, sulf_dep_wet 106 USE infotrac, ONLY: nbtr_sulgas, id_SO2_strat, id_H2SO4_strat 107 USE aerophys 108 #endif 103 109 104 110 IMPLICIT NONE … … 208 214 !-------------- 209 215 ! 210 !211 216 REAL,DIMENSION(:),INTENT(IN) :: cdragh ! (klon) coeff drag pour T et Q 212 217 REAL,DIMENSION(:,:),INTENT(IN) :: coefh ! (klon,klev) coeff melange CL (m**2/s) … … 215 220 REAL,DIMENSION(:),INTENT(IN) :: yu1 ! (klon) vents au premier niveau 216 221 REAL,DIMENSION(:),INTENT(IN) :: yv1 ! (klon) vents au premier niveau 217 218 222 ! 219 223 !Lessivage: … … 238 242 REAL,DIMENSION(klon,nbsrf),INTENT(IN) :: pctsrf ! Pourcentage de sol (nature du sol) 239 243 240 244 #ifdef CPP_StratAer 245 REAL,DIMENSION(klon) :: v_dep_dry !dry deposition velocity of stratospheric sulfate in m/s 246 #endif 241 247 ! Output argument 242 248 !---------------- 243 249 REAL,DIMENSION(klon,klev,nbtr),INTENT(INOUT) :: tr_seri ! Concentration Traceur [U/KgA] 244 250 REAL,DIMENSION(klon,klev) :: sourceBE 251 245 252 !======================================================================================= 246 253 ! -- LOCAL VARIABLES -- … … 267 274 INTEGER :: itau_w ! pas de temps ecriture = nstep + itau_phy 268 275 LOGICAL,PARAMETER :: ok_sync=.TRUE. 269 270 276 ! 271 277 ! Nature du traceur … … 456 462 CASE('repr') 457 463 source(:,:)=0. 464 #ifdef CPP_StratAer 465 CASE('coag') 466 source(:,:)=0. 467 DO it= 1, nbtr_sulgas 468 aerosol(it)=.FALSE. 469 IF (it==id_H2SO4_strat) aerosol(it)=.TRUE. 470 ENDDO 471 DO it= nbtr_sulgas+1, nbtr 472 aerosol(it)=.TRUE. 473 ENDDO 474 #endif 458 475 END SELECT 459 476 … … 504 521 !--for now we do not scavenge in cvltr 505 522 flag_cvltr(it)=.false. 523 524 #ifdef CPP_StratAer 525 CASE('coag') 526 IF (convscav.and.aerosol(it)) THEN 527 flag_cvltr(it)=.true. 528 ccntrAA(it) =ccntrAA_in 529 ccntrENV(it)=ccntrENV_in 530 coefcoli(it)=coefcoli_in 531 ELSE 532 flag_cvltr(it)=.false. 533 ENDIF 534 #endif 535 506 536 END SELECT 507 537 ENDDO … … 572 602 ! Appel fait en fin de phytrac pour avoir les emissions modifiees par 573 603 ! la couche limite et la convection avant le calcul de la chimie 604 574 605 CASE('repr') 575 606 ! -- CHIMIE REPROBUS -- 576 577 607 CALL tracreprobus(pdtphys, gmtime, debutphy, julien, & 578 608 presnivs, xlat, xlon, pphis, pphi, & … … 580 610 tr_seri) 581 611 612 #ifdef CPP_StratAer 613 CASE('coag') 614 ! --STRATOSPHERIC AER IN THE STRAT -- 615 CALL traccoag(pdtphys, gmtime, debutphy, julien, & 616 presnivs, xlat, xlon, pphis, pphi, & 617 t_seri, pplay, paprs, sh, rh , & 618 tr_seri) 619 #endif 620 582 621 END SELECT 583 622 !====================================================================== … … 591 630 IF (iflag_con.LT.2) THEN 592 631 !--pas de transport convectif 593 594 632 d_tr_cv(:,:,it)=0. 633 595 634 ELSE IF (iflag_con.EQ.2) THEN 596 635 !--ancien transport convectif de Tiedtke … … 648 687 649 688 END DO ! nbtr 689 690 #ifdef CPP_StratAer 691 IF (type_trac=='coag') THEN 692 ! initialize wet deposition flux of sulfur 693 sulf_dep_wet(:)=0.0 694 ! compute wet deposition flux of sulfur (sum over gases and particles) 695 ! and convert to kg(S)/m2/s 696 DO i = 1, klon 697 DO k = 1, klev 698 DO it = 1, nbtr 699 !do not include SO2 because most of it comes trom the troposphere 700 IF (it==id_H2SO4_strat) THEN 701 sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_cv(i,k,it)*(mSatom/mH2SO4mol) & 702 & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys 703 ELSEIF (it.GT.nbtr_sulgas) THEN 704 sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_cv(i,k,it)*(mSatom/mH2SO4mol) & 705 & *dens_aer_dry*4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3 & 706 & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys 707 ENDIF 708 ENDDO 709 ENDDO 710 ENDDO 711 ENDIF 712 #endif 650 713 651 714 END IF ! convection … … 692 755 ! Injection during BL mixing 693 756 ! 757 #ifdef CPP_StratAer 758 IF (type_trac=='coag') THEN 759 760 ! initialize dry deposition flux of sulfur 761 sulf_dep_dry(:)=0.0 762 763 ! compute dry deposition velocity as function of surface type (numbers 764 ! from IPSL note 23, 2002) 765 v_dep_dry(:) = pctsrf(:,is_ter) * 2.5e-3 & 766 & + pctsrf(:,is_oce) * 0.5e-3 & 767 & + pctsrf(:,is_lic) * 2.5e-3 & 768 & + pctsrf(:,is_sic) * 2.5e-3 769 770 ! compute surface dry deposition flux 771 zrho(:,1)=pplay(:,1)/t_seri(:,1)/RD 772 773 DO it=1, nbtr 774 source(:,it) = - v_dep_dry(:) * tr_seri(:,1,it) * zrho(:,1) 775 ENDDO 776 777 ENDIF 778 #endif 779 694 780 DO it=1, nbtr 695 781 ! … … 703 789 tr_seri(:,:,it)=tr_seri(:,:,it)+d_tr_cl(:,:,it) 704 790 ! 705 END IF 791 #ifdef CPP_StratAer 792 IF (type_trac=='coag') THEN 793 ! compute dry deposition flux of sulfur (sum over gases and particles) 794 IF (it==id_H2SO4_strat) THEN 795 sulf_dep_dry(:)=sulf_dep_dry(:)-source(:,it)*(mSatom/mH2SO4mol) 796 ELSEIF (it.GT.nbtr_sulgas) THEN 797 sulf_dep_dry(:)=sulf_dep_dry(:)-source(:,it)*(mSatom/mH2SO4mol)*dens_aer_dry & 798 & *4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3 799 ENDIF 800 ENDIF 801 #endif 802 ! 803 ENDIF 706 804 ! 707 END 805 ENDDO 708 806 ! 709 807 ELSE IF (iflag_vdf_trac==0) THEN … … 720 818 ! 721 819 ! Nothing happens 722 !723 820 d_tr_cl=0. 724 821 ! … … 772 869 773 870 END DO !tr 871 872 #ifdef CPP_StratAer 873 IF (type_trac=='coag') THEN 874 ! compute wet deposition flux of sulfur (sum over gases and 875 ! particles) and convert to kg(S)/m2/s 876 ! adding contribution of d_tr_ls to d_tr_cv (above) 877 DO i = 1, klon 878 DO k = 1, klev 879 DO it = 1, nbtr 880 IF (it==id_H2SO4_strat) THEN 881 sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_ls(i,k,it)*(mSatom/mH2SO4mol) & 882 & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys 883 ELSEIF (it.GT.nbtr_sulgas) THEN 884 sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_ls(i,k,it)*(mSatom/mH2SO4mol) & 885 & *dens_aer_dry*4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3 & 886 & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys 887 ENDIF 888 ENDDO 889 ENDDO 890 ENDDO 891 ENDIF 892 #endif 774 893 775 894 ELSE IF (iflag_lscav .EQ. 2) THEN ! frac_impa, frac_nucl
Note: See TracChangeset
for help on using the changeset viewer.