|
|
◆ volgrid6d_write_on_file()
| subroutine volgrid6d_class::volgrid6d_write_on_file |
( |
type(volgrid6d), intent(in) |
this, |
|
|
integer, intent(inout), optional |
unit, |
|
|
character(len=*), intent(in), optional |
description, |
|
|
character(len=*), intent(in), optional |
filename, |
|
|
character(len=*), intent(out), optional |
filename_auto |
|
) |
| |
|
private |
Scrittura su file di un volume Volgrid6d.
Scrittura su file unformatted di un intero volume Volgrid6d. Il volume viene serializzato e scritto su file. 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. Se non viene fornito il nome file viene utilizzato un file di default con nome pari al nome del programma in esecuzione con postfisso ".vg6d". Come parametro opzionale c'è la description che insieme alla data corrente viene inserita nell'header del file.
- Parametri
-
| [in] | this | volume volgrid6d da scrivere |
| [in,out] | unit | unità su cui scrivere; se passata =0 ritorna il valore rielaborato (default =rielaborato internamente con getlun ) |
| [in] | filename | nome del file su cui scrivere |
| [out] | filename_auto | nome del file generato se "filename" è omesso |
| [in] | description | descrizione del volume |
Definizione alla linea 822 del file volgrid6d_class.F90.
826 SUBROUTINE import_from_gridinfo(this, gridinfo, force, dup_mode, clone, & 828 TYPE(volgrid6d), INTENT(inout) :: this 829 TYPE(gridinfo_def), INTENT(in) :: gridinfo 830 LOGICAL, INTENT(in), OPTIONAL :: force 831 INTEGER, INTENT(in), OPTIONAL :: dup_mode 832 LOGICAL , INTENT(in), OPTIONAL :: clone 833 LOGICAL, INTENT(IN), OPTIONAL :: isanavar 835 CHARACTER(len=255) :: type 836 INTEGER :: itime0, itimerange0, itime1, itimerange1, itime, itimerange, & 837 ilevel, ivar, ldup_mode 839 TYPE(datetime) :: correctedtime 840 TYPE(vol7d_timerange) :: correctedtimerange 841 REAL, ALLOCATABLE :: tmpgrid(:,:) 843 IF ( PRESENT(dup_mode)) THEN 849 call get_val(this%griddim,proj_type=type) 852 call l4f_category_log(this%category,l4f_debug, "import_from_gridinfo: "//trim(type)) 855 if (.not. c_e(type)) then 856 call copy(gridinfo%griddim, this%griddim) 860 CALL volgrid6d_alloc_vol(this, ini=.true.) 862 else if (.not. (this%griddim == gridinfo%griddim )) then 864 CALL l4f_category_log(this%category,l4f_error, & 865 "volgrid and gridinfo grid type or size are different, gridinfo rejected") 872 ilevel = index(this%level, gridinfo%level) 873 IF (ilevel == 0 .AND. optio_log(force)) THEN 874 ilevel = index(this%level, vol7d_level_miss) 875 IF (ilevel /= 0) this%level(ilevel) = gridinfo%level 878 IF (ilevel == 0) THEN 879 CALL l4f_category_log(this%category,l4f_error, & 880 "volgrid6d: level not valid for volume, gridinfo rejected") 885 IF (optio_log(isanavar)) THEN 887 itime1 = SIZE(this%time) 889 itimerange1 = SIZE(this%timerange) 891 correctedtime = gridinfo%time 892 IF (this%time_definition == 1 .OR. this%time_definition == 2) correctedtime = correctedtime + & 893 timedelta_new(sec=gridinfo%timerange%p1) 894 itime0 = index(this%time, correctedtime) 895 IF (itime0 == 0 .AND. optio_log(force)) THEN 896 itime0 = index(this%time, datetime_miss) 897 IF (itime0 /= 0) this%time(itime0) = correctedtime 899 IF (itime0 == 0) THEN 900 CALL l4f_category_log(this%category,l4f_error, & 901 "volgrid6d: time not valid for volume, gridinfo rejected") 907 correctedtimerange = gridinfo%timerange 908 IF (this%time_definition == 2) correctedtimerange%p1 = 0 909 itimerange0 = index(this%timerange, correctedtimerange)
|