Ignore:
Timestamp:
Jan 27, 2016, 10:42:32 AM (8 years ago)
Author:
idelkadi
Message:

Mise a jour du simulateur COSP (passage de la version v3.2 a la version v1.4) :

  • mise a jour des sources pour ISCCP, CALIPSO et PARASOL
  • prise en compte des changements de phases pour les nuages (Calipso)
  • rajout de plusieurs diagnostiques (fraction nuageuse en fonction de la temperature, ...)

http://lmdz.lmd.jussieu.fr/Members/aidelkadi/cosp

File:
1 edited

Legend:

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

    r2345 r2428  
    1818
    1919  SUBROUTINE cosp_output_write(Nlevlmdz, Npoints, Ncolumns, itap, dtime, freq_COSP, &
    20                                cfg, gbx, vgrid, sglidar, stlidar, isccp)
     20                               cfg, gbx, vgrid, sglidar, sgradar, stlidar, stradar, &
     21                               isccp, misr, modis)
    2122
    2223    USE ioipsl
     
    3536  type(cosp_gridbox)    :: gbx     ! Gridbox information. Input for COSP
    3637  type(cosp_sglidar)    :: sglidar ! Output from lidar simulator
     38  type(cosp_sgradar)    :: sgradar ! Output from radar simulator
    3739  type(cosp_isccp)      :: isccp   ! Output from ISCCP simulator
    3840  type(cosp_lidarstats) :: stlidar ! Summary statistics from lidar simulator
     41  type(cosp_radarstats) :: stradar
     42  type(cosp_misr)       :: misr    ! Output from MISR
     43  type(cosp_modis)      :: modis   ! Outputs from Modis
    3944  type(cosp_vgrid)      :: vgrid   ! Information on vertical grid of stats
    4045
     
    126131   enddo
    127132
     133! AI 11 / 2015
     134
     135   where(stlidar%parasolrefl == R_UNDEF) stlidar%parasolrefl = 0.0
     136   where(stlidar%lidarcldtmp == R_UNDEF) stlidar%lidarcldtmp = 0.0
     137   where(stlidar%cldlayerphase == R_UNDEF) stlidar%cldlayerphase = 0.0
     138   where(stlidar%lidarcldphase == R_UNDEF) stlidar%lidarcldphase = 0.0
     139   where(stlidar%lidarcldtmp == R_UNDEF) stlidar%lidarcldtmp = 0.0
     140   
     141
    128142   print*,'Appel histwrite2d_cosp'
    129143   CALL histwrite2d_cosp(o_cllcalipso,stlidar%cldlayer(:,1))
     
    132146   CALL histwrite2d_cosp(o_cltcalipso,stlidar%cldlayer(:,4))
    133147   CALL histwrite3d_cosp(o_clcalipso,stlidar%lidarcld,nvert)
     148   CALL histwrite3d_cosp(o_clcalipsotmp,stlidar%lidarcldtmp(:,:,1),nverttemp)
     149
     150   CALL histwrite2d_cosp(o_cllcalipsoice,stlidar%cldlayerphase(:,1,1))
     151   CALL histwrite2d_cosp(o_clhcalipsoice,stlidar%cldlayerphase(:,3,1))
     152   CALL histwrite2d_cosp(o_clmcalipsoice,stlidar%cldlayerphase(:,2,1))
     153   CALL histwrite2d_cosp(o_cltcalipsoice,stlidar%cldlayerphase(:,4,1))
     154   CALL histwrite3d_cosp(o_clcalipsoice,stlidar%lidarcldphase(:,:,1),nvert)
     155   CALL histwrite3d_cosp(o_clcalipsotmpice,stlidar%lidarcldtmp(:,:,2),nverttemp)
     156
     157   CALL histwrite2d_cosp(o_cllcalipsoliq,stlidar%cldlayerphase(:,1,2))
     158   CALL histwrite2d_cosp(o_clhcalipsoliq,stlidar%cldlayerphase(:,3,2))
     159   CALL histwrite2d_cosp(o_clmcalipsoliq,stlidar%cldlayerphase(:,2,2))
     160   CALL histwrite2d_cosp(o_cltcalipsoliq,stlidar%cldlayerphase(:,4,2))
     161   CALL histwrite3d_cosp(o_clcalipsoliq,stlidar%lidarcldphase(:,:,2),nvert)
     162   CALL histwrite3d_cosp(o_clcalipsotmpliq,stlidar%lidarcldtmp(:,:,3),nverttemp)
     163
     164   CALL histwrite2d_cosp(o_cllcalipsoun,stlidar%cldlayerphase(:,1,3))
     165   CALL histwrite2d_cosp(o_clhcalipsoun,stlidar%cldlayerphase(:,3,3))
     166   CALL histwrite2d_cosp(o_clmcalipsoun,stlidar%cldlayerphase(:,2,3))
     167   CALL histwrite2d_cosp(o_cltcalipsoun,stlidar%cldlayerphase(:,4,3))
     168   CALL histwrite3d_cosp(o_clcalipsoice,stlidar%lidarcldphase(:,:,3),nvert)
     169   CALL histwrite3d_cosp(o_clcalipsotmpun,stlidar%lidarcldtmp(:,:,4),nverttemp)
    134170
    135171   do icl=1,SR_BINS
     
    160196 endif !Lidar
    161197
     198 if (cfg%Lradar_sim) then
     199   do icl=1,Ncolumns
     200      CALL histwrite3d_cosp(o_dbze94,sgradar%Ze_tot(:,icl,:),nvertmcosp,icl)
     201   enddo
     202   do icl=1,DBZE_BINS
     203    CALL histwrite3d_cosp(o_cfadDbze94,stradar%cfad_ze(:,icl,:),nvert,icl)
     204   enddo
     205 endif
     206
     207 if (cfg%Llidar_sim .and. cfg%Lradar_sim) then
     208   where(stradar%lidar_only_freq_cloud == R_UNDEF) &
     209                           stradar%lidar_only_freq_cloud = 0.0
     210   CALL histwrite3d_cosp(o_clcalipso2,stradar%lidar_only_freq_cloud,nvert)
     211 endif
     212
    162213 if (cfg%Lisccp_sim) then
    163214
    164215! Traitement des valeurs indefinies
    165216   do ip = 1,Npoints
    166     if(isccp%totalcldarea(ip).eq.-1.E+30)then
     217    if(isccp%totalcldarea(ip).eq.R_UNDEF)then
    167218      isccp%totalcldarea(ip)=Cosp_fill_value
    168219    endif
    169     if(isccp%meanptop(ip).eq.-1.E+30)then
     220    if(isccp%meanptop(ip).eq.R_UNDEF)then
    170221      isccp%meanptop(ip)=Cosp_fill_value
    171222    endif
    172     if(isccp%meantaucld(ip).eq.-1.E+30)then
     223    if(isccp%meantaucld(ip).eq.R_UNDEF)then
    173224      isccp%meantaucld(ip)=Cosp_fill_value
    174225    endif
    175     if(isccp%meanalbedocld(ip).eq.-1.E+30)then
     226    if(isccp%meanalbedocld(ip).eq.R_UNDEF)then
    176227      isccp%meanalbedocld(ip)=Cosp_fill_value
    177228    endif
    178     if(isccp%meantb(ip).eq.-1.E+30)then
     229    if(isccp%meantb(ip).eq.R_UNDEF)then
    179230      isccp%meantb(ip)=Cosp_fill_value
    180231    endif
    181     if(isccp%meantbclr(ip).eq.-1.E+30)then
     232    if(isccp%meantbclr(ip).eq.R_UNDEF)then
    182233      isccp%meantbclr(ip)=Cosp_fill_value
    183234    endif
     
    185236    do k=1,7
    186237     do ii=1,7
    187      if(isccp%fq_isccp(ip,ii,k).eq.-1.E+30)then
     238     if(isccp%fq_isccp(ip,ii,k).eq.R_UNDEF)then
    188239      isccp%fq_isccp(ip,ii,k)=Cosp_fill_value
    189240     endif
     
    192243
    193244    do ii=1,Ncolumns
    194      if(isccp%boxtau(ip,ii).eq.-1.E+30)then
     245     if(isccp%boxtau(ip,ii).eq.R_UNDEF)then
    195246       isccp%boxtau(ip,ii)=Cosp_fill_value
    196247     endif
     
    198249
    199250    do ii=1,Ncolumns
    200      if(isccp%boxptop(ip,ii).eq.-1.E+30)then
     251     if(isccp%boxptop(ip,ii).eq.R_UNDEF)then
    201252       isccp%boxptop(ip,ii)=Cosp_fill_value
    202253     endif
     
    217268   CALL histwrite2d_cosp(o_meantbclrisccp,isccp%meantbclr)
    218269 endif ! Isccp
     270
     271! MISR simulator
     272 if (cfg%Lmisr_sim) then
     273   do ip=1,Npoints
     274     do ii=1,7
     275       do k=1,MISR_N_CTH
     276        if(misr%fq_MISR(ip,ii,k).eq.R_UNDEF)then
     277              misr%fq_MISR(ip,ii,k)=Cosp_fill_value
     278        endif
     279       enddo
     280     enddo
     281   enddo
     282
     283   do icl=1,7
     284      CALL histwrite3d_cosp(o_clMISR,misr%fq_MISR(:,icl,:),nvertmisr,icl)
     285   enddo
     286 endif
     287
     288! Modis simulator
     289 if (cfg%Lmodis_sim) then
     290
     291  do ip=1,Npoints
     292    if(modis%Cloud_Fraction_Low_Mean(ip).eq.R_UNDEF)then
     293       modis%Cloud_Fraction_Low_Mean(ip)=Cosp_fill_value
     294    endif
     295    if(modis%Cloud_Fraction_High_Mean(ip).eq.R_UNDEF)then
     296       modis%Cloud_Fraction_High_Mean(ip)=Cosp_fill_value
     297    endif
     298    if(modis%Cloud_Fraction_Mid_Mean(ip).eq.R_UNDEF)then
     299       modis%Cloud_Fraction_Mid_Mean(ip)=Cosp_fill_value
     300    endif
     301    if(modis%Cloud_Fraction_Total_Mean(ip).eq.R_UNDEF)then
     302       modis%Cloud_Fraction_Total_Mean(ip)=Cosp_fill_value
     303    endif
     304    if(modis%Cloud_Fraction_Water_Mean(ip).eq.R_UNDEF)then
     305       modis%Cloud_Fraction_Water_Mean(ip)=Cosp_fill_value
     306    endif
     307    if(modis%Cloud_Fraction_Ice_Mean(ip).eq.R_UNDEF)then
     308       modis%Cloud_Fraction_Ice_Mean(ip)=Cosp_fill_value
     309    endif
     310    if(modis%Optical_Thickness_Total_Mean(ip).eq.R_UNDEF)then
     311       modis%Optical_Thickness_Total_Mean(ip)=Cosp_fill_value
     312    endif
     313    if(modis%Optical_Thickness_Water_Mean(ip).eq.R_UNDEF)then
     314       modis%Optical_Thickness_Water_Mean(ip)=Cosp_fill_value
     315    endif
     316    if(modis%Optical_Thickness_Ice_Mean(ip).eq.R_UNDEF)then
     317       modis%Optical_Thickness_Ice_Mean(ip)=Cosp_fill_value
     318    endif
     319    if(modis%Cloud_Particle_Size_Water_Mean(ip).eq.R_UNDEF)then
     320       modis%Cloud_Particle_Size_Water_Mean(ip)=Cosp_fill_value
     321    endif
     322    if(modis%Cloud_Top_Pressure_Total_Mean(ip).eq.R_UNDEF)then
     323       modis%Cloud_Top_Pressure_Total_Mean(ip)=Cosp_fill_value
     324    endif
     325    if(modis%Liquid_Water_Path_Mean(ip).eq.R_UNDEF)then
     326       modis%Liquid_Water_Path_Mean(ip)=Cosp_fill_value
     327    endif
     328    if(modis%Ice_Water_Path_Mean(ip).eq.R_UNDEF)then
     329       modis%Ice_Water_Path_Mean(ip)=Cosp_fill_value
     330    endif
     331
     332  enddo
     333   
     334   CALL histwrite2d_cosp(o_cllmodis,modis%Cloud_Fraction_Low_Mean)
     335   CALL histwrite2d_cosp(o_clhmodis,modis%Cloud_Fraction_High_Mean)
     336   CALL histwrite2d_cosp(o_clmmodis,modis%Cloud_Fraction_Mid_Mean)
     337   CALL histwrite2d_cosp(o_cltmodis,modis%Cloud_Fraction_Total_Mean)
     338   CALL histwrite2d_cosp(o_clwmodis,modis%Cloud_Fraction_Water_Mean)
     339   CALL histwrite2d_cosp(o_climodis,modis%Cloud_Fraction_Ice_Mean)
     340   CALL histwrite2d_cosp(o_tautmodis,modis%Optical_Thickness_Total_Mean)
     341   CALL histwrite2d_cosp(o_tauwmodis,modis%Optical_Thickness_Water_Mean)
     342   CALL histwrite2d_cosp(o_tauimodis,modis%Optical_Thickness_Ice_Mean)
     343   CALL histwrite2d_cosp(o_tautlogmodis,modis%Optical_Thickness_Total_LogMean) 
     344   CALL histwrite2d_cosp(o_tauwlogmodis,modis%Optical_Thickness_Water_LogMean)
     345   CALL histwrite2d_cosp(o_tauilogmodis,modis%Optical_Thickness_Ice_LogMean)
     346   CALL histwrite2d_cosp(o_reffclwmodis,modis%Cloud_Particle_Size_Water_Mean)
     347   CALL histwrite2d_cosp(o_reffclimodis,modis%Cloud_Particle_Size_Ice_Mean)
     348   CALL histwrite2d_cosp(o_pctmodis,modis%Cloud_Top_Pressure_Total_Mean)
     349   CALL histwrite2d_cosp(o_lwpmodis,modis%Liquid_Water_Path_Mean)
     350   CALL histwrite2d_cosp(o_iwpmodis,modis%Ice_Water_Path_Mean)
     351
     352   do ip=1,Npoints
     353     do ii=1,7
     354       do k=1,7
     355       if(modis%Optical_Thickness_vs_Cloud_Top_Pressure(ip,ii,k).eq.R_UNDEF)then
     356          modis%Optical_Thickness_vs_Cloud_Top_Pressure(ip,ii,k)=0.
     357        endif
     358       enddo
     359     enddo
     360    enddo
     361
     362   do icl=1,7
     363   CALL histwrite3d_cosp(o_clmodis, &
     364     modis%Optical_Thickness_vs_Cloud_Top_Pressure(:,icl,:),nvertisccp,icl)           
     365   enddo
     366 endif
    219367
    220368 IF(.NOT.cosp_varsdefined) THEN
     
    362510          klevs=Ncolout
    363511          nam_axvert="column"
     512      ELSE IF (nvertsave.eq.nverttemp(iff)) THEN
     513          klevs=LIDAR_NTEMP
     514          nam_axvert="temp"
     515      ELSE IF (nvertsave.eq.nvertmisr(iff)) THEN
     516          klevs=MISR_N_CTH
     517           nam_axvert="cth16"
    364518      ELSE
    365519           klevs=Nlevout
     
    494648#ifdef CPP_XIOS
    495649      IF (ok_all_xml) THEN
    496         if (prt_level >= 10) then
     650        if (prt_level >= 1) then
    497651              WRITE(lunout,*)'xios_send_field variable ',var%name
    498652        endif
     
    596750    IF (ok_all_xml) THEN
    597751     CALL xios_send_field(nom, Field3d(:,:,1:nlev))
    598      IF (prt_level >= 9) WRITE(lunout,*)'xios_send_field ',var%name
     752     IF (prt_level >= 1) WRITE(lunout,*)'xios_send_field ',var%name
    599753    ENDIF
    600754#endif
Note: See TracChangeset for help on using the changeset viewer.