--- trunk/bibio/Writefield/writefield.f 2014/09/17 10:08:00 109 +++ trunk/Sources/misc/writefield.f 2015/06/16 15:23:29 145 @@ -1,12 +1,13 @@ module WriteField_m - USE write_field, ONLY: ncid, record, varid, nbfield - use CreateNewField_m, only: CreateNewField + use CreateNewField_m, only: CreateNewField, ncid, nbfield, MaxWriteField use GetFieldIndex_m, only: GetFieldIndex - USE netcdf95, ONLY: nf95_put_var + USE netcdf95, ONLY: nf95_put_var, nf95_sync implicit none + integer, save:: Record(MaxWriteField) + interface WriteField module procedure WriteField3d,WriteField2d,WriteField1d end interface WriteField @@ -31,12 +32,14 @@ if (Index==-1) then call CreateNewField(name, shape(field)) Index=nbfield + Record(Index) = 1 else Record(Index)=Record(Index)+1 endif - call NF95_PUT_VAR(Ncid(Index), Varid(Index), Field, & + call NF95_PUT_VAR(Ncid(Index), Varid = 1, values = Field, & start = (/1, Record(Index)/)) + call nf95_sync(Ncid(Index)) end subroutine WriteField1d @@ -57,12 +60,14 @@ if (Index==-1) then call CreateNewField(name, shape(field)) Index=nbfield + Record(Index) = 1 else Record(Index)=Record(Index)+1 endif - call NF95_PUT_VAR(Ncid(Index), Varid(Index), Field, & + call NF95_PUT_VAR(Ncid(Index), Varid = 1, values = Field, & start = (/1, 1, Record(Index)/)) + call nf95_sync(Ncid(Index)) end subroutine WriteField2d @@ -83,12 +88,14 @@ if (Index==-1) then call CreateNewField(name, shape(field)) Index=nbfield + Record(Index) = 1 else Record(Index)=Record(Index)+1 endif - call NF95_PUT_VAR(Ncid(Index), Varid(Index), Field, & + call NF95_PUT_VAR(Ncid(Index), Varid = 1, values = Field, & start = (/1, 1, 1, Record(Index)/)) + call nf95_sync(Ncid(Index)) end subroutine WriteField3d