diff --git a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 index 2fcdf133ee1ce57ee3ccdfdd8ae55f04d2f89747..550debc6450924345a5dd3c5915cc038e9b50307 100644 --- a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 +++ b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 @@ -739,15 +739,24 @@ END DO ndims = 0 END IF +! PRINT *,'Dimensions (',ndims,') for ',TRIM(tpreclist(ji)%name) idims(:) = 1 if(ndims>0) idims(1) = ptdimx%len if(ndims>1) idims(2) = ptdimy%len if(ndims>2) idims(3) = ptdimz%len if(ndims>3) then - PRINT *,'Too many dimensions' - STOP + if(ndims==12) then + ndims = 2 + idims(2) = ptdimz%len + else + PRINT *,'Too many dimensions (',ndims,') for ',TRIM(tpreclist(ji)%name) + STOP + endif endif +!write(*,"( '----------------------------------------' )") +!write(*,"( 'Field :',A )") trim(tpreclist(ji)%name) + SELECT CASE(tpreclist(ji)%TYPE) CASE (INT,BOOL) IF (infiles%files(1)%format == LFI_FORMAT) THEN @@ -787,7 +796,7 @@ END DO !TODO: works in all cases??? (X, Y, Z dimensions assumed to be ptdimx,y or z) SELECT CASE(ndims) CASE (0) - status = NF90_PUT_VAR(kcdf_id,tpreclist(ji)%id_out,itab(1)) + status = NF90_PUT_VAR(kcdf_id,tpreclist(ji)%id_out,itab(1:extent),count=(/extent/)) CASE (1) status = NF90_PUT_VAR(kcdf_id,tpreclist(ji)%id_out,itab(1:extent),count=(/extent/)) CASE (2) @@ -870,7 +879,7 @@ END DO !TODO: works in all cases??? (X, Y, Z dimensions assumed to be ptdimx,y or z) SELECT CASE(ndims) CASE (0) - status = NF90_PUT_VAR(kcdf_id,tpreclist(ji)%id_out,xtab(1)) + status = NF90_PUT_VAR(kcdf_id,tpreclist(ji)%id_out,xtab(1:extent),count=(/extent/)) CASE (1) status = NF90_PUT_VAR(kcdf_id,tpreclist(ji)%id_out,xtab(1:extent),count=(/extent/)) CASE (2) @@ -978,7 +987,7 @@ END DO !TODO: works in all cases??? (X, Y, Z dimensions assumed to be ptdimx,y or z) SELECT CASE(ndims) CASE (0) - status = NF90_PUT_VAR(kcdf_id,tpreclist(ji)%id_out,xtab(1)) + status = NF90_PUT_VAR(kcdf_id,tpreclist(ji)%id_out,xtab(1:extent),count=(/extent/)) CASE (1) status = NF90_PUT_VAR(kcdf_id,tpreclist(ji)%id_out,xtab(1:extent),count=(/extent/)) CASE (2) @@ -1203,7 +1212,7 @@ END DO outfiles%files(idx)%format = NETCDF_FORMAT outfiles%files(idx)%status = WRITING IF (options(OPTCDF4)%set) THEN - status = NF90_CREATE(TRIM(houtfile)//'.nc4', IOR(NF90_CLOBBER,NF90_NETCDF4), outfiles%files(idx)%lun_id) + status = NF90_CREATE(TRIM(houtfile)//'.nc', IOR(NF90_CLOBBER,NF90_NETCDF4), outfiles%files(idx)%lun_id) ELSE status = NF90_CREATE(TRIM(houtfile)//'.nc', IOR(NF90_CLOBBER,NF90_64BIT_OFFSET), outfiles%files(idx)%lun_id) END IF