|
|
◆ vol7d_convr()
| subroutine vol7d_class::vol7d_convr |
( |
type(vol7d), intent(in) |
this, |
|
|
type(vol7d), intent(inout) |
that, |
|
|
logical, intent(in), optional |
anaconv |
|
) |
| |
Metodo per convertire i volumi di dati di un oggetto vol7d in dati reali dove possibile.
L'oggetto convertito è una copia completa dell'originale che può essere quindi distrutto dopo la chiamata. Per i dati di anagrafica, al momento sono convertiti solo i dati CHARACTER se è passato anaconv=.TRUE. Gli attributi non sono toccati.
- Parametri
-
| [in] | this | oggetto origine |
| [in,out] | that | oggetto convertito |
| [in] | anaconv | converti anche anagrafica |
Definizione alla linea 2282 del file vol7d_class.F90.
2284 IF ( ASSOCIATED(v7d_tmp%dativar%c)) THEN 2286 ALLOCATE(v7d_tmp%voldatir( SIZE(v7d_tmp%voldatic, 1), SIZE(v7d_tmp%voldatic, 2), & 2287 SIZE(v7d_tmp%voldatic, 3), SIZE(v7d_tmp%voldatic, 4), SIZE(v7d_tmp%voldatic, 5), & 2288 SIZE(v7d_tmp%voldatic, 6))) 2289 DO i = 1, SIZE(v7d_tmp%dativar%c) 2290 v7d_tmp%voldatir(:,:,:,:,i,:) = & 2291 realdat(v7d_tmp%voldatic(:,:,:,:,i,:), v7d_tmp%dativar%c(i)) 2293 DEALLOCATE(v7d_tmp%voldatic) 2295 v7d_tmp%dativar%r => v7d_tmp%dativar%c 2296 NULLIFY(v7d_tmp%dativar%c) 2300 CALL vol7d_merge(that, v7d_tmp) 2302 CALL delete(v7d_tmp) 2305 END SUBROUTINE vol7d_convr 2311 SUBROUTINE vol7d_diff_only (this, that, data_only,ana) 2312 TYPE(vol7d), INTENT(IN) :: this 2313 TYPE(vol7d), INTENT(OUT) :: that 2314 logical , optional, intent(in) :: data_only 2315 logical , optional, intent(in) :: ana 2316 logical :: ldata_only,lana 2318 IF ( PRESENT(data_only)) THEN 2319 ldata_only = data_only 2321 ldata_only = .false. 2324 IF ( PRESENT(ana)) THEN 2331 #undef VOL7D_POLY_ARRAY 2332 #define VOL7D_POLY_ARRAY voldati 2333 #include "vol7d_class_diff.F90" 2334 #undef VOL7D_POLY_ARRAY 2335 #define VOL7D_POLY_ARRAY voldatiattr 2336 #include "vol7d_class_diff.F90" 2337 #undef VOL7D_POLY_ARRAY 2339 if ( .not. ldata_only) then 2341 #define VOL7D_POLY_ARRAY volana 2342 #include "vol7d_class_diff.F90" 2343 #undef VOL7D_POLY_ARRAY 2344 #define VOL7D_POLY_ARRAY volanaattr 2345 #include "vol7d_class_diff.F90" 2346 #undef VOL7D_POLY_ARRAY 2349 where ( this%ana == that%ana ) 2350 that%ana = vol7d_ana_miss 2358 END SUBROUTINE vol7d_diff_only 2364 #undef VOL7D_POLY_TYPE 2365 #undef VOL7D_POLY_TYPES 2366 #define VOL7D_POLY_TYPE REAL 2367 #define VOL7D_POLY_TYPES r 2368 #include "vol7d_class_type_templ.F90" 2369 #undef VOL7D_POLY_TYPE 2370 #undef VOL7D_POLY_TYPES 2371 #define VOL7D_POLY_TYPE DOUBLE PRECISION 2372 #define VOL7D_POLY_TYPES d 2373 #include "vol7d_class_type_templ.F90" 2374 #undef VOL7D_POLY_TYPE 2375 #undef VOL7D_POLY_TYPES 2376 #define VOL7D_POLY_TYPE INTEGER 2377 #define VOL7D_POLY_TYPES i 2378 #include "vol7d_class_type_templ.F90" 2379 #undef VOL7D_POLY_TYPE 2380 #undef VOL7D_POLY_TYPES 2381 #define VOL7D_POLY_TYPE INTEGER(kind=int_b) 2382 #define VOL7D_POLY_TYPES b 2383 #include "vol7d_class_type_templ.F90" 2384 #undef VOL7D_POLY_TYPE 2385 #undef VOL7D_POLY_TYPES 2386 #define VOL7D_POLY_TYPE CHARACTER(len=vol7d_cdatalen) 2387 #define VOL7D_POLY_TYPES c 2388 #include "vol7d_class_type_templ.F90" 2393 #undef VOL7D_NO_ZERO_ALLOC 2394 #undef VOL7D_POLY_TYPE 2395 #define VOL7D_POLY_TYPE datetime 2396 #include "vol7d_class_desc_templ.F90" 2397 #undef VOL7D_POLY_TYPE 2398 #define VOL7D_POLY_TYPE vol7d_timerange 2399 #include "vol7d_class_desc_templ.F90" 2400 #undef VOL7D_POLY_TYPE 2401 #define VOL7D_POLY_TYPE vol7d_level 2402 #include "vol7d_class_desc_templ.F90" 2404 #undef VOL7D_POLY_TYPE 2405 #define VOL7D_POLY_TYPE vol7d_network 2406 #include "vol7d_class_desc_templ.F90" 2407 #undef VOL7D_POLY_TYPE 2408 #define VOL7D_POLY_TYPE vol7d_ana 2409 #include "vol7d_class_desc_templ.F90" 2410 #define VOL7D_NO_ZERO_ALLOC 2411 #undef VOL7D_POLY_TYPE 2412 #define VOL7D_POLY_TYPE vol7d_var 2413 #include "vol7d_class_desc_templ.F90" 2424 subroutine vol7d_write_on_file (this,unit,description,filename,filename_auto) 2426 TYPE(vol7d), INTENT(IN) :: this 2427 integer, optional, intent(inout) :: unit 2428 character(len=*), intent(in), optional :: filename 2429 character(len=*), intent(out), optional :: filename_auto 2430 character(len=*), INTENT(IN), optional :: description 2433 character(len=254) :: ldescription,arg,lfilename 2434 integer :: nana, ntime, ntimerange, nlevel, nnetwork, & 2435 ndativarr, ndativari, ndativarb, ndativard, ndativarc,& 2436 ndatiattrr, ndatiattri, ndatiattrb, ndatiattrd, ndatiattrc,& 2437 ndativarattrr, ndativarattri, ndativarattrb, ndativarattrd, ndativarattrc,& 2438 nanavarr, nanavari, nanavarb, nanavard, nanavarc,& 2439 nanaattrr, nanaattri, nanaattrb, nanaattrd, nanaattrc,& 2440 nanavarattrr, nanavarattri, nanavarattrb, nanavarattrd, nanavarattrc 2442 integer :: tarray(8) 2443 logical :: opened,exist 2483 call date_and_time(values=tarray) 2486 if ( present(description)) then 2487 ldescription=description 2489 ldescription= "Vol7d generated by: "//trim(arg) 2492 if (.not. present(unit)) then
|