libsim Versione 7.1.11
|
◆ qcspatri()
Definizione alla linea 501 del file modqcspa.F90. 506TYPE(vol7d_network):: network
507type(timedelta) :: deltato,deltat
508
509integer :: ivert(50),i,ipos,ineg,it,itrov,iv,ivb,kk,iindtime,grunit
510double precision :: distmin=1000.d0,distscol=100000.d0
511double precision :: dist,grad,gradmin
512integer (kind=int_b) :: flag
513!!$CHARACTER(len=vol7d_ana_lenident) :: ident
514character(len=512) :: filename
515logical :: exist
516integer :: ind
517
518 !call qcspa_validate (qcspa)
519
520if (size(qcspa%v7d%ana) < 3 ) then
521 call l4f_category_log(qcspa%category,l4f_warn,"number of station < 3; do nothing")
522 return
523end if
524
525!localize optional parameter
526if (present(battrinv))then
527 indbattrinv = index_c(qcspa%v7d%datiattr%b(:)%btable, battrinv)
528else
529 indbattrinv = index_c(qcspa%v7d%datiattr%b(:)%btable, qcattrvarsbtables(1))
530end if
531
532if (present(battrcli))then
533 indbattrcli = index_c(qcspa%v7d%datiattr%b(:)%btable, battrcli)
534else
535 indbattrcli = index_c(qcspa%v7d%datiattr%b(:)%btable, qcattrvarsbtables(2))
536end if
537
538if (present(battrout))then
539 indbattrout = index_c(qcspa%v7d%datiattr%b(:)%btable, battrout)
540else
541 indbattrout = index_c(qcspa%v7d%datiattr%b(:)%btable, qcattrvarsbtables(4))
542end if
543
544
545! some checks on input
546!if (indbattrinv <=0 .or. indbattrcli <= 0 .or. indbattrout <= 0 ) then
547if (indbattrout <= 0 ) then
548
549 call l4f_category_log(qcspa%category,l4f_error,"error finding attribute index for output")
550 call raise_error()
551
552end if
553
554!!$if (qcspa%operation == "gradient") then
555!!$
556!!$ !check for gradient operation
557!!$ if ( size(qcspa%v7d%level) > 1 .or.&
558!!$ size(qcspa%v7d%timerange) > 1 .or.&
559!!$ size(qcspa%v7d%dativar%r) > 1 ) then
560!!$ call l4f_category_log(qcspa%category,L4F_ERROR,"gradient operation manage one level/timerange/var only")
561!!$ call raise_error()
562!!$ end if
563!!$
564!!$end if
565
566! set other local variable from optional parameter
567if(present(anamask)) then
568 anamaskl = anamask
569else
570 anamaskl = .true.
571endif
572if(present(timemask)) then
573 timemaskl = timemask
|