# inspired/derived from
# https://github.com/hellolife/Vim/blob/b4b84f5e0685bdccf58474d5311c094e7eab5eb4/vimfiles/autoload/neosnippet/snippets/fortran.snip
snippet pr
abbr program
options head
program ${1:main}
${2}
end program $1
snippet sua
abbr subroutine
options head
subroutine ${1:`expand('%:r')`}(${2})
use ${3:comvar}
implicit none
${4}
end subroutine $1
snippet su
abbr subroutine
options head
subroutine ${1:`expand('%:r')`}
use ${2:comvar}
implicit none
${3}
end subroutine $1
snippet mo
abbr module
options head
module ${1:`expand('%:r')`}
implicit none
save
${2}
end module $1
snippet fu
abbr function
options head
function ${1:}(${2})
${3}
end function $1
snippet inp
abbr integer parameter
options head
integer, parameter ::
snippet in
abbr integer
options head
integer ::
snippet ini
abbr integer intent(in)
options head
integer, intent(in) ::
snippet ino
abbr integer intent(out)
options head
integer, intent(out) ::
snippet rep
abbr real parameter
options head
real, parameter ::
snippet re
abbr real
options head
real ::
snippet rei
abbr real intent(in)
options head
real, intent(in) ::
snippet reo
abbr real intent(out)
options head
real, intent(out) ::
snippet ind
abbr integer dimension
options head
integer, dimension(${1::})${2:#:, allocatable} :: ${3}
snippet indi
abbr integer dimension intent(in)
options head
integer, dimension(${1}), intent(in) :: ${2}
snippet indo
abbr integer dimension intent(out)
options head
integer, dimension(${1}), intent(out) :: ${2}
snippet red
abbr real dimension
options head
real, dimension(${1::})${2:#:, allocatable} :: ${3}
snippet redi
abbr real dimension intent(in)
options head
real, dimension(${1}), intent(in) :: ${2}
snippet redo
abbr real dimension intent(out)
options head
real, dimension(${1}), intent(out) :: ${2}
snippet ch
abbr character
options head
character(${1}) :: ${2}
snippet chd
abbr character dimension
options head
character(${1}), dimension(${2}) :: ${3}
snippet lo
abbr logical
options head
logical :: ${1:fileExsit}
snippet if
abbr if
options head
if (${1}) ${2}
snippet ift
abbr if then
options head
if (${1}) then
${2}
end if
snippet read
abbr read
options head
read(${1:*},${2:*}) ${3}
snippet wr
abbr write
options head
write(${1:*},${2:*}) ${3}
snippet op
abbr open
options head
open(${1:11},file=${2},status=${3:#:old}${4:#:,position='append'})
${5}
close($1)
snippet se
abbr select case
options head
select case (${1})
${2}
end select
snippet case
abbr case
options head
case(${1})
${2}
snippet do
abbr do
options head
do ${1}
end do
snippet ty
abbr type
options head
type ${1:}
${2}
end type $1
snippet tyd
abbr type dimension
options head
type(${1}), dimension(${2::}), allcatable :: ${3}