|
◆ volgrid6d_read_from_file()
subroutine volgrid6d_read_from_file |
( |
type(volgrid6d), intent(out) |
this, |
|
|
integer, intent(inout), optional |
unit, |
|
|
character(len=*), intent(in), optional |
filename, |
|
|
character(len=*), intent(out), optional |
description, |
|
|
integer, dimension(8), intent(out), optional |
tarray, |
|
|
character(len=*), intent(out), optional |
filename_auto |
|
) |
| |
Lettura da file di un volume Volgrid6d.
Lettura da file unformatted di un intero volume Volgrid6d. Questa subroutine comprende volgrid6d_alloc e volgrid6d_alloc_vol. Il file puo' essere aperto opzionalmente dall'utente. Si possono passare opzionalmente unità e nome del file altrimenti assegnati internamente a dei default; se assegnati internamente tali parametri saranno in output.
- Parametri
-
[out] | this | Volume volgrid6d da leggere |
[in,out] | unit | unità su cui è stato aperto un file; se =0 rielaborato internamente (default = elaborato internamente con getunit) |
[in] | filename | nome del file eventualmente da aprire (default = nome dell'eseguibile.v7d) |
[out] | filename_auto | nome del file generato se "filename" è omesso |
[out] | description | descrizione del volume letto |
[out] | tarray | vettore come definito da "date_and_time" della data di scrittura del volume |
Definizione alla linea 915 del file volgrid6d_class.F90.
915 itimerange1 = itimerange0 918 ivar = index(this%var, gridinfo%var) 919 IF (ivar == 0 .AND. optio_log(force)) THEN 920 ivar = index(this%var, volgrid6d_var_miss) 921 IF (ivar /= 0) this%var(ivar) = gridinfo%var 924 CALL l4f_category_log(this%category,l4f_error, & 925 "volgrid6d: var not valid for volume, gridinfo rejected") 930 DO itimerange = itimerange0, itimerange1 931 DO itime = itime0, itime1 932 IF ( ASSOCIATED(this%gaid)) THEN 934 IF (c_e(this%gaid(ilevel,itime,itimerange,ivar))) THEN 936 CALL l4f_category_log(this%category,l4f_warn, "gaid exist: grib duplicated") 938 IF (optio_log(clone)) CALL delete(this%gaid(ilevel,itime,itimerange,ivar)) 941 IF (optio_log(clone)) THEN 942 CALL copy(gridinfo%gaid, this%gaid(ilevel,itime,itimerange,ivar)) 944 CALL l4f_category_log(this%category,l4f_debug, "cloning to a new gaid") 947 this%gaid(ilevel,itime,itimerange,ivar) = gridinfo%gaid 950 IF ( ASSOCIATED(this%voldati)) THEN 951 IF (.NOT.dup .OR. ldup_mode == 0) THEN 952 this%voldati(:,:,ilevel,itime,itimerange,ivar) = decode_gridinfo(gridinfo) 953 ELSE IF (ldup_mode == 1) THEN 954 tmpgrid = decode_gridinfo(gridinfo) 956 this%voldati(:,:,ilevel,itime,itimerange,ivar) = tmpgrid(:,:) 958 ELSE IF (ldup_mode == 2) THEN 959 WHERE(.NOT.c_e(this%voldati(:,:,ilevel,itime,itimerange,ivar))) 960 this%voldati(:,:,ilevel,itime,itimerange,ivar) = decode_gridinfo(gridinfo) 966 CALL l4f_category_log(this%category,l4f_error, & 967 "gaid not allocated, you probably need to call volgrid6d_alloc_vol first") 975 END SUBROUTINE import_from_gridinfo 982 SUBROUTINE export_to_gridinfo(this, gridinfo, itime, itimerange, ilevel, ivar, & 983 gaid_template, clone) 984 TYPE(volgrid6d), INTENT(in) :: this 985 TYPE(gridinfo_def), INTENT(inout) :: gridinfo 987 INTEGER :: itimerange 990 TYPE(grid_id), INTENT(in), OPTIONAL :: gaid_template 991 LOGICAL, INTENT(in), OPTIONAL :: clone 993 TYPE(grid_id) :: gaid 994 LOGICAL :: usetemplate 995 REAL, POINTER :: voldati(:,:) 996 TYPE(datetime) :: correctedtime
|