subroutine status_report(label,pol_flg,mch_flg,mch_c_flg,code) integer vvvv,hhhh,hvhv,hhvv integer p,gp,pg,gpg parameter(vvvv=1) parameter(hhhh=2) parameter(hvhv=3) parameter(hhvv=4) parameter(p=1) parameter(gp=2) parameter(pg=3) parameter(gpg=4) character*(*) label character*4 pol character*3 mech,mech_c integer pol_flg,mch_flg,mch_c_flg,code integer lngth real etime,dtime,earray(2),darray(2) real time_incrmnt_sec,time_elapsed_sec,time_elapsed_min include 'status.incld' if(pol_flg .eq. vvvv)then pol='vvvv' else if(pol_flg .eq. hhhh)then pol='hhhh' else if(pol_flg .eq. hvhv)then pol='hvhv' else if (pol_flg .eq. hhvv)then pol='hhvv' else pol='??' endif if(mch_flg .eq. p)then mech='p' else if(mch_flg .eq. gp)then mech='gp' else if(mch_flg .eq. pg)then mech='pg' else if (mch_flg .eq. gpg)then mech='gpg' else mech='??' endif if(mch_c_flg .eq. p)then mech_c='p' else if(mch_c_flg .eq. gp)then mech_c='gp' else if(mch_c_flg .eq. pg)then mech_c='pg' else if (mch_c_flg .eq. gpg)then mech_c='gpg' else mech_c='??' endif if(code .eq. incrmnt)then time_incrmnt_sec=dtime(darray) write(6,10)pol,mech,mech_c,label(1:lngth(label)), & time_incrmnt_sec 10 format ('pol= ',A4,' mech= ',A3,' mech_c= ',A3, & ' finished in subprogram ',A/ & f7.1,' seconds since last report'/ & ' ') else if(code .eq. elapsed)then time_incrmnt_sec=dtime(darray) time_elapsed_sec=etime(earray) time_elapsed_min=time_elapsed_sec/60.0 write(6,20)label(1:lngth(label)),time_elapsed_min 20 format(A,' completed at ',f6.1, & ' minutes elapsed time'/' ') else if(code .eq. start)then time_incrmnt_sec=dtime(darray) time_elapsed_sec=etime(earray) time_elapsed_min=time_elapsed_sec/60.0 write(6,30)label(1:lngth(label)),time_elapsed_min 30 format(A,' started at ',f6.1, ' minutes elapsed time'/' ') else if(code .eq. stop)then time_incrmnt_sec=dtime(darray) time_elapsed_sec=etime(earray) time_elapsed_min=time_elapsed_sec/60.0 write(6,40)label(1:lngth(label)),time_elapsed_min 40 format(A,' stoped at ',f6.1, ' minutes elapsed time'/' ') else write(6,*)'unknown status report' endif return end