Ignore:
Timestamp:
Sep 23, 2009, 4:47:40 PM (15 years ago)
Author:
Laurent Fairhead
Message:
  • En deconnectant les aérosols (ok_ade=ok_aie=n) on a les mêmes

résultats avant et après les modifs.

  • preindustrial readin fields are used to compute natural aerosol fields

to allow for clean double calls to radiation

  • full forcing diagnostics (NAT, ANT, ZERO, Cloud forcing, CS,AS) are

activated with lev_histmth 4, If lev_histmth is not 4, the call to the
radiation is minimized, for efficiency, but ade and aie are computed and
applied (however for species wise forcing one would need to do
difference runs) (still quite a bit new forcing info, requires probably

some more explanation)

  • there is a hardcoded key in sw_aeroAR4.F90 which lets you choose to use the zero aerosol, or natural aerosol perturbation acting on the meteorology, but still would put out the full forcing diagnostics.
  • aod fields from offline aerosol fields are also output in histmth for

all aerosol tracers read in and available for evaluation

  • aeropt contains the ss humidity correction from nicolas&yves
File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_2bands.F90

    r1237 r1246  
    55     pdel, m_allaer, delt, RHcl, &
    66     tau_allaer, piz_allaer, &
    7      cg_allaer, fractnat_allaer, &
     7     cg_allaer, m_allaer_pi, &
    88     flag_aerosol, pplay, t_seri, presnivs)
    99
     
    2727  REAL,                           INTENT(in)  :: delt
    2828  REAL, DIMENSION(klon,klev,naero_spc),   INTENT(in)  :: m_allaer
     29!RAF
     30  REAL, DIMENSION(klon,klev,naero_spc),   INTENT(in)  :: m_allaer_pi
    2931  REAL, DIMENSION(klon,klev),     INTENT(in)  :: RHcl       ! humidite relative ciel clair
    30   REAL, DIMENSION(klon,naero_tot),INTENT(in)  :: fractnat_allaer
     32!RAF  REAL, DIMENSION(klon,naero_tot),INTENT(in)  :: fractnat_allaer
    3133  INTEGER,                        INTENT(in)  :: flag_aerosol
    3234  REAL, DIMENSION(klon,klev),     INTENT(in)  :: pplay
     
    4446  !
    4547  REAL, DIMENSION(klon,klev,naero_tot,nbands) ::  tau_ae
     48!RAF
     49  REAL, DIMENSION(klon,klev,naero_tot,nbands) ::  tau_ae_pi
    4650  REAL, DIMENSION(klon,klev,naero_tot,nbands) ::  piz_ae
    4751  REAL, DIMENSION(klon,klev,naero_tot,nbands) ::  cg_ae
     
    5357
    5458  INTEGER, PARAMETER :: nbre_RH=12
    55   INTEGER, PARAMETER :: naero_soluble=7    ! 1- BC soluble; 2- POM soluble; 3- SO4.
     59  INTEGER, PARAMETER :: naero_soluble=7    ! 1- BC soluble; 2- POM soluble; 3- SO4. acc. 4- SO4 coarse
     60                                           ! 5- seasalt super coarse  6- seasalt coarse   7- seasalt acc.
    5661  INTEGER, PARAMETER :: naero_insoluble=3  ! 1- Dust; 2- BC insoluble; 3- POM insoluble
    5762  LOGICAL, SAVE :: firstcall=.TRUE.
     
    101106  INTEGER :: nb_aer
    102107  REAL, DIMENSION(klon,klev,naero_spc) :: mass_temp
     108!RAF
     109  REAL, DIMENSION(klon,klev,naero_spc) :: mass_temp_pi
    103110
    104111  !
     
    563570        zrho=pplay(i,k)/t_seri(i,k)/RD                    ! kg/m3
    564571        mass_temp(i,k,:) = m_allaer(i,k,:) / zrho / 1.e+9
     572!RAF zrho
     573        mass_temp_pi(i,k,:) = m_allaer_pi(i,k,:) / zrho / 1.e+9
    565574     ENDDO
    566575  ENDDO
     
    615624
    616625  tau_ae(:,:,:,:)=0.
     626!RAF
     627  tau_ae_pi(:,:,:,:)=0.
    617628  piz_ae(:,:,:,:)=0.
    618629  cg_ae(:,:,:,:)=0.
     
    749760                      mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt* &
    750761                                         tau_ae2b_int(i,k,inu)*fac
     762!RAF fac
     763                  tau_ae_pi(i,k,aerosol_name(m),inu) = &
     764                     mass_temp_pi(i,k,spsol)*1000.*zdp1(i,k)*delt* &
     765                                           tau_ae2b_int(i,k,inu)*fac
    751766
    752767              ELSE                                                    ! For all aerosol insoluble components
     
    758773                      mass_temp(i,k,naero_soluble+ spinsol)*1000.*zdp1(i,k)* &
    759774                                               delt*tau_ae2b_int(i,k,inu)*fac
     775!RAF fac
     776                 tau_ae_pi(i,k,aerosol_name(m),inu) = &
     777                    mass_temp_pi(i,k,naero_soluble+ spinsol)*1000.*zdp1(i,k)* &
     778                                                 delt*tau_ae2b_int(i,k,inu)*fac
    760779              ENDIF
    761780
     
    807826
    808827              ELSEIF (mrfspecies .EQ. 3) THEN             ! = natural aerosol NAT
    809                  tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASSO4M,inu)*fractnat_allaer(i,id_ASSO4M)+ &
    810                       tau_ae(i,k,id_CSSO4M,inu)*fractnat_allaer(i,id_CSSO4M)+ &
    811                       tau_ae(i,k,id_ASBCM,inu)*fractnat_allaer(i,id_ASBCM)+ &
    812                       tau_ae(i,k,id_AIBCM,inu)*fractnat_allaer(i,id_AIBCM)+ &
    813                       tau_ae(i,k,id_ASPOMM,inu)*fractnat_allaer(i,id_ASPOMM)+ &
    814                       tau_ae(i,k,id_AIPOMM,inu)*fractnat_allaer(i,id_AIPOMM)+ &
    815                       tau_ae(i,k,id_ASSSM,inu)*fractnat_allaer(i,id_ASSSM)+ &
    816                       tau_ae(i,k,id_CSSSM,inu)*fractnat_allaer(i,id_CSSSM)+ &
    817                       tau_ae(i,k,id_SSSSM,inu)*fractnat_allaer(i,id_SSSSM)+ &
    818                       tau_ae(i,k,id_CIDUSTM,inu)*fractnat_allaer(i,id_CIDUSTM)
     828!RAF
     829                 tau_allaer(i,k,mrfspecies,inu)=tau_ae_pi(i,k,id_ASSO4M,inu)+ &
     830                      tau_ae_pi(i,k,id_CSSO4M,inu)+ &
     831                      tau_ae_pi(i,k,id_ASBCM,inu)+ &
     832                      tau_ae_pi(i,k,id_AIBCM,inu)+ &
     833                      tau_ae_pi(i,k,id_ASPOMM,inu)+ &
     834                      tau_ae_pi(i,k,id_AIPOMM,inu)+ &   
     835                      tau_ae_pi(i,k,id_ASSSM,inu)+ &
     836                      tau_ae_pi(i,k,id_CSSSM,inu)+ &
     837                      tau_ae_pi(i,k,id_SSSSM,inu)+ &
     838                      tau_ae_pi(i,k,id_CIDUSTM,inu)
    819839                 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20)
    820840
    821                  piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASSO4M,inu)*fractnat_allaer(i,id_ASSO4M)*piz_ae(i,k,id_ASSO4M,inu)+ &
    822                       tau_ae(i,k,id_CSSO4M,inu)*fractnat_allaer(i,id_CSSO4M)*piz_ae(i,k,id_CSSO4M,inu)+ &
    823                       tau_ae(i,k,id_ASBCM,inu)*fractnat_allaer(i,id_ASBCM)*piz_ae(i,k,id_ASBCM,inu)+ &
    824                       tau_ae(i,k,id_AIBCM,inu)*fractnat_allaer(i,id_AIBCM)*piz_ae(i,k,id_AIBCM,inu)+ &
    825                       tau_ae(i,k,id_ASPOMM,inu)*fractnat_allaer(i,id_ASPOMM)*piz_ae(i,k,id_ASPOMM,inu)+ &
    826                       tau_ae(i,k,id_AIPOMM,inu)*fractnat_allaer(i,id_AIPOMM)*piz_ae(i,k,id_AIPOMM,inu)+ &       
    827                       tau_ae(i,k,id_ASSSM,inu)*fractnat_allaer(i,id_ASSSM)*piz_ae(i,k,id_ASSSM,inu)+ &
    828                       tau_ae(i,k,id_CSSSM,inu)*fractnat_allaer(i,id_CSSSM)*piz_ae(i,k,id_CSSSM,inu)+ &
    829                       tau_ae(i,k,id_SSSSM,inu)*fractnat_allaer(i,id_SSSSM)*piz_ae(i,k,id_SSSSM,inu)+ &
    830                       tau_ae(i,k,id_CIDUSTM,inu)*fractnat_allaer(i,id_CIDUSTM)*piz_ae(i,k,id_CIDUSTM,inu)) &
     841                 piz_allaer(i,k,mrfspecies,inu)=(tau_ae_pi(i,k,id_ASSO4M,inu)*piz_ae(i,k,id_ASSO4M,inu)+ &
     842                      tau_ae_pi(i,k,id_CSSO4M,inu)*piz_ae(i,k,id_CSSO4M,inu)+ &
     843                      tau_ae_pi(i,k,id_ASBCM,inu)*piz_ae(i,k,id_ASBCM,inu)+ &
     844                      tau_ae_pi(i,k,id_AIBCM,inu)*piz_ae(i,k,id_AIBCM,inu)+ &
     845                      tau_ae_pi(i,k,id_ASPOMM,inu)*piz_ae(i,k,id_ASPOMM,inu)+ &
     846                      tau_ae_pi(i,k,id_AIPOMM,inu)*piz_ae(i,k,id_AIPOMM,inu)+ &
     847                      tau_ae_pi(i,k,id_ASSSM,inu)*piz_ae(i,k,id_ASSSM,inu)+ &
     848                      tau_ae_pi(i,k,id_CSSSM,inu)*piz_ae(i,k,id_CSSSM,inu)+ &
     849                      tau_ae_pi(i,k,id_SSSSM,inu)*piz_ae(i,k,id_SSSSM,inu)+ &
     850                      tau_ae_pi(i,k,id_CIDUSTM,inu)*piz_ae(i,k,id_CIDUSTM,inu)) &
    831851                      /tau_allaer(i,k,mrfspecies,inu)
    832852                 piz_allaer(i,k,mrfspecies,inu)=MAX(piz_allaer(i,k,mrfspecies,inu),1e-20)
    833853
    834854                 cg_allaer(i,k,mrfspecies,inu)=(&
    835                       tau_ae(i,k,id_ASSO4M,inu)*fractnat_allaer(i,id_ASSO4M)*piz_ae(i,k,id_ASSO4M,inu)*cg_ae(i,k,id_ASSO4M,inu)+ &
    836                       tau_ae(i,k,id_CSSO4M,inu)*fractnat_allaer(i,id_CSSO4M)*piz_ae(i,k,id_CSSO4M,inu)*cg_ae(i,k,id_CSSO4M,inu)+ &
    837                       tau_ae(i,k,id_ASBCM,inu)*fractnat_allaer(i,id_ASBCM)*piz_ae(i,k,id_ASBCM,inu)*cg_ae(i,k,id_ASBCM,inu)+ &
    838                       tau_ae(i,k,id_AIBCM,inu)*fractnat_allaer(i,id_AIBCM)*piz_ae(i,k,id_AIBCM,inu)*cg_ae(i,k,id_AIBCM,inu)+ &
    839                       tau_ae(i,k,id_ASPOMM,inu)*fractnat_allaer(i,id_ASPOMM)*piz_ae(i,k,id_ASPOMM,inu)*cg_ae(i,k,id_ASPOMM,inu)+ &
    840                       tau_ae(i,k,id_AIPOMM,inu)*fractnat_allaer(i,id_AIPOMM)*piz_ae(i,k,id_AIPOMM,inu)*cg_ae(i,k,id_AIPOMM,inu)+ &
    841                       tau_ae(i,k,id_ASSSM,inu)*fractnat_allaer(i,id_ASSSM)*piz_ae(i,k,id_ASSSM,inu)*cg_ae(i,k,id_ASSSM,inu)+ &
    842                       tau_ae(i,k,id_CSSSM,inu)*fractnat_allaer(i,id_CSSSM)*piz_ae(i,k,id_CSSSM,inu)*cg_ae(i,k,id_CSSSM,inu)+ &
    843                       tau_ae(i,k,id_SSSSM,inu)*fractnat_allaer(i,id_SSSSM)*piz_ae(i,k,id_SSSSM,inu)*cg_ae(i,k,id_SSSSM,inu)+ &
    844                       tau_ae(i,k,id_CIDUSTM,inu)*fractnat_allaer(i,id_CIDUSTM)*piz_ae(i,k,id_CIDUSTM,inu)*&
     855                      tau_ae_pi(i,k,id_ASSO4M,inu)*piz_ae(i,k,id_ASSO4M,inu)*cg_ae(i,k,id_ASSO4M,inu)+ &
     856                      tau_ae_pi(i,k,id_CSSO4M,inu)*piz_ae(i,k,id_CSSO4M,inu)*cg_ae(i,k,id_CSSO4M,inu)+ &
     857                      tau_ae_pi(i,k,id_ASBCM,inu)*piz_ae(i,k,id_ASBCM,inu)*cg_ae(i,k,id_ASBCM,inu)+ &
     858                      tau_ae_pi(i,k,id_AIBCM,inu)*piz_ae(i,k,id_AIBCM,inu)*cg_ae(i,k,id_AIBCM,inu)+ &
     859                      tau_ae_pi(i,k,id_ASPOMM,inu)*piz_ae(i,k,id_ASPOMM,inu)*cg_ae(i,k,id_ASPOMM,inu)+ &
     860                      tau_ae_pi(i,k,id_AIPOMM,inu)*piz_ae(i,k,id_AIPOMM,inu)*cg_ae(i,k,id_AIPOMM,inu)+ &
     861                      tau_ae_pi(i,k,id_ASSSM,inu)*piz_ae(i,k,id_ASSSM,inu)*cg_ae(i,k,id_ASSSM,inu)+ &
     862                      tau_ae_pi(i,k,id_CSSSM,inu)*piz_ae(i,k,id_CSSSM,inu)*cg_ae(i,k,id_CSSSM,inu)+ &
     863                      tau_ae_pi(i,k,id_SSSSM,inu)*piz_ae(i,k,id_SSSSM,inu)*cg_ae(i,k,id_SSSSM,inu)+ &
     864                      tau_ae_pi(i,k,id_CIDUSTM,inu)*piz_ae(i,k,id_CIDUSTM,inu)*&
    845865                      cg_ae(i,k,id_CIDUSTM,inu))/ &
    846866                      (tau_allaer(i,k,mrfspecies,inu)*piz_allaer(i,k,mrfspecies,inu))
    847867
     868!END RAF
    848869              ELSEIF (mrfspecies .EQ. 4) THEN             ! = BC
    849870                 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASBCM,inu)+tau_ae(i,k,id_AIBCM,inu)
Note: See TracChangeset for help on using the changeset viewer.