libsim  Versione 7.1.9

◆ qcspatri()

subroutine, public modqcspa::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.

506 TYPE(vol7d_network):: network
507 type(timedelta) :: deltato,deltat
508 
509 integer :: ivert(50),i,ipos,ineg,it,itrov,iv,ivb,kk,iindtime,grunit
510 double precision :: distmin=1000.d0,distscol=100000.d0
511 double precision :: dist,grad,gradmin
512 integer (kind=int_b) :: flag
513 !!$CHARACTER(len=vol7d_ana_lenident) :: ident
514 character(len=512) :: filename
515 logical :: exist
516 integer :: ind
517 
518  !call qcspa_validate (qcspa)
519 
520 if (size(qcspa%v7d%ana) < 3 ) then
521  call l4f_category_log(qcspa%category,l4f_warn,"number of station < 3; do nothing")
522  return
523 end if
524 
525 !localize optional parameter
526 if (present(battrinv))then
527  indbattrinv = index_c(qcspa%v7d%datiattr%b(:)%btable, battrinv)
528 else
529  indbattrinv = index_c(qcspa%v7d%datiattr%b(:)%btable, qcattrvarsbtables(1))
530 end if
531 
532 if (present(battrcli))then
533  indbattrcli = index_c(qcspa%v7d%datiattr%b(:)%btable, battrcli)
534 else
535  indbattrcli = index_c(qcspa%v7d%datiattr%b(:)%btable, qcattrvarsbtables(2))
536 end if
537 
538 if (present(battrout))then
539  indbattrout = index_c(qcspa%v7d%datiattr%b(:)%btable, battrout)
540 else
541  indbattrout = index_c(qcspa%v7d%datiattr%b(:)%btable, qcattrvarsbtables(4))
542 end if
543 
544 
545 ! some checks on input
546 !if (indbattrinv <=0 .or. indbattrcli <= 0 .or. indbattrout <= 0 ) then
547 if (indbattrout <= 0 ) then
548 
549  call l4f_category_log(qcspa%category,l4f_error,"error finding attribute index for output")
550  call raise_error()
551 
552 end 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
567 if(present(anamask)) then
568  anamaskl = anamask
569 else
570  anamaskl = .true.
571 endif
572 if(present(timemask)) then
573  timemaskl = timemask

Generated with Doxygen.