|
|
◆ volgrid6d_read_from_file()
| subroutine volgrid6d_class::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 |
|
) |
| |
|
private |
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 920 del file volgrid6d_class.F90.
920 itimerange1 = itimerange0 923 ivar = index(this%var, gridinfo%var) 924 IF (ivar == 0 .AND. optio_log(force)) THEN 925 ivar = index(this%var, volgrid6d_var_miss) 926 IF (ivar /= 0) this%var(ivar) = gridinfo%var 929 CALL l4f_category_log(this%category,l4f_error, & 930 "volgrid6d: var not valid for volume, gridinfo rejected") 935 DO itimerange = itimerange0, itimerange1 936 DO itime = itime0, itime1 937 IF ( ASSOCIATED(this%gaid)) THEN 939 IF (c_e(this%gaid(ilevel,itime,itimerange,ivar))) THEN 941 CALL l4f_category_log(this%category,l4f_warn, "gaid exist: grib duplicated") 943 IF (optio_log(clone)) CALL delete(this%gaid(ilevel,itime,itimerange,ivar)) 946 IF (optio_log(clone)) THEN 947 CALL copy(gridinfo%gaid, this%gaid(ilevel,itime,itimerange,ivar)) 949 CALL l4f_category_log(this%category,l4f_debug, "cloning to a new gaid") 952 this%gaid(ilevel,itime,itimerange,ivar) = gridinfo%gaid 955 IF ( ASSOCIATED(this%voldati)) THEN 956 IF (.NOT.dup .OR. ldup_mode == 0) THEN 957 this%voldati(:,:,ilevel,itime,itimerange,ivar) = decode_gridinfo(gridinfo) 958 ELSE IF (ldup_mode == 1) THEN 959 tmpgrid = decode_gridinfo(gridinfo) 961 this%voldati(:,:,ilevel,itime,itimerange,ivar) = tmpgrid(:,:) 963 ELSE IF (ldup_mode == 2) THEN 964 WHERE(.NOT.c_e(this%voldati(:,:,ilevel,itime,itimerange,ivar))) 965 this%voldati(:,:,ilevel,itime,itimerange,ivar) = decode_gridinfo(gridinfo) 971 CALL l4f_category_log(this%category,l4f_error, & 972 "gaid not allocated, you probably need to call volgrid6d_alloc_vol first") 980 END SUBROUTINE import_from_gridinfo 987 SUBROUTINE export_to_gridinfo(this, gridinfo, itime, itimerange, ilevel, ivar, & 988 gaid_template, clone) 989 TYPE(volgrid6d), INTENT(in) :: this 990 TYPE(gridinfo_def), INTENT(inout) :: gridinfo 992 INTEGER :: itimerange 995 TYPE(grid_id), INTENT(in), OPTIONAL :: gaid_template 996 LOGICAL, INTENT(in), OPTIONAL :: clone 998 TYPE(grid_id) :: gaid 999 LOGICAL :: usetemplate 1000 REAL, POINTER :: voldati(:,:) 1001 TYPE(datetime) :: correctedtime
|