Changeset 2160 for LMDZ5/branches/testing/libf/phylmd/aeropt_5wv.F90
- Timestamp:
- Nov 28, 2014, 4:36:29 PM (10 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 2072,2075-2115,2117-2126,2128-2158
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/libf/phylmd/aeropt_5wv.F90
r1910 r2160 57 57 REAL, DIMENSION(klon,klev), INTENT(in) :: pdel 58 58 REAL, INTENT(in) :: delt 59 REAL, DIMENSION(klon,klev,naero_ spc), INTENT(in) :: m_allaer59 REAL, DIMENSION(klon,klev,naero_tot), INTENT(in) :: m_allaer 60 60 REAL, DIMENSION(klon,klev), INTENT(in) :: RHcl ! humidite relative ciel clair 61 61 INTEGER,INTENT(in) :: flag_aerosol … … 67 67 ! 68 68 REAL, DIMENSION(klon), INTENT(out) :: ai ! POLDER aerosol index 69 REAL, DIMENSION(klon,nwave,naero_spc), INTENT(out) :: tausum 70 REAL, DIMENSION(klon,klev,nwave,naero_spc), INTENT(out) :: tau 69 ! REAL, DIMENSION(klon,nwave,naero_spc), INTENT(out) :: tausum 70 ! REAL, DIMENSION(klon,klev,nwave,naero_spc), INTENT(out) :: tau 71 REAL, DIMENSION(klon,nwave,naero_tot), INTENT(out) :: tausum 72 REAL, DIMENSION(klon,klev,nwave,naero_tot), INTENT(out) :: tau 71 73 72 74 … … 77 79 LOGICAL :: soluble 78 80 79 INTEGER :: i, k, ierr, m 81 INTEGER :: i, k, ierr, m, aerindex 80 82 INTEGER :: spsol, spinsol, spss, la 81 83 INTEGER :: RH_num(klon,klev) … … 156 158 REAL :: piz_aeri_5wv(las,naero_insoluble) ! Insoluble comp. 1- Dust: 2- BC; 3- POM 157 159 158 REAL, DIMENSION(klon,klev,naero_ spc) :: mass_temp160 REAL, DIMENSION(klon,klev,naero_tot) :: mass_temp 159 161 160 162 ! … … 639 641 nb_aer = 2 640 642 ALLOCATE (aerosol_name(nb_aer)) 641 aerosol_name(1) = id_ASSO4M 642 aerosol_name(2) = id_CSSO4M 643 aerosol_name(1) = id_ASSO4M_phy 644 aerosol_name(2) = id_CSSO4M_phy 643 645 ELSEIF (flag_aerosol .EQ. 2) THEN 644 646 nb_aer = 2 645 647 ALLOCATE (aerosol_name(nb_aer)) 646 aerosol_name(1) = id_ASBCM 647 aerosol_name(2) = id_AIBCM 648 aerosol_name(1) = id_ASBCM_phy 649 aerosol_name(2) = id_AIBCM_phy 648 650 ELSEIF (flag_aerosol .EQ. 3) THEN 649 651 nb_aer = 2 650 652 ALLOCATE (aerosol_name(nb_aer)) 651 aerosol_name(1) = id_ASPOMM 652 aerosol_name(2) = id_AIPOMM 653 aerosol_name(1) = id_ASPOMM_phy 654 aerosol_name(2) = id_AIPOMM_phy 653 655 ELSEIF (flag_aerosol .EQ. 4) THEN 654 656 nb_aer = 3 655 657 ALLOCATE (aerosol_name(nb_aer)) 656 aerosol_name(1) = id_CSSSM 657 aerosol_name(2) = id_SSSSM 658 aerosol_name(3) = id_ASSSM 658 aerosol_name(1) = id_CSSSM_phy 659 aerosol_name(2) = id_SSSSM_phy 660 aerosol_name(3) = id_ASSSM_phy 659 661 ELSEIF (flag_aerosol .EQ. 5) THEN 660 662 nb_aer = 1 661 663 ALLOCATE (aerosol_name(nb_aer)) 662 aerosol_name(1) = id_CIDUSTM 664 aerosol_name(1) = id_CIDUSTM_phy 663 665 ELSEIF (flag_aerosol .EQ. 6) THEN 664 666 nb_aer = 10 665 667 ALLOCATE (aerosol_name(nb_aer)) 666 aerosol_name(1) = id_ASSO4M 667 aerosol_name(2) = id_ASBCM 668 aerosol_name(3) = id_AIBCM 669 aerosol_name(4) = id_ASPOMM 670 aerosol_name(5) = id_AIPOMM 671 aerosol_name(6) = id_CSSSM 672 aerosol_name(7) = id_SSSSM 673 aerosol_name(8) = id_ASSSM 674 aerosol_name(9) = id_CIDUSTM 675 aerosol_name(10) = id_CSSO4M 668 aerosol_name(1) = id_ASSO4M_phy 669 aerosol_name(2) = id_ASBCM_phy 670 aerosol_name(3) = id_AIBCM_phy 671 aerosol_name(4) = id_ASPOMM_phy 672 aerosol_name(5) = id_AIPOMM_phy 673 aerosol_name(6) = id_CSSSM_phy 674 aerosol_name(7) = id_SSSSM_phy 675 aerosol_name(8) = id_ASSSM_phy 676 aerosol_name(9) = id_CIDUSTM_phy 677 aerosol_name(10) = id_CSSO4M_phy 676 678 ENDIF 677 679 … … 712 714 DO m=1,nb_aer ! tau is only computed for each mass 713 715 fac=1.0 714 IF (aerosol_name(m).EQ.id_ASBCM ) THEN716 IF (aerosol_name(m).EQ.id_ASBCM_phy) THEN 715 717 soluble=.TRUE. 716 718 spsol=1 717 719 spss=0 718 ELSEIF (aerosol_name(m).EQ.id_ASPOMM ) THEN720 ELSEIF (aerosol_name(m).EQ.id_ASPOMM_phy) THEN 719 721 soluble=.TRUE. 720 722 spsol=2 721 723 spss=0 722 ELSEIF (aerosol_name(m).EQ.id_ASSO4M ) THEN724 ELSEIF (aerosol_name(m).EQ.id_ASSO4M_phy) THEN 723 725 soluble=.TRUE. 724 726 spsol=3 725 727 spss=0 726 728 fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD 727 ELSEIF (aerosol_name(m).EQ.id_CSSO4M ) THEN729 ELSEIF (aerosol_name(m).EQ.id_CSSO4M_phy) THEN 728 730 soluble=.TRUE. 729 731 spsol=4 730 732 spss=0 731 733 fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD 732 ELSEIF (aerosol_name(m).EQ.id_SSSSM ) THEN734 ELSEIF (aerosol_name(m).EQ.id_SSSSM_phy) THEN 733 735 soluble=.TRUE. 734 736 spsol=5 735 737 spss=3 736 ELSEIF (aerosol_name(m).EQ.id_CSSSM ) THEN738 ELSEIF (aerosol_name(m).EQ.id_CSSSM_phy) THEN 737 739 soluble=.TRUE. 738 740 spsol=6 739 741 spss=2 740 ELSEIF (aerosol_name(m).EQ.id_ASSSM ) THEN742 ELSEIF (aerosol_name(m).EQ.id_ASSSM_phy) THEN 741 743 soluble=.TRUE. 742 744 spsol=7 743 745 spss=1 744 ELSEIF (aerosol_name(m).EQ.id_CIDUSTM ) THEN746 ELSEIF (aerosol_name(m).EQ.id_CIDUSTM_phy) THEN 745 747 soluble=.FALSE. 746 748 spinsol=1 747 749 spss=0 748 ELSEIF (aerosol_name(m).EQ.id_AIBCM ) THEN750 ELSEIF (aerosol_name(m).EQ.id_AIBCM_phy) THEN 749 751 soluble=.FALSE. 750 752 spinsol=2 751 753 spss=0 752 ELSEIF (aerosol_name(m).EQ.id_AIPOMM ) THEN754 ELSEIF (aerosol_name(m).EQ.id_AIPOMM_phy) THEN 753 755 soluble=.FALSE. 754 756 spinsol=3 … … 765 767 used_tau(naero_soluble+spinsol)=.TRUE. 766 768 ENDIF 769 770 aerindex=aerosol_name(m) 767 771 768 772 DO la=1,las … … 779 783 H=rh(i,k)/100 780 784 tau_ae5wv_int=A1_ASSSM(k)+A2_ASSSM(k)*H+A3_ASSSM(k)/(H-1.05) 781 tau(i,k,la, spsol) = mass_temp(i,k,spsol)*1000.*zdp1(i,k) &785 tau(i,k,la,aerindex) = mass_temp(i,k,aerindex)*1000.*zdp1(i,k) & 782 786 *tau_ae5wv_int*delt*fac 783 tausum(i,la, spsol)=tausum(i,la,spsol)+tau(i,k,la,spsol)787 tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex) 784 788 ENDDO 785 789 ENDDO … … 794 798 H=rh(i,k)/100 795 799 tau_ae5wv_int=A1_CSSSM(k)+A2_CSSSM(k)*H+A3_CSSSM(k)/(H-1.05) 796 tau(i,k,la, spsol) = mass_temp(i,k,spsol)*1000.*zdp1(i,k) &800 tau(i,k,la,aerindex) = mass_temp(i,k,aerindex)*1000.*zdp1(i,k) & 797 801 *tau_ae5wv_int*delt*fac 798 tausum(i,la, spsol) = tausum(i,la,spsol)+tau(i,k,la,spsol)802 tausum(i,la,aerindex) = tausum(i,la,aerindex)+tau(i,k,la,aerindex) 799 803 ENDDO 800 804 ENDDO … … 809 813 H=rh(i,k)/100 810 814 tau_ae5wv_int=A1_SSSSM(k)+A2_SSSSM(k)*H+A3_SSSSM(k)/(H-1.05) 811 tau(i,k,la, spsol) = mass_temp(i,k,spsol)*1000.*zdp1(i,k) &815 tau(i,k,la,aerindex) = mass_temp(i,k,aerindex)*1000.*zdp1(i,k) & 812 816 *tau_ae5wv_int*delt*fac 813 tausum(i,la, spsol)=tausum(i,la,spsol)+tau(i,k,la,spsol)817 tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex) 814 818 ENDDO 815 819 ENDDO … … 824 828 alpha_aers_5wv(RH_num(i,k),la,spsol)) 825 829 826 tau(i,k,la, spsol) = mass_temp(i,k,spsol)*1000.*zdp1(i,k) &830 tau(i,k,la,aerindex) = mass_temp(i,k,aerindex)*1000.*zdp1(i,k) & 827 831 *tau_ae5wv_int*delt*fac 828 tausum(i,la, spsol)=tausum(i,la,spsol)+tau(i,k,la,spsol)832 tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex) 829 833 ENDDO 830 834 ENDDO … … 836 840 DO i=1, KLON 837 841 tau_ae5wv_int = alpha_aeri_5wv(la,spinsol) 838 tau(i,k,la, naero_soluble+spinsol) = mass_temp(i,k,naero_soluble+spinsol)*1000.*zdp1(i,k)* &842 tau(i,k,la,aerindex) = mass_temp(i,k,aerindex)*1000.*zdp1(i,k)* & 839 843 tau_ae5wv_int*delt*fac 840 tausum(i,la,naero_soluble+spinsol)= tausum(i,la,naero_soluble+spinsol) & 841 +tau(i,k,la,naero_soluble+spinsol) 844 tausum(i,la,aerindex)= tausum(i,la,aerindex)+tau(i,k,la,aerindex) 842 845 ENDDO 843 846 ENDDO … … 880 883 END DO 881 884 882 od550lt1aer(:)=tausum(:,2,id_ASSO4M )+tausum(:,2,id_ASBCM)+tausum(:,2,id_AIBCM)+ &883 tausum(:,2,id_ASPOMM )+tausum(:,2,id_AIPOMM)+tausum(:,2,id_ASSSM)+ &884 0.03*tausum(:,2,id_CSSSM )+0.4*tausum(:,2,id_CIDUSTM)885 od550lt1aer(:)=tausum(:,2,id_ASSO4M_phy)+tausum(:,2,id_ASBCM_phy)+tausum(:,2,id_AIBCM_phy)+ & 886 tausum(:,2,id_ASPOMM_phy)+tausum(:,2,id_AIPOMM_phy)+tausum(:,2,id_ASSSM_phy)+ & 887 0.03*tausum(:,2,id_CSSSM_phy)+0.4*tausum(:,2,id_CIDUSTM_phy) 885 888 886 889
Note: See TracChangeset
for help on using the changeset viewer.