Ignore:
Timestamp:
Jul 19, 2024, 5:41:58 PM (4 months ago)
Author:
abarral
Message:

(lint) Fix obsolete boolean operators

Location:
LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2/MISR_simulator.F90

    r3491 r5082  
    8484       do ilev=1,nlev
    8585          ! Define location of "layer top"
    86           if(ilev.eq.1 .or. ilev.eq.nlev) then
     86          if(ilev==1 .or. ilev==nlev) then
    8787             ztest=zfull(j,ilev)
    8888          else
     
    9494          iMISR_ztop=2
    9595          do loop=2,numMISRHgtBins
    96              if ( ztest .gt. 1000*misr_histHgt(loop+1) ) then
     96             if ( ztest > 1000*misr_histHgt(loop+1) ) then
    9797                iMISR_ztop=loop+1
    9898             endif
     
    110110          do ilev=1,nlev
    111111             ! If there a cloud, start the counter and store this height
    112              if(thres_crossed_MISR .eq. 0 .and. dtau(j,ibox,ilev) .gt. 0.) then
     112             if(thres_crossed_MISR == 0 .and. dtau(j,ibox,ilev) > 0.) then
    113113                ! First encountered a "cloud"
    114114                thres_crossed_MISR = 1 
     
    116116             endif
    117117
    118              if( thres_crossed_MISR .lt. 99 .and. thres_crossed_MISR .gt. 0 ) then
    119                 if( dtau(j,ibox,ilev) .eq. 0.) then
     118             if( thres_crossed_MISR < 99 .and. thres_crossed_MISR > 0 ) then
     119                if( dtau(j,ibox,ilev) == 0.) then
    120120                   ! We have come to the end of the current cloud layer without yet
    121121                   ! selecting a CTH boundary. Restart cloud tau counter
     
    129129                ! current layer cloud top to the current level then MISR will like
    130130                ! see a top below the top of the current layer.
    131                 if( dtau(j,ibox,ilev).gt.0 .and. (cloud_dtau-dtau(j,ibox,ilev)) .lt. 1) then
    132                    if(dtau(j,ibox,ilev) .lt. 1 .or. ilev.eq.1 .or. ilev.eq.nlev) then
     131                if( dtau(j,ibox,ilev)>0 .and. (cloud_dtau-dtau(j,ibox,ilev)) < 1) then
     132                   if(dtau(j,ibox,ilev) < 1 .or. ilev==1 .or. ilev==nlev) then
    133133                      ! MISR will likely penetrate to some point within this layer ... the middle
    134134                      MISR_penetration_height=zfull(j,ilev)
     
    142142               
    143143                ! Check for a distinctive water layer
    144                 if(dtau(j,ibox,ilev) .gt. 1 .and. at(j,ilev) .gt. 273 ) then
     144                if(dtau(j,ibox,ilev) > 1 .and. at(j,ilev) > 273 ) then
    145145                   ! Must be a water cloud, take this as CTH level
    146146                   thres_crossed_MISR=99
     
    149149                ! If the total column optical depth is "large" than MISR can't see
    150150                ! anything else. Set current point as CTH level
    151                 if(sum(dtau(j,ibox,1:ilev)) .gt. 5) then
     151                if(sum(dtau(j,ibox,1:ilev)) > 5) then
    152152                   thres_crossed_MISR=99           
    153153                endif
     
    157157          ! Check to see if there was a cloud for which we didn't
    158158          ! set a MISR cloud top boundary
    159           if( thres_crossed_MISR .eq. 1) then
     159          if( thres_crossed_MISR == 1) then
    160160             ! If the cloud has a total optical depth of greater
    161161             ! than ~ 0.5 MISR will still likely pick up this cloud
    162162             ! with a height near the true cloud top
    163163             ! otherwise there should be no CTH
    164              if(sum(dtau(j,ibox,1:nlev)) .gt. 0.5) then
     164             if(sum(dtau(j,ibox,1:nlev)) > 0.5) then
    165165                ! keep MISR detected CTH
    166              elseif(sum(dtau(j,ibox,1:nlev)) .gt. 0.2) then
     166             elseif(sum(dtau(j,ibox,1:nlev)) > 0.2) then
    167167                ! MISR may detect but wont likley have a good height
    168168                box_MISR_ztop(j,ibox)=-1
     
    215215    ! Fill dark scenes
    216216    do j=1,numMISRHgtBins
    217        where(sunlit .ne. 1) dist_model_layertops(1:npoints,j) = R_UNDEF
     217       where(sunlit /= 1) dist_model_layertops(1:npoints,j) = R_UNDEF
    218218    enddo
    219219
     
    257257
    258258       ! Subcolumns that are cloudy(true) and not(false)
    259        box_cloudy(1:ncol) = merge(.true.,.false.,tau(j,1:ncol) .gt. tauchk)
     259       box_cloudy(1:ncol) = merge(.true.,.false.,tau(j,1:ncol) > tauchk)
    260260
    261261       ! Fill optically thin clouds with fill value
    262262       where(.not. box_cloudy(1:ncol)) tauWRK(j,1:ncol)  = -999._wp
    263        where(box_MISR_ztopWRK(j,1:ncol) .eq. 0) box_MISR_ztopWRK(j,1:ncol)=-999._wp
     263       where(box_MISR_ztopWRK(j,1:ncol) == 0) box_MISR_ztopWRK(j,1:ncol)=-999._wp
    264264
    265265       ! Compute joint histogram and column quantities for points that are sunlit and cloudy
    266        if (sunlit(j) .eq. 1) then
     266       if (sunlit(j) == 1) then
    267267          ! Joint histogram
    268268          call hist2D(tauWRK(j,1:ncol),box_MISR_ztopWRK(j,1:ncol),ncol,misr_histTau,numMISRTauBins,&
     
    272272
    273273          ! Column cloud area
    274           MISR_cldarea(j)=real(count(box_MISR_ztopWRK(j,1:ncol) .ne. -999.))/ncol
     274          MISR_cldarea(j)=real(count(box_MISR_ztopWRK(j,1:ncol) /= -999.))/ncol
    275275
    276276          ! Column cloud-top height
    277           if ( count(box_MISR_ztopWRK(j,1:ncol) .ne. -999.) .ne. 0 ) then
    278              MISR_mean_ztop(j) = sum(box_MISR_ztopWRK(j,1:ncol),box_MISR_ztopWRK(j,1:ncol) .ne. -999.)/ &
    279                   count(box_MISR_ztopWRK(j,1:ncol) .ne. -999.)
     277          if ( count(box_MISR_ztopWRK(j,1:ncol) /= -999.) /= 0 ) then
     278             MISR_mean_ztop(j) = sum(box_MISR_ztopWRK(j,1:ncol),box_MISR_ztopWRK(j,1:ncol) /= -999.)/ &
     279                  count(box_MISR_ztopWRK(j,1:ncol) /= -999.)
    280280          else
    281281             MISR_mean_ztop(j) = R_UNDEF
  • LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2/cosp.F90

    r3491 r5082  
    480480
    481481    ! Set flag to deallocate rttov types (only done on final call to simulator)
    482     if (size(cospOUT%isccp_meantb) .eq. stop_idx) lrttov_cleanUp = .true.
     482    if (size(cospOUT%isccp_meantb) == stop_idx) lrttov_cleanUp = .true.
    483483
    484484    ! ISCCP column
     
    687687       modisIN%w0        => cospIN%ss_alb
    688688       modisIN%Nsunlit   = count(cospgridIN%sunlit > 0)
    689        if (modisIN%Nsunlit .gt. 0) then
     689       if (modisIN%Nsunlit > 0) then
    690690          allocate(modisIN%sunlit(modisIN%Nsunlit),modisIN%pres(modisIN%Nsunlit,cospIN%Nlevels+1))
    691691          modisIN%sunlit    = pack((/ (i, i = 1, Npoints ) /),mask = cospgridIN%sunlit > 0)
    692692          modisIN%pres      = cospgridIN%phalf(int(modisIN%sunlit(:)),:)
    693693       endif
    694        if (count(cospgridIN%sunlit <= 0) .gt. 0) then
     694       if (count(cospgridIN%sunlit <= 0) > 0) then
    695695          allocate(modisIN%notSunlit(count(cospgridIN%sunlit <= 0)))
    696696          modisIN%notSunlit = pack((/ (i, i = 1, Npoints ) /),mask = .not. cospgridIN%sunlit > 0)
     
    24302430    !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    24312431    if (any([Lisccp_subcolumn, Lisccp_column, Lmisr_subcolumn, Lmisr_column, Lmodis_subcolumn, Lmodis_column])) then
    2432        if (any(cospgridIN%sunlit .lt. 0)) then
     2432       if (any(cospgridIN%sunlit < 0)) then
    24332433          nError=nError+1
    24342434          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%sunlit contains values out of range (0 or 1)'
     
    24982498         Lcalipso_column, Lcloudsat_column, Lradar_lidar_tcc,Llidar_only_freq_cloud, &
    24992499         Lcloudsat_tcc, Lcloudsat_tcc2])) then
    2500        if (any(cospgridIN%at .lt. 0)) then
     2500       if (any(cospgridIN%at < 0)) then
    25012501          nError=nError+1
    25022502          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%at contains values out of range (at<0), expected units (K)'
     
    25462546    endif
    25472547    if (any([Lisccp_subcolumn, Lisccp_column, Lrttov_column])) then
    2548        if (any(cospgridIN%pfull .lt. 0)) then
     2548       if (any(cospgridIN%pfull < 0)) then
    25492549          nError=nError+1
    25502550          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%pfull contains values out of range'
     
    25662566    if (any([Lisccp_subcolumn,Lisccp_column,Lmodis_subcolumn,Lmodis_column,Lcalipso_column,Lrttov_column,&
    25672567             LgrLidar532_column,Latlid_column])) then
    2568        if (any(cospgridIN%phalf .lt. 0)) then
     2568       if (any(cospgridIN%phalf < 0)) then
    25692569          nError=nError+1
    25702570          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%phalf contains values out of range'
     
    26482648    endif
    26492649    if (any([Lisccp_subcolumn,Lisccp_column,Lrttov_column])) then
    2650        if (any(cospgridIN%qv .lt. 0)) then
     2650       if (any(cospgridIN%qv < 0)) then
    26512651          nError=nError+1
    26522652          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%qv contains values out of range'
     
    26682668    if (any([Lmisr_subcolumn,Lmisr_column,Lcloudsat_subcolumn,Lcloudsat_column,Lcalipso_column,Lradar_lidar_tcc,&
    26692669         Llidar_only_freq_cloud,LgrLidar532_column,Latlid_column,Lcloudsat_tcc, Lcloudsat_tcc2])) then
    2670        if (any(cospgridIN%hgt_matrix .lt. -300)) then
     2670       if (any(cospgridIN%hgt_matrix < -300)) then
    26712671          nError=nError+1
    26722672          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%hgt_matrix contains values out of range'
     
    27142714    if (any([Lrttov_column,Lcloudsat_column,Lcalipso_column,Lradar_lidar_tcc,Llidar_only_freq_cloud, &
    27152715             LgrLidar532_column, Latlid_column, Lcloudsat_tcc, Lcloudsat_tcc2])) then
    2716        if (any(cospgridIN%hgt_matrix_half .lt. -300)) then
     2716       if (any(cospgridIN%hgt_matrix_half < -300)) then
    27172717          nError=nError+1
    27182718          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%hgt_matrix_half contains values out of range'
     
    27532753    endif
    27542754    if (any([Lrttov_column,Lcalipso_column,Lparasol_column])) then
    2755        if (any(cospgridIN%land .lt. 0)) then
     2755       if (any(cospgridIN%land < 0)) then
    27562756          nError=nError+1
    27572757          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%land contains values out of range'
     
    27762776    endif
    27772777    if (any([Lisccp_subcolumn,Lisccp_column,Lrttov_column])) then
    2778        if (any(cospgridIN%skt .lt. 0)) then
     2778       if (any(cospgridIN%skt < 0)) then
    27792779          nError=nError+1
    27802780          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%skt contains values out of range'
     
    27972797    ! RTTOV Inputs
    27982798    if (Lrttov_column) then
    2799        if (cospgridIN%zenang .lt. -90. .OR. cospgridIN%zenang .gt. 90) then
     2799       if (cospgridIN%zenang < -90. .OR. cospgridIN%zenang > 90) then
    28002800          nError=nError+1
    28012801          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%zenang contains values out of range'
     
    28032803          if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF
    28042804       endif
    2805        if (cospgridIN%co2 .lt. 0) then
     2805       if (cospgridIN%co2 < 0) then
    28062806          nError=nError+1
    28072807          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%co2 contains values out of range'
     
    28092809          if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF
    28102810       endif
    2811        if (cospgridIN%ch4 .lt. 0) then
     2811       if (cospgridIN%ch4 < 0) then
    28122812          nError=nError+1
    28132813          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%ch4 contains values out of range'
     
    28152815          if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF
    28162816       endif
    2817        if (cospgridIN%n2o .lt. 0) then
     2817       if (cospgridIN%n2o < 0) then
    28182818          nError=nError+1
    28192819          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%n2o contains values out of range'
     
    28212821          if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF
    28222822       endif
    2823        if (cospgridIN%co.lt. 0) then
     2823       if (cospgridIN%co< 0) then
    28242824          nError=nError+1
    28252825          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%co contains values out of range'
     
    28272827          if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF
    28282828       endif
    2829        if (any(cospgridIN%o3 .lt. 0)) then
     2829       if (any(cospgridIN%o3 < 0)) then
    28302830          nError=nError+1
    28312831          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%o3 contains values out of range'
     
    28332833          if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF
    28342834       endif
    2835        if (any(cospgridIN%emis_sfc .lt. 0. .OR. cospgridIN%emis_sfc .gt. 1)) then
     2835       if (any(cospgridIN%emis_sfc < 0. .OR. cospgridIN%emis_sfc > 1)) then
    28362836          nError=nError+1
    28372837          errorMessage(nError) = 'ERROR: COSP input variable: cospgridIN%emis_sfc contains values out of range'
     
    28392839          if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF
    28402840       endif
    2841        if (any(cospgridIN%u_sfc .lt. -100. .OR. cospgridIN%u_sfc .gt. 100.)) then
     2841       if (any(cospgridIN%u_sfc < -100. .OR. cospgridIN%u_sfc > 100.)) then
    28422842          nError=nError+1
    28432843          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%u_sfc contains values out of range'
     
    28452845          Lrttov_column = .false.
    28462846       endif
    2847        if (any(cospgridIN%v_sfc .lt. -100. .OR. cospgridIN%v_sfc .gt. 100.)) then
     2847       if (any(cospgridIN%v_sfc < -100. .OR. cospgridIN%v_sfc > 100.)) then
    28482848          nError=nError+1
    28492849          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%v_sfc contains values out of range'
     
    28512851          if (associated(cospOUT%rttov_tbs)) cospOUT%rttov_tbs(:,:) = R_UNDEF
    28522852       endif
    2853        if (any(cospgridIN%lat .lt. -90 .OR. cospgridIN%lat .gt. 90)) then
     2853       if (any(cospgridIN%lat < -90 .OR. cospgridIN%lat > 90)) then
    28542854          nError=nError+1
    28552855          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%lat contains values out of range'
     
    28612861    ! COSP_INPUTS
    28622862    if (any([Lisccp_subcolumn,Lisccp_column])) then
    2863        if (cospIN%emsfc_lw .lt. 0. .OR. cospIN%emsfc_lw .gt. 1.) then
     2863       if (cospIN%emsfc_lw < 0. .OR. cospIN%emsfc_lw > 1.) then
    28642864          nError=nError+1
    28652865          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%emsfc_lw contains values out of range'
     
    28782878    endif
    28792879    if (any([Lisccp_subcolumn,Lisccp_column,Lmisr_subcolumn,Lmisr_column,Lmodis_subcolumn,Lmodis_column])) then
    2880        if (any(cospIN%tau_067 .lt. 0)) then
     2880       if (any(cospIN%tau_067 < 0)) then
    28812881          nError=nError+1
    28822882          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tau_067 contains values out of range'
     
    29432943    endif
    29442944    if (any([Lisccp_subcolumn,Lisccp_column])) then
    2945        if (any(cospIN%emiss_11 .lt. 0. .OR. cospIN%emiss_11 .gt. 1)) then
     2945       if (any(cospIN%emiss_11 < 0. .OR. cospIN%emiss_11 > 1)) then
    29462946          nError=nError+1
    29472947          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%emiss_11 contains values out of range'
     
    29602960    endif
    29612961    if (any([Lmodis_subcolumn,Lmodis_column])) then
    2962        if (any(cospIN%asym .lt. -1. .OR. cospIN%asym .gt. 1)) then
     2962       if (any(cospIN%asym < -1. .OR. cospIN%asym > 1)) then
    29632963          nError=nError+1
    29642964          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%asym contains values out of range'
     
    30063006               cospOUT%modis_Optical_Thickness_vs_ReffLIQ(:,:,:)            = R_UNDEF
    30073007       endif
    3008        if (any(cospIN%ss_alb .lt. 0 .OR. cospIN%ss_alb .gt. 1)) then
     3008       if (any(cospIN%ss_alb < 0 .OR. cospIN%ss_alb > 1)) then
    30093009          nError=nError+1
    30103010          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%ss_alb contains values out of range'
     
    30543054    endif
    30553055    if (any([Latlid_subcolumn,Latlid_column])) then
    3056        if (any(cospIN%betatot_atlid .lt. 0)) then
     3056       if (any(cospIN%betatot_atlid < 0)) then
    30573057          nError=nError+1
    30583058          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%betatot_atlid contains values out of range'
     
    30653065          if (associated(cospOUT%atlid_beta_mol))      cospOUT%atlid_beta_mol(:,:)   = R_UNDEF
    30663066       endif
    3067        if (any(cospIN%beta_mol_atlid .lt. 0)) then
     3067       if (any(cospIN%beta_mol_atlid < 0)) then
    30683068          nError=nError+1
    30693069          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%beta_mol_atlid contains values out of range'
     
    30763076          if (associated(cospOUT%atlid_beta_mol))      cospOUT%atlid_beta_mol(:,:)   = R_UNDEF
    30773077       endif
    3078        if (any(cospIN%tautot_atlid .lt. 0)) then
     3078       if (any(cospIN%tautot_atlid < 0)) then
    30793079          nError=nError+1
    30803080          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tautot_atlid contains values out of range'
     
    30873087          if (associated(cospOUT%atlid_beta_mol))      cospOUT%atlid_beta_mol(:,:)   = R_UNDEF
    30883088       endif
    3089        if (any(cospIN%tau_mol_atlid .lt. 0)) then
     3089       if (any(cospIN%tau_mol_atlid < 0)) then
    30903090          nError=nError+1
    30913091          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tau_mol_atlid contains values out of range'
     
    31013101   
    31023102    if (any([LgrLidar532_subcolumn,LgrLidar532_column])) then
    3103        if (any(cospIN%betatot_grLidar532 .lt. 0)) then
     3103       if (any(cospIN%betatot_grLidar532 < 0)) then
    31043104          nError=nError+1
    31053105          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%betatot_grLidar532 contains values out of range'
     
    31123112          if (associated(cospOUT%grLidar532_beta_mol))      cospOUT%grLidar532_beta_mol(:,:)   = R_UNDEF
    31133113       endif
    3114        if (any(cospIN%beta_mol_grLidar532 .lt. 0)) then
     3114       if (any(cospIN%beta_mol_grLidar532 < 0)) then
    31153115          nError=nError+1
    31163116          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%beta_mol_grLidar532 contains values out of range'
     
    31233123          if (associated(cospOUT%grLidar532_beta_mol))      cospOUT%grLidar532_beta_mol(:,:)   = R_UNDEF
    31243124       endif
    3125        if (any(cospIN%tautot_grLidar532 .lt. 0)) then
     3125       if (any(cospIN%tautot_grLidar532 < 0)) then
    31263126          nError=nError+1
    31273127          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tautot_grLidar532 contains values out of range'
     
    31343134          if (associated(cospOUT%grLidar532_beta_mol))      cospOUT%grLidar532_beta_mol(:,:)   = R_UNDEF
    31353135       endif
    3136        if (any(cospIN%tau_mol_grLidar532 .lt. 0)) then
     3136       if (any(cospIN%tau_mol_grLidar532 < 0)) then
    31373137          nError=nError+1
    31383138          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tau_mol_grLidar532 contains values out of range'
     
    31483148
    31493149    if (any([Lcalipso_subcolumn,Lcalipso_column])) then
    3150        if (any(cospIN%betatot_calipso .lt. 0)) then
     3150       if (any(cospIN%betatot_calipso < 0)) then
    31513151          nError=nError+1
    31523152          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%betatot_calipso contains values out of range'
     
    31673167          if (associated(cospOUT%calipso_cldthinemis))   cospOUT%calipso_cldthinemis(:)       = R_UNDEF
    31683168       endif
    3169        if (any(cospIN%betatot_liq_calipso .lt. 0)) then
     3169       if (any(cospIN%betatot_liq_calipso < 0)) then
    31703170          nError=nError+1
    31713171          errorMessage(nError) = ('ERROR: COSP input variable: cospIN%betatot_liq_calipso contains values out of range')
     
    31863186          if (associated(cospOUT%calipso_cldthinemis))   cospOUT%calipso_cldthinemis(:)       = R_UNDEF
    31873187       endif
    3188        if (any(cospIN%betatot_ice_calipso .lt. 0)) then
     3188       if (any(cospIN%betatot_ice_calipso < 0)) then
    31893189          nError=nError+1
    31903190          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%betatot_ice_calipso contains values out of range'
     
    32053205          if (associated(cospOUT%calipso_cldthinemis))   cospOUT%calipso_cldthinemis(:)       = R_UNDEF
    32063206       endif
    3207        if (any(cospIN%tautot_calipso .lt. 0)) then
     3207       if (any(cospIN%tautot_calipso < 0)) then
    32083208          nError=nError+1
    32093209          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tautot_calipso contains values out of range'
     
    32243224          if (associated(cospOUT%calipso_cldthinemis))   cospOUT%calipso_cldthinemis(:)       = R_UNDEF
    32253225       endif
    3226        if (any(cospIN%tautot_liq_calipso .lt. 0)) then
     3226       if (any(cospIN%tautot_liq_calipso < 0)) then
    32273227          nError=nError+1
    32283228          errorMessage(nError) = ('ERROR: COSP input variable: cospIN%tautot_liq_calipso contains values out of range')
     
    32433243          if (associated(cospOUT%calipso_cldthinemis))   cospOUT%calipso_cldthinemis(:)       = R_UNDEF
    32443244       endif
    3245        if (any(cospIN%tautot_ice_calipso .lt. 0)) then
     3245       if (any(cospIN%tautot_ice_calipso < 0)) then
    32463246          nError=nError+1
    32473247          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tautot_ice_calipso contains values out of range'
     
    32623262          if (associated(cospOUT%calipso_cldthinemis))   cospOUT%calipso_cldthinemis(:)       = R_UNDEF
    32633263       endif
    3264        if (any(cospIN%tau_mol_calipso .lt. 0)) then
     3264       if (any(cospIN%tau_mol_calipso < 0)) then
    32653265          nError=nError+1
    32663266          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tau_mol_calipso contains values out of range'
     
    32843284    if (any([Lcalipso_subcolumn,Lcalipso_column,Lcloudsat_column,Lradar_lidar_tcc,       &
    32853285        Llidar_only_freq_cloud, Lcloudsat_tcc, Lcloudsat_tcc2])) then
    3286        if (any(cospIN%beta_mol_calipso .lt. 0)) then
     3286       if (any(cospIN%beta_mol_calipso < 0)) then
    32873287          nError=nError+1
    32883288          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%beta_mol_calipso contains values out of range'
     
    33153315    endif
    33163316    if (any([Lparasol_subcolumn,Lparasol_column])) then
    3317        if (any(cospIN%tautot_S_liq .lt. 0)) then
     3317       if (any(cospIN%tautot_S_liq < 0)) then
    33183318          nError=nError+1
    33193319          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tautot_S_liq contains values out of range'
     
    33233323          if (associated(cospOUT%parasolGrid_refl)) cospOUT%parasolGrid_refl(:,:)  = R_UNDEF
    33243324       endif
    3325        if (any(cospIN%tautot_S_ice .lt. 0)) then
     3325       if (any(cospIN%tautot_S_ice < 0)) then
    33263326          nError=nError+1
    33273327          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%tautot_S_ice contains values out of range'
     
    33343334    if (any([Lcloudsat_subcolumn,Lcloudsat_column,Lradar_lidar_tcc,Llidar_only_freq_cloud, &
    33353335        Lcloudsat_tcc, Lcloudsat_tcc2])) then
    3336        if (any(cospIN%z_vol_cloudsat .lt. 0)) then
     3336       if (any(cospIN%z_vol_cloudsat < 0)) then
    33373337          nError=nError+1
    33383338          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%z_vol_cloudsat contains values out of range'
     
    33503350          if (associated(cospOUT%cloudsat_tcc2)) cospOUT%cloudsat_tcc2(:) = R_UNDEF
    33513351       endif
    3352        if (any(cospIN%kr_vol_cloudsat .lt. 0)) then
     3352       if (any(cospIN%kr_vol_cloudsat < 0)) then
    33533353          nError=nError+1
    33543354          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%kr_vol_cloudsat contains values out of range'
     
    33663366          if (associated(cospOUT%cloudsat_tcc2)) cospOUT%cloudsat_tcc2(:) = R_UNDEF
    33673367       endif
    3368        if (any(cospIN%g_vol_cloudsat .lt. 0)) then
     3368       if (any(cospIN%g_vol_cloudsat < 0)) then
    33693369          nError=nError+1
    33703370          errorMessage(nError) = 'ERROR: COSP input variable: cospIN%g_vol_cloudsat contains values out of range'
     
    33893389    ! ISCCP
    33903390    if (Lisccp_subcolumn .or. Lisccp_column) then
    3391        if (size(cospIN%frac_out,1)  .ne. cospIN%Npoints .OR. &
    3392            size(cospIN%tau_067,1)   .ne. cospIN%Npoints .OR. &
    3393            size(cospIN%emiss_11,1)  .ne. cospIN%Npoints .OR. &
    3394            size(cospgridIN%skt)     .ne. cospIN%Npoints .OR. &
    3395            size(cospgridIN%qv,1)    .ne. cospIN%Npoints .OR. &
    3396            size(cospgridIN%at,1)    .ne. cospIN%Npoints .OR. &
    3397            size(cospgridIN%phalf,1) .ne. cospIN%Npoints .OR. &
    3398            size(cospgridIN%sunlit)  .ne. cospIN%Npoints .OR. &
    3399            size(cospgridIN%pfull,1) .ne. cospIN%Npoints) then
     3391       if (size(cospIN%frac_out,1)  /= cospIN%Npoints .OR. &
     3392           size(cospIN%tau_067,1)   /= cospIN%Npoints .OR. &
     3393           size(cospIN%emiss_11,1)  /= cospIN%Npoints .OR. &
     3394           size(cospgridIN%skt)     /= cospIN%Npoints .OR. &
     3395           size(cospgridIN%qv,1)    /= cospIN%Npoints .OR. &
     3396           size(cospgridIN%at,1)    /= cospIN%Npoints .OR. &
     3397           size(cospgridIN%phalf,1) /= cospIN%Npoints .OR. &
     3398           size(cospgridIN%sunlit)  /= cospIN%Npoints .OR. &
     3399           size(cospgridIN%pfull,1) /= cospIN%Npoints) then
    34003400          Lisccp_subcolumn = .false.
    34013401          Lisccp_column    = .false.
     
    34033403          errorMessage(nError) = 'ERROR(isccp_simulator): The number of points in the input fields are inconsistent'
    34043404       endif
    3405        if (size(cospIN%frac_out,2) .ne. cospIN%Ncolumns .OR. &
    3406            size(cospIN%tau_067,2)  .ne. cospIN%Ncolumns .OR. &
    3407            size(cospIN%emiss_11,2) .ne. cospIN%Ncolumns) then
     3405       if (size(cospIN%frac_out,2) /= cospIN%Ncolumns .OR. &
     3406           size(cospIN%tau_067,2)  /= cospIN%Ncolumns .OR. &
     3407           size(cospIN%emiss_11,2) /= cospIN%Ncolumns) then
    34083408          Lisccp_subcolumn = .false.
    34093409          Lisccp_column    = .false.
     
    34113411          errorMessage(nError) = 'ERROR(isccp_simulator): The number of sub-columns in the input fields are inconsistent'
    34123412       endif
    3413        if (size(cospIN%frac_out,3)  .ne. cospIN%Nlevels .OR. &
    3414            size(cospIN%tau_067,3)   .ne. cospIN%Nlevels .OR. &
    3415            size(cospIN%emiss_11,3)  .ne. cospIN%Nlevels .OR. &
    3416            size(cospgridIN%qv,2)    .ne. cospIN%Nlevels .OR. &
    3417            size(cospgridIN%at,2)    .ne. cospIN%Nlevels .OR. &
    3418            size(cospgridIN%pfull,2) .ne. cospIN%Nlevels .OR. &
    3419            size(cospgridIN%phalf,2) .ne. cospIN%Nlevels+1) then
     3413       if (size(cospIN%frac_out,3)  /= cospIN%Nlevels .OR. &
     3414           size(cospIN%tau_067,3)   /= cospIN%Nlevels .OR. &
     3415           size(cospIN%emiss_11,3)  /= cospIN%Nlevels .OR. &
     3416           size(cospgridIN%qv,2)    /= cospIN%Nlevels .OR. &
     3417           size(cospgridIN%at,2)    /= cospIN%Nlevels .OR. &
     3418           size(cospgridIN%pfull,2) /= cospIN%Nlevels .OR. &
     3419           size(cospgridIN%phalf,2) /= cospIN%Nlevels+1) then
    34203420          Lisccp_subcolumn = .false.
    34213421          Lisccp_column    = .false.
     
    34273427    ! MISR
    34283428    if (Lmisr_subcolumn .or. Lmisr_column) then
    3429        if (size(cospIN%tau_067,1)        .ne. cospIN%Npoints .OR. &
    3430            size(cospgridIN%sunlit)       .ne. cospIN%Npoints .OR. &
    3431            size(cospgridIN%hgt_matrix,1) .ne. cospIN%Npoints .OR. &
    3432            size(cospgridIN%at,1)         .ne. cospIN%Npoints) then
     3429       if (size(cospIN%tau_067,1)        /= cospIN%Npoints .OR. &
     3430           size(cospgridIN%sunlit)       /= cospIN%Npoints .OR. &
     3431           size(cospgridIN%hgt_matrix,1) /= cospIN%Npoints .OR. &
     3432           size(cospgridIN%at,1)         /= cospIN%Npoints) then
    34333433          Lmisr_subcolumn = .false.
    34343434          Lmisr_column    = .false.
     
    34363436          errorMessage(nError) = 'ERROR(misr_simulator): The number of points in the input fields are inconsistent'
    34373437       endif
    3438        if (size(cospIN%tau_067,2) .ne. cospIN%Ncolumns) then
     3438       if (size(cospIN%tau_067,2) /= cospIN%Ncolumns) then
    34393439          Lmisr_subcolumn = .false.
    34403440          Lmisr_column    = .false.
     
    34423442          errorMessage(nError) = 'ERROR(misr_simulator): The number of sub-columns in the input fields are inconsistent'
    34433443       endif
    3444        if (size(cospIN%tau_067,3)        .ne. cospIN%Nlevels .OR. &
    3445            size(cospgridIN%hgt_matrix,2) .ne. cospIN%Nlevels .OR. &
    3446            size(cospgridIN%at,2)         .ne. cospIN%Nlevels) then
     3444       if (size(cospIN%tau_067,3)        /= cospIN%Nlevels .OR. &
     3445           size(cospgridIN%hgt_matrix,2) /= cospIN%Nlevels .OR. &
     3446           size(cospgridIN%at,2)         /= cospIN%Nlevels) then
    34473447          Lmisr_subcolumn = .false.
    34483448          Lmisr_column    = .false.
     
    34543454    ! MODIS
    34553455    if (Lmodis_subcolumn .or. Lmodis_column) then
    3456        if (size(cospIN%fracLiq,1) .ne. cospIN%Npoints .OR. &
    3457            size(cospIN%tau_067,1) .ne. cospIN%Npoints .OR. &
    3458            size(cospIN%asym,1)    .ne. cospIN%Npoints .OR. &
    3459            size(cospIN%ss_alb,1)  .ne. cospIN%Npoints) then
     3456       if (size(cospIN%fracLiq,1) /= cospIN%Npoints .OR. &
     3457           size(cospIN%tau_067,1) /= cospIN%Npoints .OR. &
     3458           size(cospIN%asym,1)    /= cospIN%Npoints .OR. &
     3459           size(cospIN%ss_alb,1)  /= cospIN%Npoints) then
    34603460          Lmodis_subcolumn = .false.
    34613461          Lmodis_column    = .false.
     
    34633463          errorMessage(nError) = 'ERROR(modis_simulator): The number of points in the input fields are inconsistent'
    34643464       endif
    3465        if (size(cospIN%fracLiq,2) .ne. cospIN%Ncolumns .OR. &
    3466            size(cospIN%tau_067,2) .ne. cospIN%Ncolumns .OR. &
    3467            size(cospIN%asym,2)    .ne. cospIN%Ncolumns .OR. &
    3468            size(cospIN%ss_alb,2)  .ne. cospIN%Ncolumns) then
     3465       if (size(cospIN%fracLiq,2) /= cospIN%Ncolumns .OR. &
     3466           size(cospIN%tau_067,2) /= cospIN%Ncolumns .OR. &
     3467           size(cospIN%asym,2)    /= cospIN%Ncolumns .OR. &
     3468           size(cospIN%ss_alb,2)  /= cospIN%Ncolumns) then
    34693469          Lmodis_subcolumn = .false.
    34703470          Lmodis_column    = .false.
     
    34723472          errorMessage(nError) = 'ERROR(modis_simulator): The number of sub-columns in the input fields are inconsistent'
    34733473       endif
    3474        if (size(cospIN%fracLiq,3) .ne. cospIN%Nlevels .OR. &
    3475            size(cospIN%tau_067,3) .ne. cospIN%Nlevels .OR. &
    3476            size(cospIN%asym,3)    .ne. cospIN%Nlevels .OR. &
    3477            size(cospIN%ss_alb,3)  .ne. cospIN%Nlevels) then
     3474       if (size(cospIN%fracLiq,3) /= cospIN%Nlevels .OR. &
     3475           size(cospIN%tau_067,3) /= cospIN%Nlevels .OR. &
     3476           size(cospIN%asym,3)    /= cospIN%Nlevels .OR. &
     3477           size(cospIN%ss_alb,3)  /= cospIN%Nlevels) then
    34783478          Lmodis_subcolumn = .false.
    34793479          Lmodis_column    = .false.
     
    34853485    ! CLOUDSAT
    34863486    if (Lcloudsat_subcolumn .or. Lcloudsat_column) then
    3487        if (size(cospIN%z_vol_cloudsat,1)   .ne. cospIN%Npoints .OR. &
    3488            size(cospIN%kr_vol_cloudsat,1)  .ne. cospIN%Npoints .OR. &
    3489            size(cospIN%g_vol_cloudsat,1)   .ne. cospIN%Npoints .OR. &
    3490            size(cospgridIN%hgt_matrix,1)   .ne. cospIN%Npoints) then
     3487       if (size(cospIN%z_vol_cloudsat,1)   /= cospIN%Npoints .OR. &
     3488           size(cospIN%kr_vol_cloudsat,1)  /= cospIN%Npoints .OR. &
     3489           size(cospIN%g_vol_cloudsat,1)   /= cospIN%Npoints .OR. &
     3490           size(cospgridIN%hgt_matrix,1)   /= cospIN%Npoints) then
    34913491          Lcloudsat_subcolumn = .false.
    34923492          Lcloudsat_column    = .false.
     
    34943494          errorMessage(nError) = 'ERROR(cloudsat_simulator): The number of points in the input fields are inconsistent'
    34953495       endif
    3496        if (size(cospIN%z_vol_cloudsat,2)  .ne. cospIN%Ncolumns .OR. &
    3497            size(cospIN%kr_vol_cloudsat,2) .ne. cospIN%Ncolumns .OR. &
    3498            size(cospIN%g_vol_cloudsat,2)  .ne. cospIN%Ncolumns) then
     3496       if (size(cospIN%z_vol_cloudsat,2)  /= cospIN%Ncolumns .OR. &
     3497           size(cospIN%kr_vol_cloudsat,2) /= cospIN%Ncolumns .OR. &
     3498           size(cospIN%g_vol_cloudsat,2)  /= cospIN%Ncolumns) then
    34993499          Lcloudsat_subcolumn = .false.
    35003500          Lcloudsat_column    = .false.
     
    35023502          errorMessage(nError) = 'ERROR(cloudsat_simulator): The number of sub-columns in the input fields are inconsistent'
    35033503       endif
    3504        if (size(cospIN%z_vol_cloudsat,3)  .ne. cospIN%Nlevels .OR. &
    3505            size(cospIN%kr_vol_cloudsat,3) .ne. cospIN%Nlevels .OR. &
    3506            size(cospIN%g_vol_cloudsat,3)  .ne. cospIN%Nlevels .OR. &
    3507            size(cospgridIN%hgt_matrix,2)  .ne. cospIN%Nlevels) then
     3504       if (size(cospIN%z_vol_cloudsat,3)  /= cospIN%Nlevels .OR. &
     3505           size(cospIN%kr_vol_cloudsat,3) /= cospIN%Nlevels .OR. &
     3506           size(cospIN%g_vol_cloudsat,3)  /= cospIN%Nlevels .OR. &
     3507           size(cospgridIN%hgt_matrix,2)  /= cospIN%Nlevels) then
    35083508          Lcloudsat_subcolumn = .false.
    35093509          Lcloudsat_column    = .false.
     
    35153515    ! GROUND LIDAR @ 532nm
    35163516    if (LgrLidar532_subcolumn .or. LgrLidar532_column) then
    3517        if (size(cospIN%beta_mol_grLidar532,1)    .ne. cospIN%Npoints .OR. &
    3518            size(cospIN%betatot_grLidar532,1)     .ne. cospIN%Npoints .OR. &
    3519            size(cospIN%tau_mol_grLidar532,1)     .ne. cospIN%Npoints .OR. &
    3520            size(cospIN%tautot_grLidar532,1)      .ne. cospIN%Npoints) then
     3517       if (size(cospIN%beta_mol_grLidar532,1)    /= cospIN%Npoints .OR. &
     3518           size(cospIN%betatot_grLidar532,1)     /= cospIN%Npoints .OR. &
     3519           size(cospIN%tau_mol_grLidar532,1)     /= cospIN%Npoints .OR. &
     3520           size(cospIN%tautot_grLidar532,1)      /= cospIN%Npoints) then
    35213521          LgrLidar532_subcolumn = .false.
    35223522          LgrLidar532_column    = .false.
     
    35243524          errorMessage(nError) = 'ERROR(grLidar532_simulator): The number of points in the input fields are inconsistent'
    35253525       endif
    3526        if (size(cospIN%betatot_grLidar532,2)    .ne. cospIN%Ncolumns .OR. &
    3527            size(cospIN%tautot_grLidar532,2)     .ne. cospIN%Ncolumns) then
     3526       if (size(cospIN%betatot_grLidar532,2)    /= cospIN%Ncolumns .OR. &
     3527           size(cospIN%tautot_grLidar532,2)     /= cospIN%Ncolumns) then
    35283528          LgrLidar532_subcolumn = .false.
    35293529          LgrLidar532_column    = .false.
     
    35313531          errorMessage(nError) = 'ERROR(grLidar532_simulator): The number of sub-columns in the input fields are inconsistent'
    35323532       endif
    3533        if (size(cospIN%beta_mol_grLidar532,2)    .ne. cospIN%Nlevels .OR. &
    3534            size(cospIN%betatot_grLidar532,3)     .ne. cospIN%Nlevels .OR. &
    3535            size(cospIN%tau_mol_grLidar532,2)     .ne. cospIN%Nlevels .OR. &
    3536            size(cospIN%tautot_grLidar532,3)      .ne. cospIN%Nlevels) then
     3533       if (size(cospIN%beta_mol_grLidar532,2)    /= cospIN%Nlevels .OR. &
     3534           size(cospIN%betatot_grLidar532,3)     /= cospIN%Nlevels .OR. &
     3535           size(cospIN%tau_mol_grLidar532,2)     /= cospIN%Nlevels .OR. &
     3536           size(cospIN%tautot_grLidar532,3)      /= cospIN%Nlevels) then
    35373537          LgrLidar532_subcolumn = .false.
    35383538          LgrLidar532_column    = .false.
     
    35443544    ! ATLID
    35453545    if (Latlid_subcolumn .or. Latlid_column) then
    3546        if (size(cospIN%beta_mol_atlid,1)    .ne. cospIN%Npoints .OR. &
    3547            size(cospIN%betatot_atlid,1)     .ne. cospIN%Npoints .OR. &
    3548            size(cospIN%tau_mol_atlid,1)     .ne. cospIN%Npoints .OR. &
    3549            size(cospIN%tautot_atlid,1)      .ne. cospIN%Npoints) then
     3546       if (size(cospIN%beta_mol_atlid,1)    /= cospIN%Npoints .OR. &
     3547           size(cospIN%betatot_atlid,1)     /= cospIN%Npoints .OR. &
     3548           size(cospIN%tau_mol_atlid,1)     /= cospIN%Npoints .OR. &
     3549           size(cospIN%tautot_atlid,1)      /= cospIN%Npoints) then
    35503550          Latlid_subcolumn = .false.
    35513551          Latlid_column    = .false.
     
    35533553          errorMessage(nError) = 'ERROR(atlid_simulator): The number of points in the input fields are inconsistent'
    35543554       endif
    3555        if (size(cospIN%betatot_atlid,2)    .ne. cospIN%Ncolumns .OR. &
    3556            size(cospIN%tautot_atlid,2)     .ne. cospIN%Ncolumns) then
     3555       if (size(cospIN%betatot_atlid,2)    /= cospIN%Ncolumns .OR. &
     3556           size(cospIN%tautot_atlid,2)     /= cospIN%Ncolumns) then
    35573557          Latlid_subcolumn = .false.
    35583558          Latlid_column    = .false.
     
    35603560          errorMessage(nError) = 'ERROR(atlid_simulator): The number of sub-columns in the input fields are inconsistent'
    35613561       endif
    3562        if (size(cospIN%beta_mol_atlid,2)    .ne. cospIN%Nlevels .OR. &
    3563            size(cospIN%betatot_atlid,3)     .ne. cospIN%Nlevels .OR. &
    3564            size(cospIN%tau_mol_atlid,2)     .ne. cospIN%Nlevels .OR. &
    3565            size(cospIN%tautot_atlid,3)      .ne. cospIN%Nlevels) then
     3562       if (size(cospIN%beta_mol_atlid,2)    /= cospIN%Nlevels .OR. &
     3563           size(cospIN%betatot_atlid,3)     /= cospIN%Nlevels .OR. &
     3564           size(cospIN%tau_mol_atlid,2)     /= cospIN%Nlevels .OR. &
     3565           size(cospIN%tautot_atlid,3)      /= cospIN%Nlevels) then
    35663566          Latlid_subcolumn = .false.
    35673567          Latlid_column    = .false.
     
    35733573    ! CALIPSO
    35743574    if (Lcalipso_subcolumn .or. Lcalipso_column) then
    3575        if (size(cospIN%beta_mol_calipso,1)    .ne. cospIN%Npoints .OR. &
    3576            size(cospIN%betatot_calipso,1)     .ne. cospIN%Npoints .OR. &
    3577            size(cospIN%betatot_liq_calipso,1) .ne. cospIN%Npoints .OR. &
    3578            size(cospIN%betatot_ice_calipso,1) .ne. cospIN%Npoints .OR. &
    3579            size(cospIN%tau_mol_calipso,1)     .ne. cospIN%Npoints .OR. &
    3580            size(cospIN%tautot_calipso,1)      .ne. cospIN%Npoints .OR. &
    3581            size(cospIN%tautot_liq_calipso,1)  .ne. cospIN%Npoints .OR. &
    3582            size(cospIN%tautot_ice_calipso,1)  .ne. cospIN%Npoints) then
     3575       if (size(cospIN%beta_mol_calipso,1)    /= cospIN%Npoints .OR. &
     3576           size(cospIN%betatot_calipso,1)     /= cospIN%Npoints .OR. &
     3577           size(cospIN%betatot_liq_calipso,1) /= cospIN%Npoints .OR. &
     3578           size(cospIN%betatot_ice_calipso,1) /= cospIN%Npoints .OR. &
     3579           size(cospIN%tau_mol_calipso,1)     /= cospIN%Npoints .OR. &
     3580           size(cospIN%tautot_calipso,1)      /= cospIN%Npoints .OR. &
     3581           size(cospIN%tautot_liq_calipso,1)  /= cospIN%Npoints .OR. &
     3582           size(cospIN%tautot_ice_calipso,1)  /= cospIN%Npoints) then
    35833583          Lcalipso_subcolumn = .false.
    35843584          Lcalipso_column    = .false.
     
    35863586          errorMessage(nError) = 'ERROR(calipso_simulator): The number of points in the input fields are inconsistent'
    35873587       endif
    3588        if (size(cospIN%betatot_calipso,2)     .ne. cospIN%Ncolumns .OR. &
    3589            size(cospIN%betatot_liq_calipso,2) .ne. cospIN%Ncolumns .OR. &
    3590            size(cospIN%betatot_ice_calipso,2) .ne. cospIN%Ncolumns .OR. &
    3591            size(cospIN%tautot_calipso,2)      .ne. cospIN%Ncolumns .OR. &
    3592            size(cospIN%tautot_liq_calipso,2)  .ne. cospIN%Ncolumns .OR. &
    3593            size(cospIN%tautot_ice_calipso,2)  .ne. cospIN%Ncolumns) then
     3588       if (size(cospIN%betatot_calipso,2)     /= cospIN%Ncolumns .OR. &
     3589           size(cospIN%betatot_liq_calipso,2) /= cospIN%Ncolumns .OR. &
     3590           size(cospIN%betatot_ice_calipso,2) /= cospIN%Ncolumns .OR. &
     3591           size(cospIN%tautot_calipso,2)      /= cospIN%Ncolumns .OR. &
     3592           size(cospIN%tautot_liq_calipso,2)  /= cospIN%Ncolumns .OR. &
     3593           size(cospIN%tautot_ice_calipso,2)  /= cospIN%Ncolumns) then
    35943594          Lcalipso_subcolumn = .false.
    35953595          Lcalipso_column    = .false.
     
    35973597          errorMessage(nError) = 'ERROR(calipso_simulator): The number of sub-columns in the input fields are inconsistent'
    35983598       endif
    3599        if (size(cospIN%beta_mol_calipso,2)    .ne. cospIN%Nlevels .OR. &
    3600            size(cospIN%betatot_calipso,3)     .ne. cospIN%Nlevels .OR. &
    3601            size(cospIN%betatot_liq_calipso,3) .ne. cospIN%Nlevels .OR. &
    3602            size(cospIN%betatot_ice_calipso,3) .ne. cospIN%Nlevels .OR. &
    3603            size(cospIN%tau_mol_calipso,2)     .ne. cospIN%Nlevels .OR. &
    3604            size(cospIN%tautot_calipso,3)      .ne. cospIN%Nlevels .OR. &
    3605            size(cospIN%tautot_liq_calipso,3)  .ne. cospIN%Nlevels .OR. &
    3606            size(cospIN%tautot_ice_calipso,3)  .ne. cospIN%Nlevels) then
     3599       if (size(cospIN%beta_mol_calipso,2)    /= cospIN%Nlevels .OR. &
     3600           size(cospIN%betatot_calipso,3)     /= cospIN%Nlevels .OR. &
     3601           size(cospIN%betatot_liq_calipso,3) /= cospIN%Nlevels .OR. &
     3602           size(cospIN%betatot_ice_calipso,3) /= cospIN%Nlevels .OR. &
     3603           size(cospIN%tau_mol_calipso,2)     /= cospIN%Nlevels .OR. &
     3604           size(cospIN%tautot_calipso,3)      /= cospIN%Nlevels .OR. &
     3605           size(cospIN%tautot_liq_calipso,3)  /= cospIN%Nlevels .OR. &
     3606           size(cospIN%tautot_ice_calipso,3)  /= cospIN%Nlevels) then
    36073607          Lcalipso_subcolumn = .false.
    36083608          Lcalipso_column    = .false.
     
    36143614    ! PARASOL
    36153615    if (Lparasol_subcolumn .or. Lparasol_column) then
    3616        if (size(cospIN%tautot_S_liq,1) .ne. cospIN%Npoints .OR. &
    3617            size(cospIN%tautot_S_ice,1) .ne. cospIN%Npoints) then
     3616       if (size(cospIN%tautot_S_liq,1) /= cospIN%Npoints .OR. &
     3617           size(cospIN%tautot_S_ice,1) /= cospIN%Npoints) then
    36183618          Lparasol_subcolumn = .false.
    36193619          Lparasol_column    = .false.
     
    36213621          errorMessage(nError) = 'ERROR(parasol_simulator): The number of points in the input fields are inconsistent'
    36223622       endif
    3623        if (size(cospIN%tautot_S_liq,2) .ne. cospIN%Ncolumns .OR. &
    3624            size(cospIN%tautot_S_ice,2) .ne. cospIN%Ncolumns) then
     3623       if (size(cospIN%tautot_S_liq,2) /= cospIN%Ncolumns .OR. &
     3624           size(cospIN%tautot_S_ice,2) /= cospIN%Ncolumns) then
    36253625          Lparasol_subcolumn = .false.
    36263626          Lparasol_column    = .false.
     
    36323632    ! RTTOV
    36333633    if (Lrttov_column) then
    3634        if (size(cospgridIN%pfull,1)           .ne. cospIN%Npoints .OR. &
    3635            size(cospgridIN%at,1)              .ne. cospIN%Npoints .OR. &
    3636            size(cospgridIN%qv,1)              .ne. cospIN%Npoints .OR. &
    3637            size(cospgridIN%hgt_matrix_half,1) .ne. cospIN%Npoints .OR. &
    3638            size(cospgridIN%u_sfc)             .ne. cospIN%Npoints .OR. &
    3639            size(cospgridIN%v_sfc)             .ne. cospIN%Npoints .OR. &
    3640            size(cospgridIN%skt)               .ne. cospIN%Npoints .OR. &
    3641            size(cospgridIN%phalf,1)           .ne. cospIN%Npoints .OR. &
    3642            size(cospgridIN%qv,1)              .ne. cospIN%Npoints .OR. &
    3643            size(cospgridIN%land)              .ne. cospIN%Npoints .OR. &
    3644            size(cospgridIN%lat)               .ne. cospIN%Npoints) then
     3634       if (size(cospgridIN%pfull,1)           /= cospIN%Npoints .OR. &
     3635           size(cospgridIN%at,1)              /= cospIN%Npoints .OR. &
     3636           size(cospgridIN%qv,1)              /= cospIN%Npoints .OR. &
     3637           size(cospgridIN%hgt_matrix_half,1) /= cospIN%Npoints .OR. &
     3638           size(cospgridIN%u_sfc)             /= cospIN%Npoints .OR. &
     3639           size(cospgridIN%v_sfc)             /= cospIN%Npoints .OR. &
     3640           size(cospgridIN%skt)               /= cospIN%Npoints .OR. &
     3641           size(cospgridIN%phalf,1)           /= cospIN%Npoints .OR. &
     3642           size(cospgridIN%qv,1)              /= cospIN%Npoints .OR. &
     3643           size(cospgridIN%land)              /= cospIN%Npoints .OR. &
     3644           size(cospgridIN%lat)               /= cospIN%Npoints) then
    36453645          Lrttov_column    = .false.
    36463646          nError=nError+1
    36473647          errorMessage(nError) = 'ERROR(rttov_simulator): The number of points in the input fields are inconsistent'
    36483648       endif
    3649        if (size(cospgridIN%pfull,2)           .ne. cospIN%Nlevels   .OR. &
    3650            size(cospgridIN%at,2)              .ne. cospIN%Nlevels   .OR. &
    3651            size(cospgridIN%qv,2)              .ne. cospIN%Nlevels   .OR. &
    3652            size(cospgridIN%hgt_matrix_half,2) .ne. cospIN%Nlevels+1 .OR. &
    3653            size(cospgridIN%phalf,2)           .ne. cospIN%Nlevels+1 .OR. &
    3654            size(cospgridIN%qv,2)              .ne. cospIN%Nlevels) then
     3649       if (size(cospgridIN%pfull,2)           /= cospIN%Nlevels   .OR. &
     3650           size(cospgridIN%at,2)              /= cospIN%Nlevels   .OR. &
     3651           size(cospgridIN%qv,2)              /= cospIN%Nlevels   .OR. &
     3652           size(cospgridIN%hgt_matrix_half,2) /= cospIN%Nlevels+1 .OR. &
     3653           size(cospgridIN%phalf,2)           /= cospIN%Nlevels+1 .OR. &
     3654           size(cospgridIN%qv,2)              /= cospIN%Nlevels) then
    36553655          Lrttov_column    = .false.
    36563656          nError=nError+1
  • LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2/cosp_stats.F90

    r3491 r5082  
    210210          ! look for j_1km from bottom to top
    211211          j = 1
    212           do while (Ze_tot(pr,i,j) .eq. R_GROUND)
     212          do while (Ze_tot(pr,i,j) == R_GROUND)
    213213             j = j+1
    214214          enddo
     
    217217          do j=1,Nlevels
    218218             sc_ratio = beta_tot(pr,i,j)/beta_mol(pr,j)
    219              if ((sc_ratio .le. s_att) .and. (flag_sat .eq. 0)) flag_sat = j
    220              if (Ze_tot(pr,i,j) .lt. -30.) then  !radar can't detect cloud
    221                 if ( (sc_ratio .gt. s_cld) .or. (flag_sat .eq. j) ) then  !lidar sense cloud
     219             if ((sc_ratio <= s_att) .and. (flag_sat == 0)) flag_sat = j
     220             if (Ze_tot(pr,i,j) < -30.) then  !radar can't detect cloud
     221                if ( (sc_ratio > s_cld) .or. (flag_sat == j) ) then  !lidar sense cloud
    222222                   lidar_only_freq_cloud(pr,j)=lidar_only_freq_cloud(pr,j)+1. !top->surf
    223223                   flag_cld=1
     
    226226                flag_cld=1
    227227                flag_radarcld=1
    228                 if (j .gt. j_1km) flag_radarcld_no1km=1             
     228                if (j > j_1km) flag_radarcld_no1km=1
    229229             endif
    230230          enddo !levels
    231           if (flag_cld .eq. 1) tcc(pr)=tcc(pr)+1._wp
    232           if (flag_radarcld .eq. 1) radar_tcc(pr)=radar_tcc(pr)+1.
    233           if (flag_radarcld_no1km .eq. 1) radar_tcc2(pr)=radar_tcc2(pr)+1.       
     231          if (flag_cld == 1) tcc(pr)=tcc(pr)+1._wp
     232          if (flag_radarcld == 1) radar_tcc(pr)=radar_tcc(pr)+1.
     233          if (flag_radarcld_no1km == 1) radar_tcc2(pr)=radar_tcc2(pr)+1.
    234234       enddo !columns
    235235    enddo !points
     
    267267   
    268268    do ij=2,Nbins+1 
    269        hist1D(ij-1) = count(var .ge. bins(ij-1) .and. var .lt. bins(ij))
    270        if (count(var .eq. R_GROUND) .ge. 1) hist1D(ij-1)=R_UNDEF
     269       hist1D(ij-1) = count(var >= bins(ij-1) .and. var < bins(ij))
     270       if (count(var == R_GROUND) >= 1) hist1D(ij-1)=R_UNDEF
    271271    enddo
    272272   
     
    300300    do ij=2,nbin1+1
    301301       do ik=2,nbin2+1
    302           jointHist(ij-1,ik-1)=count(var1 .ge. bin1(ij-1) .and. var1 .lt. bin1(ij) .and. &
    303                var2 .ge. bin2(ik-1) .and. var2 .lt. bin2(ik))       
     302          jointHist(ij-1,ik-1)=count(var1 >= bin1(ij-1) .and. var1 < bin1(ij) .and. &
     303               var2 >= bin2(ik-1) .and. var2 < bin2(ik))
    304304       enddo
    305305    enddo
  • LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2/icarus.F90

    r3491 r5082  
    134134    ! ##########################################################################
    135135   
    136     if (debugcol.ne.0) then
     136    if (debugcol/=0) then
    137137       do j=1,npoints,debugcol
    138138         
     
    140140          do ilev=1,nlev
    141141             acc(ilev,1:ncol)=frac_out(j,1:ncol,ilev)*2
    142              where(levmatch(j,1:ncol) .eq. ilev) acc(ilev,1:ncol)=acc(ilev,1:ncol)+1
     142             where(levmatch(j,1:ncol) == ilev) acc(ilev,1:ncol)=acc(ilev,1:ncol)+1
    143143          enddo
    144144         
     
    224224
    225225    ! Set tropopause values
    226     if (isccp_top_height .eq. 1 .or. isccp_top_height .eq. 3) then
     226    if (isccp_top_height == 1 .or. isccp_top_height == 3) then
    227227       ptrop(1:npoints)     = 5000._wp
    228228       attropmin(1:npoints) = 400._wp
     
    232232
    233233       do ilev=1,nlev
    234           where(pfull(1:npoints,ilev) .lt. 40000. .and. &
    235                 pfull(1:npoints,ilev) .gt.  5000. .and. &
    236                 at(1:npoints,ilev)    .lt. attropmin(1:npoints))
     234          where(pfull(1:npoints,ilev) < 40000. .and. &
     235                pfull(1:npoints,ilev) >  5000. .and. &
     236                at(1:npoints,ilev)    < attropmin(1:npoints))
    237237             ptrop(1:npoints)     = pfull(1:npoints,ilev)
    238238             attropmin(1:npoints) = at(1:npoints,ilev)
     
    244244       do ilev=1,nlev
    245245          atmax(1:npoints) = merge(at(1:npoints,ilev),atmax(1:npoints),&
    246                at(1:npoints,ilev) .gt. atmax(1:npoints) .and. ilev  .ge. itrop(1:npoints))
     246               at(1:npoints,ilev) > atmax(1:npoints) .and. ilev  >= itrop(1:npoints))
    247247       enddo
    248248    end if
    249249 
    250     if (isccp_top_height .eq. 1 .or. isccp_top_height .eq. 3) then
     250    if (isccp_top_height == 1 .or. isccp_top_height == 3) then
    251251       ! ############################################################################
    252252       !                        Clear-sky radiance calculation
     
    308308             dem(1:npoints,ibox) = merge(dem_wv(1:npoints,ilev), &
    309309                                         1._wp-(1._wp-demIN(1:npoints,ibox,ilev))*(1._wp-dem_wv(1:npoints,ilev)), &
    310                                          demIN(1:npoints,ibox,ilev) .eq. 0)
     310                                         demIN(1:npoints,ibox,ilev) == 0)
    311311
    312312             ! Increase TOA flux emitted from layer
     
    348348          tauir(1:npoints)    = tau(1:npoints,ibox)/2.13_wp
    349349          taumin(1:npoints)   = -log(max(min(transmax(1:npoints),0.9999999_wp),0.001_wp))
    350           if (isccp_top_height .eq. 1) then
     350          if (isccp_top_height == 1) then
    351351             do j=1,npoints 
    352                 if (transmax(j) .gt. 0.001 .and.  transmax(j) .le. 0.9999999) then
     352                if (transmax(j) > 0.001 .and.  transmax(j) <= 0.9999999) then
    353353                   fluxtopinit(j) = fluxtop(j,ibox)
    354354                   tauir(j) = tau(j,ibox)/2.13_wp
     
    357357             do icycle=1,2
    358358                do j=1,npoints 
    359                    if (tau(j,ibox) .gt. (tauchk)) then
    360                       if (transmax(j) .gt. 0.001 .and.  transmax(j) .le. 0.9999999) then
     359                   if (tau(j,ibox) > (tauchk)) then
     360                      if (transmax(j) > 0.001 .and.  transmax(j) <= 0.9999999) then
    361361                         emcld(j,ibox) = 1._wp - exp(-1._wp * tauir(j)  )
    362362                         fluxtop(j,ibox) = fluxtopinit(j) - ((1.-emcld(j,ibox))*fluxtop_clrsky(j))
    363363                         fluxtop(j,ibox)=max(1.E-06_wp,(fluxtop(j,ibox)/emcld(j,ibox)))
    364364                         tb(j,ibox)= 1307.27_wp / (log(1._wp + (1._wp/fluxtop(j,ibox))))
    365                          if (tb(j,ibox) .gt. 260.) then
     365                         if (tb(j,ibox) > 260.) then
    366366                            tauir(j) = tau(j,ibox) / 2.56_wp
    367367                         end if
     
    373373
    374374          ! Cloud-top temperature
    375           where(tau(1:npoints,ibox) .gt. tauchk)
     375          where(tau(1:npoints,ibox) > tauchk)
    376376             tb(1:npoints,ibox)= 1307.27_wp/ (log(1. + (1._wp/fluxtop(1:npoints,ibox))))
    377              where (isccp_top_height .eq. 1 .and. tauir(1:npoints) .lt. taumin(1:npoints))
     377             where (isccp_top_height == 1 .and. tauir(1:npoints) < taumin(1:npoints))
    378378                tb(1:npoints,ibox) = attrop(1:npoints) - 5._wp
    379379                tau(1:npoints,ibox) = 2.13_wp*taumin(1:npoints)
     
    382382         
    383383          ! Clear-sky brightness temperature
    384           where(tau(1:npoints,ibox) .le. tauchk)
     384          where(tau(1:npoints,ibox) <= tauchk)
    385385             tb(1:npoints,ibox) = meantbclr(1:npoints)
    386386          endwhere
     
    399399    do ibox=1,ncol
    400400       !segregate according to optical thickness
    401        if (isccp_top_height .eq. 1 .or. isccp_top_height .eq. 3) then 
     401       if (isccp_top_height == 1 .or. isccp_top_height == 3) then
    402402         
    403403          ! Find level whose temperature most closely matches brightness temperature
    404404          nmatch(1:npoints)=0
    405405          do k1=1,nlev-1
    406              ilev = merge(nlev-k1,k1,isccp_top_height_direction .eq. 2)       
     406             ilev = merge(nlev-k1,k1,isccp_top_height_direction == 2)
    407407             do j=1,npoints
    408                 if (ilev           .ge. itrop(j)     .and. &
    409                      ((at(j,ilev)  .ge. tb(j,ibox)   .and. & 
    410                       at(j,ilev+1) .le. tb(j,ibox))  .or.  &
    411                       (at(j,ilev)  .le. tb(j,ibox)   .and. &
    412                       at(j,ilev+1) .ge. tb(j,ibox)))) then
     408                if (ilev           >= itrop(j)     .and. &
     409                     ((at(j,ilev)  >= tb(j,ibox)   .and. &
     410                      at(j,ilev+1) <= tb(j,ibox))  .or.  &
     411                      (at(j,ilev)  <= tb(j,ibox)   .and. &
     412                      at(j,ilev+1) >= tb(j,ibox)))) then
    413413                   nmatch(j)=nmatch(j)+1
    414414                   match(j,nmatch(j))=ilev
     
    418418
    419419          do j=1,npoints
    420              if (nmatch(j) .ge. 1) then
     420             if (nmatch(j) >= 1) then
    421421                k1 = match(j,nmatch(j))
    422422                k2 = k1 + 1
     
    426426                logp=logp1+(logp2-logp1)*abs(tb(j,ibox)-at(j,k1))/atd
    427427                ptop(j,ibox) = exp(logp)
    428                 levmatch(j,ibox) = merge(k1,k2,abs(pfull(j,k1)-ptop(j,ibox)) .lt. abs(pfull(j,k2)-ptop(j,ibox)))
     428                levmatch(j,ibox) = merge(k1,k2,abs(pfull(j,k1)-ptop(j,ibox)) < abs(pfull(j,k2)-ptop(j,ibox)))
    429429             else
    430                 if (tb(j,ibox) .le. attrop(j)) then
     430                if (tb(j,ibox) <= attrop(j)) then
    431431                   ptop(j,ibox)=ptrop(j)
    432432                   levmatch(j,ibox)=itrop(j)
    433433                end if
    434                 if (tb(j,ibox) .ge. atmax(j)) then
     434                if (tb(j,ibox) >= atmax(j)) then
    435435                   ptop(j,ibox)=pfull(j,nlev)
    436436                   levmatch(j,ibox)=nlev
     
    441441          ptop(1:npoints,ibox)=0.
    442442          do ilev=1,nlev
    443              where((ptop(1:npoints,ibox) .eq. 0. ) .and.(frac_out(1:npoints,ibox,ilev) .ne. 0))
     443             where((ptop(1:npoints,ibox) == 0. ) .and.(frac_out(1:npoints,ibox,ilev) /= 0))
    444444                ptop(1:npoints,ibox)=phalf(1:npoints,ilev)
    445445                levmatch(1:npoints,ibox)=ilev
     
    447447          end do
    448448       end if
    449        where(tau(1:npoints,ibox) .le. tauchk)
     449       where(tau(1:npoints,ibox) <= tauchk)
    450450          ptop(1:npoints,ibox)=0._wp
    451451          levmatch(1:npoints,ibox)=0._wp
     
    460460    do ibox=1,ncol
    461461       do j=1,npoints
    462           if (tau(j,ibox) .gt. (tauchk) .and. ptop(j,ibox) .gt. 0.) then
    463              if (sunlit(j).eq.1 .or. isccp_top_height .eq. 3) then
     462          if (tau(j,ibox) > (tauchk) .and. ptop(j,ibox) > 0.) then
     463             if (sunlit(j)==1 .or. isccp_top_height == 3) then
    464464                boxtau(j,ibox) = tau(j,ibox)
    465465                boxptop(j,ibox) = ptop(j,ibox)!/100._wp
     
    508508    !                           Brightness Temperature
    509509    ! ####################################################################################
    510     if (isccp_top_height .eq. 1 .or. isccp_top_height .eq. 3) then
     510    if (isccp_top_height == 1 .or. isccp_top_height == 3) then
    511511       meantb(1:npoints)=sum(boxttop,2)/ncol
    512512    else
     
    535535       do ilev2=1,7
    536536          do j=1,npoints !
    537              if (sunlit(j).eq.1 .or. isccp_top_height .eq. 3) then
     537             if (sunlit(j)==1 .or. isccp_top_height == 3) then
    538538                fq_isccp(j,ilev,ilev2)= 0.
    539539             else
     
    546546   
    547547    ! Reset variables need for averaging cloud properties
    548     where(sunlit .eq. 1 .or. isccp_top_height .eq. 3)
     548    where(sunlit == 1 .or. isccp_top_height == 3)
    549549       totalcldarea(1:npoints)  = 0._wp
    550550       meanalbedocld(1:npoints) = 0._wp
     
    561561    do j=1,npoints
    562562       ! Subcolumns that are cloudy(true) and not(false)
    563        box_cloudy2(1:ncol) = merge(.true.,.false.,boxtau(j,1:ncol) .gt. tauchk .and. boxptop(j,1:ncol) .gt. 0.)
     563       box_cloudy2(1:ncol) = merge(.true.,.false.,boxtau(j,1:ncol) > tauchk .and. boxptop(j,1:ncol) > 0.)
    564564
    565565       ! Compute joint histogram and column quantities for points that are sunlit and cloudy
    566        if (sunlit(j) .eq.1 .or. isccp_top_height .eq. 3) then
     566       if (sunlit(j) ==1 .or. isccp_top_height == 3) then
    567567          ! Joint-histogram
    568568          call hist2D(boxtau(j,1:ncol),boxptop(j,1:ncol),ncol,isccp_histTau,numISCCPTauBins, &
     
    572572         
    573573          ! Column cloud area
    574           totalcldarea(j) = real(count(box_cloudy2(1:ncol) .and. boxtau(j,1:ncol) .gt. isccp_taumin))/ncol
     574          totalcldarea(j) = real(count(box_cloudy2(1:ncol) .and. boxtau(j,1:ncol) > isccp_taumin))/ncol
    575575             
    576576          ! Subcolumn cloud albedo
    577577          !albedocld(j,1:ncol) = merge((boxtau(j,1:ncol)**0.895_wp)/((boxtau(j,1:ncol)**0.895_wp)+6.82_wp),&
    578578          !     0._wp,box_cloudy2(1:ncol) .and. boxtau(j,1:ncol) .gt. isccp_taumin)
    579           where(box_cloudy2(1:ncol) .and. boxtau(j,1:ncol) .gt. isccp_taumin)
     579          where(box_cloudy2(1:ncol) .and. boxtau(j,1:ncol) > isccp_taumin)
    580580             albedocld(j,1:ncol) = (boxtau(j,1:ncol)**0.895_wp)/((boxtau(j,1:ncol)**0.895_wp)+6.82_wp)
    581581          elsewhere
     
    587587         
    588588          ! Column cloud top pressure
    589           meanptop(j) = sum(boxptop(j,1:ncol),box_cloudy2(1:ncol) .and. boxtau(j,1:ncol) .gt. isccp_taumin)/ncol
     589          meanptop(j) = sum(boxptop(j,1:ncol),box_cloudy2(1:ncol) .and. boxtau(j,1:ncol) > isccp_taumin)/ncol
    590590       endif
    591591    enddo
    592592   
    593593    ! Compute mean cloud properties. Set to mssing value in the event that totalcldarea=0
    594     where(totalcldarea(1:npoints) .gt. 0)
     594    where(totalcldarea(1:npoints) > 0)
    595595       meanptop(1:npoints)      = 100._wp*meanptop(1:npoints)/totalcldarea(1:npoints)
    596596       meanalbedocld(1:npoints) = meanalbedocld(1:npoints)/totalcldarea(1:npoints)
     
    609609
    610610    ! Represent in percent
    611     where(totalcldarea .ne. output_missing_value) totalcldarea = totalcldarea*100._wp
    612     where(fq_isccp     .ne. output_missing_value) fq_isccp     = fq_isccp*100._wp
     611    where(totalcldarea /= output_missing_value) totalcldarea = totalcldarea*100._wp
     612    where(fq_isccp     /= output_missing_value) fq_isccp     = fq_isccp*100._wp
    613613   
    614614   
     
    634634    varOUT(1:dim1,1:dim2,1:dim3) = 0._wp
    635635    do j=1,dim2
    636        where(flag(:,j,:) .eq. 1)
     636       where(flag(:,j,:) == 1)
    637637          varOUT(:,j,:) = varIN2
    638638       endwhere
    639        where(flag(:,j,:) .eq. 2)
     639       where(flag(:,j,:) == 2)
    640640          varOUT(:,j,:) = varIN1
    641641       endwhere
  • LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2/lidar_simulator.F90

    r3491 r5082  
    231231          ! Computation of the total perpendicular lidar signal (ATBperp for liq+ice)
    232232          ! Upper layer
    233           WHERE(tautot(1:npoints,icol,1) .gt. 0)
     233          WHERE(tautot(1:npoints,icol,1) > 0)
    234234             pnorm_perp_tot(1:npoints,icol,1) = (beta_perp_ice(1:npoints,icol,1)+           &
    235235                  beta_perp_liq(1:npoints,icol,1)-                                          &
     
    251251             ! Betaperp=beta_mol(:,k)/(1+1/0.0284)) [bodhaine et al. 1999] in the following
    252252             ! equations:
    253              WHERE (pnorm(1:npoints,icol,k) .eq. 0)
     253             WHERE (pnorm(1:npoints,icol,k) == 0)
    254254                pnorm_perp_tot(1:npoints,icol,k)=0._wp
    255255             ELSEWHERE
    256                 where(tautot_lay(1:npoints) .gt. 0.)
     256                where(tautot_lay(1:npoints) > 0.)
    257257                   pnorm_perp_tot(1:npoints,icol,k) = (beta_perp_ice(1:npoints,icol,k)+     &
    258258                        beta_perp_liq(1:npoints,icol,k)-(beta_mol(1:npoints,k)/(1._wp+1._wp/  &
     
    358358    latlid = .false.
    359359    lgrlidar532 = .false.
    360     if (platform .eq. 'calipso') lcalipso=.true.
    361     if (platform .eq. 'atlid') latlid=.true.
    362     if (platform .eq. 'grlidar532') lgrlidar532=.true.
     360    if (platform == 'calipso') lcalipso=.true.
     361    if (platform == 'atlid') latlid=.true.
     362    if (platform == 'grlidar532') lgrlidar532=.true.
    363363       
    364364    ! Vertically regrid input data
     
    400400       do ic = 1, ncol
    401401          pnorm_c = pnormFlip(:,ic,:)
    402           where ((pnorm_c .lt. xmax) .and. (betamolFlip(:,1,:) .lt. xmax) .and.          &
    403                 (betamolFlip(:,1,:) .gt. 0.0 ))
     402          where ((pnorm_c < xmax) .and. (betamolFlip(:,1,:) < xmax) .and.          &
     403                (betamolFlip(:,1,:) > 0.0 ))
    404404             x3d_c = pnorm_c/betamolFlip(:,1,:)
    405405          elsewhere
     
    429429       do ic = 1, ncol
    430430          pnorm_c = pnorm(:,ic,:)
    431           where ((pnorm_c.lt.xmax) .and. (pmol.lt.xmax) .and. (pmol.gt. 0.0 ))
     431          where ((pnorm_c<xmax) .and. (pmol<xmax) .and. (pmol> 0.0 ))
    432432             x3d_c = pnorm_c/pmol
    433433          elsewhere
     
    463463          enddo
    464464       enddo
    465        where(cfad2 .ne. R_UNDEF) cfad2=cfad2/ncol
     465       where(cfad2 /= R_UNDEF) cfad2=cfad2/ncol
    466466    endif
    467467   
     
    501501    do k=2,nlev
    502502       tautot_lay(:) = tau(:,k)-tau(:,k-1)
    503        WHERE (tautot_lay(:) .gt. 0.)
     503       WHERE (tautot_lay(:) > 0.)
    504504          pnorm(:,k) = beta(:,k)*EXP(-2._wp*tau(:,k-1)) /&
    505505               (2._wp*tautot_lay(:))*(1._wp-EXP(-2._wp*tautot_lay(:)))
     
    529529    do k=2,nlev
    530530       tautot_lay(:) = tau(:,k)-tau(:,k-1)       
    531        WHERE ( EXP(-2._wp*tau(:,k-1)) .gt. epsrealwp )
    532           WHERE (tautot_lay(:) .gt. 0.)
     531       WHERE ( EXP(-2._wp*tau(:,k-1)) > epsrealwp )
     532          WHERE (tautot_lay(:) > 0.)
    533533             beta(:,k) = pnorm(:,k)/ EXP(-2._wp*tau(:,k-1))* &
    534534                  (2._wp*tautot_lay(:))/(1._wp-exp(-2._wp*tautot_lay(:)))
     
    650650    do k=1,Nlevels
    651651       ! Cloud detection at subgrid-scale:
    652        where ((x(:,:,k) .gt. S_cld) .and. (x(:,:,k) .ne. undef) )
     652       where ((x(:,:,k) > S_cld) .and. (x(:,:,k) /= undef) )
    653653          cldy(:,:,k)=1._wp
    654654       elsewhere
     
    657657       
    658658       ! Number of usefull sub-columns:
    659        where ((x(:,:,k) .gt. S_att) .and. (x(:,:,k) .ne. undef) )
     659       where ((x(:,:,k) > S_att) .and. (x(:,:,k) /= undef) )
    660660          srok(:,:,k)=1._wp
    661661       elsewhere
     
    677677             ! Computation of the cloud fraction as a function of the temperature instead
    678678             ! of height, for ice,liquid and all clouds
    679              if(srok(ip,ic,k).gt.0.)then
     679             if(srok(ip,ic,k)>0.)then
    680680                do itemp=1,Ntemp
    681                    if( (tmp(ip,k).ge.tempmod(itemp)).and.(tmp(ip,k).lt.tempmod(itemp+1)) )then
     681                   if( (tmp(ip,k)>=tempmod(itemp)).and.(tmp(ip,k)<tempmod(itemp+1)) )then
    682682                      lidarcldtempind(ip,itemp)=lidarcldtempind(ip,itemp)+1._wp
    683683                   endif
     
    685685             endif
    686686             
    687              if(cldy(ip,ic,k).eq.1.)then
     687             if(cldy(ip,ic,k)==1.)then
    688688                do itemp=1,Ntemp
    689                    if( (tmp(ip,k) .ge. tempmod(itemp)).and.(tmp(ip,k) .lt. tempmod(itemp+1)) )then
     689                   if( (tmp(ip,k) >= tempmod(itemp)).and.(tmp(ip,k) < tempmod(itemp+1)) )then
    690690                      lidarcldtemp(ip,itemp,1)=lidarcldtemp(ip,itemp,1)+1._wp
    691691                   endif
     
    695695             iz=1
    696696             p1 = pplay(ip,k)
    697              if ( p1.gt.0. .and. p1.lt.(440._wp*100._wp)) then ! high clouds
     697             if ( p1>0. .and. p1<(440._wp*100._wp)) then ! high clouds
    698698                iz=3
    699              else if(p1.ge.(440._wp*100._wp) .and. p1.lt.(680._wp*100._wp)) then ! mid clouds
     699             else if(p1>=(440._wp*100._wp) .and. p1<(680._wp*100._wp)) then ! mid clouds
    700700                iz=2
    701701             endif
     
    714714   
    715715    ! Grid-box 3D cloud fraction
    716     where ( nsub(:,:).gt.0.0 )
     716    where ( nsub(:,:)>0.0 )
    717717       lidarcld(:,:) = lidarcld(:,:)/nsub(:,:)
    718718    elsewhere
     
    729729       enddo
    730730    enddo
    731     where (nsublayer(:,:) .gt. 0.0)
     731    where (nsublayer(:,:) > 0.0)
    732732       cldlayer(:,:) = cldlayer(:,:)/nsublayer(:,:)
    733733    elsewhere
     
    748748
    749749             ! Avoid zero values
    750              if( (cldy(i,ncol,nlev).eq.1.) .and. (ATBperp(i,ncol,nlev).gt.0.) )then
     750             if( (cldy(i,ncol,nlev)==1.) .and. (ATBperp(i,ncol,nlev)>0.) )then
    751751                ! Computation of the ATBperp along the phase discrimination line
    752752                ATBperp_tmp = (ATB(i,ncol,nlev)**5)*alpha50 + (ATB(i,ncol,nlev)**4)*beta50 + &
     
    756756                ! 4.1.a) Ice: ATBperp above the phase discrimination line
    757757                ! ########################################################################
    758                 if((ATBperp(i,ncol,nlev)-ATBperp_tmp) .ge. 0.)then ! Ice clouds
     758                if((ATBperp(i,ncol,nlev)-ATBperp_tmp) >= 0.)then ! Ice clouds
    759759
    760760                   ! ICE with temperature above 273,15°K = Liquid (false ice)
    761                    if(tmp(i,nlev) .gt. 273.15) then ! Temperature above 273,15 K
     761                   if(tmp(i,nlev) > 273.15) then ! Temperature above 273,15 K
    762762                     ! Liquid: False ice corrected by the temperature to Liquid
    763763                      lidarcldphase(i,nlev,2) = lidarcldphase(i,nlev,2)+1._wp ! False ice detection ==> added to Liquid
     
    767767                                                                              ! to classify the phase cloud
    768768                      cldlayphase(i,ncol,4,2) = 1. ! tot cloud
    769                       if (p1 .gt. 0. .and. p1.lt.(440._wp*100._wp)) then ! high cloud
     769                      if (p1 > 0. .and. p1<(440._wp*100._wp)) then ! high cloud
    770770                         cldlayphase(i,ncol,3,2) = 1._wp
    771                       else if(p1 .ge. (440._wp*100._wp) .and. p1 .lt. (680._wp*100._wp)) then ! mid cloud
     771                      else if(p1 >= (440._wp*100._wp) .and. p1 < (680._wp*100._wp)) then ! mid cloud
    772772                         cldlayphase(i,ncol,2,2) = 1._wp
    773773                      else ! low cloud
     
    776776                      cldlayphase(i,ncol,4,5) = 1._wp ! tot cloud
    777777                      ! High cloud
    778                       if (p1 .gt. 0. .and. p1 .lt. (440._wp*100._wp)) then
     778                      if (p1 > 0. .and. p1 < (440._wp*100._wp)) then
    779779                         cldlayphase(i,ncol,3,5) = 1._wp
    780780                      ! Middle cloud
    781                       else if(p1 .ge. (440._wp*100._wp) .and. p1 .lt. (680._wp*100._wp)) then
     781                      else if(p1 >= (440._wp*100._wp) .and. p1 < (680._wp*100._wp)) then
    782782                         cldlayphase(i,ncol,2,5) = 1._wp
    783783                      ! Low cloud
     
    791791                      cldlayphase(i,ncol,4,1) = 1._wp ! tot cloud
    792792                      ! High cloud
    793                       if (p1 .gt. 0. .and. p1 .lt. (440._wp*100._wp)) then
     793                      if (p1 > 0. .and. p1 < (440._wp*100._wp)) then
    794794                         cldlayphase(i,ncol,3,1) = 1._wp
    795795                      ! Middle cloud   
    796                       else if(p1 .ge. (440._wp*100._wp) .and. p1 .lt. (680._wp*100._wp)) then
     796                      else if(p1 >= (440._wp*100._wp) .and. p1 < (680._wp*100._wp)) then
    797797                         cldlayphase(i,ncol,2,1) = 1._wp
    798798                      ! Low cloud
     
    806806                else
    807807                   ! Liquid with temperature above 231,15°K
    808                    if(tmp(i,nlev) .gt. 231.15_wp) then
     808                   if(tmp(i,nlev) > 231.15_wp) then
    809809                      lidarcldphase(i,nlev,2) = lidarcldphase(i,nlev,2)+1._wp
    810810                      tmpl(i,ncol,nlev)       = tmp(i,nlev)
    811811                      cldlayphase(i,ncol,4,2) = 1._wp ! tot cloud
    812812                      ! High cloud
    813                       if (p1 .gt. 0. .and. p1 .lt. (440._wp*100._wp)) then
     813                      if (p1 > 0. .and. p1 < (440._wp*100._wp)) then
    814814                         cldlayphase(i,ncol,3,2) = 1._wp
    815815                      ! Middle cloud   
    816                       else if(p1 .ge. (440._wp*100._wp) .and. p1 .lt. (680._wp*100._wp)) then
     816                      else if(p1 >= (440._wp*100._wp) .and. p1 < (680._wp*100._wp)) then
    817817                         cldlayphase(i,ncol,2,2) = 1._wp
    818818                      ! Low cloud   
     
    827827                      cldlayphase(i,ncol,4,4) = 1._wp ! tot cloud
    828828                      ! High cloud
    829                       if (p1 .gt. 0. .and. p1 .lt. (440._wp*100._wp)) then
     829                      if (p1 > 0. .and. p1 < (440._wp*100._wp)) then
    830830                         cldlayphase(i,ncol,3,4) = 1._wp
    831831                      ! Middle cloud   
    832                       else if(p1 .ge. (440._wp*100._wp) .and. p1 .lt. (680._wp*100._wp)) then
     832                      else if(p1 >= (440._wp*100._wp) .and. p1 < (680._wp*100._wp)) then
    833833                         cldlayphase(i,ncol,2,4) = 1._wp
    834834                      ! Low cloud
     
    838838                      cldlayphase(i,ncol,4,1) = 1._wp ! tot cloud
    839839                      ! High cloud
    840                       if (p1 .gt. 0. .and. p1 .lt. (440._wp*100._wp)) then
     840                      if (p1 > 0. .and. p1 < (440._wp*100._wp)) then
    841841                         cldlayphase(i,ncol,3,1) = 1._wp
    842842                      ! Middle cloud   
    843                       else if(p1 .ge. (440._wp*100._wp) .and. p1 .lt. (680._wp*100._wp)) then
     843                      else if(p1 >= (440._wp*100._wp) .and. p1 < (680._wp*100._wp)) then
    844844                         cldlayphase(i,ncol,2,1) = 1._wp
    845845                      ! Low cloud   
     
    859859             p1 = pplay(i,nlev)
    860860
    861              if((cldy(i,ncol,nlev) .eq. 1.) .and. (ATBperp(i,ncol,nlev) .gt. 0.) )then
     861             if((cldy(i,ncol,nlev) == 1.) .and. (ATBperp(i,ncol,nlev) > 0.) )then
    862862                ! Computation of the ATBperp of the phase discrimination line
    863863                ATBperp_tmp = (ATB(i,ncol,nlev)**5)*alpha50 + (ATB(i,ncol,nlev)**4)*beta50 + &
     
    868868                ! ########################################################################
    869869                ! ICE with temperature above 273,15°K = Liquid (false ice)
    870                 if((ATBperp(i,ncol,nlev)-ATBperp_tmp) .ge. 0.)then ! Ice clouds
    871                    if(tmp(i,nlev) .gt. 273.15)then
     870                if((ATBperp(i,ncol,nlev)-ATBperp_tmp) >= 0.)then ! Ice clouds
     871                   if(tmp(i,nlev) > 273.15)then
    872872                      lidarcldphase(i,nlev,2) = lidarcldphase(i,nlev,2)+1._wp ! false ice ==> liq
    873873                      tmpl(i,ncol,nlev)       = tmp(i,nlev)
     
    875875                      cldlayphase(i,ncol,4,2) = 1._wp ! tot cloud
    876876                      ! High cloud
    877                       if (p1 .gt. 0. .and. p1 .lt. (440._wp*100._wp)) then
     877                      if (p1 > 0. .and. p1 < (440._wp*100._wp)) then
    878878                         cldlayphase(i,ncol,3,2) = 1._wp
    879879                      ! Middle cloud   
    880                       else if(p1 .ge. (440._wp*100._wp) .and. p1 .lt. (680._wp*100._wp)) then
     880                      else if(p1 >= (440._wp*100._wp) .and. p1 < (680._wp*100._wp)) then
    881881                         cldlayphase(i,ncol,2,2) = 1._wp
    882882                      ! Low cloud
     
    887887                      cldlayphase(i,ncol,4,5) = 1. ! tot cloud
    888888                      ! High cloud
    889                       if (p1 .gt. 0. .and. p1 .lt. (440._wp*100._wp)) then
     889                      if (p1 > 0. .and. p1 < (440._wp*100._wp)) then
    890890                         cldlayphase(i,ncol,3,5) = 1._wp
    891891                      ! Middle cloud   
    892                       else if(p1 .ge. (440._wp*100._wp) .and. p1 .lt. (680._wp*100._wp)) then
     892                      else if(p1 >= (440._wp*100._wp) .and. p1 < (680._wp*100._wp)) then
    893893                         cldlayphase(i,ncol,2,5) = 1._wp
    894894                      ! Low cloud   
     
    902902                      cldlayphase(i,ncol,4,1) = 1._wp ! tot cloud
    903903                      ! High cloud
    904                       if (p1 .gt. 0. .and. p1 .lt. (440._wp*100._wp)) then
     904                      if (p1 > 0. .and. p1 < (440._wp*100._wp)) then
    905905                         cldlayphase(i,ncol,3,1) = 1._wp
    906906                      ! Middle cloud   
    907                       else if(p1 .ge. (440._wp*100._wp) .and. p1 .lt.(680._wp*100._wp)) then
     907                      else if(p1 >= (440._wp*100._wp) .and. p1 <(680._wp*100._wp)) then
    908908                         cldlayphase(i,ncol,2,1) = 1._wp
    909909                      ! Low cloud   
     
    918918                else
    919919                   ! Liquid with temperature above 231,15°K
    920                    if(tmp(i,nlev) .gt. 231.15)then
     920                   if(tmp(i,nlev) > 231.15)then
    921921                      lidarcldphase(i,nlev,2) = lidarcldphase(i,nlev,2)+1._wp
    922922                      tmpl(i,ncol,nlev)       = tmp(i,nlev)
    923923                      cldlayphase(i,ncol,4,2) = 1._wp ! tot cloud
    924924                      ! High cloud
    925                       if (p1 .gt. 0. .and. p1 .lt. (440._wp*100._wp)) then
     925                      if (p1 > 0. .and. p1 < (440._wp*100._wp)) then
    926926                         cldlayphase(i,ncol,3,2) = 1._wp
    927927                      ! Middle cloud   
    928                       else if(p1 .ge. (440._wp*100._wp) .and. p1 .lt. (680._wp*100._wp)) then
     928                      else if(p1 >= (440._wp*100._wp) .and. p1 < (680._wp*100._wp)) then
    929929                         cldlayphase(i,ncol,2,2) = 1._wp
    930930                      ! Low cloud   
     
    939939                      cldlayphase(i,ncol,4,4) = 1._wp ! tot cloud
    940940                      ! High cloud
    941                       if (p1 .gt. 0. .and. p1 .lt. (440._wp*100._wp)) then
     941                      if (p1 > 0. .and. p1 < (440._wp*100._wp)) then
    942942                         cldlayphase(i,ncol,3,4) = 1._wp
    943943                      ! Middle   
    944                       else if(p1 .ge. (440._wp*100._wp) .and. p1 .lt. (680._wp*100._wp)) then
     944                      else if(p1 >= (440._wp*100._wp) .and. p1 < (680._wp*100._wp)) then
    945945                         cldlayphase(i,ncol,2,4) = 1._wp
    946946                      ! Low cloud   
     
    951951                      cldlayphase(i,ncol,4,1) = 1._wp ! tot cloud
    952952                      ! High cloud
    953                       if (p1 .gt. 0. .and. p1 .lt. (440._wp*100._wp)) then
     953                      if (p1 > 0. .and. p1 < (440._wp*100._wp)) then
    954954                         cldlayphase(i,ncol,3,1) = 1._wp
    955955                      ! Middle cloud   
    956                       else if(p1 .ge. (440._wp*100._wp) .and. p1 .lt. (680._wp*100._wp)) then
     956                      else if(p1 >= (440._wp*100._wp) .and. p1 < (680._wp*100._wp)) then
    957957                         cldlayphase(i,ncol,2,1) = 1._wp
    958958                      ! Low cloud   
     
    966966               
    967967                ! Find the level of the highest cloud with SR>30
    968                 if(x(i,ncol,nlev) .gt. S_cld_att) then ! SR > 30.
     968                if(x(i,ncol,nlev) > S_cld_att) then ! SR > 30.
    969969                    toplvlsat = nlev+1
    970970                    goto 99
     
    978978          ! see Cesana and Chepfer 2013 Sect.III.2
    979979          ! ##############################################################################
    980           if(toplvlsat.ne.0) then
     980          if(toplvlsat/=0) then
    981981             do nlev = toplvlsat,Nlevels
    982982                p1 = pplay(i,nlev)
    983                 if(cldy(i,ncol,nlev).eq.1.)then
     983                if(cldy(i,ncol,nlev)==1.)then
    984984                   lidarcldphase(i,nlev,3) = lidarcldphase(i,nlev,3)+1._wp
    985985                   tmpu(i,ncol,nlev)       = tmp(i,nlev)
    986986                   cldlayphase(i,ncol,4,3) = 1._wp ! tot cloud
    987987                   ! High cloud
    988                    if (p1 .gt. 0. .and. p1 .lt. (440._wp*100._wp)) then
     988                   if (p1 > 0. .and. p1 < (440._wp*100._wp)) then
    989989                      cldlayphase(i,ncol,3,3) = 1._wp
    990990                   ! Middle cloud   
    991                    else if(p1 .ge. (440._wp*100._wp) .and. p1 .lt. (680._wp*100._wp)) then
     991                   else if(p1 >= (440._wp*100._wp) .and. p1 < (680._wp*100._wp)) then
    992992                      cldlayphase(i,ncol,2,3) = 1._wp
    993993                   ! Low cloud   
     
    10081008    ! Compute the Ice percentage in cloud = ice/(ice+liq) as a function of the occurrences
    10091009    lidarcldphasetmp(:,:) = lidarcldphase(:,:,1)+lidarcldphase(:,:,2);
    1010     WHERE (lidarcldphasetmp(:,:) .gt. 0.)
     1010    WHERE (lidarcldphasetmp(:,:) > 0.)
    10111011       lidarcldphase(:,:,6)=lidarcldphase(:,:,1)/lidarcldphasetmp(:,:)
    10121012    ELSEWHERE
     
    10161016    ! Compute Phase 3D Cloud Fraction
    10171017    !WHERE (nsub(:,Nlevels:1:-1) .gt. 0.0 )
    1018     WHERE (nsub(:,:) .gt. 0.0 ) 
     1018    WHERE (nsub(:,:) > 0.0 )
    10191019       lidarcldphase(:,:,1)=lidarcldphase(:,:,1)/nsub(:,:)
    10201020       lidarcldphase(:,:,2)=lidarcldphase(:,:,2)/nsub(:,:)
     
    10491049    ! Compute the Ice percentage in cloud = ice/(ice+liq)
    10501050    cldlayerphasetmp(:,:)=cldlayerphase(:,:,1)+cldlayerphase(:,:,2)
    1051     WHERE (cldlayerphasetmp(:,:).gt. 0.)
     1051    WHERE (cldlayerphasetmp(:,:)> 0.)
    10521052       cldlayerphase(:,:,6)=cldlayerphase(:,:,1)/cldlayerphasetmp(:,:)
    10531053    ELSEWHERE
     
    10561056   
    10571057    do i=1,Nphase-1
    1058        WHERE ( cldlayerphasesum(:,:).gt.0.0 )
     1058       WHERE ( cldlayerphasesum(:,:)>0.0 )
    10591059          cldlayerphase(:,:,i) = (cldlayerphase(:,:,i)/cldlayerphasesum(:,:)) * cldlayer(:,:)
    10601060       ENDWHERE
     
    10651065          checkcldlayerphase=0.
    10661066          checkcldlayerphase2=0.
    1067           if (cldlayerphasesum(i,iz) .gt. 0.0 )then
     1067          if (cldlayerphasesum(i,iz) > 0.0 )then
    10681068             do ic=1,Nphase-3
    10691069                checkcldlayerphase = checkcldlayerphase+cldlayerphase(i,iz,ic)
    10701070             enddo
    10711071             checkcldlayerphase2 = cldlayer(i,iz)-checkcldlayerphase
    1072              if((checkcldlayerphase2 .gt. 0.01) .or. (checkcldlayerphase2 .lt. -0.01) ) print *, checkcldlayerphase,cldlayer(i,iz)
     1072             if((checkcldlayerphase2 > 0.01) .or. (checkcldlayerphase2 < -0.01) ) print *, checkcldlayerphase,cldlayer(i,iz)
    10731073          endif
    10741074       enddo
     
    10761076   
    10771077    do i=1,Nphase-1
    1078        WHERE (nsublayer(:,:) .eq. 0.0)
     1078       WHERE (nsublayer(:,:) == 0.0)
    10791079          cldlayerphase(:,:,i) = undef
    10801080       ENDWHERE
     
    10861086          do i=1,Npoints
    10871087             do itemp=1,Ntemp
    1088                 if(tmpi(i,ncol,nlev).gt.0.)then
    1089                    if((tmpi(i,ncol,nlev) .ge. tempmod(itemp)) .and. (tmpi(i,ncol,nlev) .lt. tempmod(itemp+1)) )then
     1088                if(tmpi(i,ncol,nlev)>0.)then
     1089                   if((tmpi(i,ncol,nlev) >= tempmod(itemp)) .and. (tmpi(i,ncol,nlev) < tempmod(itemp+1)) )then
    10901090                      lidarcldtemp(i,itemp,2)=lidarcldtemp(i,itemp,2)+1._wp
    10911091                   endif
    1092                 elseif(tmpl(i,ncol,nlev) .gt. 0.)then
    1093                    if((tmpl(i,ncol,nlev) .ge. tempmod(itemp)) .and. (tmpl(i,ncol,nlev) .lt. tempmod(itemp+1)) )then
     1092                elseif(tmpl(i,ncol,nlev) > 0.)then
     1093                   if((tmpl(i,ncol,nlev) >= tempmod(itemp)) .and. (tmpl(i,ncol,nlev) < tempmod(itemp+1)) )then
    10941094                      lidarcldtemp(i,itemp,3)=lidarcldtemp(i,itemp,3)+1._wp
    10951095                   endif
    1096                 elseif(tmpu(i,ncol,nlev) .gt. 0.)then
    1097                    if((tmpu(i,ncol,nlev) .ge. tempmod(itemp)) .and. (tmpu(i,ncol,nlev) .lt. tempmod(itemp+1)) )then
     1096                elseif(tmpu(i,ncol,nlev) > 0.)then
     1097                   if((tmpu(i,ncol,nlev) >= tempmod(itemp)) .and. (tmpu(i,ncol,nlev) < tempmod(itemp+1)) )then
    10981098                      lidarcldtemp(i,itemp,4)=lidarcldtemp(i,itemp,4)+1._wp
    10991099                   endif
     
    11181118    ! Compute the Ice percentage in cloud = ice/(ice+liq)
    11191119    sumlidarcldtemp(:,:)=lidarcldtemp(:,:,2)+lidarcldtemp(:,:,3)   
    1120     WHERE(sumlidarcldtemp(:,:) .gt. 0.)
     1120    WHERE(sumlidarcldtemp(:,:) > 0.)
    11211121       lidarcldtemp(:,:,5)=lidarcldtemp(:,:,2)/sumlidarcldtemp(:,:)
    11221122    ELSEWHERE
     
    11251125   
    11261126    do i=1,4
    1127        WHERE(lidarcldtempind(:,:) .gt. 0.)
     1127       WHERE(lidarcldtempind(:,:) > 0.)
    11281128          lidarcldtemp(:,:,i) = lidarcldtemp(:,:,i)/lidarcldtempind(:,:)
    11291129       ELSEWHERE
     
    11931193    do k=1,Nlevels
    11941194       ! Cloud detection at subgrid-scale:
    1195        where ((x(:,:,k) .gt. S_cld) .and. (x(:,:,k) .ne. undef) )
     1195       where ((x(:,:,k) > S_cld) .and. (x(:,:,k) /= undef) )
    11961196          cldy(:,:,k)=1._wp
    11971197       elsewhere
     
    12001200       
    12011201       ! Number of usefull sub-columns:
    1202        where ((x(:,:,k) .gt. S_att) .and. (x(:,:,k) .ne. undef) )
     1202       where ((x(:,:,k) > S_att) .and. (x(:,:,k) /= undef) )
    12031203          srok(:,:,k)=1._wp
    12041204       elsewhere
     
    12161216             iz=1
    12171217             p1 = pplay(ip,k)
    1218              if ( p1.gt.0. .and. p1.lt.(440._wp*100._wp)) then ! high clouds
     1218             if ( p1>0. .and. p1<(440._wp*100._wp)) then ! high clouds
    12191219                iz=3
    1220              else if(p1.ge.(440._wp*100._wp) .and. p1.lt.(680._wp*100._wp)) then ! mid clouds
     1220             else if(p1>=(440._wp*100._wp) .and. p1<(680._wp*100._wp)) then ! mid clouds
    12211221                iz=2
    12221222             endif
     
    12351235   
    12361236    ! Grid-box 3D cloud fraction
    1237     where ( nsub(:,:).gt.0.0 )
     1237    where ( nsub(:,:)>0.0 )
    12381238       lidarcld(:,:) = lidarcld(:,:)/nsub(:,:)
    12391239    elsewhere
     
    12501250       enddo
    12511251    enddo
    1252     where (nsublayer(:,:) .gt. 0.0)
     1252    where (nsublayer(:,:) > 0.0)
    12531253       cldlayer(:,:) = cldlayer(:,:)/nsublayer(:,:)
    12541254    elsewhere
     
    13441344    do k=1,Nlevels
    13451345       ! Cloud detection at subgrid-scale:
    1346        where ( (x(:,:,k) .gt. S_cld) .and. (x(:,:,k) .ne. undef) )
     1346       where ( (x(:,:,k) > S_cld) .and. (x(:,:,k) /= undef) )
    13471347          cldy(:,:,k)=1._wp
    13481348       elsewhere
     
    13501350       endwhere
    13511351       ! Fully attenuated layer detection at subgrid-scale:
    1352        where ( (x(:,:,k) .lt. S_att_opaq) .and. (x(:,:,k) .ge. 0.) .and. (x(:,:,k) .ne. undef) ) !DEBUG
     1352       where ( (x(:,:,k) < S_att_opaq) .and. (x(:,:,k) >= 0.) .and. (x(:,:,k) /= undef) ) !DEBUG
    13531353          cldyopaq(:,:,k)=1._wp
    13541354       elsewhere
     
    13581358
    13591359       ! Number of usefull sub-column layers:
    1360        where ( (x(:,:,k) .gt. S_att) .and. (x(:,:,k) .ne. undef) )
     1360       where ( (x(:,:,k) > S_att) .and. (x(:,:,k) /= undef) )
    13611361          srok(:,:,k)=1._wp
    13621362       elsewhere
     
    13641364       endwhere
    13651365       ! Number of usefull sub-columns layers for z_opaque 3D fraction:
    1366        where ( (x(:,:,k) .ge. 0.) .and. (x(:,:,k) .ne. undef) ) !DEBUG
     1366       where ( (x(:,:,k) >= 0.) .and. (x(:,:,k) /= undef) ) !DEBUG
    13671367          srokopaq(:,:,k)=1._wp
    13681368       elsewhere
     
    13971397
    13981398     ! Declaring non-opaque cloudy profiles as thin cloud profiles
    1399            if ( cldlay(ip,ic,4).gt. 0. .and. cldlay(ip,ic,1) .eq. 0. ) then
     1399           if ( cldlay(ip,ic,4)> 0. .and. cldlay(ip,ic,1) == 0. ) then
    14001400              cldlay(ip,ic,2)  =  1._wp
    14011401           endif
     
    14041404
    14051405     ! Opaque cloud profiles
    1406            if ( cldlay(ip,ic,1) .eq. 1. ) then
     1406           if ( cldlay(ip,ic,1) == 1. ) then
    14071407              zopac = 0._wp
    14081408              z_top = 0._wp
     
    14101410     ! Declaring z_opaque altitude and opaque cloud fraction for 3D and 2D variables
    14111411     ! From SFC-2-TOA ( actually from vgrid_z(SFC+1) = vgrid_z(Nlevels-1) )
    1412                  if ( cldy(ip,ic,Nlevels-k) .eq. 1. .and. zopac .eq. 0. ) then
     1412                 if ( cldy(ip,ic,Nlevels-k) == 1. .and. zopac == 0. ) then
    14131413                    lidarcldtype(ip,Nlevels-k + 1,3) = lidarcldtype(ip,Nlevels-k + 1,3) + 1._wp
    14141414                    cldlay(ip,ic,3)                  = vgrid_z(Nlevels-k+1)      ! z_opaque altitude
     
    14161416                    zopac = Nlevels-k+1                        ! z_opaque vertical index on vgrid_z
    14171417                 endif
    1418                  if ( cldy(ip,ic,Nlevels-k) .eq. 1. ) then
     1418                 if ( cldy(ip,ic,Nlevels-k) == 1. ) then
    14191419                    lidarcldtype(ip,Nlevels-k ,1)    = lidarcldtype(ip,Nlevels-k ,1) + 1._wp
    14201420                    z_top = Nlevels-k    ! top cloud layer vertical index on vgrid_z
     
    14231423     ! Summing opaque cloud mean temperatures and altitudes
    14241424     ! as defined in Vaillant de Guelis et al. 2017a, AMT
    1425               if (zopac .ne. 0) then
     1425              if (zopac /= 0) then
    14261426                 cldtypetemp(ip,1) = cldtypetemp(ip,1) + ( tmp(ip,zopac) + tmp(ip,z_top) )/2.
    14271427                 cldtypetemp(ip,3) = cldtypetemp(ip,3) + tmp(ip,zopac)                 ! z_opaque
     
    14351435
    14361436     ! Thin cloud profiles
    1437            if ( cldlay(ip,ic,2) .eq. 1. ) then
     1437           if ( cldlay(ip,ic,2) == 1. ) then
    14381438              topcloud = 0._wp
    14391439              z_top = 0._wp
     
    14421442     ! Declaring thin cloud fraction for 3D variable
    14431443     ! From TOA-2-SFC
    1444                  if ( cldy(ip,ic,k) .eq. 1. .and. topcloud .eq. 1. ) then
     1444                 if ( cldy(ip,ic,k) == 1. .and. topcloud == 1. ) then
    14451445                    lidarcldtype(ip,k,2) = lidarcldtype(ip,k,2) + 1._wp
    14461446                    z_base = k ! bottom cloud layer
    14471447                 endif
    1448                  if ( cldy(ip,ic,k) .eq. 1. .and. topcloud .eq. 0. ) then
     1448                 if ( cldy(ip,ic,k) == 1. .and. topcloud == 0. ) then
    14491449                    lidarcldtype(ip,k,2) = lidarcldtype(ip,k,2) + 1._wp
    14501450                    z_top = k  ! top cloud layer
     
    14581458              cloudemis = 0._wp
    14591459              do k=z_base+1,Nlevels
    1460                  if (  (x(ip,ic,k) .gt. S_att_opaq) .and. (x(ip,ic,k) .lt. 1.0) .and. (x(ip,ic,k) .ne. undef)  ) then
     1460                 if (  (x(ip,ic,k) > S_att_opaq) .and. (x(ip,ic,k) < 1.0) .and. (x(ip,ic,k) /= undef)  ) then
    14611461                    srmean = srmean + x(ip,ic,k)
    14621462                    srcount = srcount + 1.
     
    14641464              enddo
    14651465              ! If clear sky layers exist below bottom cloud layer
    1466               if ( srcount .gt. 0. ) then
     1466              if ( srcount > 0. ) then
    14671467                 trans2 = srmean/srcount              ! thin cloud transmittance**2
    14681468                 tau_app = -(log(trans2))/2.          ! apparent cloud optical depth
     
    14841484
    14851485    ! 3D cloud types fraction (opaque=1 and thin=2 clouds)
    1486     where ( nsub(:,:) .gt. 0. )
     1486    where ( nsub(:,:) > 0. )
    14871487       lidarcldtype(:,:,1) = lidarcldtype(:,:,1)/nsub(:,:)
    14881488       lidarcldtype(:,:,2) = lidarcldtype(:,:,2)/nsub(:,:)
     
    14921492    endwhere
    14931493    ! 3D z_opaque fraction (=3)
    1494     where ( nsubopaq(:,:) .gt. 0. )
     1494    where ( nsubopaq(:,:) > 0. )
    14951495       lidarcldtype(:,:,3) = lidarcldtype(:,:,3)/nsubopaq(:,:)
    14961496    elsewhere
     
    15021502    do ip = 1, Npoints
    15031503        do k = 2, Nlevels
    1504             if ( (lidarcldtype(ip,k,3) .ne. undef) .and. (lidarcldtype(ip,k-1,4) .ne. undef) ) then
     1504            if ( (lidarcldtype(ip,k,3) /= undef) .and. (lidarcldtype(ip,k-1,4) /= undef) ) then
    15051505                lidarcldtype(ip,k,4) = lidarcldtype(ip,k,3) + lidarcldtype(ip,k-1,4)
    15061506            else
     
    15201520
    15211521    ! Mean temperature and altitude
    1522     where (cldtype(:,1) .gt. 0.)
     1522    where (cldtype(:,1) > 0.)
    15231523       cldtypetemp(:,1) = cldtypetemp(:,1)/cldtype(:,1) ! opaque cloud temp
    15241524       cldtypetemp(:,3) = cldtypetemp(:,3)/cldtype(:,1) ! z_opaque
     
    15341534    endwhere
    15351535
    1536     where (cldtype(:,2) .gt. 0.) ! thin cloud
     1536    where (cldtype(:,2) > 0.) ! thin cloud
    15371537       cldtypetemp(:,2) = cldtypetemp(:,2)/cldtype(:,2)
    15381538       cldtypemeanz(:,2) = cldtypemeanz(:,2)/cldtype(:,2)
     
    15451545
    15461546    ! Mean thin cloud emissivity
    1547     where (count_emis(:) .gt. 0.) ! thin cloud
     1547    where (count_emis(:) > 0.) ! thin cloud
    15481548       cldthinemis(:) = cldthinemis(:)/count_emis(:)
    15491549    elsewhere
     
    15511551    endwhere
    15521552
    1553     where (nsublayer(:,:) .gt. 0.)
     1553    where (nsublayer(:,:) > 0.)
    15541554       cldtype(:,:) = cldtype(:,:)/nsublayer(:,:)
    15551555    elsewhere
  • LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2/lmdz_cosp_interface.F90

    r4619 r5082  
    275275        cfg%Lisccp, cfg%Lmisr, cfg%Lmodis, cfg%Lrttov
    276276
    277     if (overlaplmdz.ne.overlap) then
     277    if (overlaplmdz/=overlap) then
    278278       print*,'Attention overlaplmdz different de overlap lu dans namelist '
    279279    endif
     
    282282   print*,'On passe par using_xios'
    283283 ELSE
    284    if (cosp_init_flag .eq. 0) then
     284   if (cosp_init_flag == 0) then
    285285
    286286      ! Initialize the distributional parameters for hydrometeors in radar simulator.
     
    311311
    312312!!! Ici on modifie les cles logiques pour les outputs selon les champs actives dans les .xml
    313   if ((itap.ge.1).and.(first_write))then
     313  if ((itap>=1).and.(first_write))then
    314314    IF (using_xios) call read_xiosfieldactive(cfg)
    315315    first_write=.false.
    316316
    317 if (cosp_init_flag .eq. 0) then
     317if (cosp_init_flag == 0) then
    318318
    319319    ! Initialize the distributional parameters for hydrometeors in radar simulator.
     
    384384! 3) Masque terre/mer a partir de la variable fracTerLic
    385385        do ip = 1, Npoints
    386           if (fracTerLic(ip).ge.0.5) then
     386          if (fracTerLic(ip)>=0.5) then
    387387             land(ip) = 1.
    388388          else
     
    424424
    425425
    426 if (cosp_init_flag .eq. 1) then      ! cosp_init_flag = 1
     426if (cosp_init_flag == 1) then      ! cosp_init_flag = 1
    427427
    428428!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    538538      endif ! debut_cosp
    539539
    540 if (cosp_init_flag .eq. 1) then
     540if (cosp_init_flag == 1) then
    541541
    542542!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  • LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2/lmdz_cosp_output_write_mod.F90

    r4619 r5082  
    669669    CHARACTER(LEN=20) :: typeecrit
    670670
    671     ! ug On récupère le type écrit de la structure:
    672     !       Assez moche, Ã|  refaire si meilleure méthode...
     671    ! ug On récupère le type écrit de la structure:
     672    !       Assez moche, �|  refaire si meilleure méthode...
    673673    IF (INDEX(var%cosp_typeecrit(iff), "once") > 0) THEN
    674674       typeecrit = 'once'
     
    730730
    731731! Axe vertical
    732       IF (nvertsave.eq.nvertp(iff)) THEN
     732      IF (nvertsave==nvertp(iff)) THEN
    733733          klevs=PARASOL_NREFL
    734734          nam_axvert="sza"
    735       ELSE IF (nvertsave.eq.nvertisccp(iff)) THEN
     735      ELSE IF (nvertsave==nvertisccp(iff)) THEN
    736736          klevs=7
    737737          nam_axvert="pressure2"
    738       ELSE IF (nvertsave.eq.nvertcol(iff)) THEN
     738      ELSE IF (nvertsave==nvertcol(iff)) THEN
    739739          klevs=Ncolout
    740740          nam_axvert="column"
    741       ELSE IF (nvertsave.eq.nverttemp(iff)) THEN
     741      ELSE IF (nvertsave==nverttemp(iff)) THEN
    742742          klevs=LIDAR_NTEMP
    743743          nam_axvert="temp"
    744       ELSE IF (nvertsave.eq.nvertmisr(iff)) THEN
     744      ELSE IF (nvertsave==nvertmisr(iff)) THEN
    745745          klevs=numMISRHgtBins
    746746          nam_axvert="cth16"
    747       ELSE IF (nvertsave.eq.nvertReffIce(iff)) THEN
     747      ELSE IF (nvertsave==nvertReffIce(iff)) THEN
    748748          klevs= numMODISReffIceBins
    749749          nam_axvert="ReffIce"
    750       ELSE IF (nvertsave.eq.nvertReffLiq(iff)) THEN
     750      ELSE IF (nvertsave==nvertReffLiq(iff)) THEN
    751751          klevs= numMODISReffLiqBins
    752752          nam_axvert="ReffLiq"
     
    765765      END IF
    766766
    767     ! ug On récupère le type écrit de la structure:
    768     !       Assez moche, Ã|  refaire si meilleure méthode...
     767    ! ug On récupère le type écrit de la structure:
     768    !       Assez moche, �|  refaire si meilleure méthode...
    769769    IF (INDEX(var%cosp_typeecrit(iff), "once") > 0) THEN
    770770       typeecrit = 'once'
     
    827827    IF (prt_level >= 9) WRITE(lunout,*)'Begin histrwrite2d ',var%name
    828828
    829   ! On regarde si on est dans la phase de définition ou d'écriture:
     829  ! On regarde si on est dans la phase de définition ou d'écriture:
    830830  IF(.NOT.cosp_varsdefined) THEN
    831831!$OMP MASTER
    832832      print*,'var, cosp_varsdefined dans cosp_varsdefined ',var%name, cosp_varsdefined
    833       !Si phase de définition.... on définit
     833      !Si phase de définition.... on définit
    834834      CALL conf_cospoutputs(var%name,var%cles)
    835835      DO iff=1, 3
     
    840840!$OMP END MASTER
    841841  ELSE
    842     !Et sinon on.... écrit
     842    !Et sinon on.... écrit
    843843    IF (SIZE(field)/=klon) &
    844844  CALL abort_physic('iophy::histwrite2d_cosp','Field first DIMENSION not equal to klon',1)
     
    921921               nom=var%name
    922922      END IF
    923   ! On regarde si on est dans la phase de définition ou d'écriture:
     923  ! On regarde si on est dans la phase de définition ou d'écriture:
    924924  IF(.NOT.cosp_varsdefined) THEN
    925       !Si phase de définition.... on définit
     925      !Si phase de définition.... on définit
    926926!$OMP MASTER
    927927      CALL conf_cospoutputs(var%name,var%cles)
     
    933933!$OMP END MASTER
    934934  ELSE
    935     !Et sinon on.... écrit
     935    !Et sinon on.... écrit
    936936    IF (SIZE(field,1)/=klon) &
    937937   CALL abort_physic('iophy::histwrite3d','Field first DIMENSION not equal to klon',1)                                 
     
    10001000
    10011001  IF(cosp_varsdefined) THEN
    1002     !Et sinon on.... écrit
     1002    !Et sinon on.... écrit
    10031003    IF (SIZE(field,1)/=klon) &
    10041004   CALL abort_physic('iophy::histwrite3d','Field first DIMENSION not equal to klon',1)           
  • LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2/lmdz_cosp_read_outputkeys.F90

    r4619 r5082  
    896896!  i = i+1 !si on laisse, 108 au lieu de 107
    897897
    898   if (i.gt.107) then
     898  if (i>107) then
    899899     print *, 'COSP_IO: wrong number of output diagnostics'
    900900     print *, i,107
  • LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2/lmdz_cosp_subsample_and_optics_mod.F90

    r3491 r5082  
    9898    logical :: cmpGases=.true.
    9999
    100     if (Ncolumns .gt. 1) then
     100    if (Ncolumns > 1) then
    101101       !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    102102       ! Generate subcolumns for clouds (SCOPS) and precipitation type (PREC_SCOPS)
     
    107107       seed = int(cospstateIN%phalf(:,Nlevels+1))  ! In case of NPoints=1
    108108       ! *NOTE* Chunking will change the seed
    109        if (NPoints .gt. 1) seed=int((cospstateIN%phalf(:,Nlevels+1)-minval(cospstateIN%phalf(:,Nlevels+1)))/      &
     109       if (NPoints > 1) seed=int((cospstateIN%phalf(:,Nlevels+1)-minval(cospstateIN%phalf(:,Nlevels+1)))/      &
    110110            (maxval(cospstateIN%phalf(:,Nlevels+1))-minval(cospstateIN%phalf(:,Nlevels+1)))*100000) + 1
    111111       call init_rng(rngs, seed)
     
    145145          do k=1,nLevels
    146146             do i=1,nColumns
    147                 if (cospIN%frac_out(j,i,k)  .eq. 1)  frac_ls(j,k) = frac_ls(j,k)+1._wp
    148                 if (cospIN%frac_out(j,i,k)  .eq. 2)  frac_cv(j,k) = frac_cv(j,k)+1._wp
    149                 if (frac_prec(j,i,k) .eq. 1)  prec_ls(j,k) = prec_ls(j,k)+1._wp
    150                 if (frac_prec(j,i,k) .eq. 2)  prec_cv(j,k) = prec_cv(j,k)+1._wp
    151                 if (frac_prec(j,i,k) .eq. 3)  prec_cv(j,k) = prec_cv(j,k)+1._wp
    152                 if (frac_prec(j,i,k) .eq. 3)  prec_ls(j,k) = prec_ls(j,k)+1._wp
     147                if (cospIN%frac_out(j,i,k)  == 1)  frac_ls(j,k) = frac_ls(j,k)+1._wp
     148                if (cospIN%frac_out(j,i,k)  == 2)  frac_cv(j,k) = frac_cv(j,k)+1._wp
     149                if (frac_prec(j,i,k) == 1)  prec_ls(j,k) = prec_ls(j,k)+1._wp
     150                if (frac_prec(j,i,k) == 2)  prec_cv(j,k) = prec_cv(j,k)+1._wp
     151                if (frac_prec(j,i,k) == 3)  prec_cv(j,k) = prec_cv(j,k)+1._wp
     152                if (frac_prec(j,i,k) == 3)  prec_ls(j,k) = prec_ls(j,k)+1._wp
    153153             enddo
    154154             frac_ls(j,k)=frac_ls(j,k)/nColumns
     
    217217          do j=1,nPoints
    218218             ! In-cloud mixing ratios.
    219              if (frac_ls(j,k) .ne. 0.) then
     219             if (frac_ls(j,k) /= 0.) then
    220220                mr_hydro(j,:,k,I_LSCLIQ) = mr_hydro(j,:,k,I_LSCLIQ)/frac_ls(j,k)
    221221                mr_hydro(j,:,k,I_LSCICE) = mr_hydro(j,:,k,I_LSCICE)/frac_ls(j,k)
    222222             endif
    223              if (frac_cv(j,k) .ne. 0.) then
     223             if (frac_cv(j,k) /= 0.) then
    224224                mr_hydro(j,:,k,I_CVCLIQ) = mr_hydro(j,:,k,I_CVCLIQ)/frac_cv(j,k)
    225225                mr_hydro(j,:,k,I_CVCICE) = mr_hydro(j,:,k,I_CVCICE)/frac_cv(j,k)
     
    227227             ! Precipitation
    228228             if (use_precipitation_fluxes) then
    229                 if (prec_ls(j,k) .ne. 0.) then
     229                if (prec_ls(j,k) /= 0.) then
    230230                   fl_lsrain(j,k) = fl_lsrainIN(j,k)/prec_ls(j,k)
    231231                   fl_lssnow(j,k) = fl_lssnowIN(j,k)/prec_ls(j,k)
    232232                   fl_lsgrpl(j,k) = fl_lsgrplIN(j,k)/prec_ls(j,k)
    233233                endif
    234                 if (prec_cv(j,k) .ne. 0.) then
     234                if (prec_cv(j,k) /= 0.) then
    235235                   fl_ccrain(j,k) = fl_ccrainIN(j,k)/prec_cv(j,k)
    236236                   fl_ccsnow(j,k) = fl_ccsnowIN(j,k)/prec_cv(j,k)
    237237                endif
    238238             else
    239                 if (prec_ls(j,k) .ne. 0.) then
     239                if (prec_ls(j,k) /= 0.) then
    240240                   mr_hydro(j,:,k,I_LSRAIN) = mr_hydro(j,:,k,I_LSRAIN)/prec_ls(j,k)
    241241                   mr_hydro(j,:,k,I_LSSNOW) = mr_hydro(j,:,k,I_LSSNOW)/prec_ls(j,k)
    242242                   mr_hydro(j,:,k,I_LSGRPL) = mr_hydro(j,:,k,I_LSGRPL)/prec_ls(j,k)
    243243                endif
    244                 if (prec_cv(j,k) .ne. 0.) then
     244                if (prec_cv(j,k) /= 0.) then
    245245                   mr_hydro(j,:,k,I_CVRAIN) = mr_hydro(j,:,k,I_CVRAIN)/prec_cv(j,k)
    246246                   mr_hydro(j,:,k,I_CVSNOW) = mr_hydro(j,:,k,I_CVSNOW)/prec_cv(j,k)
     
    361361       do i=1,nPoints
    362362          do j=1,nLevels
    363              if (cospIN%rcfg_cloudsat%use_gas_abs == 1 .or. (cospIN%rcfg_cloudsat%use_gas_abs == 2 .and. j .eq. 1)) then
     363             if (cospIN%rcfg_cloudsat%use_gas_abs == 1 .or. (cospIN%rcfg_cloudsat%use_gas_abs == 2 .and. j == 1)) then
    364364                g_vol(i,j) = gases(cospstateIN%pfull(i,j), cospstateIN%at(i,j),cospstateIN%qv(i,j),cospIN%rcfg_cloudsat%freq)
    365365             endif
     
    379379         
    380380          ! At each model level, what fraction of the precipitation is frozen?
    381           where(mr_hydro(:,k,:,I_LSRAIN) .gt. 0 .or. mr_hydro(:,k,:,I_LSSNOW) .gt. 0 .or. &
    382                 mr_hydro(:,k,:,I_CVRAIN) .gt. 0 .or. mr_hydro(:,k,:,I_CVSNOW) .gt. 0 .or. &
    383                 mr_hydro(:,k,:,I_LSGRPL) .gt. 0)
     381          where(mr_hydro(:,k,:,I_LSRAIN) > 0 .or. mr_hydro(:,k,:,I_LSSNOW) > 0 .or. &
     382                mr_hydro(:,k,:,I_CVRAIN) > 0 .or. mr_hydro(:,k,:,I_CVSNOW) > 0 .or. &
     383                mr_hydro(:,k,:,I_LSGRPL) > 0)
    384384             fracPrecipIce(:,k,:) = (mr_hydro(:,k,:,I_LSSNOW) + mr_hydro(:,k,:,I_CVSNOW) + &
    385385                  mr_hydro(:,k,:,I_LSGRPL)) / &
  • LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2/mo_rng.F90

    r3491 r5082  
    9696    !          so we use sizeof(someInt) to determine wheter it is on 32 bit.
    9797    !if ( i2_16*i2_16 .le. huge32 ) then
    98     if (digits(testInt) .le. 31) then
     98    if (digits(testInt) <= 31) then
    9999    !if (sizeof(testInt) .eq. 4) then
    100100       r=r+1
  • LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2/parasol.F90

    r3491 r5082  
    9797
    9898    ! Relative fraction of the opt. thick due to liquid or ice clouds
    99     WHERE (tautot_S(1:npoints) .gt. 0.)
     99    WHERE (tautot_S(1:npoints) > 0.)
    100100       frac_taucol_liq(1:npoints) = tautot_S_liq(1:npoints) / tautot_S(1:npoints)
    101101       frac_taucol_ice(1:npoints) = tautot_S_ice(1:npoints) / tautot_S(1:npoints)
     
    118118    DO it=1,PARASOL_NREFL
    119119       DO ny=1,PARASOL_NTAU-1
    120           WHERE (tautot_S(1:npoints) .ge. PARASOL_TAU(ny).and. &
    121                  tautot_S(1:npoints) .le. PARASOL_TAU(ny+1))
     120          WHERE (tautot_S(1:npoints) >= PARASOL_TAU(ny).and. &
     121                 tautot_S(1:npoints) <= PARASOL_TAU(ny+1))
    122122             rlumA_mod(1:npoints,it) = aA(it,ny)*tautot_S(1:npoints) + bA(it,ny)
    123123             rlumB_mod(1:npoints,it) = aB(it,ny)*tautot_S(1:npoints) + bB(it,ny)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2/prec_scops.F90

    r3491 r5082  
    6464
    6565      cv_col = scops_ccfrac*ncol
    66       if (cv_col .eq. 0) cv_col=1
     66      if (cv_col == 0) cv_col=1
    6767 
    6868      do ilev=1,nlev
     
    8181        flag_cv=0
    8282        do ilev=1,nlev
    83           if (frac_out(j,ibox,ilev) .eq. 1) then
     83          if (frac_out(j,ibox,ilev) == 1) then
    8484            flag_ls=1
    8585          endif
    86           if (frac_out(j,ibox,ilev) .eq. 2) then
     86          if (frac_out(j,ibox,ilev) == 2) then
    8787            flag_cv=1
    8888          endif
    8989        enddo !loop over nlev
    90         if (flag_ls .eq. 1) then
     90        if (flag_ls == 1) then
    9191           frac_out_ls(j,ibox)=1
    9292        endif
    93         if (flag_cv .eq. 1) then
     93        if (flag_cv == 1) then
    9494           frac_out_cv(j,ibox)=1
    9595        endif
     
    102102        flag_cv=0
    103103   
    104         if (ls_p_rate(j,1) .gt. 0.) then
     104        if (ls_p_rate(j,1) > 0.) then
    105105            do ibox=1,ncol ! possibility ONE
    106                 if (frac_out(j,ibox,1) .eq. 1) then
     106                if (frac_out(j,ibox,1) == 1) then
    107107                    prec_frac(j,ibox,1) = 1
    108108                    flag_ls=1
    109109                endif
    110110            enddo ! loop over ncol
    111             if (flag_ls .eq. 0) then ! possibility THREE
     111            if (flag_ls == 0) then ! possibility THREE
    112112                do ibox=1,ncol
    113                     if (frac_out(j,ibox,2) .eq. 1) then
     113                    if (frac_out(j,ibox,2) == 1) then
    114114                        prec_frac(j,ibox,1) = 1
    115115                        flag_ls=1
     
    117117                enddo ! loop over ncol
    118118            endif
    119         if (flag_ls .eq. 0) then ! possibility Four
    120         do ibox=1,ncol
    121         if (frac_out_ls(j,ibox) .eq. 1) then
     119        if (flag_ls == 0) then ! possibility Four
     120        do ibox=1,ncol
     121        if (frac_out_ls(j,ibox) == 1) then
    122122            prec_frac(j,ibox,1) = 1
    123123            flag_ls=1
     
    125125        enddo ! loop over ncol
    126126        endif
    127         if (flag_ls .eq. 0) then ! possibility Five
     127        if (flag_ls == 0) then ! possibility Five
    128128        do ibox=1,ncol
    129129    !     prec_frac(j,1:ncol,1) = 1
     
    134134       ! There is large scale precipitation
    135135     
    136         if (cv_p_rate(j,1) .gt. 0.) then
     136        if (cv_p_rate(j,1) > 0.) then
    137137         do ibox=1,ncol ! possibility ONE
    138           if (frac_out(j,ibox,1) .eq. 2) then
    139            if (prec_frac(j,ibox,1) .eq. 0) then
     138          if (frac_out(j,ibox,1) == 2) then
     139           if (prec_frac(j,ibox,1) == 0) then
    140140        prec_frac(j,ibox,1) = 2
    141141       else
     
    145145      endif
    146146        enddo ! loop over ncol
    147         if (flag_cv .eq. 0) then ! possibility THREE
    148         do ibox=1,ncol
    149         if (frac_out(j,ibox,2) .eq. 2) then
    150                 if (prec_frac(j,ibox,1) .eq. 0) then
     147        if (flag_cv == 0) then ! possibility THREE
     148        do ibox=1,ncol
     149        if (frac_out(j,ibox,2) == 2) then
     150                if (prec_frac(j,ibox,1) == 0) then
    151151            prec_frac(j,ibox,1) = 2
    152152            else
     
    157157        enddo ! loop over ncol
    158158        endif
    159         if (flag_cv .eq. 0) then ! possibility Four
    160         do ibox=1,ncol
    161         if (frac_out_cv(j,ibox) .eq. 1) then
    162                 if (prec_frac(j,ibox,1) .eq. 0) then
     159        if (flag_cv == 0) then ! possibility Four
     160        do ibox=1,ncol
     161        if (frac_out_cv(j,ibox) == 1) then
     162                if (prec_frac(j,ibox,1) == 0) then
    163163            prec_frac(j,ibox,1) = 2
    164164            else
     
    169169        enddo ! loop over ncol
    170170        endif
    171         if (flag_cv .eq. 0) then  ! possibility Five
     171        if (flag_cv == 0) then  ! possibility Five
    172172        do ibox=1,cv_col
    173                 if (prec_frac(j,ibox,1) .eq. 0) then
     173                if (prec_frac(j,ibox,1) == 0) then
    174174            prec_frac(j,ibox,1) = 2
    175175            else
     
    192192        flag_cv=0
    193193   
    194         if (ls_p_rate(j,ilev) .gt. 0.) then
     194        if (ls_p_rate(j,ilev) > 0.) then
    195195         do ibox=1,ncol ! possibility ONE&TWO
    196           if ((frac_out(j,ibox,ilev) .eq. 1) .or. ((prec_frac(j,ibox,ilev-1) .eq. 1)     &
    197             .or. (prec_frac(j,ibox,ilev-1) .eq. 3))) then
     196          if ((frac_out(j,ibox,ilev) == 1) .or. ((prec_frac(j,ibox,ilev-1) == 1)     &
     197            .or. (prec_frac(j,ibox,ilev-1) == 3))) then
    198198           prec_frac(j,ibox,ilev) = 1
    199199           flag_ls=1
    200200          endif
    201201        enddo ! loop over ncol
    202         if ((flag_ls .eq. 0) .and. (ilev .lt. nlev)) then ! possibility THREE
    203         do ibox=1,ncol
    204         if (frac_out(j,ibox,ilev+1) .eq. 1) then
     202        if ((flag_ls == 0) .and. (ilev < nlev)) then ! possibility THREE
     203        do ibox=1,ncol
     204        if (frac_out(j,ibox,ilev+1) == 1) then
    205205            prec_frac(j,ibox,ilev) = 1
    206206            flag_ls=1
     
    208208        enddo ! loop over ncol
    209209        endif
    210         if (flag_ls .eq. 0) then ! possibility Four
    211         do ibox=1,ncol
    212         if (frac_out_ls(j,ibox) .eq. 1) then
     210        if (flag_ls == 0) then ! possibility Four
     211        do ibox=1,ncol
     212        if (frac_out_ls(j,ibox) == 1) then
    213213            prec_frac(j,ibox,ilev) = 1
    214214            flag_ls=1
     
    216216        enddo ! loop over ncol
    217217        endif
    218         if (flag_ls .eq. 0) then ! possibility Five
     218        if (flag_ls == 0) then ! possibility Five
    219219        do ibox=1,ncol
    220220!     prec_frac(j,1:ncol,ilev) = 1
     
    224224      endif ! There is large scale precipitation
    225225   
    226         if (cv_p_rate(j,ilev) .gt. 0.) then
     226        if (cv_p_rate(j,ilev) > 0.) then
    227227         do ibox=1,ncol ! possibility ONE&TWO
    228           if ((frac_out(j,ibox,ilev) .eq. 2) .or. ((prec_frac(j,ibox,ilev-1) .eq. 2)     &
    229             .or. (prec_frac(j,ibox,ilev-1) .eq. 3))) then
    230             if (prec_frac(j,ibox,ilev) .eq. 0) then
     228          if ((frac_out(j,ibox,ilev) == 2) .or. ((prec_frac(j,ibox,ilev-1) == 2)     &
     229            .or. (prec_frac(j,ibox,ilev-1) == 3))) then
     230            if (prec_frac(j,ibox,ilev) == 0) then
    231231         prec_frac(j,ibox,ilev) = 2
    232232        else
     
    236236        endif
    237237       enddo ! loop over ncol
    238         if ((flag_cv .eq. 0) .and. (ilev .lt. nlev)) then ! possibility THREE
    239         do ibox=1,ncol
    240         if (frac_out(j,ibox,ilev+1) .eq. 2) then
    241                 if (prec_frac(j,ibox,ilev) .eq. 0) then
     238        if ((flag_cv == 0) .and. (ilev < nlev)) then ! possibility THREE
     239        do ibox=1,ncol
     240        if (frac_out(j,ibox,ilev+1) == 2) then
     241                if (prec_frac(j,ibox,ilev) == 0) then
    242242            prec_frac(j,ibox,ilev) = 2
    243243            else
     
    248248        enddo ! loop over ncol
    249249        endif
    250         if (flag_cv .eq. 0) then ! possibility Four
    251         do ibox=1,ncol
    252         if (frac_out_cv(j,ibox) .eq. 1) then
    253                 if (prec_frac(j,ibox,ilev) .eq. 0) then
     250        if (flag_cv == 0) then ! possibility Four
     251        do ibox=1,ncol
     252        if (frac_out_cv(j,ibox) == 1) then
     253                if (prec_frac(j,ibox,ilev) == 0) then
    254254            prec_frac(j,ibox,ilev) = 2
    255255            else
     
    260260        enddo ! loop over ncol
    261261        endif
    262         if (flag_cv .eq. 0) then  ! possibility Five
     262        if (flag_cv == 0) then  ! possibility Five
    263263        do ibox=1,cv_col
    264                 if (prec_frac(j,ibox,ilev) .eq. 0) then
     264                if (prec_frac(j,ibox,ilev) == 0) then
    265265            prec_frac(j,ibox,ilev) = 2
    266266            else
Note: See TracChangeset for help on using the changeset viewer.