source: LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/cosp/phys_cosp.F90 @ 3242

Last change on this file since 3242 was 3242, checked in by idelkadi, 7 years ago

Nettoyage du code :

  • changement de nomes des routines pour avoir les memes nome des modules
  • corrections
  • dos2unix appliquee aux fichiers
  • Rajouter "implicit none" pour les routines ne le comportant pas
  • Suppression des commentaires unitils

Corrections pour tourner en mode debug :

controle par la cles ok_debug_cosp dans mod_cosp_constants.F90
la valeur par defaut etant .false.

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 19.5 KB
Line 
1! Simulateur COSP : Cfmip Observation Simulator Package
2
3! ISCCP, Radar (QuickBeam), Lidar et Parasol (ACTSIM), MISR, RTTOVS
4!Idelkadi Abderrahmane Aout-Septembre 2009 First Version
5!Idelkadi Abderrahmane Nov 2015 version v1.4.0
6
7  subroutine phys_cosp( itap,dtime,freq_cosp, &
8                        ok_mensuelCOSP,ok_journeCOSP,ok_hfCOSP, &
9                        ecrit_mth,ecrit_day,ecrit_hf, ok_all_xml, missing_val, &
10                        Nptslmdz,Nlevlmdz,lon,lat, presnivs,overlaplmdz,sunlit, &
11                        ref_liq,ref_ice,fracTerLic,u_wind,v_wind,phis,phi,ph,p,skt,t, &
12                        sh,rh,tca,cca,mr_lsliq,mr_lsice,fl_lsrainI,fl_lssnowI, &
13                        fl_ccrainI,fl_ccsnowI,mr_ozone,dtau_s,dem_s)
14
15!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16!!!! Inputs :
17! itap,                                 !Increment de la physiq
18! dtime,                                !Pas de temps physiq
19! overlap,                              !Overlap type in SCOPS
20! Npoints,                              !Nb de points de la grille physiq
21! Nlevels,                              !Nb de niveaux verticaux
22! Ncolumns,                             !Number of subcolumns
23! lon,lat,                              !Longitudes et latitudes de la grille LMDZ
24! ref_liq,ref_ice,                      !Rayons effectifs des particules liq et ice (en microm)
25! fracTerLic,                           !Fraction terre a convertir en masque
26! u_wind,v_wind,                        !Vents a 10m ???
27! phi,                                  !Geopotentiel
28! phis,                                 !Geopotentiel sol
29! ph,                                   !pression pour chaque inter-couche
30! p,                                    !Pression aux milieux des couches
31! skt,t,                                !Temp au sol et temp 3D
32! sh,                                   !Humidite specifique
33! rh,                                   !Humidite relatif
34! tca,                                  !Fraction nuageuse
35! cca                                   !Fraction nuageuse convective
36! mr_lsliq,                             !Liq Cloud water content
37! mr_lsice,                             !Ice Cloud water content
38! mr_ccliq,                             !Convective Cloud Liquid water content 
39! mr_ccice,                             !Cloud ice water content
40! fl_lsrain,                            !Large scale precipitation lic
41! fl_lssnow,                            !Large scale precipitation ice
42! fl_ccrain,                            !Convective precipitation lic
43! fl_ccsnow,                            !Convective precipitation ice
44! mr_ozone,                             !Concentration ozone (Kg/Kg)
45! dem_s                                 !Cloud optical emissivity
46! dtau_s                                !Cloud optical thickness
47! emsfc_lw = 1.                         !Surface emissivity dans radlwsw.F90
48
49!!! Outputs :
50! calipso2D,                            !Lidar Low/heigh/Mean/Total-level Cloud Fraction
51! calipso3D,                            !Lidar Cloud Fraction (532 nm)
52! cfadlidar,                            !Lidar Scattering Ratio CFAD (532 nm)
53! parasolrefl,                          !PARASOL-like mono-directional reflectance
54! atb,                                  !Lidar Attenuated Total Backscatter (532 nm)
55! betamol,                              !Lidar Molecular Backscatter (532 nm)
56! cfaddbze,                             !Radar Reflectivity Factor CFAD (94 GHz)
57! clcalipso2,                           !Cloud frequency of occurrence as seen by CALIPSO but not CloudSat
58! dbze,                                 !Efective_reflectivity_factor
59! cltlidarradar,                        !Lidar and Radar Total Cloud Fraction
60! clMISR,                               !Cloud Fraction as Calculated by the MISR Simulator
61! clisccp2,                             !Cloud Fraction as Calculated by the ISCCP Simulator
62! boxtauisccp,                          !Optical Depth in Each Column as Calculated by the ISCCP Simulator
63! boxptopisccp,                         !Cloud Top Pressure in Each Column as Calculated by the ISCCP Simulator
64! tclisccp,                             !Total Cloud Fraction as Calculated by the ISCCP Simulator
65! ctpisccp,                             !Mean Cloud Top Pressure as Calculated by the ISCCP Simulator
66! tauisccp,                             !Mean Optical Depth as Calculated by the ISCCP Simulator
67! albisccp,                             !Mean Cloud Albedo as Calculated by the ISCCP Simulator
68! meantbisccp,                          !Mean all-sky 10.5 micron brightness temperature as calculated by the ISCCP Simulator
69! meantbclrisccp                        !Mean clear-sky 10.5 micron brightness temperature as calculated by the ISCCP Simulator
70
71!!! AI rajouter les nouvelles sorties
72!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
73
74!! AI rajouter
75#include "cosp_defs.h"
76  USE MOD_COSP_CONSTANTS
77  USE MOD_COSP_TYPES
78  USE MOD_COSP
79  USE mod_phys_lmdz_para
80  USE mod_grid_phy_lmdz
81  use ioipsl
82  use iophy
83  use cosp_output_mod
84  use cosp_output_write_mod
85!  use MOD_COSP_Modis_Simulator, only : cosp_modis
86#ifdef CPP_XIOS
87    USE xios, ONLY: xios_field_is_active
88#endif
89
90  IMPLICIT NONE
91
92  ! Local variables
93  character(len=64),PARAMETER  :: cosp_input_nl='cosp_input_nl.txt'
94  character(len=64),PARAMETER  :: cosp_output_nl='cosp_output_nl.txt'
95  integer, save :: isccp_topheight,isccp_topheight_direction,overlap
96  integer,save  :: Ncolumns     ! Number of subcolumns in SCOPS
97  integer, save :: Npoints      ! Number of gridpoints
98!$OMP THREADPRIVATE(Npoints)
99  integer, save :: Nlevels      ! Number of levels
100  Integer :: Nptslmdz,Nlevlmdz ! Nb de points issus de physiq.F
101  integer, save :: Nlr          ! Number of levels in statistical outputs
102  integer, save :: Npoints_it   ! Max number of gridpoints to be processed in one iteration
103  integer :: i
104  type(cosp_config),save :: cfg   ! Configuration options
105!$OMP THREADPRIVATE(cfg)
106  type(cosp_gridbox) :: gbx ! Gridbox information. Input for COSP
107  type(cosp_subgrid) :: sgx     ! Subgrid outputs
108  type(cosp_sgradar) :: sgradar ! Output from radar simulator
109  type(cosp_sglidar) :: sglidar ! Output from lidar simulator
110  type(cosp_isccp)   :: isccp   ! Output from ISCCP simulator
111!! AI rajout modis
112  type(cosp_modis)   :: modis   ! Output from MODIS simulator
113!!
114  type(cosp_misr)    :: misr    ! Output from MISR simulator
115!! AI rajout rttovs
116!  type(cosp_rttov)   :: rttov   ! Output from RTTOV
117!!
118  type(cosp_vgrid)   :: vgrid   ! Information on vertical grid of stats
119  type(cosp_radarstats) :: stradar ! Summary statistics from radar simulator
120  type(cosp_lidarstats) :: stlidar ! Summary statistics from lidar simulator
121
122  integer :: t0,t1,count_rate,count_max
123  integer :: Nlon,Nlat
124  real,save :: radar_freq,k2,ZenAng,co2,ch4,n2o,co,emsfc_lw
125!$OMP THREADPRIVATE(emsfc_lw)
126  integer,dimension(RTTOV_MAX_CHANNELS),save :: Channels
127  real,dimension(RTTOV_MAX_CHANNELS),save :: Surfem
128  integer, save :: surface_radar,use_mie_tables,use_gas_abs,do_ray,melt_lay
129  integer, save :: Nprmts_max_hydro,Naero,Nprmts_max_aero,lidar_ice_type
130  integer, save :: platform,satellite,Instrument,Nchannels
131  logical, save :: use_vgrid,csat_vgrid,use_precipitation_fluxes,use_reff
132
133! Declaration necessaires pour les sorties IOIPSL
134  integer :: ii
135  real    :: ecrit_day,ecrit_hf,ecrit_mth, missing_val
136  logical :: ok_mensuelCOSP,ok_journeCOSP,ok_hfCOSP, ok_all_xml
137
138  logical, save :: debut_cosp=.true.
139!$OMP THREADPRIVATE(debut_cosp)
140
141  logical, save :: first_write=.true.
142!$OMP THREADPRIVATE(first_write)
143
144  logical, save :: ok_readxiosactive_cosp=.false.
145!$OMP THREADPRIVATE(ok_readxiosactive_cosp)
146!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Input variables from LMDZ-GCM
147  integer                         :: overlaplmdz   !  overlap type: 1=max, 2=rand, 3=max/rand ! cosp input (output lmdz)
148  real,dimension(Nptslmdz,Nlevlmdz) :: height,phi,p,ph,T,sh,rh,tca,cca,mr_lsliq,mr_lsice,mr_ccliq,mr_ccice, &
149                                     fl_lsrain,fl_lssnow,fl_ccrain,fl_ccsnow,fl_lsgrpl, &
150                                     zlev,zlev_half,mr_ozone,radliq,radice,dtau_s,dem_s,ref_liq,ref_ice
151  real,dimension(Nptslmdz,Nlevlmdz) ::  fl_lsrainI,fl_lssnowI,fl_ccrainI,fl_ccsnowI
152  real,dimension(Nptslmdz)        :: lon,lat,skt,fracTerLic,u_wind,v_wind,phis,sunlit         
153  real,dimension(Nlevlmdz)        :: presnivs
154  integer                         :: itap,k,ip
155  real                            :: dtime,freq_cosp
156  real,dimension(2)               :: time_bnds
157
158  double precision                            :: d_dtime
159  double precision,dimension(2)               :: d_time_bnds
160 
161   namelist/COSP_INPUT/overlap,isccp_topheight,isccp_topheight_direction, &
162              npoints_it,ncolumns,use_vgrid,nlr,csat_vgrid, &
163              radar_freq,surface_radar,use_mie_tables, &
164              use_gas_abs,do_ray,melt_lay,k2,Nprmts_max_hydro,Naero,Nprmts_max_aero, &
165              lidar_ice_type,use_precipitation_fluxes,use_reff, &
166              platform,satellite,Instrument,Nchannels, &
167              Channels,Surfem,ZenAng,co2,ch4,n2o,co
168
169!---------------- End of declaration of variables --------------
170   
171
172!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
173! Read namelist with COSP inputs
174!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
175
176 if (debut_cosp) then
177  NPoints=Nptslmdz
178  Nlevels=Nlevlmdz
179 
180! Lecture du namelist input
181  CALL read_cosp_input
182
183! Clefs Outputs
184  call read_cosp_output_nl(itap,cosp_output_nl,cfg)
185
186    if (overlaplmdz.ne.overlap) then
187       print*,'Attention overlaplmdz different de overlap lu dans namelist '
188    endif
189   print*,'Fin lecture Namelists, debut_cosp =',debut_cosp
190
191  print*,' Cles des differents simulateurs cosp 1er appel Cosp :'
192  print*,'Lradar_sim,Llidar_sim,Lisccp_sim,Lmisr_sim,Lmodis_sim,Lrttov_sim', &
193          cfg%Lradar_sim,cfg%Llidar_sim,cfg%Lisccp_sim,cfg%Lmisr_sim,cfg%Lmodis_sim,cfg%Lrttov_sim
194
195  endif ! debut_cosp
196
197!!! Ici on modifie les cles logiques selon les champs actives dans les .xml
198#ifdef CPP_XIOS
199 if (ok_readxiosactive_cosp) then
200  if ((itap.gt.1).and.(first_write))then
201     call read_cosp_output_nl(itap,cosp_output_nl,cfg)
202     first_write=.false.
203  endif
204 endif
205#endif
206
207
208  time_bnds(1) = dtime-dtime/2.
209  time_bnds(2) = dtime+dtime/2.
210
211  d_time_bnds=time_bnds
212  d_dtime=dtime
213
214
215!  print*,'Debut phys_cosp itap,dtime,freq_cosp,ecrit_mth,ecrit_day,ecrit_hf ', &
216!          itap,dtime,freq_cosp,ecrit_mth,ecrit_day,ecrit_hf
217!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
218! Allocate memory for gridbox type
219!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
220! AI mars 2017
221!        print *, 'Allocating memory for gridbox type...'
222
223!! AI
224!        call construct_cosp_gridbox(dble(itap),radar_freq,surface_radar,use_mie_tables,use_gas_abs,do_ray,melt_lay,k2, &
225!                                    Npoints,Nlevels,Ncolumns,N_HYDRO,Nprmts_max_hydro,Naero,Nprmts_max_aero,Npoints_it, &
226!                                    lidar_ice_type,isccp_topheight,isccp_topheight_direction,overlap,emsfc_lw, &
227!                                    use_precipitation_fluxes,use_reff, &
228!                                    Platform,Satellite,Instrument,Nchannels,ZenAng, &
229!                                    channels(1:Nchannels),surfem(1:Nchannels),co2,ch4,n2o,co,gbx)
230! Surafce emissivity
231        emsfc_lw = 1.
232
233        call construct_cosp_gridbox(d_dtime,d_time_bnds,radar_freq,surface_radar,use_mie_tables,use_gas_abs, &
234                                    do_ray,melt_lay,k2, &
235                                    Npoints,Nlevels,Ncolumns,N_HYDRO,Nprmts_max_hydro,Naero,Nprmts_max_aero,Npoints_it, &
236                                    lidar_ice_type,isccp_topheight,isccp_topheight_direction,overlap,emsfc_lw, &
237                                    use_precipitation_fluxes,use_reff, &
238                                    Platform,Satellite,Instrument,Nchannels,ZenAng, &
239                                    channels(1:Nchannels),surfem(1:Nchannels),co2,ch4,n2o,co,gbx)
240       
241!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
242! Here code to populate input structure
243!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
244
245!        print *, 'Populating input structure...'
246        gbx%longitude = lon
247        gbx%latitude = lat
248
249        gbx%p = p !
250        gbx%ph = ph
251        gbx%zlev = phi/9.81
252
253        zlev_half(:,1) = phis(:)/9.81
254        do k = 2, Nlevels
255          do ip = 1, Npoints
256           zlev_half(ip,k) = phi(ip,k)/9.81 + &
257               (phi(ip,k)-phi(ip,k-1))/9.81 * (ph(ip,k)-p(ip,k)) / (p(ip,k)-p(ip,k-1))
258          enddo
259        enddo
260        gbx%zlev_half = zlev_half
261
262        gbx%T = T
263        gbx%q = rh*100.
264        gbx%sh = sh
265! On ne veut pas que cosp distingue les nuages stratiformes et convectifs
266! on passe les contenus totaux (conv+strat)
267        gbx%cca = 0. !convective_cloud_amount (1)
268        gbx%tca = tca ! total_cloud_amount (1)
269        gbx%psfc = ph(:,1) !pression de surface
270        gbx%skt  = skt !Skin temperature (K)
271
272        do ip = 1, Npoints
273          if (fracTerLic(ip).ge.0.5) then
274             gbx%land(ip) = 1.
275          else
276             gbx%land(ip) = 0.
277          endif
278        enddo
279        gbx%mr_ozone  = mr_ozone !mass_fraction_of_ozone_in_air (kg/kg)
280! A voir l equivalent LMDZ (u10m et v10m)
281        gbx%u_wind  = u_wind !eastward_wind (m s-1)
282        gbx%v_wind  = v_wind !northward_wind
283
284! sunlit calcule a partir de la fraction d ensoleillement par jour
285!      do ip = 1, Npoints
286!        if (sunlit(ip).le.0.) then
287!           gbx%sunlit(ip)=0.
288!        else
289!           gbx%sunlit(ip)=1.
290!        endif
291!      enddo
292       gbx%sunlit=sunlit
293
294! A voir l equivalent LMDZ
295  mr_ccliq = 0.0
296  mr_ccice = 0.0
297        gbx%mr_hydro(:,:,I_LSCLIQ) = mr_lsliq !mixing_ratio_large_scale_cloud_liquid (kg/kg)
298        gbx%mr_hydro(:,:,I_LSCICE) = mr_lsice !mixing_ratio_large_scale_cloud_ic
299        gbx%mr_hydro(:,:,I_CVCLIQ) = mr_ccliq !mixing_ratio_convective_cloud_liquid
300        gbx%mr_hydro(:,:,I_CVCICE) = mr_ccice !mixing_ratio_convective_cloud_ice
301! A revoir
302        fl_lsrain = fl_lsrainI + fl_ccrainI
303        fl_lssnow = fl_lssnowI + fl_ccsnowI
304        gbx%rain_ls = fl_lsrain !flux_large_scale_cloud_rain (kg m^-2 s^-1)
305        gbx%snow_ls = fl_lssnow !flux_large_scale_cloud_snow
306!  A voir l equivalent LMDZ
307        fl_lsgrpl=0.
308        fl_ccsnow = 0.
309        fl_ccrain = 0.
310        gbx%grpl_ls = fl_lsgrpl  !flux_large_scale_cloud_graupel
311        gbx%rain_cv = fl_ccrain  !flux_convective_cloud_rain
312        gbx%snow_cv = fl_ccsnow  !flux_convective_cloud_snow
313
314     gbx%Reff(:,:,I_LSCLIQ) = ref_liq*1e-6
315     gbx%Reff(:,:,I_LSCICE) = ref_ice*1e-6
316!! AI A revoir
317     gbx%Reff(:,:,I_CVCLIQ) = ref_liq*1e-6
318     gbx%Reff(:,:,I_CVCICE) = ref_ice*1e-6
319
320        ! ISCCP simulator
321        gbx%dtau_s   = dtau_s
322        gbx%dtau_c   = 0.
323        gbx%dem_s    = dem_s
324        gbx%dem_c    = 0.
325
326!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
327        ! Define new vertical grid
328!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
329!        print *, 'Defining new vertical grid...'
330        call construct_cosp_vgrid(gbx,Nlr,use_vgrid,csat_vgrid,vgrid)
331
332!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
333       ! Allocate memory for other types
334!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
335!        print *, 'Allocating memory for other types...'
336        call construct_cosp_subgrid(Npoints, Ncolumns, Nlevels, sgx)
337        call construct_cosp_sgradar(cfg,Npoints,Ncolumns,Nlevels,N_HYDRO,sgradar)
338        call construct_cosp_radarstats(cfg,Npoints,Ncolumns,vgrid%Nlvgrid,N_HYDRO,stradar)
339        call construct_cosp_sglidar(cfg,Npoints,Ncolumns,Nlevels,N_HYDRO,PARASOL_NREFL,sglidar)
340        call construct_cosp_lidarstats(cfg,Npoints,Ncolumns,vgrid%Nlvgrid,N_HYDRO,PARASOL_NREFL,stlidar)
341        call construct_cosp_isccp(cfg,Npoints,Ncolumns,Nlevels,isccp)
342!! AI rajout
343        call construct_cosp_modis(cfg,Npoints,modis)
344!!
345        call construct_cosp_misr(cfg,Npoints,misr)
346!        call construct_cosp_rttov(cfg,Npoints,Nchannels,rttov)
347
348!+++++++++++++ Open output files and define output files axis !+++++++++++++
349     if (debut_cosp) then
350
351      !$OMP MASTER
352        print *, ' Open outpts files and define axis'
353        call cosp_output_open(Nlevlmdz, Ncolumns, presnivs, dtime, freq_cosp, &
354                              ok_mensuelCOSP, ok_journeCOSP, ok_hfCOSP, ok_all_xml, &
355                              ecrit_mth, ecrit_day, ecrit_hf, use_vgrid, vgrid, stlidar)
356      !$OMP END MASTER
357      !$OMP BARRIER
358        debut_cosp=.false.
359      endif ! debut_cosp
360!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
361        ! Call simulator
362!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
363!        print *, 'Calling simulator...'
364!! AI
365!        call cosp(overlap,Ncolumns,cfg,vgrid,gbx,sgx,sgradar,sglidar,isccp,misr,stradar,stlidar)
366!#ifdef RTTOV
367!        call cosp(overlap,Ncolumns,cfg,vgrid,gbx,sgx,sgradar,sglidar,isccp,misr,modis,rttov,stradar,stlidar)
368!#else
369        call cosp(overlap,Ncolumns,cfg,vgrid,gbx,sgx,sgradar,sglidar,isccp,misr,modis,stradar,stlidar)
370!#endif
371!!
372
373!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
374
375!!!!!!!!!!!!!!!!!! Ecreture des sorties Cosp !!!!!!!!!!!!!!r!!!!!!:!!!!!
376
377!       print *, 'Calling write output'
378        call cosp_output_write(Nlevlmdz, Npoints, Ncolumns, itap, dtime, freq_COSP, missing_val, &
379                               cfg, gbx, vgrid, sglidar, sgradar, stlidar, stradar, &
380                               isccp, misr, modis)
381
382!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
383        ! Deallocate memory in derived types
384!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
385!        print *, 'Deallocating memory...'
386        call free_cosp_gridbox(gbx)
387        call free_cosp_subgrid(sgx)
388        call free_cosp_sgradar(sgradar)
389        call free_cosp_radarstats(stradar)
390        call free_cosp_sglidar(sglidar)
391        call free_cosp_lidarstats(stlidar)
392        call free_cosp_isccp(isccp)
393        call free_cosp_misr(misr)
394!! AI
395        call free_cosp_modis(modis)
396!        call free_cosp_rttov(rttov)
397!!
398        call free_cosp_vgrid(vgrid) 
399 
400!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
401  ! Time in s. Only for testing purposes
402!  call system_clock(t1,count_rate,count_max)
403!  print *,(t1-t0)*1.0/count_rate
404 
405  CONTAINS
406 
407  SUBROUTINE read_cosp_input
408   
409    IF (is_master) THEN
410      OPEN(10,file=cosp_input_nl,status='old')
411      READ(10,nml=cosp_input)
412      CLOSE(10)
413    ENDIF
414    CALL bcast(overlap)
415    CALL bcast(isccp_topheight)
416    CALL bcast(isccp_topheight_direction)
417    CALL bcast(npoints_it)
418    CALL bcast(ncolumns)
419    CALL bcast(use_vgrid)
420    CALL bcast(nlr)
421    CALL bcast(csat_vgrid)
422    CALL bcast(radar_freq)
423    CALL bcast(surface_radar)
424    CALL bcast(use_mie_tables)
425    CALL bcast(use_gas_abs)
426    CALL bcast(do_ray)
427    CALL bcast(melt_lay)
428    CALL bcast(k2)
429    CALL bcast(Nprmts_max_hydro)
430    CALL bcast(Naero)
431    CALL bcast(Nprmts_max_aero)
432    CALL bcast(lidar_ice_type)
433    CALL bcast(use_precipitation_fluxes)
434    CALL bcast(use_reff)
435    CALL bcast(platform)
436    CALL bcast(satellite)
437    CALL bcast(Instrument)
438    CALL bcast(Nchannels)
439    CALL bcast(Channels)
440    CALL bcast(Surfem)
441    CALL bcast(ZenAng)
442    CALL bcast(co2)
443    CALL bcast(ch4)
444    CALL bcast(n2o)
445    CALL bcast(co)
446!$OMP BARRIER 
447  END SUBROUTINE read_cosp_input
448
449end subroutine phys_cosp
Note: See TracBrowser for help on using the repository browser.