libsim Versione 7.1.11

◆ qcspatri()

subroutine, public qcspatri ( type(qcspatype), intent(inout)  qcspa,
character(len=*), intent(in), optional  proj_type,
double precision, intent(in), optional  lov,
integer, intent(in), optional  zone,
double precision, intent(in), optional  xoff,
double precision, intent(in), optional  yoff,
double precision, intent(in), optional  longitude_south_pole,
double precision, intent(in), optional  latitude_south_pole,
double precision, intent(in), optional  angle_rotation,
double precision, intent(in), optional  longitude_stretch_pole,
double precision, intent(in), optional  latitude_stretch_pole,
double precision, intent(in), optional  stretch_factor,
double precision, intent(in), optional  latin1,
double precision, intent(in), optional  latin2,
double precision, intent(in), optional  lad,
integer, intent(in), optional  projection_center_flag,
double precision, intent(in), optional  ellips_smaj_axis,
double precision, intent(in), optional  ellips_flatt,
integer, intent(in), optional  ellips_type 
)
Parametri
[in,out]qcspaOggetto per il controllo climatico
[in]proj_typetype of projection
[in]lovline of view, also known as reference longitude or orientation of the grid (polar projections)
[in]zoneEarth zone (mainly for UTM), sets lov to the correct zone central meridian
[in]xoffoffset on x axis (false easting)
[in]yoffoffset on y axis (false northing)
[in]longitude_south_polelongitude of the southern pole of projection
[in]latitude_south_polelatitude of the southern pole of projection
[in]angle_rotationangle of rotation of projection
[in]longitude_stretch_polelongitude of the pole of stretching
[in]latitude_stretch_polelatitude of the pole of stretching
[in]stretch_factorstretching factor
[in]latin1first standard latitude from main pole (Lambert)
[in]latin2second standard latitude from main pole (Lambert)
[in]ladlatitude at which dx and dy (in m) are specified (Lambert, grib2 only)
[in]projection_center_flagflag indicating which pole is represented
[in]ellips_smaj_axisEarth semi-major axis
[in]ellips_flattEarth flattening
[in]ellips_typenumber in the interval [1,nellips] indicating a predefined ellipsoid, alternative to the previous arguments

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

Generated with Doxygen.