Changeset 1250 for LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_2bands.F90
- Timestamp:
- Oct 29, 2009, 2:55:23 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_2bands.F90
r1249 r1250 51 51 REAL, DIMENSION(klon,klev,naero_tot,nbands) :: cg_ae 52 52 LOGICAL :: soluble 53 INTEGER :: i, k, ierr, inu, m, mrfspecies53 INTEGER :: i, k,n, ierr, inu, m, mrfspecies 54 54 INTEGER :: spsol, spinsol, spss 55 INTEGER :: RH_num 55 INTEGER :: RH_num(klon,klev) 56 56 INTEGER, PARAMETER :: nb_level=19 ! number of vertical levels in DATA 57 57 … … 122 122 REAL,PARAMETER :: RH_tab(nbre_RH)=(/0.,10.,20.,30.,40.,50.,60.,70.,80.,85.,90.,95./) 123 123 REAL, PARAMETER :: RH_MAX=95. 124 REAL:: DELTA, rh, H 125 REAL:: tau_ae2b_int(KLON,KLEV,nbands) ! Intermediate computation of epaisseur optique aerosol 126 REAL:: piz_ae2b_int(KLON,KLEV,nbands) ! Intermediate computation of Single scattering albedo 127 REAL:: cg_ae2b_int(KLON,KLEV,nbands) ! Intermediate computation of Assymetry parameter 124 REAL:: DELTA(klon,klev), rh(klon,klev), H 125 REAL:: tau_ae2b_int ! Intermediate computation of epaisseur optique aerosol 126 REAL:: piz_ae2b_int ! Intermediate computation of Single scattering albedo 127 REAL:: cg_ae2b_int ! Intermediate computation of Assymetry parameter 128 REAL :: Fact_RH(nbre_RH) 128 129 REAL :: zrho 129 130 REAL :: fac … … 146 147 REAL:: piz_aeri_2bands(nbands,naero_insoluble) !-- unit 147 148 149 INTEGER :: id 150 LOGICAL :: used_aer(naero_tot) 151 REAL :: tmp_var, tmp_var_pi 148 152 149 153 DATA presnivs_19/& … … 586 590 587 591 DO k=1, klev 588 DO i=1, klon 589 ! IF (t_seri(i,k).EQ.0.) THEN 590 ! WRITE(lunout,*) 't_seri(i,k)=0 for i=',i,'k=',k 591 ! CALL abort_gcm('aeropt_2bands','t_seri=0',1) 592 ! END IF 593 ! IF (pplay(i,k).EQ.0.) THEN 594 ! WRITE(lunout,*) 'pplay(i,k)=0 for i=',i,'k=',k 595 ! CALL abort_gcm('aeropt_2bands','pplay=0',1) 596 ! END IF 597 zrho=pplay(i,k)/t_seri(i,k)/RD ! kg/m3 598 mass_temp(i,k,:) = m_allaer(i,k,:) / zrho / 1.e+9 592 DO i=1, klon 593 zrho=pplay(i,k)/t_seri(i,k)/RD ! kg/m3 594 !CDIR UNROLL=naero_spc 595 mass_temp(i,k,:) = m_allaer(i,k,:) / zrho / 1.e+9 599 596 !RAF zrho 600 mass_temp_pi(i,k,:) = m_allaer_pi(i,k,:) / zrho / 1.e+9 601 ENDDO 597 !CDIR UNROLL=naero_spc 598 mass_temp_pi(i,k,:) = m_allaer_pi(i,k,:) / zrho / 1.e+9 599 zdp1(i,k)=pdel(i,k)/(gravit*delt) ! air mass auxiliary variable --> zdp1 [kg/(m^2 *s)] 600 ENDDO 602 601 ENDDO 603 602 604 603 IF (flag_aerosol .EQ. 1) THEN 605 nb_aer = 1604 nb_aer = 2 606 605 ALLOCATE (aerosol_name(nb_aer)) 607 606 aerosol_name(1) = id_ASSO4M 608 607 aerosol_name(2) = id_CSSO4M 609 608 ELSEIF (flag_aerosol .EQ. 2) THEN 610 609 nb_aer = 2 … … 650 649 ! compute optical_thickness_at_gridpoint_per_species 651 650 652 tau_ae(:,:,:,:)=0. 653 !RAF 654 tau_ae_pi(:,:,:,:)=0. 655 piz_ae(:,:,:,:)=0. 656 cg_ae(:,:,:,:)=0. 657 tau_allaer(:,:,:,:)=0. 658 piz_allaer(:,:,:,:)=0. 659 cg_allaer(:,:,:,:)=0. 660 661 ! 662 ! Calculations that need to be done since we are not in the subroutines INCA 663 ! 664 ! air mass auxiliary variable --> zdp1 [kg/(m^2 *s)] 665 zdp1(:,:)=pdel(:,:)/(gravit*delt) 666 667 651 652 653 !!CDIR ON_ADB(RH_tab) 654 !CDIR ON_ADB(fact_RH) 655 !CDIR SHORTLOOP 656 DO n=1,nbre_RH-1 657 fact_RH(n)=1./(RH_tab(n+1)-RH_tab(n)) 658 ENDDO 659 660 DO k=1, KLEV 661 !!CDIR ON_ADB(RH_tab) 662 !CDIR ON_ADB(fact_RH) 663 DO i=1, KLON 664 rh(i,k)=MIN(RHcl(i,k)*100.,RH_MAX) 665 RH_num(i,k) = INT( rh(i,k)/10. + 1.) 666 IF (rh(i,k).GT.85.) RH_num(i,k)=10 667 IF (rh(i,k).GT.90.) RH_num(i,k)=11 668 669 DELTA(i,k)=(rh(i,k)-RH_tab(RH_num(i,k)))*fact_RH(RH_num(i,k)) 670 ENDDO 671 ENDDO 672 673 used_aer(:)=.FALSE. 674 668 675 DO m=1,nb_aer ! tau is only computed for each mass 669 670 fac=1.0 676 fac=1.0 671 677 IF (aerosol_name(m).EQ.id_ASBCM) THEN 672 678 soluble=.TRUE. … … 715 721 ENDIF 716 722 717 718 tau_ae2b_int(:,:,:)=0. 719 piz_ae2b_int(:,:,:)=0. 720 cg_ae2b_int(:,:,:)=0. 721 722 DO inu=1,nbands 723 id=aerosol_name(m) 724 used_aer(id)=.TRUE. 725 726 727 IF (soluble) THEN 728 729 IF (spss.NE.0) THEN 730 731 IF (spss.EQ.1) THEN !accumulation mode 732 DO k=1, KLEV 733 !CDIR ON_ADB(A1_ASSSM_b1) 734 !CDIR ON_ADB(A2_ASSSM_b1) 735 !CDIR ON_ADB(A3_ASSSM_b1) 736 !CDIR ON_ADB(B1_ASSSM_b1) 737 !CDIR ON_ADB(B2_ASSSM_b1) 738 !CDIR ON_ADB(C1_ASSSM_b1) 739 !CDIR ON_ADB(C2_ASSSM_b2) 740 !CDIR ON_ADB(A1_ASSSM_b2) 741 !CDIR ON_ADB(A2_ASSSM_b2) 742 !CDIR ON_ADB(A3_ASSSM_b2) 743 !CDIR ON_ADB(B1_ASSSM_b2) 744 !CDIR ON_ADB(B2_ASSSM_b2) 745 !CDIR ON_ADB(C1_ASSSM_b2) 746 !CDIR ON_ADB(C2_ASSSM_b2) 747 DO i=1, KLON 748 H=rh(i,k)/100 749 tmp_var=mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt*fac 750 tmp_var_pi=mass_temp_pi(i,k,spsol)*1000.*zdp1(i,k)*delt*fac 751 752 ! band 1 753 tau_ae2b_int=A1_ASSSM_b1(k)+A2_ASSSM_b1(k)*H+A3_ASSSM_b1(k)/(H-1.05) 754 piz_ae2b_int=1-B1_ASSSM_b1(k)-B2_ASSSM_b1(k)*H 755 cg_ae2b_int=C1_ASSSM_b1(k)+C2_ASSSM_b1(k)*H 756 757 tau_ae(i,k,id,1) = tmp_var*tau_ae2b_int 758 tau_ae_pi(i,k,id,1) = tmp_var_pi* tau_ae2b_int 759 piz_ae(i,k,id,1) = piz_ae2b_int 760 cg_ae(i,k,id,1)= cg_ae2b_int 761 762 !band 2 763 tau_ae2b_int=A1_ASSSM_b2(k)+A2_ASSSM_b2(k)*H+A3_ASSSM_b2(k)/(H-1.05) 764 piz_ae2b_int=1-B1_ASSSM_b2(k)-B2_ASSSM_b2(k)*H 765 cg_ae2b_int=C1_ASSSM_b2(k)+C2_ASSSM_b2(k)*H 766 767 tau_ae(i,k,id,2) = tmp_var*tau_ae2b_int 768 tau_ae_pi(i,k,id,2) = tmp_var_pi* tau_ae2b_int 769 piz_ae(i,k,id,2) = piz_ae2b_int 770 cg_ae(i,k,id,2)= cg_ae2b_int 771 772 ENDDO 773 ENDDO 774 ENDIF 775 776 IF (spss.EQ.2) THEN !coarse mode 777 DO k=1, KLEV 778 !CDIR ON_ADB(A1_CSSSM_b1) 779 !CDIR ON_ADB(A2_CSSSM_b1) 780 !CDIR ON_ADB(A3_CSSSM_b1) 781 !CDIR ON_ADB(B1_CSSSM_b1) 782 !CDIR ON_ADB(B2_CSSSM_b1) 783 !CDIR ON_ADB(C1_CSSSM_b1) 784 !CDIR ON_ADB(C2_CSSSM_b2) 785 !CDIR ON_ADB(A1_CSSSM_b2) 786 !CDIR ON_ADB(A2_CSSSM_b2) 787 !CDIR ON_ADB(A3_CSSSM_b2) 788 !CDIR ON_ADB(B1_CSSSM_b2) 789 !CDIR ON_ADB(B2_CSSSM_b2) 790 !CDIR ON_ADB(C1_CSSSM_b2) 791 !CDIR ON_ADB(C2_CSSSM_b2) 792 DO i=1, KLON 793 H=rh(i,k)/100 794 tmp_var=mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt*fac 795 tmp_var_pi=mass_temp_pi(i,k,spsol)*1000.*zdp1(i,k)*delt*fac 796 ! band 1 797 tau_ae2b_int=A1_CSSSM_b1(k)+A2_CSSSM_b1(k)*H+A3_CSSSM_b1(k)/(H-1.05) 798 piz_ae2b_int=1-B1_CSSSM_b1(k)-B2_CSSSM_b1(k)*H 799 cg_ae2b_int=C1_CSSSM_b1(k)+C2_CSSSM_b1(k)*H 800 801 tau_ae(i,k,id,1) = tmp_var*tau_ae2b_int 802 tau_ae_pi(i,k,id,1) = tmp_var_pi* tau_ae2b_int 803 piz_ae(i,k,id,1) = piz_ae2b_int 804 cg_ae(i,k,id,1)= cg_ae2b_int 805 806 ! band 2 807 tau_ae2b_int=A1_CSSSM_b2(k)+A2_CSSSM_b2(k)*H+A3_CSSSM_b2(k)/(H-1.05) 808 piz_ae2b_int=1-B1_CSSSM_b2(k)-B2_CSSSM_b2(k)*H 809 cg_ae2b_int=C1_CSSSM_b2(k)+C2_CSSSM_b2(k)*H 810 811 tau_ae(i,k,id,2) = tmp_var*tau_ae2b_int 812 tau_ae_pi(i,k,id,2) = tmp_var_pi* tau_ae2b_int 813 piz_ae(i,k,id,2) = piz_ae2b_int 814 cg_ae(i,k,id,2)= cg_ae2b_int 815 816 ENDDO 817 ENDDO 818 ENDIF 819 820 IF (spss.EQ.3) THEN !super coarse mode 821 DO k=1, KLEV 822 !CDIR ON_ADB(A1_SSSSM_b1) 823 !CDIR ON_ADB(A2_SSSSM_b1) 824 !CDIR ON_ADB(A3_SSSSM_b1) 825 !CDIR ON_ADB(B1_SSSSM_b1) 826 !CDIR ON_ADB(B2_SSSSM_b1) 827 !CDIR ON_ADB(C1_SSSSM_b1) 828 !CDIR ON_ADB(C2_SSSSM_b2) 829 !CDIR ON_ADB(A1_SSSSM_b2) 830 !CDIR ON_ADB(A2_SSSSM_b2) 831 !CDIR ON_ADB(A3_SSSSM_b2) 832 !CDIR ON_ADB(B1_SSSSM_b2) 833 !CDIR ON_ADB(B2_SSSSM_b2) 834 !CDIR ON_ADB(C1_SSSSM_b2) 835 !CDIR ON_ADB(C2_SSSSM_b2) 836 DO i=1, KLON 837 H=rh(i,k)/100 838 tmp_var=mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt*fac 839 tmp_var_pi=mass_temp_pi(i,k,spsol)*1000.*zdp1(i,k)*delt*fac 840 841 ! band 1 842 tau_ae2b_int=A1_SSSSM_b1(k)+A2_SSSSM_b1(k)*H+A3_SSSSM_b1(k)/(H-1.05) 843 piz_ae2b_int=1-B1_SSSSM_b1(k)-B2_SSSSM_b1(k)*H 844 cg_ae2b_int=C1_SSSSM_b1(k)+C2_SSSSM_b1(k)*H 845 846 tau_ae(i,k,id,1) = tmp_var*tau_ae2b_int 847 tau_ae_pi(i,k,id,1) = tmp_var_pi* tau_ae2b_int 848 piz_ae(i,k,id,1) = piz_ae2b_int 849 cg_ae(i,k,id,1)= cg_ae2b_int 850 851 ! band 2 852 tau_ae2b_int=A1_SSSSM_b2(k)+A2_SSSSM_b2(k)*H+A3_SSSSM_b2(k)/(H-1.05) 853 piz_ae2b_int=1-B1_SSSSM_b2(k)-B2_SSSSM_b2(k)*H 854 cg_ae2b_int=C1_SSSSM_b2(k)+C2_SSSSM_b2(k)*H 855 856 tau_ae(i,k,id,2) = tmp_var*tau_ae2b_int 857 tau_ae_pi(i,k,id,2) = tmp_var_pi* tau_ae2b_int 858 piz_ae(i,k,id,2) = piz_ae2b_int 859 cg_ae(i,k,id,2)= cg_ae2b_int 860 861 ENDDO 862 ENDDO 863 ENDIF 864 865 ELSE 866 867 !CDIR ON_ADB(alpha_aers_2bands) 868 !CDIR ON_ADB(piz_aers_2bands) 869 !CDIR ON_ADB(cg_aers_2bands) 870 DO k=1, KLEV 871 DO i=1, KLON 872 tmp_var=mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt*fac 873 tmp_var_pi=mass_temp_pi(i,k,spsol)*1000.*zdp1(i,k)*delt*fac 874 !CDIR UNROLL=nbands 875 DO inu=1,nbands 876 877 tau_ae2b_int= alpha_aers_2bands(RH_num(i,k),inu,spsol)+ & 878 DELTA(i,k)* (alpha_aers_2bands(RH_num(i,k)+1,inu,spsol) - & 879 alpha_aers_2bands(RH_num(i,k),inu,spsol)) 880 881 piz_ae2b_int = piz_aers_2bands(RH_num(i,k),inu,spsol) + & 882 DELTA(i,k)* (piz_aers_2bands(RH_num(i,k)+1,inu,spsol) - & 883 piz_aers_2bands(RH_num(i,k),inu,spsol)) 884 885 cg_ae2b_int = cg_aers_2bands(RH_num(i,k),inu,spsol) + & 886 DELTA(i,k)* (cg_aers_2bands(RH_num(i,k)+1,inu,spsol) - & 887 cg_aers_2bands(RH_num(i,k),inu,spsol)) 888 889 tau_ae(i,k,id,inu) = tmp_var*tau_ae2b_int 890 tau_ae_pi(i,k,id,inu) = tmp_var_pi* tau_ae2b_int 891 piz_ae(i,k,id,inu) = piz_ae2b_int 892 cg_ae(i,k,id,inu)= cg_ae2b_int 893 894 ENDDO 895 ENDDO 896 ENDDO 897 898 ENDIF 899 900 ELSE ! For all aerosol insoluble components 901 902 !CDIR ON_ADB(alpha_aers_2bands) 903 !CDIR ON_ADB(piz_aers_2bands) 904 !CDIR ON_ADB(cg_aers_2bands) 723 905 DO k=1, KLEV 724 DO i=1, KLON 725 726 rh=MIN(RHcl(i,k)*100.,RH_MAX) 727 RH_num = INT( rh/10. + 1.) 728 729 IF (rh.GT.85.) RH_num=10 730 IF (rh.GT.90.) RH_num=11 731 DELTA=(rh-RH_tab(RH_num))/(RH_tab(RH_num+1)-RH_tab(RH_num)) 732 733 ! DO inu=1,nbands 734 IF (soluble) THEN 735 736 ! First optical parameters are computed for seasalt 737 IF (spss.NE.0) THEN 738 H=rh/100 739 IF (spss.EQ.1) THEN !accumulation mode 740 ! band 1 741 tau_ae2b_int(i,k,1)=A1_ASSSM_b1(k)+A2_ASSSM_b1(k)*H+A3_ASSSM_b1(k)/(H-1.05) 742 piz_ae2b_int(i,k,1)=1-B1_ASSSM_b1(k)-B2_ASSSM_b1(k)*H 743 cg_ae2b_int(i,k,1)=C1_ASSSM_b1(k)+C2_ASSSM_b1(k)*H 744 !band 2 745 tau_ae2b_int(i,k,2)=A1_ASSSM_b2(k)+A2_ASSSM_b2(k)*H+A3_ASSSM_b2(k)/(H-1.05) 746 piz_ae2b_int(i,k,2)=1-B1_ASSSM_b2(k)-B2_ASSSM_b2(k)*H 747 cg_ae2b_int(i,k,2)=C1_ASSSM_b2(k)+C2_ASSSM_b2(k)*H 748 ENDIF 749 IF (spss.EQ.2) THEN !coarse mode 750 ! band 1 751 tau_ae2b_int(i,k,1)=A1_CSSSM_b1(k)+A2_CSSSM_b1(k)*H+A3_CSSSM_b1(k)/(H-1.05) 752 piz_ae2b_int(i,k,1)=1-B1_CSSSM_b1(k)-B2_CSSSM_b1(k)*H 753 cg_ae2b_int(i,k,1)=C1_CSSSM_b1(k)+C2_CSSSM_b1(k)*H 754 ! band 2 755 tau_ae2b_int(i,k,2)=A1_CSSSM_b2(k)+A2_CSSSM_b2(k)*H+A3_CSSSM_b2(k)/(H-1.05) 756 piz_ae2b_int(i,k,2)=1-B1_CSSSM_b2(k)-B2_CSSSM_b2(k)*H 757 cg_ae2b_int(i,k,2)=C1_CSSSM_b2(k)+C2_CSSSM_b2(k)*H 758 ENDIF 759 IF (spss.EQ.3) THEN !super coarse mode 760 ! band 1 761 tau_ae2b_int(i,k,1)=A1_SSSSM_b1(k)+A2_SSSSM_b1(k)*H+A3_SSSSM_b1(k)/(H-1.05) 762 piz_ae2b_int(i,k,1)=1-B1_SSSSM_b1(k)-B2_SSSSM_b1(k)*H 763 cg_ae2b_int(i,k,1)=C1_SSSSM_b1(k)+C2_SSSSM_b1(k)*H 764 ! band 2 765 tau_ae2b_int(i,k,2)=A1_SSSSM_b2(k)+A2_SSSSM_b2(k)*H+A3_SSSSM_b2(k)/(H-1.05) 766 piz_ae2b_int(i,k,2)=1-B1_SSSSM_b2(k)-B2_SSSSM_b2(k)*H 767 cg_ae2b_int(i,k,2)=C1_SSSSM_b2(k)+C2_SSSSM_b2(k)*H 768 ENDIF 769 ELSE 770 tau_ae2b_int(i,k,inu)= & 771 alpha_aers_2bands(RH_num,inu,spsol)+ & 772 DELTA* (alpha_aers_2bands(RH_num+1,inu,spsol) - & 773 alpha_aers_2bands(RH_num,inu,spsol)) 774 775 piz_ae2b_int(i,k,inu)= & 776 piz_aers_2bands(RH_num,inu,spsol) + & 777 DELTA* (piz_aers_2bands(RH_num+1,inu,spsol) - & 778 piz_aers_2bands(RH_num,inu,spsol)) 779 780 cg_ae2b_int(i,k,inu)= & 781 cg_aers_2bands(RH_num,inu,spsol) + & 782 DELTA* (cg_aers_2bands(RH_num+1,inu,spsol) - & 783 cg_aers_2bands(RH_num,inu,spsol)) 784 ENDIF 785 786 tau_ae(i,k,aerosol_name(m),inu) = & 787 mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt* & 788 tau_ae2b_int(i,k,inu)*fac 789 !RAF fac 790 tau_ae_pi(i,k,aerosol_name(m),inu) = & 791 mass_temp_pi(i,k,spsol)*1000.*zdp1(i,k)*delt* & 792 tau_ae2b_int(i,k,inu)*fac 793 794 ELSE ! For all aerosol insoluble components 795 tau_ae2b_int(i,k,inu) = alpha_aeri_2bands(inu,spinsol) 796 piz_ae2b_int(i,k,inu) = piz_aeri_2bands(inu,spinsol) 797 cg_ae2b_int(i,k,inu) = cg_aeri_2bands(inu,spinsol) 798 799 tau_ae(i,k,aerosol_name(m),inu) = & 800 mass_temp(i,k,naero_soluble+ spinsol)*1000.*zdp1(i,k)* & 801 delt*tau_ae2b_int(i,k,inu)*fac 802 !RAF fac 803 tau_ae_pi(i,k,aerosol_name(m),inu) = & 804 mass_temp_pi(i,k,naero_soluble+ spinsol)*1000.*zdp1(i,k)* & 805 delt*tau_ae2b_int(i,k,inu)*fac 806 ENDIF 807 808 piz_ae(i,k,aerosol_name(m),inu) = piz_ae2b_int(i,k,inu) 809 810 cg_ae(i,k,aerosol_name(m),inu)= cg_ae2b_int(i,k,inu) 811 812 ENDDO ! nbands : boucle sur les bandes spectrale 813 ENDDO ! klon : Boucle sur les points geographiques (grille horizontale) 814 ENDDO ! klev : Boucle sur les niveaux verticaux 815 ENDDO ! nb_aer : Boucle sur les masses de traceurs 816 906 DO i=1, KLON 907 tmp_var=mass_temp(i,k,naero_soluble+ spinsol)*1000.*zdp1(i,k)*delt*fac 908 tmp_var_pi=mass_temp_pi(i,k,naero_soluble+spinsol)*1000.*zdp1(i,k)*delt*fac 909 !CDIR UNROLL=nbands 910 DO inu=1,nbands 911 tau_ae2b_int = alpha_aeri_2bands(inu,spinsol) 912 piz_ae2b_int = piz_aeri_2bands(inu,spinsol) 913 cg_ae2b_int = cg_aeri_2bands(inu,spinsol) 914 915 tau_ae(i,k,id,inu) = tmp_var*tau_ae2b_int 916 tau_ae_pi(i,k,id,inu) = tmp_var_pi*tau_ae2b_int 917 piz_ae(i,k,id,inu) = piz_ae2b_int 918 cg_ae(i,k,id,inu)= cg_ae2b_int 919 ENDDO 920 ENDDO 921 ENDDO 922 923 ENDIF ! soluble 924 925 ENDDO ! nb_aer 926 927 DO m=1,nb_aer 928 IF (.NOT. used_aer(m)) THEN 929 tau_ae(:,:,:,:)=0. 930 tau_ae_pi(:,:,:,:)=0. 931 piz_ae(:,:,:,:)=0. 932 cg_ae(:,:,:,:)=0. 933 ENDIF 934 ENDDO 817 935 818 936 DO inu=1, nbands 819 DO mrfspecies=1,naero_grp 937 DO mrfspecies=1,naero_grp 938 IF (mrfspecies .EQ. 2) THEN ! = total aerosol AER 820 939 DO k=1, KLEV 821 DO i=1, KLON 822 IF (mrfspecies .EQ. 2) THEN ! = total aerosol AER 823 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASSO4M,inu)+tau_ae(i,k,id_CSSO4M,inu)+ & 824 tau_ae(i,k,id_ASBCM,inu)+tau_ae(i,k,id_AIBCM,inu)+ & 825 tau_ae(i,k,id_ASPOMM,inu)+tau_ae(i,k,id_AIPOMM,inu)+ & 826 tau_ae(i,k,id_ASSSM,inu)+tau_ae(i,k,id_CSSSM,inu)+tau_ae(i,k,id_SSSSM,inu)+ & 827 tau_ae(i,k,id_CIDUSTM,inu) 828 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20) 940 DO i=1, KLON 941 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASSO4M,inu)+tau_ae(i,k,id_CSSO4M,inu)+ & 942 tau_ae(i,k,id_ASBCM,inu)+tau_ae(i,k,id_AIBCM,inu)+ & 943 tau_ae(i,k,id_ASPOMM,inu)+tau_ae(i,k,id_AIPOMM,inu)+ & 944 tau_ae(i,k,id_ASSSM,inu)+tau_ae(i,k,id_CSSSM,inu)+ & 945 tau_ae(i,k,id_SSSSM,inu)+ tau_ae(i,k,id_CIDUSTM,inu) 946 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20) 829 947 830 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASSO4M,inu)*piz_ae(i,k,id_ASSO4M,inu)+ & 831 tau_ae(i,k,id_CSSO4M,inu)*piz_ae(i,k,id_CSSO4M,inu)+ & 832 tau_ae(i,k,id_ASBCM,inu)*piz_ae(i,k,id_ASBCM,inu)+ & 833 tau_ae(i,k,id_AIBCM,inu)*piz_ae(i,k,id_AIBCM,inu)+ & 834 tau_ae(i,k,id_ASPOMM,inu)*piz_ae(i,k,id_ASPOMM,inu)+ & 835 tau_ae(i,k,id_AIPOMM,inu)*piz_ae(i,k,id_AIPOMM,inu)+ & 836 tau_ae(i,k,id_ASSSM,inu)*piz_ae(i,k,id_ASSSM,inu)+ & 837 tau_ae(i,k,id_CSSSM,inu)*piz_ae(i,k,id_CSSSM,inu)+ & 838 tau_ae(i,k,id_SSSSM,inu)*piz_ae(i,k,id_SSSSM,inu)+ & 839 tau_ae(i,k,id_CIDUSTM,inu)*piz_ae(i,k,id_CIDUSTM,inu))/tau_allaer(i,k,mrfspecies,inu) 840 piz_allaer(i,k,mrfspecies,inu)=MAX(piz_allaer(i,k,mrfspecies,inu),1e-20) 841 842 cg_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASSO4M,inu)*piz_ae(i,k,id_ASSO4M,inu)*cg_ae(i,k,id_ASSO4M,inu)+ & 948 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASSO4M,inu)*piz_ae(i,k,id_ASSO4M,inu)+ & 949 tau_ae(i,k,id_CSSO4M,inu)*piz_ae(i,k,id_CSSO4M,inu)+ & 950 tau_ae(i,k,id_ASBCM,inu)*piz_ae(i,k,id_ASBCM,inu)+ & 951 tau_ae(i,k,id_AIBCM,inu)*piz_ae(i,k,id_AIBCM,inu)+ & 952 tau_ae(i,k,id_ASPOMM,inu)*piz_ae(i,k,id_ASPOMM,inu)+ & 953 tau_ae(i,k,id_AIPOMM,inu)*piz_ae(i,k,id_AIPOMM,inu)+ & 954 tau_ae(i,k,id_ASSSM,inu)*piz_ae(i,k,id_ASSSM,inu)+ & 955 tau_ae(i,k,id_CSSSM,inu)*piz_ae(i,k,id_CSSSM,inu)+ & 956 tau_ae(i,k,id_SSSSM,inu)*piz_ae(i,k,id_SSSSM,inu)+ & 957 tau_ae(i,k,id_CIDUSTM,inu)*piz_ae(i,k,id_CIDUSTM,inu)) & 958 /tau_allaer(i,k,mrfspecies,inu) 959 piz_allaer(i,k,mrfspecies,inu)=MAX(piz_allaer(i,k,mrfspecies,inu),1e-20) 960 961 cg_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASSO4M,inu)*piz_ae(i,k,id_ASSO4M,inu)*cg_ae(i,k,id_ASSO4M,inu)+ & 843 962 tau_ae(i,k,id_CSSO4M,inu)*piz_ae(i,k,id_CSSO4M,inu)*cg_ae(i,k,id_CSSO4M,inu)+ & 844 963 tau_ae(i,k,id_ASBCM,inu)*piz_ae(i,k,id_ASBCM,inu)*cg_ae(i,k,id_ASBCM,inu)+ & … … 851 970 tau_ae(i,k,id_CIDUSTM,inu)*piz_ae(i,k,id_CIDUSTM,inu)*cg_ae(i,k,id_CIDUSTM,inu))/ & 852 971 (tau_allaer(i,k,mrfspecies,inu)*piz_allaer(i,k,mrfspecies,inu)) 853 854 ELSEIF (mrfspecies .EQ. 3) THEN ! = natural aerosol NAT 972 ENDDO 973 ENDDO 974 975 ELSEIF (mrfspecies .EQ. 3) THEN ! = natural aerosol NAT 976 977 DO k=1, KLEV 978 DO i=1, KLON 855 979 !RAF 856 980 tau_allaer(i,k,mrfspecies,inu)=tau_ae_pi(i,k,id_ASSO4M,inu)+ & … … 892 1016 cg_ae(i,k,id_CIDUSTM,inu))/ & 893 1017 (tau_allaer(i,k,mrfspecies,inu)*piz_allaer(i,k,mrfspecies,inu)) 894 895 !END RAF 896 ELSEIF (mrfspecies .EQ. 4) THEN ! = BC 897 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASBCM,inu)+tau_ae(i,k,id_AIBCM,inu) 898 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20) 899 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASBCM,inu)*piz_ae(i,k,id_ASBCM,inu) & 1018 ENDDO 1019 ENDDO 1020 1021 ELSEIF (mrfspecies .EQ. 4) THEN ! = BC 1022 DO k=1, KLEV 1023 DO i=1, KLON 1024 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASBCM,inu)+tau_ae(i,k,id_AIBCM,inu) 1025 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20) 1026 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASBCM,inu)*piz_ae(i,k,id_ASBCM,inu) & 900 1027 +tau_ae(i,k,id_AIBCM,inu)*piz_ae(i,k,id_AIBCM,inu))/ & 901 1028 tau_allaer(i,k,mrfspecies,inu) 902 903 1029 piz_allaer(i,k,mrfspecies,inu)=MAX(piz_allaer(i,k,mrfspecies,inu),1e-20) 1030 cg_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASBCM,inu)*piz_ae(i,k,id_ASBCM,inu) *cg_ae(i,k,id_ASBCM,inu)& 904 1031 +tau_ae(i,k,id_AIBCM,inu)*piz_ae(i,k,id_AIBCM,inu)*cg_ae(i,k,id_AIBCM,inu))/ & 905 1032 (tau_allaer(i,k,mrfspecies,inu)*piz_allaer(i,k,mrfspecies,inu)) 906 907 ELSEIF (mrfspecies .EQ. 5) THEN ! = SO4 908 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASSO4M,inu)+tau_ae(i,k,id_CSSO4M,inu) 909 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20) 910 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_CSSO4M,inu)*piz_ae(i,k,id_CSSO4M,inu) & 1033 ENDDO 1034 ENDDO 1035 1036 ELSEIF (mrfspecies .EQ. 5) THEN ! = SO4 1037 1038 DO k=1, KLEV 1039 DO i=1, KLON 1040 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASSO4M,inu)+tau_ae(i,k,id_CSSO4M,inu) 1041 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20) 1042 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_CSSO4M,inu)*piz_ae(i,k,id_CSSO4M,inu) & 911 1043 +tau_ae(i,k,id_ASSO4M,inu)*piz_ae(i,k,id_ASSO4M,inu))/ & 912 1044 tau_allaer(i,k,mrfspecies,inu) 913 914 1045 piz_allaer(i,k,mrfspecies,inu)=MAX(piz_allaer(i,k,mrfspecies,inu),1e-20) 1046 cg_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_CSSO4M,inu)*piz_ae(i,k,id_CSSO4M,inu) *cg_ae(i,k,id_CSSO4M,inu)& 915 1047 +tau_ae(i,k,id_ASSO4M,inu)*piz_ae(i,k,id_ASSO4M,inu)*cg_ae(i,k,id_ASSO4M,inu))/ & 916 1048 (tau_allaer(i,k,mrfspecies,inu)*piz_allaer(i,k,mrfspecies,inu)) 917 918 ELSEIF (mrfspecies .EQ. 6) THEN ! = POM 919 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASPOMM,inu)+tau_ae(i,k,id_AIPOMM,inu) 920 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20) 921 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASPOMM,inu)*piz_ae(i,k,id_ASPOMM,inu) & 1049 ENDDO 1050 ENDDO 1051 1052 ELSEIF (mrfspecies .EQ. 6) THEN ! = POM 1053 1054 DO k=1, KLEV 1055 DO i=1, KLON 1056 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASPOMM,inu)+tau_ae(i,k,id_AIPOMM,inu) 1057 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20) 1058 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASPOMM,inu)*piz_ae(i,k,id_ASPOMM,inu) & 922 1059 +tau_ae(i,k,id_AIPOMM,inu)*piz_ae(i,k,id_AIPOMM,inu))/ & 923 1060 tau_allaer(i,k,mrfspecies,inu) 924 925 1061 piz_allaer(i,k,mrfspecies,inu)=MAX(piz_allaer(i,k,mrfspecies,inu),1e-20) 1062 cg_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASPOMM,inu)*piz_ae(i,k,id_ASPOMM,inu) *cg_ae(i,k,id_ASPOMM,inu)& 926 1063 +tau_ae(i,k,id_AIPOMM,inu)*piz_ae(i,k,id_AIPOMM,inu)*cg_ae(i,k,id_AIPOMM,inu))/ & 927 1064 (tau_allaer(i,k,mrfspecies,inu)*piz_allaer(i,k,mrfspecies,inu)) 928 929 ELSEIF (mrfspecies .EQ. 7) THEN ! = DUST 930 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_CIDUSTM,inu) 931 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20) 932 piz_allaer(i,k,mrfspecies,inu)=piz_ae(i,k,id_CIDUSTM,inu) 933 cg_allaer(i,k,mrfspecies,inu)=cg_ae(i,k,id_CIDUSTM,inu) 934 935 ELSEIF (mrfspecies .EQ. 8) THEN ! = SS 936 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASSSM,inu)+tau_ae(i,k,id_CSSSM,inu)+tau_ae(i,k,id_SSSSM,inu) 937 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20) 938 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASSSM,inu)*piz_ae(i,k,id_ASSSM,inu) & 939 +tau_ae(i,k,id_CSSSM,inu)*piz_ae(i,k,id_CSSSM,inu) & 940 +tau_ae(i,k,id_SSSSM,inu)*piz_ae(i,k,id_SSSSM,inu))/ & 941 tau_allaer(i,k,mrfspecies,inu) 942 piz_allaer(i,k,mrfspecies,inu)=MAX(piz_allaer(i,k,mrfspecies,inu),1e-20) 943 cg_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASSSM,inu)*piz_ae(i,k,id_ASSSM,inu) *cg_ae(i,k,id_ASSSM,inu)& 944 +tau_ae(i,k,id_CSSSM,inu)*piz_ae(i,k,id_CSSSM,inu)*cg_ae(i,k,id_CSSSM,inu) & 945 +tau_ae(i,k,id_SSSSM,inu)*piz_ae(i,k,id_SSSSM,inu)*cg_ae(i,k,id_SSSSM,inu))/ & 946 (tau_allaer(i,k,mrfspecies,inu)*piz_allaer(i,k,mrfspecies,inu)) 947 948 ELSEIF (mrfspecies .EQ. 9) THEN ! = NO3 949 tau_allaer(i,k,mrfspecies,inu)=0. ! preliminary 950 piz_allaer(i,k,mrfspecies,inu)=0. 951 cg_allaer(i,k,mrfspecies,inu)=0. 952 ENDIF 953 ENDDO 1065 ENDDO 954 1066 ENDDO 955 ENDDO 1067 1068 ELSEIF (mrfspecies .EQ. 7) THEN ! = DUST 1069 1070 DO k=1, KLEV 1071 DO i=1, KLON 1072 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_CIDUSTM,inu) 1073 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20) 1074 piz_allaer(i,k,mrfspecies,inu)=piz_ae(i,k,id_CIDUSTM,inu) 1075 cg_allaer(i,k,mrfspecies,inu)=cg_ae(i,k,id_CIDUSTM,inu) 1076 ENDDO 1077 ENDDO 1078 1079 ELSEIF (mrfspecies .EQ. 8) THEN ! = SS 1080 1081 DO k=1, KLEV 1082 DO i=1, KLON 1083 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASSSM,inu)+tau_ae(i,k,id_CSSSM,inu)+tau_ae(i,k,id_SSSSM,inu) 1084 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20) 1085 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASSSM,inu)*piz_ae(i,k,id_ASSSM,inu) & 1086 +tau_ae(i,k,id_CSSSM,inu)*piz_ae(i,k,id_CSSSM,inu) & 1087 +tau_ae(i,k,id_SSSSM,inu)*piz_ae(i,k,id_SSSSM,inu))/ & 1088 tau_allaer(i,k,mrfspecies,inu) 1089 piz_allaer(i,k,mrfspecies,inu)=MAX(piz_allaer(i,k,mrfspecies,inu),1e-20) 1090 cg_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASSSM,inu)*piz_ae(i,k,id_ASSSM,inu) *cg_ae(i,k,id_ASSSM,inu)& 1091 +tau_ae(i,k,id_CSSSM,inu)*piz_ae(i,k,id_CSSSM,inu)*cg_ae(i,k,id_CSSSM,inu) & 1092 +tau_ae(i,k,id_SSSSM,inu)*piz_ae(i,k,id_SSSSM,inu)*cg_ae(i,k,id_SSSSM,inu))/ & 1093 (tau_allaer(i,k,mrfspecies,inu)*piz_allaer(i,k,mrfspecies,inu)) 1094 ENDDO 1095 ENDDO 1096 1097 ELSEIF (mrfspecies .EQ. 9) THEN ! = NO3 1098 1099 DO k=1, KLEV 1100 DO i=1, KLON 1101 tau_allaer(i,k,mrfspecies,inu)=0. ! preliminary 1102 piz_allaer(i,k,mrfspecies,inu)=0. 1103 cg_allaer(i,k,mrfspecies,inu)=0. 1104 ENDDO 1105 ENDDO 1106 1107 ELSE 1108 1109 DO k=1, KLEV 1110 DO i=1, KLON 1111 tau_allaer(i,k,mrfspecies,inu)=0. 1112 piz_allaer(i,k,mrfspecies,inu)=0. 1113 cg_allaer(i,k,mrfspecies,inu)=0. 1114 ENDDO 1115 ENDDO 1116 1117 ENDIF 1118 1119 ENDDO 956 1120 ENDDO 957 1121
Note: See TracChangeset
for help on using the changeset viewer.