Changeset 2720 for LMDZ5/branches/testing/libf/phylmd/phytrac_mod.F90
- Timestamp:
- Nov 30, 2016, 1:28:41 PM (8 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 2665-2668,2670-2674,2677-2681,2683-2684,2686,2690-2719
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/libf/phylmd/phytrac_mod.F90
r2641 r2720 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 … … 369 375 END DO 370 376 377 DO it=1, nbtr 378 DO i=1,klon 379 d_tr_dry(i,it)=0. 380 flux_tr_dry(i,it)=0. 381 END DO 382 END DO 383 371 384 DO k = 1, klev 372 385 DO i = 1, klon … … 456 469 CASE('repr') 457 470 source(:,:)=0. 471 #ifdef CPP_StratAer 472 CASE('coag') 473 source(:,:)=0. 474 DO it= 1, nbtr_sulgas 475 aerosol(it)=.FALSE. 476 IF (it==id_H2SO4_strat) aerosol(it)=.TRUE. 477 ENDDO 478 DO it= nbtr_sulgas+1, nbtr 479 aerosol(it)=.TRUE. 480 ENDDO 481 #endif 458 482 END SELECT 459 483 … … 504 528 !--for now we do not scavenge in cvltr 505 529 flag_cvltr(it)=.false. 530 531 #ifdef CPP_StratAer 532 CASE('coag') 533 IF (convscav.and.aerosol(it)) THEN 534 flag_cvltr(it)=.true. 535 ccntrAA(it) =ccntrAA_in 536 ccntrENV(it)=ccntrENV_in 537 coefcoli(it)=coefcoli_in 538 ELSE 539 flag_cvltr(it)=.false. 540 ENDIF 541 #endif 542 506 543 END SELECT 507 544 ENDDO … … 572 609 ! Appel fait en fin de phytrac pour avoir les emissions modifiees par 573 610 ! la couche limite et la convection avant le calcul de la chimie 611 574 612 CASE('repr') 575 613 ! -- CHIMIE REPROBUS -- 576 577 614 CALL tracreprobus(pdtphys, gmtime, debutphy, julien, & 578 615 presnivs, xlat, xlon, pphis, pphi, & … … 580 617 tr_seri) 581 618 619 #ifdef CPP_StratAer 620 CASE('coag') 621 ! --STRATOSPHERIC AER IN THE STRAT -- 622 CALL traccoag(pdtphys, gmtime, debutphy, julien, & 623 presnivs, xlat, xlon, pphis, pphi, & 624 t_seri, pplay, paprs, sh, rh , & 625 tr_seri) 626 #endif 627 582 628 END SELECT 583 629 !====================================================================== … … 591 637 IF (iflag_con.LT.2) THEN 592 638 !--pas de transport convectif 593 594 639 d_tr_cv(:,:,it)=0. 640 595 641 ELSE IF (iflag_con.EQ.2) THEN 596 642 !--ancien transport convectif de Tiedtke … … 648 694 649 695 END DO ! nbtr 696 697 #ifdef CPP_StratAer 698 IF (type_trac=='coag') THEN 699 ! initialize wet deposition flux of sulfur 700 sulf_dep_wet(:)=0.0 701 ! compute wet deposition flux of sulfur (sum over gases and particles) 702 ! and convert to kg(S)/m2/s 703 DO i = 1, klon 704 DO k = 1, klev 705 DO it = 1, nbtr 706 !do not include SO2 because most of it comes trom the troposphere 707 IF (it==id_H2SO4_strat) THEN 708 sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_cv(i,k,it)*(mSatom/mH2SO4mol) & 709 & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys 710 ELSEIF (it.GT.nbtr_sulgas) THEN 711 sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_cv(i,k,it)*(mSatom/mH2SO4mol) & 712 & *dens_aer_dry*4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3 & 713 & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys 714 ENDIF 715 ENDDO 716 ENDDO 717 ENDDO 718 ENDIF 719 #endif 650 720 651 721 END IF ! convection … … 692 762 ! Injection during BL mixing 693 763 ! 764 #ifdef CPP_StratAer 765 IF (type_trac=='coag') THEN 766 767 ! initialize dry deposition flux of sulfur 768 sulf_dep_dry(:)=0.0 769 770 ! compute dry deposition velocity as function of surface type (numbers 771 ! from IPSL note 23, 2002) 772 v_dep_dry(:) = pctsrf(:,is_ter) * 2.5e-3 & 773 & + pctsrf(:,is_oce) * 0.5e-3 & 774 & + pctsrf(:,is_lic) * 2.5e-3 & 775 & + pctsrf(:,is_sic) * 2.5e-3 776 777 ! compute surface dry deposition flux 778 zrho(:,1)=pplay(:,1)/t_seri(:,1)/RD 779 780 DO it=1, nbtr 781 source(:,it) = - v_dep_dry(:) * tr_seri(:,1,it) * zrho(:,1) 782 ENDDO 783 784 ENDIF 785 #endif 786 694 787 DO it=1, nbtr 695 788 ! … … 703 796 tr_seri(:,:,it)=tr_seri(:,:,it)+d_tr_cl(:,:,it) 704 797 ! 705 END IF 798 #ifdef CPP_StratAer 799 IF (type_trac=='coag') THEN 800 ! compute dry deposition flux of sulfur (sum over gases and particles) 801 IF (it==id_H2SO4_strat) THEN 802 sulf_dep_dry(:)=sulf_dep_dry(:)-source(:,it)*(mSatom/mH2SO4mol) 803 ELSEIF (it.GT.nbtr_sulgas) THEN 804 sulf_dep_dry(:)=sulf_dep_dry(:)-source(:,it)*(mSatom/mH2SO4mol)*dens_aer_dry & 805 & *4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3 806 ENDIF 807 ENDIF 808 #endif 809 ! 810 ENDIF 706 811 ! 707 END 812 ENDDO 708 813 ! 709 814 ELSE IF (iflag_vdf_trac==0) THEN … … 720 825 ! 721 826 ! Nothing happens 722 !723 827 d_tr_cl=0. 724 828 ! … … 772 876 773 877 END DO !tr 878 879 #ifdef CPP_StratAer 880 IF (type_trac=='coag') THEN 881 ! compute wet deposition flux of sulfur (sum over gases and 882 ! particles) and convert to kg(S)/m2/s 883 ! adding contribution of d_tr_ls to d_tr_cv (above) 884 DO i = 1, klon 885 DO k = 1, klev 886 DO it = 1, nbtr 887 IF (it==id_H2SO4_strat) THEN 888 sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_ls(i,k,it)*(mSatom/mH2SO4mol) & 889 & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys 890 ELSEIF (it.GT.nbtr_sulgas) THEN 891 sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_ls(i,k,it)*(mSatom/mH2SO4mol) & 892 & *dens_aer_dry*4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3 & 893 & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys 894 ENDIF 895 ENDDO 896 ENDDO 897 ENDDO 898 ENDIF 899 #endif 774 900 775 901 ELSE IF (iflag_lscav .EQ. 2) THEN ! frac_impa, frac_nucl
Note: See TracChangeset
for help on using the changeset viewer.