Ignore:
Timestamp:
Mar 14, 2017, 11:10:55 PM (8 years ago)
Author:
oboucher
Message:

Climatological ASNO3M, CSNO3M, CINO3M aerosol fields can be read and fed
through the aerosol routines for optical properties. The get_aero_fromfile
routine needed some change so that it doesn't stop if a particular field
is not there.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/readaerosol_optic.F90

    r2642 r2823  
    1616  USE phys_local_var_mod, only: sconcso4,sconcno3,sconcoa,sconcbc,sconcss,sconcdust, &
    1717      concso4,concno3,concoa,concbc,concss,concdust,loadso4,loadoa,loadbc,loadss,loaddust, &
    18       load_tmp1,load_tmp2,load_tmp3,load_tmp4,load_tmp5,load_tmp6,load_tmp7
     18      load_tmp1,load_tmp2,load_tmp3
    1919  IMPLICIT NONE
    2020
     
    9393
    9494     ! Get bc aerosol distribution
    95      CALL readaerosol_interp(id_ASBCM_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, bcsol, bcsol_pi, load_tmp1 )
    96      CALL readaerosol_interp(id_AIBCM_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, bcins, bcins_pi, load_tmp2 )
     95     CALL readaerosol_interp(id_ASBCM_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, bcsol, bcsol_pi, load_tmp1)
     96     CALL readaerosol_interp(id_AIBCM_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, bcins, bcins_pi, load_tmp2)
    9797     loadbc(:)=load_tmp1(:)+load_tmp2(:)
    9898  ELSE
     
    107107       flag_aerosol .EQ. 6 ) THEN
    108108
    109      CALL readaerosol_interp(id_ASPOMM_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, pomsol, pomsol_pi, load_tmp3)
    110      CALL readaerosol_interp(id_AIPOMM_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, pomins, pomins_pi, load_tmp4)
    111      loadoa(:)=load_tmp3(:)+load_tmp4(:)
     109     CALL readaerosol_interp(id_ASPOMM_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, pomsol, pomsol_pi, load_tmp1)
     110     CALL readaerosol_interp(id_AIPOMM_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, pomins, pomins_pi, load_tmp2)
     111     loadoa(:)=load_tmp1(:)+load_tmp2(:)
    112112  ELSE
    113113     pomsol(:,:) = 0. ; pomsol_pi(:,:) = 0.
     
    121121      flag_aerosol .EQ. 6 ) THEN
    122122
    123       CALL readaerosol_interp(id_SSSSM_phy ,itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, sssupco, sssupco_pi, load_tmp5)
    124       CALL readaerosol_interp(id_CSSSM_phy ,itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, sscoarse,sscoarse_pi, load_tmp6)
    125       CALL readaerosol_interp(id_ASSSM_phy ,itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, ssacu, ssacu_pi, load_tmp7)
    126      loadss(:)=load_tmp5(:)+load_tmp6(:)+load_tmp7(:)
    127   ELSE
    128      sscoarse(:,:) = 0. ; sscoarse_pi(:,:) = 0.
    129      ssacu(:,:)    = 0. ; ssacu_pi(:,:) = 0.
    130      sssupco(:,:)  = 0. ; sssupco_pi = 0.
    131      loadss=0.
     123      CALL readaerosol_interp(id_SSSSM_phy ,itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, sssupco, sssupco_pi,  load_tmp1)
     124      CALL readaerosol_interp(id_CSSSM_phy ,itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, sscoarse,sscoarse_pi, load_tmp2)
     125      CALL readaerosol_interp(id_ASSSM_phy ,itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, ssacu,   ssacu_pi,    load_tmp3)
     126      loadss(:)=load_tmp1(:)+load_tmp2(:)+load_tmp3(:)
     127  ELSE
     128      sscoarse(:,:) = 0. ; sscoarse_pi(:,:) = 0.
     129      ssacu(:,:)    = 0. ; ssacu_pi(:,:) = 0.
     130      sssupco(:,:)  = 0. ; sssupco_pi = 0.
     131      loadss=0.
    132132  ENDIF
    133133
     
    137137
    138138      CALL readaerosol_interp(id_CIDUSTM_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, cidust, cidust_pi, loaddust)
    139 
    140139  ELSE
    141140      cidust(:,:) = 0. ; cidust_pi(:,:) = 0.
     
    174173  m_allaer_pi(:,:,id_CSNO3M_phy) = 0.0
    175174  m_allaer_pi(:,:,id_CINO3M_phy) = 0.0
    176 
    177175!
    178176! Calculate the total mass of all soluble aersosols
     
    214212     
    215213  END IF
    216 
    217214
    218215! Diagnostics calculation for CMIP5 protocol
     
    230227  concdust(:,:)=m_allaer(:,:,id_CIDUSTM_phy)*1.e-9
    231228
    232 
    233229END SUBROUTINE readaerosol_optic
Note: See TracChangeset for help on using the changeset viewer.