Changeset 3172


Ignore:
Timestamp:
Feb 1, 2018, 12:08:25 PM (6 years ago)
Author:
idelkadi
Message:
  • Controle des sorties des champs Cosp en fonction du contenu des fichiers *.xml (pour CMIP)
  • Optimisation de la routine de sorties cosp_output_write.F90
  • Appel a la mise a jours du calendrier pour XIOS commente (car deja fait dans phys_output_write.F90)
Location:
LMDZ6/trunk/libf/phylmd/cosp
Files:
3 edited

Legend:

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

    r3152 r3172  
    2727#ifdef CPP_XIOS
    2828    USE wxios, only: wxios_closedef
    29     USE xios, only: xios_update_calendar
     29    USE xios, only: xios_update_calendar, xios_field_is_active
    3030#endif
    3131
     
    5050  real, dimension(Npoints,PARASOL_NREFL) :: parasolcrefl, Ncref
    5151
    52 
    5352#ifdef CPP_XIOS
    5453  missing_val=missing_cosp
     
    8382   endif
    8483
    85 #ifdef CPP_XIOS
    86  !$OMP MASTER
    87 IF (cosp_varsdefined) THEN
    88    if (prt_level >= 10) then
    89          WRITE(lunout,*)'Apell xios_update_calendar cosp_varsdefined iinitend ', &
    90                          cosp_varsdefined,iinitend
    91    endif
    92     CALL xios_update_calendar(itau_wcosp)
    93 ENDIF
    94   !$OMP END MASTER
    95   !$OMP BARRIER
    96 #endif
    97 
     84!!#ifdef CPP_XIOS
     85! !$OMP MASTER
     86!IF (cosp_varsdefined) THEN
     87!   if (prt_level >= 10) then
     88!         WRITE(lunout,*)'Apell xios_update_calendar cosp_varsdefined iinitend ', &
     89!                         cosp_varsdefined,iinitend
     90!   endif
     91!    CALL xios_update_calendar(itau_wcosp)
     92!ENDIF
     93!  !$OMP END MASTER
     94!  !$OMP BARRIER
     95!!#endif
     96
     97!!!! Sorties Calipso
    9898 if (cfg%Llidar_sim) then
    9999! Pb des valeurs indefinies, on les met a 0
    100100! A refaire proprement
    101   do k = 1,Nlevout
    102      do ip = 1,Npoints
    103      if(stlidar%lidarcld(ip,k).eq.R_UNDEF)then
    104       stlidar%lidarcld(ip,k)=missing_val
    105      endif
    106      if(stlidar%proftemp(ip,k).eq.R_UNDEF)then !TIBO
    107       stlidar%proftemp(ip,k)=missing_val       !TIBO
    108      endif                                     !TIBO
    109      enddo
    110 
    111      do ii= 1,SR_BINS
    112       do ip = 1,Npoints
    113        if(stlidar%cfad_sr(ip,ii,k).eq.R_UNDEF)then
    114         stlidar%cfad_sr(ip,ii,k)=missing_val
    115        endif
    116       enddo
    117      enddo
    118 
    119      do ii= 1,Ncolumns                               !TIBO
    120       do ip = 1,Npoints                              !TIBO
    121 !       if(stlidar%profSR(ip,ii,k).eq.R_UNDEF)then    !TIBO
    122 !        stlidar%profSR(ip,ii,k)=missing_val          !TIBO
    123        if(stlidar%profSR(ip,k,ii).eq.R_UNDEF)then    !TIBO2
    124         stlidar%profSR(ip,k,ii)=missing_val          !TIBO2
    125        endif                                         !TIBO
    126       enddo                                          !TIBO
    127      enddo                                           !TIBO
    128   enddo
    129 
    130   do ip = 1,Npoints
    131    do k = 1,Nlevlmdz
    132      if(sglidar%beta_mol(ip,k).eq.R_UNDEF)then
    133       sglidar%beta_mol(ip,k)=missing_val
    134      endif
    135 
    136      do ii= 1,Ncolumns
    137        if(sglidar%beta_tot(ip,ii,k).eq.R_UNDEF)then
    138         sglidar%beta_tot(ip,ii,k)=missing_val
    139        endif
    140      enddo
    141 
    142     enddo    !k = 1,Nlevlmdz
    143    enddo     !ip = 1,Npoints
    144 
    145    do k = 1,LIDAR_NCAT
    146     do ip = 1,Npoints
    147      if(stlidar%cldlayer(ip,k).eq.R_UNDEF)then
    148        stlidar%cldlayer(ip,k)=missing_val
    149      endif
    150     enddo
    151    enddo
    152 
    153    do k = 1,LIDAR_NTYPE                       !OPAQ
    154     do ip = 1,Npoints                         !OPAQ
    155      if(stlidar%cldtype(ip,k).eq.R_UNDEF)then !OPAQ
    156        stlidar%cldtype(ip,k)=missing_val      !OPAQ
    157      endif                                    !OPAQ
    158     enddo                                     !OPAQ
    159    enddo                                      !OPAQ
    160 
     101!  do k = 1,Nlevout
     102!     do ip = 1,Npoints
     103!     if(stlidar%lidarcld(ip,k).eq.R_UNDEF)then
     104!      stlidar%lidarcld(ip,k)=missing_val
     105!     endif
     106!     if(stlidar%proftemp(ip,k).eq.R_UNDEF)then !TIBO
     107!      stlidar%proftemp(ip,k)=missing_val       !TIBO
     108!     endif                                     !TIBO
     109!     enddo
     110
     111!     do ii= 1,Ncolumns                               !TIBO
     112!      do ip = 1,Npoints                              !TIBO
     113!!       if(stlidar%profSR(ip,ii,k).eq.R_UNDEF)then    !TIBO
     114!!        stlidar%profSR(ip,ii,k)=missing_val          !TIBO
     115!       if(stlidar%profSR(ip,k,ii).eq.R_UNDEF)then    !TIBO2
     116!        stlidar%profSR(ip,k,ii)=missing_val          !TIBO2
     117!       endif                                         !TIBO
     118!      enddo                                          !TIBO
     119!     enddo                                           !TIBO
     120!  enddo
     121
     122!  do ip = 1,Npoints
     123!   do k = 1,Nlevlmdz
     124!     if(sglidar%beta_mol(ip,k).eq.R_UNDEF)then
     125!      sglidar%beta_mol(ip,k)=missing_val
     126!     endif
     127
     128!     do ii= 1,Ncolumns
     129!       if(sglidar%beta_tot(ip,ii,k).eq.R_UNDEF)then
     130!        sglidar%beta_tot(ip,ii,k)=missing_val
     131!       endif
     132!     enddo
     133
     134!    enddo    !k = 1,Nlevlmdz
     135!   enddo     !ip = 1,Npoints
     136
     137!   do k = 1,LIDAR_NCAT
     138!    do ip = 1,Npoints
     139!     if(stlidar%cldlayer(ip,k).eq.R_UNDEF)then
     140!       stlidar%cldlayer(ip,k)=missing_val
     141!     endif
     142!    enddo
     143!   enddo
     144
     145!   do k = 1,LIDAR_NTYPE                       !OPAQ
     146!    do ip = 1,Npoints                         !OPAQ
     147!     if(stlidar%cldtype(ip,k).eq.R_UNDEF)then !OPAQ
     148!       stlidar%cldtype(ip,k)=missing_val      !OPAQ
     149!     endif                                    !OPAQ
     150!    enddo                                     !OPAQ
     151!   enddo                                      !OPAQ
     152 
     153!!! AI 02 2018
     154! Traitement missing_val
     155   where(stlidar%lidarcld == R_UNDEF) stlidar%lidarcld = missing_val
     156   where(stlidar%proftemp == R_UNDEF) stlidar%proftemp = missing_val   !TIBO 
     157   where(stlidar%profSR == R_UNDEF) stlidar%profSR = missing_val       !TIBO2
     158   where(sglidar%beta_mol == R_UNDEF) sglidar%beta_mol = missing_val 
     159   where(sglidar%beta_tot == R_UNDEF) sglidar%beta_tot = missing_val
     160   where(stlidar%cldlayer == R_UNDEF) stlidar%cldlayer = missing_val
     161   where(stlidar%cldtype == R_UNDEF) stlidar%cldtype = missing_val     !OPAQ
     162   where(stlidar%cfad_sr == R_UNDEF) stlidar%cfad_sr = missing_val
    161163! AI 11 / 2015
    162 
    163164   where(stlidar%parasolrefl == R_UNDEF) stlidar%parasolrefl = missing_val
    164165   where(stlidar%lidarcldtmp == R_UNDEF) stlidar%lidarcldtmp = missing_val
     
    167168   where(stlidar%lidarcldtype == R_UNDEF) stlidar%lidarcldtype = missing_val   !OPAQ
    168169   where(stlidar%lidarcldtmp == R_UNDEF) stlidar%lidarcldtmp = missing_val
    169    
    170 
    171    print*,'Appel histwrite2d_cosp'
     170 
     171!   print*,'Appel histwrite2d_cosp'
    172172   CALL histwrite2d_cosp(o_cllcalipso,stlidar%cldlayer(:,1))
    173173   CALL histwrite2d_cosp(o_clhcalipso,stlidar%cldlayer(:,3))
     
    249249 endif !Lidar
    250250
     251!!! Sorties Cloudsat
    251252 if (cfg%Lradar_sim) then
    252253
     254   where(stradar%cfad_ze == R_UNDEF) stradar%cfad_ze = missing_val
    253255#ifdef CPP_XIOS
    254256   CALL histwrite4d_cosp(o_dbze94,sgradar%Ze_tot)
     
    264266 endif
    265267
     268!!! Sorties combinees Cloudsat et Calipso
    266269 if (cfg%Llidar_sim .and. cfg%Lradar_sim) then
    267270   where(stradar%lidar_only_freq_cloud == R_UNDEF) &
     
    273276 endif
    274277
     278!!! Sorties Isccp
    275279 if (cfg%Lisccp_sim) then
    276 
    277280! Traitement des valeurs indefinies
    278    do ip = 1,Npoints
    279     if(isccp%totalcldarea(ip).eq.R_UNDEF)then
    280       isccp%totalcldarea(ip)=missing_val
    281     endif
    282     if(isccp%meanptop(ip).eq.R_UNDEF)then
    283       isccp%meanptop(ip)=missing_val
    284     endif
    285     if(isccp%meantaucld(ip).eq.R_UNDEF)then
    286       isccp%meantaucld(ip)=missing_val
    287     endif
    288     if(isccp%meanalbedocld(ip).eq.R_UNDEF)then
    289      isccp%meanalbedocld(ip)=missing_val
    290     endif
    291     if(isccp%meantb(ip).eq.R_UNDEF)then
    292      isccp%meantb(ip)=missing_val
    293     endif
    294     if(isccp%meantbclr(ip).eq.R_UNDEF)then
    295        isccp%meantbclr(ip)=missing_val
    296     endif
    297 
    298     do k=1,7
    299      do ii=1,7
    300      if(isccp%fq_isccp(ip,ii,k).eq.R_UNDEF)then
    301       isccp%fq_isccp(ip,ii,k)=missing_val
    302      endif
    303      enddo
    304     enddo
    305 
    306     do ii=1,Ncolumns
    307      if(isccp%boxtau(ip,ii).eq.R_UNDEF)then
    308        isccp%boxtau(ip,ii)=missing_val
    309      endif
    310     enddo
    311 
    312     do ii=1,Ncolumns
    313      if(isccp%boxptop(ip,ii).eq.R_UNDEF)then
    314       isccp%boxptop(ip,ii)=missing_val
    315      endif
    316     enddo
    317    enddo
     281!   do ip = 1,Npoints
     282!    if(isccp%totalcldarea(ip).eq.R_UNDEF)then
     283!      isccp%totalcldarea(ip)=missing_val
     284!    endif
     285!    if(isccp%meanptop(ip).eq.R_UNDEF)then
     286!      isccp%meanptop(ip)=missing_val
     287!    endif
     288!    if(isccp%meantaucld(ip).eq.R_UNDEF)then
     289!      isccp%meantaucld(ip)=missing_val
     290!    endif
     291!    if(isccp%meanalbedocld(ip).eq.R_UNDEF)then
     292!     isccp%meanalbedocld(ip)=missing_val
     293!    endif
     294!    if(isccp%meantb(ip).eq.R_UNDEF)then
     295!     isccp%meantb(ip)=missing_val
     296!    endif
     297!    if(isccp%meantbclr(ip).eq.R_UNDEF)then
     298!       isccp%meantbclr(ip)=missing_val
     299!    endif
     300
     301!    do k=1,7
     302!     do ii=1,7
     303!     if(isccp%fq_isccp(ip,ii,k).eq.R_UNDEF)then
     304!      isccp%fq_isccp(ip,ii,k)=missing_val
     305!     endif
     306!     enddo
     307!    enddo
     308
     309!    do ii=1,Ncolumns
     310!     if(isccp%boxtau(ip,ii).eq.R_UNDEF)then
     311!       isccp%boxtau(ip,ii)=missing_val
     312!     endif
     313!    enddo
     314
     315!    do ii=1,Ncolumns
     316!     if(isccp%boxptop(ip,ii).eq.R_UNDEF)then
     317!      isccp%boxptop(ip,ii)=missing_val
     318!     endif
     319!    enddo
     320!   enddo
     321  where(isccp%totalcldarea == R_UNDEF) isccp%totalcldarea = missing_val
     322  where(isccp%meanptop == R_UNDEF) isccp%meanptop = missing_val
     323  where(isccp%meantaucld == R_UNDEF) isccp%meantaucld = missing_val
     324  where(isccp%meanalbedocld == R_UNDEF) isccp%meanalbedocld = missing_val
     325  where(isccp%meantb == R_UNDEF) isccp%meantb = missing_val
     326  where(isccp%meantbclr == R_UNDEF) isccp%meantbclr = missing_val
     327  where(isccp%fq_isccp == R_UNDEF) isccp%fq_isccp = missing_val
     328  where(isccp%boxtau == R_UNDEF) isccp%boxtau = missing_val
     329  where(isccp%boxptop == R_UNDEF) isccp%boxptop = missing_val
    318330
    319331   CALL histwrite2d_cosp(o_sunlit,gbx%sunlit)
     
    335347 endif ! Isccp
    336348
    337 ! MISR simulator
     349!!! MISR simulator
    338350 if (cfg%Lmisr_sim) then
    339    do ip=1,Npoints
    340      do ii=1,7
    341        do k=1,MISR_N_CTH
    342         if(misr%fq_MISR(ip,ii,k).eq.R_UNDEF)then
    343             misr%fq_MISR(ip,ii,k)=missing_val
    344         endif
    345        enddo
    346      enddo
    347    enddo
     351!   do ip=1,Npoints
     352!     do ii=1,7
     353!       do k=1,MISR_N_CTH
     354!        if(misr%fq_MISR(ip,ii,k).eq.R_UNDEF)then
     355!            misr%fq_MISR(ip,ii,k)=missing_val
     356!        endif
     357!       enddo
     358!     enddo
     359!   enddo
     360   where(misr%fq_MISR == R_UNDEF) misr%fq_MISR = missing_val
    348361
    349362#ifdef CPP_XIOS
     
    356369 endif
    357370
    358 ! Modis simulator
     371!!! Modis simulator
    359372 if (cfg%Lmodis_sim) then
    360 
    361   do ip=1,Npoints
    362     if(modis%Cloud_Fraction_Low_Mean(ip).eq.R_UNDEF)then
    363       modis%Cloud_Fraction_Low_Mean(ip)=missing_val
    364     endif
    365     if(modis%Cloud_Fraction_High_Mean(ip).eq.R_UNDEF)then
    366        modis%Cloud_Fraction_High_Mean(ip)=missing_val
    367     endif
    368     if(modis%Cloud_Fraction_Mid_Mean(ip).eq.R_UNDEF)then
    369        modis%Cloud_Fraction_Mid_Mean(ip)=missing_val
    370     endif
    371     if(modis%Cloud_Fraction_Total_Mean(ip).eq.R_UNDEF)then
    372        modis%Cloud_Fraction_Total_Mean(ip)=missing_val
    373     endif
    374     if(modis%Cloud_Fraction_Water_Mean(ip).eq.R_UNDEF)then
    375        modis%Cloud_Fraction_Water_Mean(ip)=missing_val
    376     endif
    377     if(modis%Cloud_Fraction_Ice_Mean(ip).eq.R_UNDEF)then
    378        modis%Cloud_Fraction_Ice_Mean(ip)=missing_val
    379     endif
    380     if(modis%Optical_Thickness_Total_Mean(ip).eq.R_UNDEF)then
    381        modis%Optical_Thickness_Total_Mean(ip)=missing_val
    382     endif
    383     if(modis%Optical_Thickness_Water_Mean(ip).eq.R_UNDEF)then
    384        modis%Optical_Thickness_Water_Mean(ip)=missing_val
    385     endif
    386     if(modis%Optical_Thickness_Ice_Mean(ip).eq.R_UNDEF)then
    387        modis%Optical_Thickness_Ice_Mean(ip)=missing_val
    388     endif
    389     if(modis%Cloud_Particle_Size_Water_Mean(ip).eq.R_UNDEF)then
    390        modis%Cloud_Particle_Size_Water_Mean(ip)=missing_val
    391     endif
    392     if(modis%Cloud_Particle_Size_Ice_Mean(ip).eq.R_UNDEF)then
    393        modis%Cloud_Particle_Size_Ice_Mean(ip)=missing_val
    394     endif
    395     if(modis%Cloud_Top_Pressure_Total_Mean(ip).eq.R_UNDEF)then
    396        modis%Cloud_Top_Pressure_Total_Mean(ip)=missing_val
    397     endif
    398     if(modis%Liquid_Water_Path_Mean(ip).eq.R_UNDEF)then
    399        modis%Liquid_Water_Path_Mean(ip)=missing_val
    400     endif
    401     if(modis%Ice_Water_Path_Mean(ip).eq.R_UNDEF)then
    402        modis%Ice_Water_Path_Mean(ip)=missing_val
    403     endif
    404 
    405   enddo
     373  where(modis%Cloud_Fraction_Low_Mean == R_UNDEF) &
     374        modis%Cloud_Fraction_Low_Mean = missing_val
     375  where(modis%Cloud_Fraction_High_Mean == R_UNDEF) &
     376        modis%Cloud_Fraction_High_Mean = missing_val
     377  where(modis%Cloud_Fraction_Mid_Mean == R_UNDEF) &
     378        modis%Cloud_Fraction_Mid_Mean = missing_val
     379  where(modis%Cloud_Fraction_Total_Mean == R_UNDEF) &
     380        modis%Cloud_Fraction_Total_Mean = missing_val
     381  where(modis%Cloud_Fraction_Water_Mean == R_UNDEF) &
     382        modis%Cloud_Fraction_Water_Mean = missing_val
     383  where(modis%Cloud_Fraction_Ice_Mean == R_UNDEF) &
     384        modis%Cloud_Fraction_Ice_Mean = missing_val
     385  where(modis%Optical_Thickness_Total_Mean == R_UNDEF) &
     386        modis%Optical_Thickness_Total_Mean = missing_val
     387  where(modis%Optical_Thickness_Water_Mean == R_UNDEF) &
     388        modis%Optical_Thickness_Water_Mean = missing_val
     389  where(modis%Optical_Thickness_Ice_Mean == R_UNDEF) &
     390        modis%Optical_Thickness_Ice_Mean = missing_val
     391  where(modis%Cloud_Particle_Size_Water_Mean == R_UNDEF) &
     392        modis%Cloud_Particle_Size_Water_Mean = missing_val
     393  where(modis%Cloud_Particle_Size_Ice_Mean == R_UNDEF) &
     394        modis%Cloud_Particle_Size_Ice_Mean = missing_val
     395  where(modis%Cloud_Top_Pressure_Total_Mean == R_UNDEF) &
     396        modis%Cloud_Top_Pressure_Total_Mean = missing_val
     397  where(modis%Liquid_Water_Path_Mean == R_UNDEF) &
     398        modis%Liquid_Water_Path_Mean = missing_val
     399  where(modis%Ice_Water_Path_Mean == R_UNDEF) &
     400        modis%Ice_Water_Path_Mean = missing_val
     401
     402!  de ip=1,Npoints
     403!    if(modis%Cloud_Fraction_Low_Mean(ip).eq.R_UNDEF)then
     404!      modis%Cloud_Fraction_Low_Mean(ip)=missing_val
     405!    endif
     406!    if(modis%Cloud_Fraction_High_Mean(ip).eq.R_UNDEF)then
     407!       modis%Cloud_Fraction_High_Mean(ip)=missing_val
     408!    endif
     409!    if(modis%Cloud_Fraction_Mid_Mean(ip).eq.R_UNDEF)then
     410!       modis%Cloud_Fraction_Mid_Mean(ip)=missing_val
     411!    endif
     412!    if(modis%Cloud_Fraction_Total_Mean(ip).eq.R_UNDEF)then
     413!       modis%Cloud_Fraction_Total_Mean(ip)=missing_val
     414!    endif
     415!    if(modis%Cloud_Fraction_Water_Mean(ip).eq.R_UNDEF)then
     416!       modis%Cloud_Fraction_Water_Mean(ip)=missing_val
     417!    endif
     418!    if(modis%Cloud_Fraction_Ice_Mean(ip).eq.R_UNDEF)then
     419!       modis%Cloud_Fraction_Ice_Mean(ip)=missing_val
     420!    endif
     421!    if(modis%Optical_Thickness_Total_Mean(ip).eq.R_UNDEF)then
     422!       modis%Optical_Thickness_Total_Mean(ip)=missing_val
     423!    endif
     424!    if(modis%Optical_Thickness_Water_Mean(ip).eq.R_UNDEF)then
     425!       modis%Optical_Thickness_Water_Mean(ip)=missing_val
     426!    endif
     427!    if(modis%Optical_Thickness_Ice_Mean(ip).eq.R_UNDEF)then
     428!       modis%Optical_Thickness_Ice_Mean(ip)=missing_val
     429!    endif
     430!    if(modis%Cloud_Particle_Size_Water_Mean(ip).eq.R_UNDEF)then
     431!       modis%Cloud_Particle_Size_Water_Mean(ip)=missing_val
     432!    endif
     433!    if(modis%Cloud_Particle_Size_Ice_Mean(ip).eq.R_UNDEF)then
     434!       modis%Cloud_Particle_Size_Ice_Mean(ip)=missing_val
     435!    endif
     436!    if(modis%Cloud_Top_Pressure_Total_Mean(ip).eq.R_UNDEF)then
     437!       modis%Cloud_Top_Pressure_Total_Mean(ip)=missing_val
     438!    endif
     439!    if(modis%Liquid_Water_Path_Mean(ip).eq.R_UNDEF)then
     440!       modis%Liquid_Water_Path_Mean(ip)=missing_val
     441!    endif
     442!    if(modis%Ice_Water_Path_Mean(ip).eq.R_UNDEF)then
     443!       modis%Ice_Water_Path_Mean(ip)=missing_val
     444!    endif
     445!  enddo
    406446
    407447    where(modis%Optical_Thickness_Total_LogMean == R_UNDEF) &
    408448          modis%Optical_Thickness_Total_LogMean = missing_val
    409449           
    410  
    411450    where(modis%Optical_Thickness_Water_LogMean == R_UNDEF) &
    412451          modis%Optical_Thickness_Water_LogMean = missing_val
     
    433472   CALL histwrite2d_cosp(o_iwpmodis,modis%Ice_Water_Path_Mean)
    434473
    435    do ip=1,Npoints
    436      do ii=1,7
    437        do k=1,7
    438        if(modis%Optical_Thickness_vs_Cloud_Top_Pressure(ip,ii,k).eq.R_UNDEF)then
    439           modis%Optical_Thickness_vs_Cloud_Top_Pressure(ip,ii,k)=missing_val
    440         endif
    441        enddo
    442      enddo
    443     enddo
     474!   do ip=1,Npoints
     475!     do ii=1,7
     476!       do k=1,7
     477!       if(modis%Optical_Thickness_vs_Cloud_Top_Pressure(ip,ii,k).eq.R_UNDEF)then
     478!          modis%Optical_Thickness_vs_Cloud_Top_Pressure(ip,ii,k)=missing_val
     479!        endif
     480!       enddo
     481!     enddo
     482!    enddo
     483    where(modis%Optical_Thickness_vs_Cloud_Top_Pressure == R_UNDEF) &
     484          modis%Optical_Thickness_vs_Cloud_Top_Pressure = missing_val
    444485
    445486#ifdef CPP_XIOS
     
    459500
    460501#ifdef CPP_XIOS
    461 !    print*,'dimension de crimodis=',size(modis%Optical_Thickness_vs_ReffIce,2),&
    462 !                                    size(modis%Optical_Thickness_vs_ReffIce,3)
    463502    CALL histwrite4d_cosp(o_crimodis,modis%Optical_Thickness_vs_ReffIce)
    464503    CALL histwrite4d_cosp(o_crlmodis,modis%Optical_Thickness_vs_ReffLiq)
  • LMDZ6/trunk/libf/phylmd/cosp/phys_cosp.F90

    r2835 r3172  
    8484  use cosp_output_write_mod
    8585!  use MOD_COSP_Modis_Simulator, only : cosp_modis
     86#ifdef CPP_XIOS
     87    USE xios, ONLY: xios_field_is_active
     88#endif
    8689
    8790  IMPLICIT NONE
     
    136139!$OMP THREADPRIVATE(debut_cosp)
    137140
     141  logical, save :: first_write=.true.
     142!$OMP THREADPRIVATE(first_write)
     143
    138144!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Input variables from LMDZ-GCM
    139145  integer                         :: overlaplmdz   !  overlap type: 1=max, 2=rand, 3=max/rand ! cosp input (output lmdz)
     
    171177
    172178! Clefs Outputs
    173   call read_cosp_output_nl(cosp_output_nl,cfg)
     179  call read_cosp_output_nl(itap,cosp_output_nl,cfg)
    174180
    175181    if (overlaplmdz.ne.overlap) then
     
    178184   print*,'Fin lecture Namelists, debut_cosp =',debut_cosp
    179185
    180   print*,' Cles des differents simulateurs cosp :'
     186  print*,' Cles des differents simulateurs cosp 1er appel Cosp :'
    181187  print*,'Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lmodis_sim,Lrttov_sim', &
    182188          cfg%Lradar_sim,cfg%Llidar_sim,cfg%Lisccp_sim,cfg%Lmisr_sim,cfg%Lmodis_sim,cfg%Lrttov_sim
    183189
    184190  endif ! debut_cosp
     191
     192!!! Ici on modifie les cles logiques selon les champs actives dans les .xml
     193#ifdef CPP_XIOS
     194  if ((itap.gt.1).and.(first_write))then
     195!    call read_xiosfieldactive(cfg)
     196     call read_cosp_output_nl(itap,cosp_output_nl,cfg)
     197!       print*,' Dans cosp_write itap first_writ LcfadLidarsr532 =', &
     198!                     itap, first_write, cfg%LcfadLidarsr532
     199     first_write=.false.
     200  endif
     201!  print*,' Dans cosp_write itap LcfadLidarsr532 =', &
     202!                     itap, cfg%LcfadLidarsr532
     203#endif
     204
    185205
    186206  time_bnds(1) = dtime-dtime/2.
     
    421441  END SUBROUTINE read_cosp_input
    422442
     443  SUBROUTINE read_xiosfieldactive(cfg)
     444
     445    USE MOD_COSP_TYPES
     446#ifdef CPP_XIOS
     447    USE xios, ONLY: xios_field_is_active
     448#endif
     449  type(cosp_config),intent(out) :: cfg
     450
     451! VEREFIER LES CHAMPS DEMANDES DANS .XML
     452! 2. Si champs active dans .xml alors mettre la cles de sortie en true
     453 IF (xios_field_is_active("cllcalipso")) cfg%Lcllcalipso=.TRUE.
     454 IF (xios_field_is_active("clmcalipso")) cfg%Lclmcalipso=.TRUE.
     455 IF (xios_field_is_active("clhcalipso")) cfg%Lclhcalipso=.TRUE.
     456 IF (xios_field_is_active("cltcalipso")) cfg%Lcltcalipso=.TRUE.
     457! IF (xios_field_is_active("pcllcalipso")) cfg%Lcllcalipso=.TRUE.
     458! IF (xios_field_is_active("pclmcalipso")) cfg%Lclmcalipso=.TRUE.
     459! IF (xios_field_is_active("pclhcalipso")) cfg%Lclhcalipso=.TRUE.
     460! IF (xios_field_is_active("pcltcalipso")) cfg%Lcltcalipso=.TRUE.
     461 IF (xios_field_is_active("cllcalipsoice")) cfg%Lcllcalipsoice=.TRUE.
     462 IF (xios_field_is_active("clmcalipsoice")) cfg%Lclmcalipsoice=.TRUE.
     463 IF (xios_field_is_active("clhcalipsoice")) cfg%Lclhcalipsoice=.TRUE.
     464 IF (xios_field_is_active("cltcalipsoice")) cfg%Lcltcalipsoice=.TRUE.
     465 IF (xios_field_is_active("cllcalipsoliq")) cfg%Lcllcalipsoliq=.TRUE.
     466 IF (xios_field_is_active("clmcalipsoliq")) cfg%Lclmcalipsoliq=.TRUE.
     467 IF (xios_field_is_active("clhcalipsoliq")) cfg%Lclhcalipsoliq=.TRUE.
     468 IF (xios_field_is_active("cltcalipsoliq")) cfg%Lcltcalipsoliq=.TRUE.
     469 IF (xios_field_is_active("cllcalipsoun")) cfg%Lcllcalipsoun=.TRUE.
     470 IF (xios_field_is_active("clmcalipsoun")) cfg%Lclmcalipsoun=.TRUE.
     471 IF (xios_field_is_active("clhcalipsoun")) cfg%Lclhcalipsoun=.TRUE.
     472 IF (xios_field_is_active("cltcalipsoun")) cfg%Lcltcalipsoun=.TRUE.
     473 IF (xios_field_is_active("clcalipso")) cfg%Lclcalipso=.TRUE.
     474! IF (xios_field_is_active("pclcalipso")) cfg%Lclcalipso=.TRUE.
     475 IF (xios_field_is_active("clcalipsoice")) cfg%Lclcalipsoice=.TRUE.
     476 IF (xios_field_is_active("clcalipsoliq")) cfg%Lclcalipsoliq=.TRUE.
     477 IF (xios_field_is_active("clcalipsoun")) cfg%Lclcalipsoun=.TRUE.
     478 IF (xios_field_is_active("clcalipsotmp")) cfg%Lclcalipsotmp=.TRUE.
     479 IF (xios_field_is_active("clcalipsotmpice")) cfg%Lclcalipsotmpice=.TRUE.
     480 IF (xios_field_is_active("clcalipsotmpliq")) cfg%Lclcalipsotmpliq=.TRUE.
     481 IF (xios_field_is_active("clcalipsotmpun")) cfg%Lclcalipsotmpun=.TRUE.
     482 IF (xios_field_is_active("parasol_refl")) cfg%LparasolRefl=.TRUE.
     483 IF (xios_field_is_active("parasol_crefl")) cfg%LparasolRefl=.TRUE.
     484 IF (xios_field_is_active("Ncrefl")) cfg%LparasolRefl=.TRUE.
     485 IF (xios_field_is_active("cfad_lidarsr532")) cfg%LcfadLidarsr532=.TRUE.
     486 IF (xios_field_is_active("atb532")) cfg%Latb532=.TRUE.
     487 IF (xios_field_is_active("beta_mol532")) cfg%LlidarBetaMol532=.TRUE.
     488 IF (xios_field_is_active("clopaquecalipso")) cfg%Lclopaquecalipso=.TRUE.
     489 IF (xios_field_is_active("clthincalipso")) cfg%Lclthincalipso=.TRUE.
     490 IF (xios_field_is_active("clzopaquecalipso")) cfg%Lclzopaquecalipso=.TRUE.
     491 IF (xios_field_is_active("clcalipsoopaque")) cfg%Lclcalipsoopaque=.TRUE.
     492 IF (xios_field_is_active("clcalipsothin")) cfg%Lclcalipsothin=.TRUE.
     493 IF (xios_field_is_active("clcalipsozopaque")) cfg%Lclcalipsozopaque=.TRUE.
     494 IF (xios_field_is_active("clcalipsoopacity")) cfg%Lclcalipsoopacity=.TRUE.
     495 IF (xios_field_is_active("proftemp")) cfg%Lproftemp=.TRUE.
     496 IF (xios_field_is_active("profSR")) cfg%LprofSR=.TRUE.
     497
     498 IF (xios_field_is_active("cfadDbze94")) cfg%LcfadDbze94=.TRUE.
     499 IF (xios_field_is_active("dbze94")) cfg%Ldbze94=.TRUE.
     500 IF (xios_field_is_active("cltlidarradar")) cfg%Lcltlidarradar=.TRUE.
     501 IF (xios_field_is_active("clcalipso2")) cfg%Lclcalipso2=.TRUE.
     502
     503   IF (xios_field_is_active("clisccp2")) cfg%Lclisccp=.TRUE.
     504 IF (xios_field_is_active("boxtauisccp")) cfg%Lboxtauisccp=.TRUE.
     505 IF (xios_field_is_active("boxptopisccp")) cfg%Lboxptopisccp=.TRUE.
     506 IF (xios_field_is_active("tclisccp")) cfg%Lcltisccp=.TRUE.
     507 IF (xios_field_is_active("ctpisccp")) cfg%Lpctisccp=.TRUE.
     508 IF (xios_field_is_active("tauisccp")) cfg%Ltauisccp=.TRUE.
     509 IF (xios_field_is_active("albisccp")) cfg%Lalbisccp=.TRUE.
     510 IF (xios_field_is_active("meantbisccp")) cfg%Lmeantbisccp=.TRUE.
     511 IF (xios_field_is_active("meantbclrisccp")) cfg%Lmeantbclrisccp=.TRUE.
     512
     513   IF (xios_field_is_active("clMISR")) cfg%LclMISR=.TRUE.
     514
     515IF (xios_field_is_active("cllmodis")) cfg%Lcllmodis=.TRUE.
     516 IF (xios_field_is_active("clmmodis")) cfg%Lclmmodis=.TRUE.
     517 IF (xios_field_is_active("clhmodis")) cfg%Lclhmodis=.TRUE.
     518 IF (xios_field_is_active("cltmodis")) cfg%Lcltmodis=.TRUE.
     519 IF (xios_field_is_active("clwmodis")) cfg%Lclwmodis=.TRUE.
     520 IF (xios_field_is_active("climodis")) cfg%Lclimodis=.TRUE.
     521 IF (xios_field_is_active("tautmodis")) cfg%Ltautmodis=.TRUE.
     522 IF (xios_field_is_active("tauwmodis")) cfg%Ltauwmodis=.TRUE.
     523 IF (xios_field_is_active("tauimodis")) cfg%Ltauimodis=.TRUE.
     524 IF (xios_field_is_active("tautlogmodis")) cfg%Ltautlogmodis=.TRUE.
     525 IF (xios_field_is_active("tauilogmodis")) cfg%Ltauilogmodis=.TRUE.
     526 IF (xios_field_is_active("tauwlogmodis")) cfg%Ltauwlogmodis=.TRUE.
     527 IF (xios_field_is_active("reffclwmodis")) cfg%Lreffclwmodis=.TRUE.
     528 IF (xios_field_is_active("reffclimodis")) cfg%Lreffclimodis=.TRUE.
     529 IF (xios_field_is_active("pctmodis")) cfg%Lpctmodis=.TRUE.
     530 IF (xios_field_is_active("lwpmodis")) cfg%Llwpmodis=.TRUE.
     531 IF (xios_field_is_active("iwpmodis")) cfg%Liwpmodis=.TRUE.
     532 IF (xios_field_is_active("clmodis")) cfg%Lclmodis=.TRUE.
     533 IF (xios_field_is_active("crimodis")) cfg%Lcrimodis=.TRUE.
     534 IF (xios_field_is_active("crlmodis")) cfg%Lcrlmodis=.TRUE.
     535
     536! 2.  si champs demande alors activer le simulateur correspondant
     537   IF (xios_field_is_active("cllcalipso").OR. &
     538       xios_field_is_active("clmcalipso").OR. &
     539       xios_field_is_active("clhcalipso").OR. &
     540       xios_field_is_active("cltcalipso").OR. &
     541!       xios_field_is_active("pcllcalipso").OR. &
     542!       xios_field_is_active("pclmcalipso").OR. &
     543!       xios_field_is_active("pclhcalipso").OR. &
     544!       xios_field_is_active("pcltcalipso").OR. &
     545       xios_field_is_active("cllcalipsoice").OR. &
     546       xios_field_is_active("clmcalipsoice").OR. &
     547       xios_field_is_active("clhcalipsoice").OR. &
     548       xios_field_is_active("cltcalipsoice").OR. &
     549       xios_field_is_active("cllcalipsoliq").OR. &
     550       xios_field_is_active("clmcalipsoliq").OR. &
     551       xios_field_is_active("clhcalipsoliq").OR. &
     552       xios_field_is_active("cltcalipsoliq").OR. &
     553       xios_field_is_active("cllcalipsoun").OR. &
     554       xios_field_is_active("clmcalipsoun").OR. &
     555       xios_field_is_active("clhcalipsoun").OR. &
     556       xios_field_is_active("cltcalipsoun").OR. &
     557       xios_field_is_active("clcalipso").OR. &
     558!       xios_field_is_active("pclcalipso").OR. &
     559       xios_field_is_active("clcalipsoice").OR. &
     560       xios_field_is_active("clcalipsoliq").OR. &
     561       xios_field_is_active("clcalipsoun").OR. &
     562       xios_field_is_active("clcalipsotmp").OR. &
     563       xios_field_is_active("clcalipsotmpice").OR. &
     564       xios_field_is_active("clcalipsotmpliq").OR. &
     565       xios_field_is_active("clcalipsotmpun").OR. &
     566       xios_field_is_active("parasol_refl").OR. &
     567       xios_field_is_active("parasol_crefl").OR. &
     568       xios_field_is_active("Ncrefl").OR. &
     569       xios_field_is_active("cfad_lidarsr532").OR. &
     570       xios_field_is_active("atb532").OR. &
     571       xios_field_is_active("beta_mol532").OR. &
     572       xios_field_is_active("clopaquecalipso").OR. &
     573       xios_field_is_active("clthincalipso").OR. &
     574       xios_field_is_active("clzopaquecalipso").OR. &
     575       xios_field_is_active("clcalipsoopaque").OR. &
     576       xios_field_is_active("clcalipsothin").OR. &
     577       xios_field_is_active("clcalipsozopaque").OR. &
     578       xios_field_is_active("clcalipsoopacity").OR. &
     579       xios_field_is_active("proftemp").OR. &
     580       xios_field_is_active("profSR")) cfg%Llidar_sim=.TRUE.
     581
     582    IF (xios_field_is_active("cfadDbze94").OR. &
     583      xios_field_is_active("dbze94")) &
     584               cfg%Lradar_sim=.TRUE.
     585
     586    IF (xios_field_is_active("cltlidarradar").OR. &
     587      xios_field_is_active("clcalipso2")) THEN
     588               cfg%Lradar_sim=.TRUE.
     589               cfg%Llidar_sim=.TRUE.
     590    ENDIF
     591
     592    IF (xios_field_is_active("clisccp2").OR. &
     593       xios_field_is_active("boxtauisccp").OR. &
     594       xios_field_is_active("boxptopisccp").OR. &
     595       xios_field_is_active("tclisccp").OR. &
     596       xios_field_is_active("ctpisccp").OR. &
     597       xios_field_is_active("tauisccp").OR. &
     598       xios_field_is_active("albisccp").OR. &
     599       xios_field_is_active("meantbisccp").OR. &
     600       xios_field_is_active("meantbclrisccp")) cfg%Lisccp_sim=.TRUE.
     601
     602    IF (xios_field_is_active("clMISR")) cfg%Lmisr_sim=.TRUE.
     603
     604    IF (xios_field_is_active("cllmodis").OR. &
     605       xios_field_is_active("clmmodis").OR. &
     606       xios_field_is_active("clhmodis").OR. &
     607       xios_field_is_active("cltmodis").OR. &
     608       xios_field_is_active("clwmodis").OR. &
     609       xios_field_is_active("climodis").OR. &
     610       xios_field_is_active("tautmodis").OR. &
     611       xios_field_is_active("tauwmodis").OR. &
     612       xios_field_is_active("tauimodis").OR. &
     613       xios_field_is_active("tautlogmodis").OR. &
     614       xios_field_is_active("tauilogmodis").OR. &
     615       xios_field_is_active("tauwlogmodis").OR. &
     616       xios_field_is_active("reffclwmodis").OR. &
     617       xios_field_is_active("reffclimodis").OR. &
     618       xios_field_is_active("pctmodis").OR. &
     619       xios_field_is_active("lwpmodis").OR. &
     620       xios_field_is_active("iwpmodis").OR. &
     621       xios_field_is_active("clmodis").OR. &
     622       xios_field_is_active("crimodis").OR. &
     623       xios_field_is_active("crlmodis")) cfg%Lmodis_sim=.TRUE.
     624  END SUBROUTINE read_xiosfieldactive
     625
     626
    423627end subroutine phys_cosp
  • LMDZ6/trunk/libf/phylmd/cosp/read_cosp_output_nl.F90

    r3152 r3172  
    22!--------------- SUBROUTINE READ_COSP_OUTPUT_NL -------------------------
    33!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    4  SUBROUTINE READ_COSP_OUTPUT_NL(cosp_nl,cfg)
     4 SUBROUTINE READ_COSP_OUTPUT_NL(itap,cosp_nl,cfg)
    55  USE MOD_COSP_CONSTANTS
    66  USE MOD_COSP_TYPES
     
    88
    99#ifdef CPP_XIOS
    10     USE xios, ONLY: xios_get_field_attr, xios_field_is_active
     10    USE xios, ONLY: xios_field_is_active
    1111#endif
    1212
     
    1414  type(cosp_config),intent(out) :: cfg
    1515  ! Local variables
    16   integer :: i
     16  integer :: i, itap
    1717
    1818!! AI
     
    7979  ENDIF
    8080 
    81 ! VEREFIER LES CHAMPS DEMANDES DANS .XML
    82 ! 2. Si champs active dans .xml alors mettre la cles de sortie en true
    83 #ifdef CPP_XIOS
    84    IF (xios_field_is_active("cllcalipso")) Lcllcalipso=.TRUE.
    85              IF (xios_field_is_active("clmcalipso")) Lclmcalipso=.TRUE.
    86              IF (xios_field_is_active("clhcalipso")) Lclhcalipso=.TRUE.
    87              IF (xios_field_is_active("cltcalipso")) Lcltcalipso=.TRUE.
    88              IF (xios_field_is_active("pcllcalipso")) Lcllcalipso=.TRUE.
    89              IF (xios_field_is_active("pclmcalipso")) Lclmcalipso=.TRUE.
    90              IF (xios_field_is_active("pclhcalipso")) Lclhcalipso=.TRUE.
    91              IF (xios_field_is_active("pcltcalipso")) Lcltcalipso=.TRUE.
    92              IF (xios_field_is_active("cllcalipsoice")) Lcllcalipsoice=.TRUE.
    93              IF (xios_field_is_active("clmcalipsoice")) Lclmcalipsoice=.TRUE.
    94              IF (xios_field_is_active("clhcalipsoice")) Lclhcalipsoice=.TRUE.
    95              IF (xios_field_is_active("cltcalipsoice")) Lcltcalipsoice=.TRUE.
    96              IF (xios_field_is_active("cllcalipsoliq")) Lcllcalipsoliq=.TRUE.
    97              IF (xios_field_is_active("clmcalipsoliq")) Lclmcalipsoliq=.TRUE.
    98              IF (xios_field_is_active("clhcalipsoliq")) Lclhcalipsoliq=.TRUE.
    99              IF (xios_field_is_active("cltcalipsoliq")) Lcltcalipsoliq=.TRUE.
    100              IF (xios_field_is_active("cllcalipsoun")) Lcllcalipsoun=.TRUE.
    101              IF (xios_field_is_active("clmcalipsoun")) Lclmcalipsoun=.TRUE.
    102              IF (xios_field_is_active("clhcalipsoun")) Lclhcalipsoun=.TRUE.
    103              IF (xios_field_is_active("cltcalipsoun")) Lcltcalipsoun=.TRUE.
    104              IF (xios_field_is_active("clcalipso")) Lclcalipso=.TRUE.
    105              IF (xios_field_is_active("pclcalipso")) Lclcalipso=.TRUE.
    106              IF (xios_field_is_active("clcalipsoice")) Lclcalipsoice=.TRUE.
    107              IF (xios_field_is_active("clcalipsoliq")) Lclcalipsoliq=.TRUE.
    108              IF (xios_field_is_active("clcalipsoun")) Lclcalipsoun=.TRUE.
    109              IF (xios_field_is_active("clcalipsotmp")) Lclcalipsotmp=.TRUE.
    110              IF (xios_field_is_active("clcalipsotmpice")) Lclcalipsotmpice=.TRUE.
    111              IF (xios_field_is_active("clcalipsotmpliq")) Lclcalipsotmpliq=.TRUE.
    112              IF (xios_field_is_active("clcalipsotmpun")) Lclcalipsotmpun=.TRUE.
    113              IF (xios_field_is_active("parasol_refl")) Lparasol_refl=.TRUE.
    114              IF (xios_field_is_active("parasol_crefl")) Lparasol_refl=.TRUE.
    115              IF (xios_field_is_active("Ncrefl")) Lparasol_refl=.TRUE.
    116              IF (xios_field_is_active("cfad_lidarsr532")) LcfadLidarsr532=.TRUE.
    117              IF (xios_field_is_active("atb532")) Latb532=.TRUE.
    118              IF (xios_field_is_active("beta_mol532")) Lbeta_mol532=.TRUE.
    119              IF (xios_field_is_active("clopaquecalipso")) Lclopaquecalipso=.TRUE.
    120              IF (xios_field_is_active("clthincalipso")) Lclthincalipso=.TRUE.
    121              IF (xios_field_is_active("clzopaquecalipso")) Lclzopaquecalipso=.TRUE.
    122              IF (xios_field_is_active("clcalipsoopaque")) Lclcalipsoopaque=.TRUE.
    123              IF (xios_field_is_active("clcalipsothin")) Lclcalipsothin=.TRUE.
    124              IF (xios_field_is_active("clcalipsozopaque")) Lclcalipsozopaque=.TRUE.
    125              IF (xios_field_is_active("clcalipsoopacity")) Lclcalipsoopacity=.TRUE.
    126              IF (xios_field_is_active("proftemp")) Lproftemp=.TRUE.
    127              IF (xios_field_is_active("profSR")) LprofSR=.TRUE.
    128 
    129    IF (xios_field_is_active("cfadDbze94")) LcfadDbze94=.TRUE.
    130              IF (xios_field_is_active("dbze94")) Ldbze94=.TRUE.
    131              IF (xios_field_is_active("cltlidarradar")) Lcltlidarradar=.TRUE.
    132              IF (xios_field_is_active("clcalipso2")) Lclcalipso2=.TRUE.
    133 
    134    IF (xios_field_is_active("clisccp2")) Lclisccp2=.TRUE.
    135              IF (xios_field_is_active("boxtauisccp")) Lboxtauisccp=.TRUE.
    136              IF (xios_field_is_active("boxptopisccp")) Lboxptopisccp=.TRUE.
    137              IF (xios_field_is_active("tclisccp")) Ltclisccp=.TRUE.
    138              IF (xios_field_is_active("ctpisccp")) Lctpisccp=.TRUE.
    139              IF (xios_field_is_active("tauisccp")) Ltauisccp=.TRUE.
    140              IF (xios_field_is_active("albisccp")) Lalbisccp=.TRUE.
    141              IF (xios_field_is_active("meantbisccp")) Lmeantbisccp=.TRUE.
    142              IF (xios_field_is_active("meantbclrisccp")) Lmeantbclrisccp=.TRUE.
    143 
    144    IF (xios_field_is_active("clMISR")) LclMISR=.TRUE.
    145 
    146              IF (xios_field_is_active("cllmodis")) Lcllmodis=.TRUE.
    147              IF (xios_field_is_active("clmmodis")) Lclmmodis=.TRUE.
    148              IF (xios_field_is_active("clhmodis")) Lclhmodis=.TRUE.
    149              IF (xios_field_is_active("cltmodis")) Lcltmodis=.TRUE.
    150              IF (xios_field_is_active("clwmodis")) Lclwmodis=.TRUE.
    151              IF (xios_field_is_active("climodis")) Lclimodis=.TRUE.
    152              IF (xios_field_is_active("tautmodis")) Ltautmodis=.TRUE.
    153              IF (xios_field_is_active("tauwmodis")) Ltauwmodis=.TRUE.
    154              IF (xios_field_is_active("tauimodis")) Ltauimodis=.TRUE.
    155              IF (xios_field_is_active("tautlogmodis")) Ltautlogmodis=.TRUE.
    156              IF (xios_field_is_active("tauilogmodis")) Ltauilogmodis=.TRUE.
    157              IF (xios_field_is_active("tauwlogmodis")) Ltauwlogmodis=.TRUE.
    158              IF (xios_field_is_active("reffclwmodis")) Lreffclwmodis=.TRUE.
    159              IF (xios_field_is_active("reffclimodis")) Lreffclimodis=.TRUE.
    160              IF (xios_field_is_active("pctmodis")) Lpctmodis=.TRUE.
    161              IF (xios_field_is_active("lwpmodis")) Llwpmodis=.TRUE.
    162              IF (xios_field_is_active("iwpmodis")) Liwpmodis=.TRUE.
    163              IF (xios_field_is_active("clmodis")) Lclmodis=.TRUE.
    164 !             IF (xios_field_is_active("jpdftaureicemodis")) Lcrimodis=.TRUE.
    165              IF (xios_field_is_active("crimodis")) Lcrimodis=.TRUE.
    166 !             IF (xios_field_is_active("jpdftaureliqmodis")) Lcrlmodis=.TRUE.
    167              IF (xios_field_is_active("crlmodis")) Lcrlmodis=.TRUE.
    168 
    169 ! 2.  si champs demande alors activer le simulateur correspondant
    170    IF (xios_field_is_active("cllcalipso").OR. &
    171                 xios_field_is_active("clmcalipso").OR. &
    172                 xios_field_is_active("clhcalipso").OR. &
    173                 xios_field_is_active("cltcalipso").OR. &
    174                 xios_field_is_active("pcllcalipso").OR. &
    175                 xios_field_is_active("pclmcalipso").OR. &
    176                 xios_field_is_active("pclhcalipso").OR. &
    177                 xios_field_is_active("pcltcalipso").OR. &
    178                 xios_field_is_active("cllcalipsoice").OR. &
    179                 xios_field_is_active("clmcalipsoice").OR. &
    180                 xios_field_is_active("clhcalipsoice").OR. &
    181                 xios_field_is_active("cltcalipsoice").OR. &
    182                 xios_field_is_active("cllcalipsoliq").OR. &
    183                 xios_field_is_active("clmcalipsoliq").OR. &
    184                 xios_field_is_active("clhcalipsoliq").OR. &
    185                 xios_field_is_active("cltcalipsoliq").OR. &
    186                 xios_field_is_active("cllcalipsoun").OR. &
    187                 xios_field_is_active("clmcalipsoun").OR. &
    188                 xios_field_is_active("clhcalipsoun").OR. &
    189                 xios_field_is_active("cltcalipsoun").OR. &
    190                 xios_field_is_active("clcalipso").OR. &
    191                 xios_field_is_active("pclcalipso").OR. &
    192                 xios_field_is_active("clcalipsoice").OR. &
    193                 xios_field_is_active("clcalipsoliq").OR. &
    194                 xios_field_is_active("clcalipsoun").OR. &
    195                 xios_field_is_active("clcalipsotmp").OR. &
    196                 xios_field_is_active("clcalipsotmpice").OR. &
    197                 xios_field_is_active("clcalipsotmpliq").OR. &
    198                 xios_field_is_active("clcalipsotmpun").OR. &
    199                 xios_field_is_active("parasol_refl").OR. &
    200                 xios_field_is_active("parasol_crefl").OR. &
    201                 xios_field_is_active("Ncrefl").OR. &
    202                 xios_field_is_active("cfad_lidarsr532").OR. &
    203                 xios_field_is_active("atb532").OR. &
    204                 xios_field_is_active("beta_mol532").OR. &
    205                 xios_field_is_active("clopaquecalipso").OR. &
    206                 xios_field_is_active("clthincalipso").OR. &
    207                 xios_field_is_active("clzopaquecalipso").OR. &
    208                 xios_field_is_active("clcalipsoopaque").OR. &
    209                 xios_field_is_active("clcalipsothin").OR. &
    210                 xios_field_is_active("clcalipsozopaque").OR. &
    211                 xios_field_is_active("clcalipsoopacity").OR. &
    212                 xios_field_is_active("proftemp").OR. &
    213                 xios_field_is_active("profSR")) &
    214                 Llidar_sim=.TRUE.
    215 
    216     IF (xios_field_is_active("cfadDbze94").OR. &
    217                xios_field_is_active("dbze94")) &
    218                Lradar_sim=.TRUE.
    219 
    220     IF (xios_field_is_active("cltlidarradar").OR. &
    221                xios_field_is_active("clcalipso2")) THEN
    222                Lradar_sim=.TRUE.
    223                Llidar_sim=.TRUE.
    224     ENDIF
    225 
    226     IF (xios_field_is_active("clisccp2").OR. &
    227                 xios_field_is_active("boxtauisccp").OR. &
    228                 xios_field_is_active("boxptopisccp").OR. &
    229                 xios_field_is_active("tclisccp").OR. &
    230                 xios_field_is_active("ctpisccp").OR. &
    231                 xios_field_is_active("tauisccp").OR. &
    232                 xios_field_is_active("albisccp").OR. &
    233                 xios_field_is_active("meantbisccp").OR. &
    234                 xios_field_is_active("meantbclrisccp")) &
    235                 Lisccp_sim=.TRUE.
    236 
    237     IF (xios_field_is_active("clMISR")) Lmisr_sim=.TRUE.
    238 
    239     IF (xios_field_is_active("cllmodis").OR. &
    240                 xios_field_is_active("clmmodis").OR. &
    241                 xios_field_is_active("clhmodis").OR. &
    242                 xios_field_is_active("cltmodis").OR. &
    243                 xios_field_is_active("clwmodis").OR. &
    244                 xios_field_is_active("climodis").OR. &
    245                 xios_field_is_active("tautmodis").OR. &
    246                 xios_field_is_active("tauwmodis").OR. &
    247                 xios_field_is_active("tauimodis").OR. &
    248                 xios_field_is_active("tautlogmodis").OR. &
    249                 xios_field_is_active("tauilogmodis").OR. &
    250                 xios_field_is_active("tauwlogmodis").OR. &
    251                 xios_field_is_active("reffclwmodis").OR. &
    252                 xios_field_is_active("reffclimodis").OR. &
    253                 xios_field_is_active("pctmodis").OR. &
    254                 xios_field_is_active("lwpmodis").OR. &
    255                 xios_field_is_active("iwpmodis").OR. &
    256                 xios_field_is_active("clmodis").OR. &
    257                 xios_field_is_active("crimodis").OR. &
    258                 xios_field_is_active("crlmodis")) &
    259                 Lmodis_sim=.TRUE.
    260 
    261 #endif
    262 
    263 
    26481  CALL bcast(Lradar_sim)
    26582  CALL bcast(Llidar_sim)
     
    348165!  print*,' Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim', &
    349166!           Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lrttov_sim
     167
    350168
    351169  ! Deal with dependencies
     
    714532  cfg%Lcrimodis=Lcrimodis
    715533  cfg%Lcrlmodis=Lcrlmodis
     534 
     535    if (itap.gt.1) then
     536
     537! VEREFIER LES CHAMPS DEMANDES DANS .XML
     538! 2. Si champs active dans .xml alors mettre la cles de sortie en true
     539 IF (xios_field_is_active("cllcalipso")) cfg%Lcllcalipso=.TRUE.
     540 IF (xios_field_is_active("clmcalipso")) cfg%Lclmcalipso=.TRUE.
     541 IF (xios_field_is_active("clhcalipso")) cfg%Lclhcalipso=.TRUE.
     542 IF (xios_field_is_active("cltcalipso")) cfg%Lcltcalipso=.TRUE.
     543! IF (xios_field_is_active("pcllcalipso")) cfg%Lcllcalipso=.TRUE.
     544! IF (xios_field_is_active("pclmcalipso")) cfg%Lclmcalipso=.TRUE.
     545! IF (xios_field_is_active("pclhcalipso")) cfg%Lclhcalipso=.TRUE.
     546! IF (xios_field_is_active("pcltcalipso")) cfg%Lcltcalipso=.TRUE.
     547 IF (xios_field_is_active("cllcalipsoice")) cfg%Lcllcalipsoice=.TRUE.
     548 IF (xios_field_is_active("clmcalipsoice")) cfg%Lclmcalipsoice=.TRUE.
     549 IF (xios_field_is_active("clhcalipsoice")) cfg%Lclhcalipsoice=.TRUE.
     550 IF (xios_field_is_active("cltcalipsoice")) cfg%Lcltcalipsoice=.TRUE.
     551 IF (xios_field_is_active("cllcalipsoliq")) cfg%Lcllcalipsoliq=.TRUE.
     552 IF (xios_field_is_active("clmcalipsoliq")) cfg%Lclmcalipsoliq=.TRUE.
     553 IF (xios_field_is_active("clhcalipsoliq")) cfg%Lclhcalipsoliq=.TRUE.
     554 IF (xios_field_is_active("cltcalipsoliq")) cfg%Lcltcalipsoliq=.TRUE.
     555 IF (xios_field_is_active("cllcalipsoun")) cfg%Lcllcalipsoun=.TRUE.
     556 IF (xios_field_is_active("clmcalipsoun")) cfg%Lclmcalipsoun=.TRUE.
     557 IF (xios_field_is_active("clhcalipsoun")) cfg%Lclhcalipsoun=.TRUE.
     558 IF (xios_field_is_active("cltcalipsoun")) cfg%Lcltcalipsoun=.TRUE.
     559 IF (xios_field_is_active("clcalipso")) cfg%Lclcalipso=.TRUE.
     560! IF (xios_field_is_active("pclcalipso")) cfg%Lclcalipso=.TRUE.
     561 IF (xios_field_is_active("clcalipsoice")) cfg%Lclcalipsoice=.TRUE.
     562 IF (xios_field_is_active("clcalipsoliq")) cfg%Lclcalipsoliq=.TRUE.
     563 IF (xios_field_is_active("clcalipsoun")) cfg%Lclcalipsoun=.TRUE.
     564 IF (xios_field_is_active("clcalipsotmp")) cfg%Lclcalipsotmp=.TRUE.
     565 IF (xios_field_is_active("clcalipsotmpice")) cfg%Lclcalipsotmpice=.TRUE.
     566 IF (xios_field_is_active("clcalipsotmpliq")) cfg%Lclcalipsotmpliq=.TRUE.
     567 IF (xios_field_is_active("clcalipsotmpun")) cfg%Lclcalipsotmpun=.TRUE.
     568 IF (xios_field_is_active("parasol_refl")) cfg%LparasolRefl=.TRUE.
     569 IF (xios_field_is_active("parasol_crefl")) cfg%LparasolRefl=.TRUE.
     570 IF (xios_field_is_active("Ncrefl")) cfg%LparasolRefl=.TRUE.
     571 IF (xios_field_is_active("cfad_lidarsr532")) cfg%LcfadLidarsr532=.TRUE.
     572 IF (xios_field_is_active("atb532")) cfg%Latb532=.TRUE.
     573 IF (xios_field_is_active("beta_mol532")) cfg%LlidarBetaMol532=.TRUE.
     574 IF (xios_field_is_active("clopaquecalipso")) cfg%Lclopaquecalipso=.TRUE.
     575 IF (xios_field_is_active("clthincalipso")) cfg%Lclthincalipso=.TRUE.
     576 IF (xios_field_is_active("clzopaquecalipso")) cfg%Lclzopaquecalipso=.TRUE.
     577 IF (xios_field_is_active("clcalipsoopaque")) cfg%Lclcalipsoopaque=.TRUE.
     578 IF (xios_field_is_active("clcalipsothin")) cfg%Lclcalipsothin=.TRUE.
     579 IF (xios_field_is_active("clcalipsozopaque")) cfg%Lclcalipsozopaque=.TRUE.
     580 IF (xios_field_is_active("clcalipsoopacity")) cfg%Lclcalipsoopacity=.TRUE.
     581 IF (xios_field_is_active("proftemp")) cfg%Lproftemp=.TRUE.
     582 IF (xios_field_is_active("profSR")) cfg%LprofSR=.TRUE.
     583
     584 IF (xios_field_is_active("cfadDbze94")) cfg%LcfadDbze94=.TRUE.
     585 IF (xios_field_is_active("dbze94")) cfg%Ldbze94=.TRUE.
     586 IF (xios_field_is_active("cltlidarradar")) cfg%Lcltlidarradar=.TRUE.
     587 IF (xios_field_is_active("clcalipso2")) cfg%Lclcalipso2=.TRUE.
     588
     589   IF (xios_field_is_active("clisccp2")) cfg%Lclisccp=.TRUE.
     590 IF (xios_field_is_active("boxtauisccp")) cfg%Lboxtauisccp=.TRUE.
     591 IF (xios_field_is_active("boxptopisccp")) cfg%Lboxptopisccp=.TRUE.
     592 IF (xios_field_is_active("tclisccp")) cfg%Lcltisccp=.TRUE.
     593 IF (xios_field_is_active("ctpisccp")) cfg%Lpctisccp=.TRUE.
     594 IF (xios_field_is_active("tauisccp")) cfg%Ltauisccp=.TRUE.
     595 IF (xios_field_is_active("albisccp")) cfg%Lalbisccp=.TRUE.
     596 IF (xios_field_is_active("meantbisccp")) cfg%Lmeantbisccp=.TRUE.
     597 IF (xios_field_is_active("meantbclrisccp")) cfg%Lmeantbclrisccp=.TRUE.
     598
     599   IF (xios_field_is_active("clMISR")) cfg%LclMISR=.TRUE.
     600
     601IF (xios_field_is_active("cllmodis")) cfg%Lcllmodis=.TRUE.
     602 IF (xios_field_is_active("clmmodis")) cfg%Lclmmodis=.TRUE.
     603 IF (xios_field_is_active("clhmodis")) cfg%Lclhmodis=.TRUE.
     604 IF (xios_field_is_active("cltmodis")) cfg%Lcltmodis=.TRUE.
     605 IF (xios_field_is_active("clwmodis")) cfg%Lclwmodis=.TRUE.
     606 IF (xios_field_is_active("climodis")) cfg%Lclimodis=.TRUE.
     607 IF (xios_field_is_active("tautmodis")) cfg%Ltautmodis=.TRUE.
     608 IF (xios_field_is_active("tauwmodis")) cfg%Ltauwmodis=.TRUE.
     609 IF (xios_field_is_active("tauimodis")) cfg%Ltauimodis=.TRUE.
     610 IF (xios_field_is_active("tautlogmodis")) cfg%Ltautlogmodis=.TRUE.
     611 IF (xios_field_is_active("tauilogmodis")) cfg%Ltauilogmodis=.TRUE.
     612 IF (xios_field_is_active("tauwlogmodis")) cfg%Ltauwlogmodis=.TRUE.
     613 IF (xios_field_is_active("reffclwmodis")) cfg%Lreffclwmodis=.TRUE.
     614 IF (xios_field_is_active("reffclimodis")) cfg%Lreffclimodis=.TRUE.
     615 IF (xios_field_is_active("pctmodis")) cfg%Lpctmodis=.TRUE.
     616 IF (xios_field_is_active("lwpmodis")) cfg%Llwpmodis=.TRUE.
     617 IF (xios_field_is_active("iwpmodis")) cfg%Liwpmodis=.TRUE.
     618 IF (xios_field_is_active("clmodis")) cfg%Lclmodis=.TRUE.
     619 IF (xios_field_is_active("crimodis")) cfg%Lcrimodis=.TRUE.
     620 IF (xios_field_is_active("crlmodis")) cfg%Lcrlmodis=.TRUE.
     621
     622! 2.  si champs demande alors activer le simulateur correspondant
     623   IF (xios_field_is_active("cllcalipso").OR. &
     624       xios_field_is_active("clmcalipso").OR. &
     625       xios_field_is_active("clhcalipso").OR. &
     626       xios_field_is_active("cltcalipso").OR. &
     627!       xios_field_is_active("pcllcalipso").OR. &
     628!       xios_field_is_active("pclmcalipso").OR. &
     629!       xios_field_is_active("pclhcalipso").OR. &
     630!       xios_field_is_active("pcltcalipso").OR. &
     631       xios_field_is_active("cllcalipsoice").OR. &
     632       xios_field_is_active("clmcalipsoice").OR. &
     633       xios_field_is_active("clhcalipsoice").OR. &
     634       xios_field_is_active("cltcalipsoice").OR. &
     635       xios_field_is_active("cllcalipsoliq").OR. &
     636       xios_field_is_active("clmcalipsoliq").OR. &
     637       xios_field_is_active("clhcalipsoliq").OR. &
     638       xios_field_is_active("cltcalipsoliq").OR. &
     639       xios_field_is_active("cllcalipsoun").OR. &
     640       xios_field_is_active("clmcalipsoun").OR. &
     641       xios_field_is_active("clhcalipsoun").OR. &
     642       xios_field_is_active("cltcalipsoun").OR. &
     643       xios_field_is_active("clcalipso").OR. &
     644!       xios_field_is_active("pclcalipso").OR. &
     645       xios_field_is_active("clcalipsoice").OR. &
     646       xios_field_is_active("clcalipsoliq").OR. &
     647       xios_field_is_active("clcalipsoun").OR. &
     648       xios_field_is_active("clcalipsotmp").OR. &
     649       xios_field_is_active("clcalipsotmpice").OR. &
     650       xios_field_is_active("clcalipsotmpliq").OR. &
     651       xios_field_is_active("clcalipsotmpun").OR. &
     652       xios_field_is_active("parasol_refl").OR. &
     653       xios_field_is_active("parasol_crefl").OR. &
     654       xios_field_is_active("Ncrefl").OR. &
     655       xios_field_is_active("cfad_lidarsr532").OR. &
     656       xios_field_is_active("atb532").OR. &
     657       xios_field_is_active("beta_mol532").OR. &
     658       xios_field_is_active("clopaquecalipso").OR. &
     659       xios_field_is_active("clthincalipso").OR. &
     660       xios_field_is_active("clzopaquecalipso").OR. &
     661       xios_field_is_active("clcalipsoopaque").OR. &
     662       xios_field_is_active("clcalipsothin").OR. &
     663       xios_field_is_active("clcalipsozopaque").OR. &
     664       xios_field_is_active("clcalipsoopacity").OR. &
     665       xios_field_is_active("proftemp").OR. &
     666       xios_field_is_active("profSR")) cfg%Llidar_sim=.TRUE.
     667
     668    IF (xios_field_is_active("cfadDbze94").OR. &
     669      xios_field_is_active("dbze94")) &
     670               cfg%Lradar_sim=.TRUE.
     671
     672    IF (xios_field_is_active("cltlidarradar").OR. &
     673      xios_field_is_active("clcalipso2")) THEN
     674               cfg%Lradar_sim=.TRUE.
     675               cfg%Llidar_sim=.TRUE.
     676    ENDIF
     677
     678    IF (xios_field_is_active("clisccp2").OR. &
     679       xios_field_is_active("boxtauisccp").OR. &
     680       xios_field_is_active("boxptopisccp").OR. &
     681       xios_field_is_active("tclisccp").OR. &
     682       xios_field_is_active("ctpisccp").OR. &
     683       xios_field_is_active("tauisccp").OR. &
     684       xios_field_is_active("albisccp").OR. &
     685       xios_field_is_active("meantbisccp").OR. &
     686       xios_field_is_active("meantbclrisccp")) cfg%Lisccp_sim=.TRUE.
     687
     688    IF (xios_field_is_active("clMISR")) cfg%Lmisr_sim=.TRUE.
     689
     690    IF (xios_field_is_active("cllmodis").OR. &
     691       xios_field_is_active("clmmodis").OR. &
     692       xios_field_is_active("clhmodis").OR. &
     693       xios_field_is_active("cltmodis").OR. &
     694       xios_field_is_active("clwmodis").OR. &
     695       xios_field_is_active("climodis").OR. &
     696       xios_field_is_active("tautmodis").OR. &
     697       xios_field_is_active("tauwmodis").OR. &
     698       xios_field_is_active("tauimodis").OR. &
     699       xios_field_is_active("tautlogmodis").OR. &
     700       xios_field_is_active("tauilogmodis").OR. &
     701       xios_field_is_active("tauwlogmodis").OR. &
     702       xios_field_is_active("reffclwmodis").OR. &
     703       xios_field_is_active("reffclimodis").OR. &
     704       xios_field_is_active("pctmodis").OR. &
     705       xios_field_is_active("lwpmodis").OR. &
     706       xios_field_is_active("iwpmodis").OR. &
     707       xios_field_is_active("clmodis").OR. &
     708       xios_field_is_active("crimodis").OR. &
     709       xios_field_is_active("crlmodis")) cfg%Lmodis_sim=.TRUE.
     710
     711  endif
     712
    716713
    717714 END SUBROUTINE READ_COSP_OUTPUT_NL
Note: See TracChangeset for help on using the changeset viewer.