libsim  Versione6.3.0

◆ 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 772 del file modqc.F90.

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 
798 SUBROUTINE delete_var(var)
799 TYPE(vol7d_var),intent(inout),POINTER :: var(:)
800 
801 INTEGER :: i
802 
803 IF (ASSOCIATED(var)) THEN
804  if (size(var) == 0) then
805  var%btable = vol7d_var_miss%btable
806  else
807  DO i = 1, SIZE(var)
808  IF (any(var(i)%btable == delete_attr(:))) THEN ! n.b. ANY((//)) = .FALSE.
809  var(i) = vol7d_var_miss
810  ENDIF
811  ENDDO
812  end if
813 ENDIF
814 
815 END SUBROUTINE delete_var
816 

Generated with Doxygen.