Points i1 .. i2 were written: measure a strip's distances along it (from
the distance at point i1-1), update its level of detail, and upload the
chunks holding them. x: the points in double precision, x(:, i) for
chain point i (at least i1-1 .. i2), to measure from; without it, from
the floats written. (i2 is the last point written in the chain.)
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Source Code
subroutine written(self,i1,i2,x)class(LineChain),intent(inout)::selfinteger,intent(in)::i1,i2!! points written (chain indices)real(wp),intent(in),optional::x(:,:)!! (3, at least i1-1 .. i2): the pointsinteger::j,lo,hido j=1,self%n_chunksassociate(c=>self%chunks(j))lo=max(i1,c%first)hi=min(i2,c%first+c%capacity-1)if(lo>hi)cycle if(self%kind==CHAIN_STRIP)then call measure(self,j,lo,hi,x)call update_lod(self,j,lo,hi,x)end if call check_status(vkf_line_points_changed(c%line,int(hi-c%first+1,c_int)),'trajectory artists')end associate end do end subroutine written