|
◆ 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 903 del file volgrid6d_class.F90.
903 ivar = index(this%var, gridinfo%var) 904 IF (ivar == 0 .AND. optio_log(force)) THEN 905 ivar = index(this%var, volgrid6d_var_miss) 906 IF (ivar /= 0) this%var(ivar) = gridinfo%var 909 CALL l4f_category_log(this%category,l4f_error, & 910 "volgrid6d: var not valid for volume, gridinfo rejected") 915 DO itimerange = itimerange0, itimerange1 916 DO itime = itime0, itime1 917 IF ( ASSOCIATED(this%gaid)) THEN 919 IF (c_e(this%gaid(ilevel,itime,itimerange,ivar))) THEN 921 CALL l4f_category_log(this%category,l4f_warn, "gaid exist: grib duplicated") 923 IF (optio_log(clone)) CALL delete(this%gaid(ilevel,itime,itimerange,ivar)) 926 IF (optio_log(clone)) THEN 927 CALL copy(gridinfo%gaid, this%gaid(ilevel,itime,itimerange,ivar)) 929 CALL l4f_category_log(this%category,l4f_debug, "cloning to a new gaid") 932 this%gaid(ilevel,itime,itimerange,ivar) = gridinfo%gaid 935 IF ( ASSOCIATED(this%voldati)) THEN 936 IF (.NOT.dup .OR. ldup_mode == 0) THEN 937 this%voldati(:,:,ilevel,itime,itimerange,ivar) = decode_gridinfo(gridinfo) 938 ELSE IF (ldup_mode == 1) THEN 939 tmpgrid = decode_gridinfo(gridinfo) 941 this%voldati(:,:,ilevel,itime,itimerange,ivar) = tmpgrid(:,:) 943 ELSE IF (ldup_mode == 2) THEN 944 WHERE(.NOT.c_e(this%voldati(:,:,ilevel,itime,itimerange,ivar))) 945 this%voldati(:,:,ilevel,itime,itimerange,ivar) = decode_gridinfo(gridinfo) 951 CALL l4f_category_log(this%category,l4f_error, & 952 "gaid not allocated, you probably need to call volgrid6d_alloc_vol first") 960 END SUBROUTINE import_from_gridinfo 967 SUBROUTINE export_to_gridinfo(this, gridinfo, itime, itimerange, ilevel, ivar, & 968 gaid_template, clone) 969 TYPE(volgrid6d), INTENT(in) :: this 970 TYPE(gridinfo_def), INTENT(inout) :: gridinfo 972 INTEGER :: itimerange 975 TYPE(grid_id), INTENT(in), OPTIONAL :: gaid_template 976 LOGICAL, INTENT(in), OPTIONAL :: clone 978 TYPE(grid_id) :: gaid 979 LOGICAL :: usetemplate 980 REAL, POINTER :: voldati(:,:) 981 TYPE(datetime) :: correctedtime 984 CALL l4f_category_log(this%category,l4f_debug, "export_to_gridinfo")
|