月の数を数え上げる

isy年ism月からiey年iem月まで、合計で何ヶ月あるか数え上げる。

  if(isy == iey)then
    mx=iem-iey+1
  else
    mx=12-ism+1
    mx=mx+ (iey-isy-1)*12
    mx=mx+iem-1+1
  endif

実行例

 isy=        2000
 ism=           1
 iey=        2009
 iem=          12
mx=          120

通しで何ヶ月かが指定されていて、逆にその月が何年何月かを求める場合。

  eps=0.01
  do m=1,mx
    yr= float(m-1)/12.0
    iyr=int(yr)
    imo=int((yr-float(iyr)+eps)*12)+1
    iyear=iyr+isy
    print *,m,iyear,imo
  enddo

実行例

isy= 2000

ism= 1

iey= 2009

iem= 12

の場合
           1        2000           1
           2        2000           2
................
................
         119        2009          11
         120        2009          12