implicit none
integer :: ligne,today,i,nmax

! le bloc ci-dessous est facultatif : il sert a verifier 
! que l'appel de la subroutine se fait bien avec le bon type 
! peut se faire aussi pour les fonctions
interface
subroutine annees(ligne,today)
integer, intent(in) :: today 
integer, intent(inout) :: ligne 
integer :: promo,temps
end subroutine
end interface

nmax=5

ligne=1

write(*,*)ligne,' : quelle annee est-on?'
ligne=ligne+1

read *,today

do i=1,nmax,1

call annees(ligne,today)

enddo

end


subroutine annees(ligne,today)
implicit none
integer, intent(in) :: today !intent : facultatif. in : entree qui ne peut pas etre modifiee par la subroutine
integer, intent(inout) :: ligne ! intent : facultatif. inout : entree qui peut etre modifiee par la subroutine
! il existe aussi out pour ce qui n'est pas une entree mais va sortir de la subroutine
integer :: promo,temps
! ca, c'est un truc local

write(*,*)ligne,' : Quelle est sa promo?' 
ligne=ligne+1
read *,promo

temps=today-promo

if (temps.gt.1) then
write(*,*)ligne,' : Ca fait ',temps,' ans qu il est ici'
ligne=ligne+1
else if (temps.eq.1) then 
write(*,*)ligne,' : Conscrit!'
ligne=ligne+1
else if (temps.le.0) then 
write(*,*)ligne,'je pense que tu te trompes'
ligne=ligne+1
endif

end subroutine

