- Timestamp:
- Feb 1, 2018, 12:26:50 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/cosp/cosp_output_write_mod.F90
r3152 r3173 27 27 #ifdef CPP_XIOS 28 28 USE wxios, only: wxios_closedef 29 USE xios, only: xios_update_calendar 29 USE xios, only: xios_update_calendar, xios_field_is_active 30 30 #endif 31 31 … … 50 50 real, dimension(Npoints,PARASOL_NREFL) :: parasolcrefl, Ncref 51 51 52 53 52 #ifdef CPP_XIOS 54 53 missing_val=missing_cosp … … 83 82 endif 84 83 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 98 98 if (cfg%Llidar_sim) then 99 99 ! Pb des valeurs indefinies, on les met a 0 100 100 ! 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 161 163 ! AI 11 / 2015 162 163 164 where(stlidar%parasolrefl == R_UNDEF) stlidar%parasolrefl = missing_val 164 165 where(stlidar%lidarcldtmp == R_UNDEF) stlidar%lidarcldtmp = missing_val … … 167 168 where(stlidar%lidarcldtype == R_UNDEF) stlidar%lidarcldtype = missing_val !OPAQ 168 169 where(stlidar%lidarcldtmp == R_UNDEF) stlidar%lidarcldtmp = missing_val 169 170 171 print*,'Appel histwrite2d_cosp' 170 171 ! print*,'Appel histwrite2d_cosp' 172 172 CALL histwrite2d_cosp(o_cllcalipso,stlidar%cldlayer(:,1)) 173 173 CALL histwrite2d_cosp(o_clhcalipso,stlidar%cldlayer(:,3)) … … 249 249 endif !Lidar 250 250 251 !!! Sorties Cloudsat 251 252 if (cfg%Lradar_sim) then 252 253 254 where(stradar%cfad_ze == R_UNDEF) stradar%cfad_ze = missing_val 253 255 #ifdef CPP_XIOS 254 256 CALL histwrite4d_cosp(o_dbze94,sgradar%Ze_tot) … … 264 266 endif 265 267 268 !!! Sorties combinees Cloudsat et Calipso 266 269 if (cfg%Llidar_sim .and. cfg%Lradar_sim) then 267 270 where(stradar%lidar_only_freq_cloud == R_UNDEF) & … … 273 276 endif 274 277 278 !!! Sorties Isccp 275 279 if (cfg%Lisccp_sim) then 276 277 280 ! 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 318 330 319 331 CALL histwrite2d_cosp(o_sunlit,gbx%sunlit) … … 335 347 endif ! Isccp 336 348 337 ! MISR simulator349 !!! MISR simulator 338 350 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 348 361 349 362 #ifdef CPP_XIOS … … 356 369 endif 357 370 358 ! Modis simulator371 !!! Modis simulator 359 372 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 406 446 407 447 where(modis%Optical_Thickness_Total_LogMean == R_UNDEF) & 408 448 modis%Optical_Thickness_Total_LogMean = missing_val 409 449 410 411 450 where(modis%Optical_Thickness_Water_LogMean == R_UNDEF) & 412 451 modis%Optical_Thickness_Water_LogMean = missing_val … … 433 472 CALL histwrite2d_cosp(o_iwpmodis,modis%Ice_Water_Path_Mean) 434 473 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 444 485 445 486 #ifdef CPP_XIOS … … 459 500 460 501 #ifdef CPP_XIOS 461 ! print*,'dimension de crimodis=',size(modis%Optical_Thickness_vs_ReffIce,2),&462 ! size(modis%Optical_Thickness_vs_ReffIce,3)463 502 CALL histwrite4d_cosp(o_crimodis,modis%Optical_Thickness_vs_ReffIce) 464 503 CALL histwrite4d_cosp(o_crlmodis,modis%Optical_Thickness_vs_ReffLiq)
Note: See TracChangeset
for help on using the changeset viewer.