Ignore:
Timestamp:
Jun 12, 2015, 11:38:57 PM (9 years ago)
Author:
musat
Message:

RRTM :
Correction bug interface avec rrtm (radlwsw_m.F90)
Ajouter la possibilite d'utilsation d'anciennes proprites optique dans le cas RRTM 2bandes (readaerosol_optic_rrtm.F90)
Correction rrtm (rrtm_rtrn1a_140gp.F90)

COSP :
Modifications pour traiter les valeurs indefines :
mise a 0 en cas d'utilisation de IOIPSL
mise a la valeur recuperee dans .xml en cas d'utilisation de XIOS

Location:
LMDZ5/trunk/libf/phylmd
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/cosp/cosp_output_mod.F90

    r2268 r2297  
    8080           by the ISCCP Simulator","K", (/ ('', i=1, 3) /))
    8181
    82    LOGICAL, SAVE :: cosp_varsdefined = .FALSE. ! ug PAS THREADPRIVATE ET C'EST NORMAL
     82  LOGICAL, SAVE :: cosp_varsdefined = .FALSE. ! ug PAS THREADPRIVATE ET C'EST NORMAL
     83  REAL, SAVE  :: Cosp_fill_value
     84!$OMP THREADPRIVATE(Cosp_fill_value)
     85 
    8386
    8487CONTAINS
     
    172175
    173176#ifdef CPP_XIOS
     177   
     178! recuperer la valeur indefine Xios
     179    CALL xios_get_field_attr("clcalipso",default_value=Cosp_fill_value)
    174180    ! ug R\'eglage du calendrier xios
    175181    !Temps julian => an, mois, jour, heure
     
    230236
    231237      CALL histvert(cosp_nidfiles(iff),"column","column","count",Ncolumns,column_ax(1:Ncolumns),nvertcol(iff))
     238
     239!!! Valeur indefinie en cas IOIPSL
     240     Cosp_fill_value=0.
     241
    232242#endif
    233243
  • LMDZ5/trunk/libf/phylmd/cosp/cosp_output_write_mod.F90

    r2268 r2297  
    9292     do ip = 1,Npoints
    9393     if(stlidar%lidarcld(ip,k).eq.R_UNDEF)then
    94       stlidar%lidarcld(ip,k)=0.
     94      stlidar%lidarcld(ip,k)=Cosp_fill_value
    9595     endif
    9696     enddo
     
    9999      do ip = 1,Npoints
    100100       if(stlidar%cfad_sr(ip,ii,k).eq.R_UNDEF)then
    101         stlidar%cfad_sr(ip,ii,k)=0.
     101        stlidar%cfad_sr(ip,ii,k)=Cosp_fill_value
    102102       endif
    103103      enddo
     
    108108   do k = 1,Nlevlmdz
    109109     if(sglidar%beta_mol(ip,k).eq.R_UNDEF)then
    110       sglidar%beta_mol(ip,k)=0.
     110      sglidar%beta_mol(ip,k)=Cosp_fill_value
    111111     endif
    112112
    113113     do ii= 1,Ncolumns
    114114       if(sglidar%beta_tot(ip,ii,k).eq.R_UNDEF)then
    115         sglidar%beta_tot(ip,ii,k)=0.
     115        sglidar%beta_tot(ip,ii,k)=Cosp_fill_value
    116116       endif
    117117     enddo
     
    123123    do ip = 1,Npoints
    124124     if(stlidar%cldlayer(ip,k).eq.R_UNDEF)then
    125       stlidar%cldlayer(ip,k)=0.
     125      stlidar%cldlayer(ip,k)=Cosp_fill_value
    126126     endif
    127127    enddo
     
    167167   do ip = 1,Npoints
    168168    if(isccp%totalcldarea(ip).eq.-1.E+30)then
    169       isccp%totalcldarea(ip)=0.
     169      isccp%totalcldarea(ip)=Cosp_fill_value
    170170    endif
    171171    if(isccp%meanptop(ip).eq.-1.E+30)then
    172       isccp%meanptop(ip)=0.
     172      isccp%meanptop(ip)=Cosp_fill_value
    173173    endif
    174174    if(isccp%meantaucld(ip).eq.-1.E+30)then
    175       isccp%meantaucld(ip)=0.
     175      isccp%meantaucld(ip)=Cosp_fill_value
    176176    endif
    177177    if(isccp%meanalbedocld(ip).eq.-1.E+30)then
    178       isccp%meanalbedocld(ip)=0.
     178      isccp%meanalbedocld(ip)=Cosp_fill_value
    179179    endif
    180180    if(isccp%meantb(ip).eq.-1.E+30)then
    181       isccp%meantb(ip)=0.
     181      isccp%meantb(ip)=Cosp_fill_value
    182182    endif
    183183    if(isccp%meantbclr(ip).eq.-1.E+30)then
    184       isccp%meantbclr(ip)=0.
     184      isccp%meantbclr(ip)=Cosp_fill_value
    185185    endif
    186186
     
    188188     do ii=1,7
    189189     if(isccp%fq_isccp(ip,ii,k).eq.-1.E+30)then
    190       isccp%fq_isccp(ip,ii,k)=0.
     190      isccp%fq_isccp(ip,ii,k)=Cosp_fill_value
    191191     endif
    192192     enddo
     
    195195    do ii=1,Ncolumns
    196196     if(isccp%boxtau(ip,ii).eq.-1.E+30)then
    197        isccp%boxtau(ip,ii)=0.
     197       isccp%boxtau(ip,ii)=Cosp_fill_value
    198198     endif
    199199    enddo
     
    201201    do ii=1,Ncolumns
    202202     if(isccp%boxptop(ip,ii).eq.-1.E+30)then
    203        isccp%boxptop(ip,ii)=0.
     203       isccp%boxptop(ip,ii)=Cosp_fill_value
    204204     endif
    205205    enddo
  • LMDZ5/trunk/libf/phylmd/radlwsw_m.F90

    r2227 r2297  
    10001000          zalbpla(i)   = ZFSUP(i,klev+1)/ZFSDN(i,klev+1)
    10011001         ENDIF
    1002          zsollwdown(i)= ZFLDN(i,1)
     1002!!! 5 juin 2015
     1003!!! Correction MP bug RRTM
     1004         zsollwdown(i)= -1.*ZFLDN(i,1)
    10031005      ENDDO
    10041006!     print*,'OK2'
  • LMDZ5/trunk/libf/phylmd/rrtm/readaerosol_optic_rrtm.F90

    r2180 r2297  
    303303  END DO
    304304
     305! AI 12 juin 2015
     306! Modif Olivier pour prendre en compte des prop optiq aero ancienne pour RRTM 2bds
     307
     308IF (NSW.EQ.2) THEN
     309!--old aerosol properties
     310
     311   ! old aeropt_2bands for rrtm
     312   CALL aeropt_2bands( &
     313         pdel, m_allaer, pdtphys, rhcl, &
     314         tau_aero, piz_aero, cg_aero,   &
     315         m_allaer_pi, flag_aerosol, &
     316         pplay, t_seri, presnivs)
     317
     318   ! aeropt_5wv only for validation and diagnostics.
     319   CALL aeropt_5wv(                    &
     320        pdel, m_allaer,                &
     321        pdtphys, rhcl, aerindex,       &
     322        flag_aerosol, pplay, t_seri,   &
     323        tausum_aero, tau3d_aero, presnivs)
     324
     325ELSEIF (NSW.EQ.6) THEN
     326!--new aerosol propertie
    305327  ! aeropt_6bands for rrtm
    306328  CALL aeropt_6bands_rrtm( &
     
    316338       flag_aerosol, pplay, t_seri,   &
    317339       tausum_aero, tau3d_aero )
     340
     341ELSE
     342
     343    PRINT *,'Cas NSW non prevu pour RRTM - NSW=',NSW
     344    STOP
     345
     346ENDIF
    318347
    319348  ! Diagnostics calculation for CMIP5 protocol
  • LMDZ5/trunk/libf/phylmd/rrtm/rrtm_rtrn1a_140gp.F90

    r2150 r2297  
    496496!    Z_FACCMB2D(I_LEV-1) = Z_FACCLD1D(I_LEV-1) * Z_FACCLR2D(I_LEV) *&
    497497!     & (1.0_JPRB - Z_CLDFRAC(I_LEV+1)) 
    498     if (istcldd(i_lev).ne.1) then
     498    if (istcldd(i_lev).ne.1.and.i_lev.ne.0) then
    499499       z_faccmb1d(i_lev-1) = max(0.,min(z_cldfrac(i_lev+1)-z_cldfrac(i_lev), &
    500500                            z_cldfrac(i_lev-1)-z_cldfrac(i_lev)))
Note: See TracChangeset for help on using the changeset viewer.