|
◆ qcspainit()
subroutine modqcspa::qcspainit |
( |
type(qcspatype), intent(inout) |
qcspa, |
|
|
type (vol7d), intent(in), target |
v7d, |
|
|
character(len=*), dimension(:), intent(in) |
var, |
|
|
type(datetime), intent(in), optional |
timei, |
|
|
type(datetime), intent(in), optional |
timef, |
|
|
type(geo_coord), intent(inout), optional |
coordmin, |
|
|
type(geo_coord), intent(inout), optional |
coordmax, |
|
|
integer, dimension(:,:,:,:,:), intent(in), optional, target |
data_id_in, |
|
|
character(len=*), intent(in), optional |
extremepath, |
|
|
character(len=*), intent(in), optional |
spatialpath, |
|
|
character(len=*), intent(in), optional |
dsne, |
|
|
character(len=*), intent(in), optional |
usere, |
|
|
character(len=*), intent(in), optional |
passworde, |
|
|
character(len=*), intent(in), optional |
dsnspa, |
|
|
character(len=*), intent(in), optional |
userspa, |
|
|
character(len=*), intent(in), optional |
passwordspa, |
|
|
logical, intent(in), optional |
height2level, |
|
|
character(len=*), optional |
operation, |
|
|
character(len=*), intent(in), optional |
categoryappend |
|
) |
| |
|
private |
Init del controllo di qualità spaziale.
Effettua la lettura dei file e altre operazioni di inizializzazione. - Parametri
-
[in,out] | qcspa | Oggetto per il controllo spaziale |
[in] | v7d | Il volume Vol7d da controllare |
[in] | var | variabili da importare secondo la tabella B locale o relativi alias |
[in,out] | coordmin | coordinate minime e massime che definiscono il rettangolo di estrazione per l'importazione |
[in,out] | coordmax | coordinate minime e massime che definiscono il rettangolo di estrazione per l'importazione |
[in] | timei | estremi temporali (inizio e fine) dell'estrazione per l'importazione |
[in] | timef | estremi temporali (inizio e fine) dell'estrazione per l'importazione |
[in] | data_id_in | Indici dei dati in DB |
[in] | extremepath | file con il volume del extreme |
[in] | spatialpath | file with spatial ndi |
[in] | height2level | use conventional level starting from station height |
[in] | categoryappend | appennde questo suffisso al namespace category di log4fortran |
| operation | Operation to execute ("gradient"/"run") |
Definizione alla linea 351 del file modqcspa.F90.
357 longitude_south_pole, latitude_south_pole, angle_rotation, &
358 longitude_stretch_pole, latitude_stretch_pole, stretch_factor, &
359 latin1_l, latin2_l, lad, projection_center_flag_l, &
360 ellips_smaj_axis, ellips_flatt, ellips_type)
362 call getval(qcspa%v7d%ana%coord, lon, lat)
366 call proj(geoproj,lon,lat,qcspa%co%x,qcspa%co%y)
371 status = triangles_compute(qcspa%co,qcspa%tri)
375 if (status /= 0) then
376 call l4f_category_log(qcspa%category,l4f_error, "contng error status="//t2c(status))
380 end subroutine qcspatri
384 subroutine qcspaalloc(qcspa)
387 type(qcspatype), intent(in out) :: qcspa
393 call qcspadealloc(qcspa)
408 if ( associated(qcspa%data_id_in)) then
409 sh=shape(qcspa%data_id_in)
410 allocate (qcspa%data_id_out(sh(1),sh(2),sh(3),sh(4),sh(5)),stat=istatt)
412 call l4f_category_log(qcspa%category,l4f_error, "allocate error")
413 call raise_error( "allocate error")
415 qcspa%data_id_out=imiss
419 if ( associated(qcspa%v7d%ana)) then
420 qcspa%ndp= size(qcspa%v7d%ana)
421 qcspa%tri = triangles_new(qcspa%ndp)
422 allocate(qcspa%co(qcspa%ndp))
425 end subroutine qcspaalloc
429 subroutine qcspadealloc(qcspa)
432 type(qcspatype), intent(in out) :: qcspa
442 if ( associated(qcspa%data_id_out)) then
443 deallocate (qcspa%data_id_out)
444 nullify (qcspa%data_id_out)
446 call delete(qcspa%tri)
447 if ( associated(qcspa%co)) deallocate(qcspa%co)
449 end subroutine qcspadealloc
455 subroutine qcspadelete(qcspa)
457 type(qcspatype), intent(in out) :: qcspa
459 call qcspadealloc(qcspa)
461 call delete(qcspa%qccli)
466 call l4f_category_delete(qcspa%category)
469 end subroutine qcspadelete
475 SUBROUTINE quaconspa (qcspa,timetollerance,noborder,battrinv,battrcli,battrout,&
476 anamask,timemask,levelmask,timerangemask,varmask,networkmask)
479 type(qcspatype), intent(in out) :: qcspa
480 type(timedelta), intent(in) :: timetollerance
481 logical, intent(in), optional :: noborder
482 character (len=10) , intent(in), optional :: battrinv
483 character (len=10) , intent(in), optional :: battrcli
484 character (len=10) , intent(in), optional :: battrout
485 logical , intent(in), optional :: anamask(:)
486 logical , intent(in), optional :: timemask(:)
487 logical , intent(in), optional :: levelmask(:)
488 logical , intent(in), optional :: timerangemask(:)
489 logical , intent(in), optional :: varmask(:)
490 logical , intent(in), optional :: networkmask(:)
494 integer :: indbattrinv,indbattrcli,indbattrout
495 logical :: anamaskl(size(qcspa%v7d%ana)), timemaskl(size(qcspa%v7d%time)), levelmaskl(size(qcspa%v7d%level)), &
496 timerangemaskl(size(qcspa%v7d%timerange)), varmaskl(size(qcspa%v7d%dativar%r)), networkmaskl(size(qcspa%v7d%network))
|