|
◆ 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 823 del file volgrid6d_class.F90.
823 ilevel, ivar, ldup_mode 825 TYPE(datetime) :: correctedtime 826 REAL, ALLOCATABLE :: tmpgrid(:,:) 828 IF ( PRESENT(dup_mode)) THEN 834 call get_val(this%griddim,proj_type=type) 837 call l4f_category_log(this%category,l4f_debug, "import_from_gridinfo: "//trim(type)) 840 if (.not. c_e(type)) then 841 call copy(gridinfo%griddim, this%griddim) 845 CALL volgrid6d_alloc_vol(this, ini=.true.) 847 else if (.not. (this%griddim == gridinfo%griddim )) then 849 CALL l4f_category_log(this%category,l4f_error, & 850 "volgrid and gridinfo grid type or size are different, gridinfo rejected") 857 ilevel = index(this%level, gridinfo%level) 858 IF (ilevel == 0 .AND. optio_log(force)) THEN 859 ilevel = index(this%level, vol7d_level_miss) 860 IF (ilevel /= 0) this%level(ilevel) = gridinfo%level 863 IF (ilevel == 0) THEN 864 CALL l4f_category_log(this%category,l4f_error, & 865 "volgrid6d: level not valid for volume, gridinfo rejected") 870 IF (optio_log(isanavar)) THEN 872 itime1 = SIZE(this%time) 874 itimerange1 = SIZE(this%timerange) 876 correctedtime = gridinfo%time 877 IF (this%time_definition == 1) correctedtime = correctedtime + & 878 timedelta_new(sec=gridinfo%timerange%p1) 879 itime0 = index(this%time, correctedtime) 880 IF (itime0 == 0 .AND. optio_log(force)) THEN 881 itime0 = index(this%time, datetime_miss) 882 IF (itime0 /= 0) this%time(itime0) = correctedtime 884 IF (itime0 == 0) THEN 885 CALL l4f_category_log(this%category,l4f_error, & 886 "volgrid6d: time not valid for volume, gridinfo rejected") 892 itimerange0 = index(this%timerange,gridinfo%timerange) 893 IF (itimerange0 == 0 .AND. optio_log(force)) THEN 894 itimerange0 = index(this%timerange, vol7d_timerange_miss) 895 IF (itimerange0 /= 0) this%timerange(itimerange0) = gridinfo%timerange 897 IF (itimerange0 == 0) THEN 898 CALL l4f_category_log(this%category,l4f_error, & 899 "volgrid6d: timerange not valid for volume, gridinfo rejected") 903 itimerange1 = itimerange0 906 ivar = index(this%var, gridinfo%var) 907 IF (ivar == 0 .AND. optio_log(force)) THEN 908 ivar = index(this%var, volgrid6d_var_miss) 909 IF (ivar /= 0) this%var(ivar) = gridinfo%var
|