allocate_pixels Subroutine

private pure elemental subroutine allocate_pixels(this)

Allocates memory for the pixels of the PNM image.

Type Bound

format_pnm

Arguments

Type IntentOptional Attributes Name
class(format_pnm), intent(inout) :: this

Called by

proc~~allocate_pixels~~CalledByGraph proc~allocate_pixels format_pnm%allocate_pixels proc~crop format_pnm%crop proc~crop->proc~allocate_pixels proc~import_pnm format_pnm%import_pnm proc~import_pnm->proc~allocate_pixels proc~resize format_pnm%resize proc~resize->proc~allocate_pixels proc~rotate format_pnm%rotate proc~rotate->proc~allocate_pixels proc~set_pnm format_pnm%set_pnm proc~set_pnm->proc~allocate_pixels proc~save color%save proc~save->proc~set_pnm program~demo_ppm demo_ppm program~demo_ppm->proc~crop program~demo_ppm->proc~import_pnm program~demo_ppm->proc~resize program~demo_ppm->proc~rotate program~demo_ppm->proc~set_pnm program~test test program~test->proc~set_pnm program~test1 test1 program~test1->proc~set_pnm program~test10 test10 program~test10->proc~import_pnm program~test11 test11 program~test11->proc~import_pnm program~test12 test12 program~test12->proc~import_pnm program~test13 test13 program~test13->proc~import_pnm program~test14 test14 program~test14->proc~import_pnm program~test17 test17 program~test17->proc~set_pnm program~test18 test18 program~test18->proc~set_pnm program~test19 test19 program~test19->proc~set_pnm program~test2 test2 program~test2->proc~set_pnm program~test20 test20 program~test20->proc~set_pnm program~test21 test21 program~test21->proc~set_pnm program~test22 test22 program~test22->proc~rotate program~test22->proc~set_pnm program~test23 test23 program~test23->proc~set_pnm program~test24 test24 program~test24->proc~crop program~test24->proc~set_pnm program~test25 test25 program~test25->proc~resize program~test25->proc~set_pnm program~test3 test3 program~test3->proc~set_pnm program~test4 test4 program~test4->proc~set_pnm program~test6 test6 program~test6->proc~set_pnm program~test7 test7 program~test7->proc~import_pnm program~test8 test8 program~test8->proc~import_pnm program~test9 test9 program~test9->proc~import_pnm

Source Code

   elemental pure subroutine allocate_pixels(this)
      class(format_pnm), intent(inout) :: this
      select case(this%magic_number)
       case('P1')
         if (.not.allocated(this%pixels)) allocate(this%pixels(this%height, this%width))
       case('P2')
         if (.not.allocated(this%pixels)) allocate(this%pixels(this%height, this%width))
       case('P3')
         if (.not.allocated(this%pixels)) allocate(this%pixels(this%height, 3*this%width))
       case('P4')
         if (.not.allocated(this%pixels)) allocate(this%pixels(this%height, this%width))
       case('P5')
         if (.not.allocated(this%pixels)) allocate(this%pixels(this%height, this%width))
       case('P6')
         if (.not.allocated(this%pixels)) allocate(this%pixels(this%height, 3*this%width))
      end select
   end subroutine allocate_pixels