libsim Versione 7.2.6
|
◆ qcspatri()
Definizione alla linea 495 del file modqcspa.F90. 500real :: datoqui,datola,datila(size(qcspa%v7d%time)),climaquii, climaquif
501 !integer, allocatable :: indcanav(:)
502
503 !TYPE(vol7d_ana) :: ana
504TYPE(datetime) :: time
505!YPE(vol7d_level):: level
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
|