libsim  Versione 7.1.9

◆ qcsummaryflagd()

elemental logical function modqc::qcsummaryflagd ( double precision, intent(in), optional  flag0,
double precision, intent(in), optional  flag1,
double precision, intent(in), optional  flag2,
double precision, intent(in), optional  flag3 
)
private

Check data validity based on multiple confidences.

Compute final decision boolean flag Quality control is complete if one of 3 conditions is verified: a) invalidated data b) gross error check failed c) tot variable less -1 Controllo di validita' del dato basato su test multipli. Per il calcolo della validita' del dato (flag booleano B33007), si prendono in considerazione 3 test; il dato risulta invalidato (flag booleano posto a false) se e solo se uno dei test risulta soddisfatto: a) il dato e' stato invalidato a mano (flag0=B33196=0) b) il dato non ha passato il gross erro check (flag1=B33192=0) c) la variabile tot risulta minore a -1 La variabile tot e' il risultato del confronto tra controllo climatologico (flag1, B33192), controllo temporale (flag2, B33193) e controllo spaziale (flag3, B33194). Ad ognuno di tali controlli e' stato attribuito un punteggio a seconda che ciascuno dei valori relativi ai flag di qualita' risulti inferiore od uguale-maggiore di 10. Nel dettaglio: se B33192 < 10 tot=-1; se B33192>=10 tot=0 se B33193 < 10 tot=-1; se B33193>=10 tot=1 se B33194 < 10 tot=-1; se B33194>=10 tot=1 Ogni dato e' controllato nei 3 flag di qualita' presenti, e viene valutata la somma risultante di tot. Se tot risulta inferiore a -1, qcsummaryflag e' posto a false ed il dato e' invalitato (B33007=0). Se tot risulta maggiore od uguale a -1 qcsummaryflag e' true ed il dato e' valido.

Definizione alla linea 752 del file modqc.F90.

753  j=j+1
754  anaind(j)=i
755  end if
756  end do
757 
758 
759  if(present(data_id)) then
760  allocate(data_idtmp(nana,size(data_id,2),size(data_id,3),size(data_id,4),size(data_id,5)))
761  data_idtmp=data_id(anaind,:,:,:,:)
762  if (associated(data_id))deallocate(data_id)
763  data_id=>data_idtmp
764  end if
765 
766  call vol7d_reform(this,miss=miss,lana=llana)
767 
768  deallocate(llana,anaind)
769 
770 else
771 
772  call vol7d_reform(this,miss=miss)
773 
774 end if
775 
776 end subroutine qc_reform
777 
778 
779 SUBROUTINE keep_var(var)
780 TYPE(vol7d_var),intent(inout),POINTER :: var(:)
781 
782 INTEGER :: i
783 
784 IF (ASSOCIATED(var)) THEN
785  if (size(var) == 0) then
786  var%btable = vol7d_var_miss%btable
787  else
788  DO i = 1, SIZE(var)
789  IF (all(var(i)%btable /= keep_attr(:))) THEN ! n.b. ALL((//)) = .TRUE.
790  var(i)%btable = vol7d_var_miss%btable
791  ENDIF
792  ENDDO
793  end if
794 ENDIF
795 
796 END SUBROUTINE keep_var
797 

Generated with Doxygen.