|
◆ volgrid6d_write_on_file()
subroutine 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 |
|
) |
| |
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 805 del file volgrid6d_class.F90.
809 SUBROUTINE import_from_gridinfo(this, gridinfo, force, dup_mode, clone, & 811 TYPE(volgrid6d), INTENT(inout) :: this 812 TYPE(gridinfo_def), INTENT(in) :: gridinfo 813 LOGICAL, INTENT(in), OPTIONAL :: force 814 INTEGER, INTENT(in), OPTIONAL :: dup_mode 815 LOGICAL , INTENT(in), OPTIONAL :: clone 816 LOGICAL, INTENT(IN), OPTIONAL :: isanavar 818 CHARACTER(len=255) :: type 819 INTEGER :: itime0, itimerange0, itime1, itimerange1, itime, itimerange, & 820 ilevel, ivar, ldup_mode 822 TYPE(datetime) :: correctedtime 823 REAL, ALLOCATABLE :: tmpgrid(:,:) 825 IF ( PRESENT(dup_mode)) THEN 831 call get_val(this%griddim,proj_type=type) 834 call l4f_category_log(this%category,l4f_debug, "import_from_gridinfo: "//trim(type)) 837 if (.not. c_e(type)) then 838 call copy(gridinfo%griddim, this%griddim) 842 CALL volgrid6d_alloc_vol(this, ini=.true.) 844 else if (.not. (this%griddim == gridinfo%griddim )) then 846 CALL l4f_category_log(this%category,l4f_error, & 847 "volgrid and gridinfo grid type or size are different, gridinfo rejected") 854 ilevel = index(this%level, gridinfo%level) 855 IF (ilevel == 0 .AND. optio_log(force)) THEN 856 ilevel = index(this%level, vol7d_level_miss) 857 IF (ilevel /= 0) this%level(ilevel) = gridinfo%level 860 IF (ilevel == 0) THEN 861 CALL l4f_category_log(this%category,l4f_error, & 862 "volgrid6d: level not valid for volume, gridinfo rejected") 867 IF (optio_log(isanavar)) THEN 869 itime1 = SIZE(this%time) 871 itimerange1 = SIZE(this%timerange) 873 correctedtime = gridinfo%time 874 IF (this%time_definition == 1) correctedtime = correctedtime + & 875 timedelta_new(sec=gridinfo%timerange%p1) 876 itime0 = index(this%time, correctedtime) 877 IF (itime0 == 0 .AND. optio_log(force)) THEN 878 itime0 = index(this%time, datetime_miss) 879 IF (itime0 /= 0) this%time(itime0) = correctedtime 881 IF (itime0 == 0) THEN 882 CALL l4f_category_log(this%category,l4f_error, & 883 "volgrid6d: time not valid for volume, gridinfo rejected") 889 itimerange0 = index(this%timerange,gridinfo%timerange) 890 IF (itimerange0 == 0 .AND. optio_log(force)) THEN 891 itimerange0 = index(this%timerange, vol7d_timerange_miss) 892 IF (itimerange0 /= 0) this%timerange(itimerange0) = gridinfo%timerange
|