From cdeb3ecb1f7f051a9e13c932e7de74e4be1a1d52 Mon Sep 17 00:00:00 2001 From: vijaygopalchilkuri Date: Fri, 21 Jun 2013 15:10:46 +0200 Subject: [PATCH] working prob1 --- problem1/IRPF90_man/fact.l | 16 ++++++ problem1/IRPF90_man/limit.l | 16 ++++++ problem1/IRPF90_man/nfact.l | 16 ++++++ problem1/IRPF90_man/sum.l | 16 ++++++ problem1/IRPF90_temp/Makefile | 12 +++++ problem1/IRPF90_temp/README.md | 7 +++ problem1/IRPF90_temp/fact.irp.F90 | 62 ++++++++++++++++++++++ problem1/IRPF90_temp/fact.irp.f | 14 +++++ problem1/IRPF90_temp/fact.irp.module.F90 | 12 +++++ problem1/IRPF90_temp/fact.irp.module.o | Bin 0 -> 1030 bytes problem1/IRPF90_temp/fact.irp.o | Bin 0 -> 4672 bytes problem1/IRPF90_temp/fact_mod.mod | 28 ++++++++++ problem1/IRPF90_temp/irp_stack.irp.F90 | 38 +++++++++++++ problem1/IRPF90_temp/irp_stack.irp.o | Bin 0 -> 1704 bytes problem1/IRPF90_temp/irp_stack_mod.mod | 42 +++++++++++++++ problem1/IRPF90_temp/irp_touches.irp.F90 | 9 ++++ problem1/IRPF90_temp/irp_touches.irp.o | Bin 0 -> 1568 bytes problem1/IRPF90_temp/irpf90.make | 43 +++++++++++++++ problem1/IRPF90_temp/irpf90_entities | 4 ++ problem1/IRPF90_temp/limit.irp.F90 | 29 ++++++++++ problem1/IRPF90_temp/limit.irp.f | 11 ++++ problem1/IRPF90_temp/limit.irp.module.F90 | 13 +++++ problem1/IRPF90_temp/limit.irp.module.o | Bin 0 -> 1081 bytes problem1/IRPF90_temp/limit.irp.o | Bin 0 -> 2920 bytes problem1/IRPF90_temp/limit_mod.mod | 31 +++++++++++ problem1/IRPF90_temp/prob1 | Bin 0 -> 12720 bytes problem1/IRPF90_temp/prob1.irp.F90 | 21 ++++++++ problem1/IRPF90_temp/prob1.irp.f | 8 +++ problem1/IRPF90_temp/prob1.irp.module.F90 | 10 ++++ problem1/IRPF90_temp/prob1.irp.module.o | Bin 0 -> 934 bytes problem1/IRPF90_temp/prob1.irp.o | Bin 0 -> 2696 bytes problem1/IRPF90_temp/prob1_mod.mod | 22 ++++++++ problem1/IRPF90_temp/sum.irp.F90 | 46 ++++++++++++++++ problem1/IRPF90_temp/sum.irp.f | 19 +++++++ problem1/IRPF90_temp/sum.irp.module.F90 | 12 +++++ problem1/IRPF90_temp/sum.irp.module.o | Bin 0 -> 1025 bytes problem1/IRPF90_temp/sum.irp.o | Bin 0 -> 2328 bytes problem1/IRPF90_temp/sum_mod.mod | 26 +++++++++ problem1/Makefile | 12 +++++ problem1/README.md | 7 +++ problem1/fact.irp.f | 14 +++++ problem1/inp | 4 ++ problem1/irpf90.make | 43 +++++++++++++++ problem1/irpf90_entities | 4 ++ problem1/limit.irp.f | 11 ++++ problem1/prob1 | Bin 0 -> 12720 bytes problem1/prob1.irp.f | 8 +++ problem1/sum.irp.f | 19 +++++++ 48 files changed, 705 insertions(+) create mode 100644 problem1/IRPF90_man/fact.l create mode 100644 problem1/IRPF90_man/limit.l create mode 100644 problem1/IRPF90_man/nfact.l create mode 100644 problem1/IRPF90_man/sum.l create mode 100644 problem1/IRPF90_temp/Makefile create mode 100644 problem1/IRPF90_temp/README.md create mode 100644 problem1/IRPF90_temp/fact.irp.F90 create mode 100644 problem1/IRPF90_temp/fact.irp.f create mode 100644 problem1/IRPF90_temp/fact.irp.module.F90 create mode 100644 problem1/IRPF90_temp/fact.irp.module.o create mode 100644 problem1/IRPF90_temp/fact.irp.o create mode 100644 problem1/IRPF90_temp/fact_mod.mod create mode 100644 problem1/IRPF90_temp/irp_stack.irp.F90 create mode 100644 problem1/IRPF90_temp/irp_stack.irp.o create mode 100644 problem1/IRPF90_temp/irp_stack_mod.mod create mode 100644 problem1/IRPF90_temp/irp_touches.irp.F90 create mode 100644 problem1/IRPF90_temp/irp_touches.irp.o create mode 100644 problem1/IRPF90_temp/irpf90.make create mode 100644 problem1/IRPF90_temp/irpf90_entities create mode 100644 problem1/IRPF90_temp/limit.irp.F90 create mode 100644 problem1/IRPF90_temp/limit.irp.f create mode 100644 problem1/IRPF90_temp/limit.irp.module.F90 create mode 100644 problem1/IRPF90_temp/limit.irp.module.o create mode 100644 problem1/IRPF90_temp/limit.irp.o create mode 100644 problem1/IRPF90_temp/limit_mod.mod create mode 100644 problem1/IRPF90_temp/prob1 create mode 100644 problem1/IRPF90_temp/prob1.irp.F90 create mode 100644 problem1/IRPF90_temp/prob1.irp.f create mode 100644 problem1/IRPF90_temp/prob1.irp.module.F90 create mode 100644 problem1/IRPF90_temp/prob1.irp.module.o create mode 100644 problem1/IRPF90_temp/prob1.irp.o create mode 100644 problem1/IRPF90_temp/prob1_mod.mod create mode 100644 problem1/IRPF90_temp/sum.irp.F90 create mode 100644 problem1/IRPF90_temp/sum.irp.f create mode 100644 problem1/IRPF90_temp/sum.irp.module.F90 create mode 100644 problem1/IRPF90_temp/sum.irp.module.o create mode 100644 problem1/IRPF90_temp/sum.irp.o create mode 100644 problem1/IRPF90_temp/sum_mod.mod create mode 100644 problem1/Makefile create mode 100644 problem1/README.md create mode 100644 problem1/fact.irp.f create mode 100644 problem1/inp create mode 100644 problem1/irpf90.make create mode 100644 problem1/irpf90_entities create mode 100644 problem1/limit.irp.f create mode 100755 problem1/prob1 create mode 100644 problem1/prob1.irp.f create mode 100644 problem1/sum.irp.f diff --git a/problem1/IRPF90_man/fact.l b/problem1/IRPF90_man/fact.l new file mode 100644 index 0000000..630b304 --- /dev/null +++ b/problem1/IRPF90_man/fact.l @@ -0,0 +1,16 @@ +.TH "IRPF90 entities" l fact "IRPF90 entities" fact +.SH Declaration +.nf +integer, allocatable :: fact (nfact) +.ni +.SH Description +! enter the factors +.SH File +.P +fact.irp.f +.SH Needs +limit +.br +.SH Needed by +sum +.br diff --git a/problem1/IRPF90_man/limit.l b/problem1/IRPF90_man/limit.l new file mode 100644 index 0000000..b5d70f7 --- /dev/null +++ b/problem1/IRPF90_man/limit.l @@ -0,0 +1,16 @@ +.TH "IRPF90 entities" l limit "IRPF90 entities" limit +.SH Declaration +.nf +integer :: limit +integer :: nfact +.ni +.SH Description +! enter limit +.SH File +.P +limit.irp.f +.SH Needed by +fact +.br +sum +.br diff --git a/problem1/IRPF90_man/nfact.l b/problem1/IRPF90_man/nfact.l new file mode 100644 index 0000000..d13a898 --- /dev/null +++ b/problem1/IRPF90_man/nfact.l @@ -0,0 +1,16 @@ +.TH "IRPF90 entities" l nfact "IRPF90 entities" nfact +.SH Declaration +.nf +integer :: limit +integer :: nfact +.ni +.SH Description +! enter limit +.SH File +.P +limit.irp.f +.SH Needed by +fact +.br +sum +.br diff --git a/problem1/IRPF90_man/sum.l b/problem1/IRPF90_man/sum.l new file mode 100644 index 0000000..0c1a7f7 --- /dev/null +++ b/problem1/IRPF90_man/sum.l @@ -0,0 +1,16 @@ +.TH "IRPF90 entities" l sum "IRPF90 entities" sum +.SH Declaration +.nf +integer :: sum +.ni +.SH Description +! calculates the sum of the factors of +! two integers between 1 to limit +.SH File +.P +sum.irp.f +.SH Needs +fact +.br +limit +.br diff --git a/problem1/IRPF90_temp/Makefile b/problem1/IRPF90_temp/Makefile new file mode 100644 index 0000000..4602bb7 --- /dev/null +++ b/problem1/IRPF90_temp/Makefile @@ -0,0 +1,12 @@ +IRPF90 = irpf90 #-a -d +FC = gfortran +FCFLAGS= -O2 + +SRC= +OBJ= +LIB= + +include irpf90.make + +irpf90.make: $(wildcard *.irp.f) + $(IRPF90) diff --git a/problem1/IRPF90_temp/README.md b/problem1/IRPF90_temp/README.md new file mode 100644 index 0000000..2f685bb --- /dev/null +++ b/problem1/IRPF90_temp/README.md @@ -0,0 +1,7 @@ +PROBLEM 1 +---------- + +* If we list all the natural numbers below 10 that are multiples of 3 or 5, we + get 3, 5, 6 and 9. The sum of these multiples is 23. + + Find the sum of all the multiples of 3 or 5 below 1000. diff --git a/problem1/IRPF90_temp/fact.irp.F90 b/problem1/IRPF90_temp/fact.irp.F90 new file mode 100644 index 0000000..6fdae35 --- /dev/null +++ b/problem1/IRPF90_temp/fact.irp.F90 @@ -0,0 +1,62 @@ +! -*- F90 -*- +! +!-----------------------------------------------! +! This file was generated with the irpf90 tool. ! +! ! +! DO NOT MODIFY IT BY HAND ! +!-----------------------------------------------! + +subroutine provide_fact + use limit_mod + use fact_mod + implicit none + character*(12) :: irp_here = 'provide_fact' + integer :: irp_err + logical :: irp_dimensions_OK + if (.not.limit_is_built) then + call provide_limit + endif + if (allocated (fact) ) then + irp_dimensions_OK = .True. + irp_dimensions_OK = irp_dimensions_OK.AND.(SIZE(fact,1)==(nfact)) + if (.not.irp_dimensions_OK) then + deallocate(fact,stat=irp_err) + if (irp_err /= 0) then + print *, irp_here//': Deallocation failed: fact' + print *, ' size: (nfact)' + endif + if ((nfact>0)) then + allocate(fact(nfact),stat=irp_err) + if (irp_err /= 0) then + print *, irp_here//': Allocation failed: fact' + print *, ' size: (nfact)' + endif + endif + endif + else + if ((nfact>0)) then + allocate(fact(nfact),stat=irp_err) + if (irp_err /= 0) then + print *, irp_here//': Allocation failed: fact' + print *, ' size: (nfact)' + endif + endif + endif + if (.not.fact_is_built) then + call bld_fact + fact_is_built = .True. + + endif +end subroutine provide_fact + +subroutine bld_fact + use limit_mod + use fact_mod + implicit none ! fact.irp.f: 6 + character*(4) :: irp_here = 'fact' ! fact.irp.f: 1 + integer :: i ! fact.irp.f: 7 + write(6,*)'enter',nfact,'integers' ! fact.irp.f: 9 + do i=1,nfact ! fact.irp.f: 10 + read(5,*)fact(i) ! fact.irp.f: 11 + enddo ! fact.irp.f: 12 +end subroutine bld_fact diff --git a/problem1/IRPF90_temp/fact.irp.f b/problem1/IRPF90_temp/fact.irp.f new file mode 100644 index 0000000..9d6f82a --- /dev/null +++ b/problem1/IRPF90_temp/fact.irp.f @@ -0,0 +1,14 @@ +BEGIN_PROVIDER [integer, fact, (nfact)] + BEGIN_DOC + ! enter the factors + END_DOC + + implicit none + integer :: i + + write(6,*)'enter',nfact,'integers' + do i=1,nfact + read(5,*)fact(i) + enddo + +END_PROVIDER diff --git a/problem1/IRPF90_temp/fact.irp.module.F90 b/problem1/IRPF90_temp/fact.irp.module.F90 new file mode 100644 index 0000000..33916a2 --- /dev/null +++ b/problem1/IRPF90_temp/fact.irp.module.F90 @@ -0,0 +1,12 @@ +! -*- F90 -*- +! +!-----------------------------------------------! +! This file was generated with the irpf90 tool. ! +! ! +! DO NOT MODIFY IT BY HAND ! +!-----------------------------------------------! + +module fact_mod + integer, allocatable :: fact (:) + logical :: fact_is_built = .False. +end module fact_mod diff --git a/problem1/IRPF90_temp/fact.irp.module.o b/problem1/IRPF90_temp/fact.irp.module.o new file mode 100644 index 0000000000000000000000000000000000000000..382bc0c02d0695bf97fe6c5c876597a2890cbf0d GIT binary patch literal 1030 zcmbtS%}T>S5S}*m@7RMNh!9UI*rgPU=s^N)(~Ex>j}nqJVz6nY*@B*Y9UsHT@DaTF z1Ui%KG|3Q84rITdnaS)f`!>3Cn~er=G~faX#V){mLBYwm16!~TFdhuf?ZaUd#Qw}a zQKzcc=^y0;K&7vV_5(z{$nlYxj$SmViLZT7L7IXJ=SdRH(3{P5q{i2GomBhbQ)%vh z=q@(Xxp2poa4M=0t%7E3A6M$PgzpH=QuZHUViUi=`fs_>pe^(DrPKXj8NewY^0ALWxl{H@CZY*_G~Yy?YS^ zf+foung&85FFu&?puTA0lLl(UYB9t|i7&#FJ^%)qpijgY*Ylr`_H??-i}56P&&+Sm zoO5RG%$?cyp4l-JjYNczh&o{NQccOW^utnBrXx$S`ty*&ugSS;m)oEu!8YYfCg85FX5UTT15LJ{N7ZqzHy1yECb$VYyI%cLv zFJNf9G0v`O6?JlMVAaRrA}#CH+L3e4ch{nK%Ch=8>`xqS>%_X)ft9S)>9r$V$YtctZ%XP?ly*5g>@B**1$76Mho!8}4%Dj_7?fz$Mpgq{Rb`eMXjk?_^(;vH*3v3}q_vN!T30FyGcLTxrSzEo z=KZfAR_|3E&`!sco4H>*f7I>VVVu)}&gjN_h_%pT$45@};y1&XWZVj9Rh3blU)VK? zKWcTFC|-RpvAUTczj`wat~ZwzB(`Wb3%b)_oy?Dv@2l9{tSodClW%MxLoFtjEQ0uk zu4Lnq-%?`O-}W~HoqHPaHyZGu0so)@|EvN3rUCz{0l(RR$LJMeytk+wBF_WTD~Q({ zZ)XF(sR8e6z+Y>?a}BsyaJbST>*oBxPjzkCvQdnTX5?Ay3U^Po6oi3SbjzW;KgfqZ zL*V7CAGqn97tnD_C2iu4<_r1IEtE3ub1w|K@-VK~Q6J}~+oE7@rc~q+DT%=MGQw5q z8UGl{9o(}f?LhhE*A5!0m9!c{zU+?d%a4X48~DB`c(`@c3-8Vu8n3E9i=8eN>B2%2 zNw=6i0^c_XJ|}#)%KJVse4elu|Heg@WHXf^%jn@}^3#$kdwk1`{dUb^k3DV#=K=)& z6Z9DS-GC&pEG;RiLw8RaU2=uONV_5LH^*z z{t_Sw_`UQPei@Ji9Ctm#{{kcdzn>n%@y7yU`(I=6Hf1J~7B_ds4UF@7*vj|=!pN#W)Xu*pmf#UPIigE6zU2}Wg4l#SaPj_f; z_7V0B1W&F%aFLkz^|!A!Dz#rTmJO}sU|yG?e(&Mui9b@d`9 zK7dCrCccGN6JCU)2QGv&fvTCRq0@{f4pcJpuliN>banU4d|i97J`w~V7Qiz&kAwpJ zbYPU>2*#ia$NSr4YGUSlMvwQ;$B-9ZvB5^Y{xqClwT+JHh0E%(dbGH*kUP}h9lD_f zU*144oD8PNZ&ZKaS|^d+%Q65Xti+Z)25Rs*PE7+fO>%9Em)cji8!9}IIYdKSqx}=#f9i^ zalFSW5{kn*hg!wUAAi94LspSc9M*@ZG{5Y(qz~A+FMyS5$wXHiKTGiK#0?x@#tC|k z4ly}<;W9x~fZU@ZXzcn))7I14MXxn8nz@f5hetV8OXo4oKG z|7*w#DkUd%8&gwGKk^Gr_Vi%$?AC3oSl?&Z!(Wi$u@I=Z>UuNn`7a> znEzv5yjz`QS7(0_g`Qe}vIIo%FJlv(xm{~MS`Atkl{)UX^vl<)`cu1;+R{w+MBVAN i?65RnJnO&N=I)2moauJ^xcHFQLHj3rNNCyPvd?E1*Ok)% literal 0 HcmV?d00001 diff --git a/problem1/IRPF90_temp/irp_stack_mod.mod b/problem1/IRPF90_temp/irp_stack_mod.mod new file mode 100644 index 0000000..4c7ba10 --- /dev/null +++ b/problem1/IRPF90_temp/irp_stack_mod.mod @@ -0,0 +1,42 @@ +GFORTRAN module version '9' created from IRPF90_temp/irp_stack.irp.F90 +MD5:f65ae2717456353521ba97c4b0936c36 -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () () +() () ()) + +() + +() + +() + +() + +() + +(2 'alloc' 'irp_stack_mod' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (LOGICAL 4 0 0 0 LOGICAL ()) 0 0 () () 0 () () +() 0 0) +3 'irp_cpu' 'irp_stack_mod' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0 ALLOCATABLE DIMENSION) (REAL 8 0 0 0 REAL ()) +0 0 () (2 0 DEFERRED () () () ()) 0 () () () 0 0) +4 'irp_stack' 'irp_stack_mod' '' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0 ALLOCATABLE DIMENSION) ( +CHARACTER 1 0 0 0 CHARACTER ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 +'128'))) 0 0 () (2 0 DEFERRED () () () ()) 0 () () () 0 0) +5 'irp_stack_mod' 'irp_stack_mod' '' 1 ((MODULE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () +0 () () () 0 0) +6 'stack_index' 'irp_stack_mod' '' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0 ALLOCATABLE DIMENSION) (INTEGER 4 +0 0 0 INTEGER ()) 0 0 () (1 0 DEFERRED () ()) 0 () () () 0 0) +7 'stackmax' 'irp_stack_mod' '' 1 ((PARAMETER UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 +() (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1000') () 0 () () () 0 0) +8 'white' 'irp_stack_mod' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (CHARACTER 1 0 0 0 CHARACTER ((CONSTANT ( +INTEGER 4 0 0 0 INTEGER ()) 0 '128'))) 0 0 () () 0 () () () 0 0) +) + +('alloc' 0 2 'irp_cpu' 0 3 'irp_stack' 0 4 'irp_stack_mod' 0 5 +'stack_index' 0 6 'stackmax' 0 7 'white' 0 8) diff --git a/problem1/IRPF90_temp/irp_touches.irp.F90 b/problem1/IRPF90_temp/irp_touches.irp.F90 new file mode 100644 index 0000000..89f5215 --- /dev/null +++ b/problem1/IRPF90_temp/irp_touches.irp.F90 @@ -0,0 +1,9 @@ +subroutine irp_finalize_367124922 + use fact_mod + use sum_mod + use limit_mod + if (allocated(fact)) then + fact_is_built = .False. + deallocate(fact) + endif +end diff --git a/problem1/IRPF90_temp/irp_touches.irp.o b/problem1/IRPF90_temp/irp_touches.irp.o new file mode 100644 index 0000000000000000000000000000000000000000..1b96d83b9e60265fe63f5a94438c64b0104a979b GIT binary patch literal 1568 zcmbtU!DA%YNvAqP=#n`BK42`DRx$s%e*@Zcrm?4*|++}RB?9f-Mj z2%bd9XZRU{g1_Ryi+J%MtW`Z-vrRj>Xu)>9dat^xr@FV_K7710;d#L3!F?D<%mM@! z+0t|iW?&lH@9$C6em7D}?bGl6*9%(2;hW~iar^X(|MN5KZf$J_H@9Uci3Y){SQpL4 z+N}c6gasPVyp!kP9oN0ZnJNDaYZHG>D*(&npUu|yXMF&Xze!cpL9epH_ZVfe9|mcgVo;Zmrv>)0+P}e+B1KefK-L z{&m!Bqg*ofn-kf zeh#tQJJLVVfcCO*<>>CeYVVXBm`w#{!e!*Bwp)K1xvKgtbAMvgZFB3}nvE%M5`K(q zj&ZF#J!T4DtK13gud2huyZ;(qhdTYY)u4QQO7RM!d22s>-VNmIW!4xxIEUXqhleCP z4At-`?#Wyr7CRfun(HQmsGpq3@Xp=!mFDV3vl&7dcB5E@>F^+YvbU{+DlSa&uyd63 x6?8LcULrn2y2o^;zek15BPJuB?%*%O)4M@NJlze>Um_BX*Wvs?vjtBY+aH! /dev/null | DO_NOTHING= + +clean: + rm -rf $(EXE) $(OBJ1) $(ALL_OBJ1) $(ALL) + +veryclean: + - $(MAKE) clean + + - rm -rf IRPF90_temp/ IRPF90_man/ irpf90.make irpf90_variables dist + diff --git a/problem1/IRPF90_temp/irpf90_entities b/problem1/IRPF90_temp/irpf90_entities new file mode 100644 index 0000000..2eb2510 --- /dev/null +++ b/problem1/IRPF90_temp/irpf90_entities @@ -0,0 +1,4 @@ +fact.irp.f : integer, allocatable :: fact (nfact) +limit.irp.f : integer :: limit +limit.irp.f : integer :: nfact +sum.irp.f : integer :: sum diff --git a/problem1/IRPF90_temp/limit.irp.F90 b/problem1/IRPF90_temp/limit.irp.F90 new file mode 100644 index 0000000..0d61371 --- /dev/null +++ b/problem1/IRPF90_temp/limit.irp.F90 @@ -0,0 +1,29 @@ +! -*- F90 -*- +! +!-----------------------------------------------! +! This file was generated with the irpf90 tool. ! +! ! +! DO NOT MODIFY IT BY HAND ! +!-----------------------------------------------! + +subroutine provide_limit + use limit_mod + implicit none + character*(13) :: irp_here = 'provide_limit' + integer :: irp_err + logical :: irp_dimensions_OK + if (.not.limit_is_built) then + call bld_limit + limit_is_built = .True. + + endif +end subroutine provide_limit + +subroutine bld_limit + use limit_mod + character*(5) :: irp_here = 'limit' ! limit.irp.f: 1 + write(6,*)'limit?' ! limit.irp.f: 6 + read(5,*)limit ! limit.irp.f: 7 + write(6,*)'nfact?' ! limit.irp.f: 8 + read(5,*)nfact ! limit.irp.f: 9 +end subroutine bld_limit diff --git a/problem1/IRPF90_temp/limit.irp.f b/problem1/IRPF90_temp/limit.irp.f new file mode 100644 index 0000000..d61342a --- /dev/null +++ b/problem1/IRPF90_temp/limit.irp.f @@ -0,0 +1,11 @@ +BEGIN_PROVIDER [integer, limit] +&BEGIN_PROVIDER [integer, nfact] + BEGIN_DOC + ! enter limit + END_DOC + write(6,*)'limit?' + read(5,*)limit + write(6,*)'nfact?' + read(5,*)nfact + +END_PROVIDER diff --git a/problem1/IRPF90_temp/limit.irp.module.F90 b/problem1/IRPF90_temp/limit.irp.module.F90 new file mode 100644 index 0000000..6d14170 --- /dev/null +++ b/problem1/IRPF90_temp/limit.irp.module.F90 @@ -0,0 +1,13 @@ +! -*- F90 -*- +! +!-----------------------------------------------! +! This file was generated with the irpf90 tool. ! +! ! +! DO NOT MODIFY IT BY HAND ! +!-----------------------------------------------! + +module limit_mod + integer :: limit + logical :: limit_is_built = .False. + integer :: nfact +end module limit_mod diff --git a/problem1/IRPF90_temp/limit.irp.module.o b/problem1/IRPF90_temp/limit.irp.module.o new file mode 100644 index 0000000000000000000000000000000000000000..7e9170b1bd7facfaf336e3a97993f033afa5ec5e GIT binary patch literal 1081 zcmbtSOH0E*5S}*m1zvg)L4zK{xP29XC$Y zsXA`94>JOwl9$M6AJI%Rd}L;VxdAoOMuYN`1k`X6ML~>SJTZY9+}t%2qlZt0x&NU% z*i7fb9hbr_sa(`@nzB7ysoxR4D>O^lzmJJ^e3tcZa-&7re}q2GZ;3kB>RsVeEd^t{ zz|(|X?u(+pxsR%|XxX#TiaO_+H8EF3RM!w*Z}Oyd9m literal 0 HcmV?d00001 diff --git a/problem1/IRPF90_temp/limit.irp.o b/problem1/IRPF90_temp/limit.irp.o new file mode 100644 index 0000000000000000000000000000000000000000..d6f5be3719e93babd5c04a38ea974b2ffb39f9a3 GIT binary patch literal 2920 zcmbtWOKTHR6u#-yHd;-i2tKM9q)0_O+G6o-1GYATk6Lv-Oqz)u%p_qlJ~vvbsJJQk z58Mj6whK{PDB{MA;6G>=U0B?>5bOD7?oCf_Cm?!Ya?knBckVgoK4$V@_`8yLLHq#5`*D_YUlj6yyCIH5G(DcNS=+zo_Tumf9|`C3hw zegy{TeP*9Bg*jgFJf}?5awTxgkxSQmYk@s}lL(l_nXrn!?Kx4-|M<;NEZW0vbID30 z2Pcy>)1l(fU~6?ruaA%(c@H*{iK*l&h3gB(K8YJJm^{_;Dwm$?AUQDSzsC1bEK>E; z!$sxCwc?`6Qe&2!(Ajkl=`SS#eREN93d@lK?63ml_*xQoYq*M6;}!BNol`%@fic{o z#Ps^V$oNq{Dd}qe6l{~C?+JXzIwFSZ3+sR*q2h7BAe-sY_YQbQ7F317L~jeWUOVV% zd7yvFfK7yLphwS-n&R>&C9zFQsF@TUFW|L`<&`+E5xZlkBd!wQaVrcwd?&6+VXV2$ z5yhx?-xy+qJJX24GDQ0tu#=E2tp4!bNEq%(dJS8M-X=KCRUCh!34Xr`KHUU=)dc_8 z1ph`j`pU=+?jakpKu=tq(PyUq(aDzzR`}tugmt4>@dMv3TeZNtwAmFv4<6Gks zwohLu(sYW7vI>{mN~( z;MAMZNKub&&C1_$O98D7&I1J3ou9@7AsXFH_MgGk>&G>j%DE=_RafcO- z_Z~#g>qT(*PDqii_;)0ZysBnE4jOm=UeZ$gW RNQWRV9wn!wqHuNp{s0wYiRJ(R literal 0 HcmV?d00001 diff --git a/problem1/IRPF90_temp/limit_mod.mod b/problem1/IRPF90_temp/limit_mod.mod new file mode 100644 index 0000000..875daa4 --- /dev/null +++ b/problem1/IRPF90_temp/limit_mod.mod @@ -0,0 +1,31 @@ +GFORTRAN module version '9' created from IRPF90_temp/limit.irp.module.F90 +MD5:8353d8a4752d9f18be27e41075631cad -- If you edit this, you'll get what you deserve. + +(() () () () () () () () () () () () () () () () () () () () () () () () +() () ()) + +() + +() + +() + +() + +() + +(2 'limit' 'limit_mod' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () +() 0 0) +3 'limit_is_built' 'limit_mod' '' 1 ((VARIABLE UNKNOWN-INTENT +UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0) (LOGICAL 4 0 0 0 LOGICAL ()) 0 0 +() () 0 () () () 0 0) +4 'limit_mod' 'limit_mod' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 +0) +5 'nfact' 'limit_mod' '' 1 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC +UNKNOWN IMPLICIT-SAVE 0 0) (INTEGER 4 0 0 0 INTEGER ()) 0 0 () () 0 () () +() 0 0) +) + +('limit' 0 2 'limit_is_built' 0 3 'limit_mod' 0 4 'nfact' 0 5) diff --git a/problem1/IRPF90_temp/prob1 b/problem1/IRPF90_temp/prob1 new file mode 100644 index 0000000000000000000000000000000000000000..39f128a1264691e9bb19c4589a34161edb721df9 GIT binary patch literal 12720 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 bP9<~X&OehZ-9!<@z6|9jb-4`XtPuYVcc}g| literal 0 HcmV?d00001 diff --git a/problem1/IRPF90_temp/prob1.irp.F90 b/problem1/IRPF90_temp/prob1.irp.F90 new file mode 100644 index 0000000..c633653 --- /dev/null +++ b/problem1/IRPF90_temp/prob1.irp.F90 @@ -0,0 +1,21 @@ +! -*- F90 -*- +! +!-----------------------------------------------! +! This file was generated with the irpf90 tool. ! +! ! +! DO NOT MODIFY IT BY HAND ! +!-----------------------------------------------! + +program irp_program ! prob1: 0 + call prob1 ! prob1.irp.f: 0 + call irp_finalize_367124922() ! prob1.irp.f: 0 +end program ! prob1.irp.f: 0 +subroutine prob1 ! prob1.irp.f: 1 + use sum_mod + implicit none ! prob1.irp.f: 3 + character*(5) :: irp_here = 'prob1' ! prob1.irp.f: 1 + if (.not.sum_is_built) then + call provide_sum + endif + write(6,*)sum ! prob1.irp.f: 5 +end ! prob1.irp.f: 7 diff --git a/problem1/IRPF90_temp/prob1.irp.f b/problem1/IRPF90_temp/prob1.irp.f new file mode 100644 index 0000000..547c1ce --- /dev/null +++ b/problem1/IRPF90_temp/prob1.irp.f @@ -0,0 +1,8 @@ + program prob1 + + implicit none + + write(6,*)sum + + end + diff --git a/problem1/IRPF90_temp/prob1.irp.module.F90 b/problem1/IRPF90_temp/prob1.irp.module.F90 new file mode 100644 index 0000000..80c64de --- /dev/null +++ b/problem1/IRPF90_temp/prob1.irp.module.F90 @@ -0,0 +1,10 @@ +! -*- F90 -*- +! +!-----------------------------------------------! +! This file was generated with the irpf90 tool. ! +! ! +! DO NOT MODIFY IT BY HAND ! +!-----------------------------------------------! + +module prob1_mod +end module prob1_mod diff --git a/problem1/IRPF90_temp/prob1.irp.module.o b/problem1/IRPF90_temp/prob1.irp.module.o new file mode 100644 index 0000000000000000000000000000000000000000..c23d5afad7b0ca8aaca0d4d97022715e596ed5c0 GIT binary patch literal 934 zcmbtSO-sW-5S=vj>*z%U5$Z_=J5;fV9%P}my@)rD9+Gy!qDe}!f}Z>f{tSPbSAT)d zBs*ra=A;9gdGF1<%R+RU}ceF-}Gskw7=&iNSf3us~vVD^L`J(%o y`?~P?j2#)`W*_D_p2Yc7=2l#Ck?q zfir7ckux7Lt7=C!vnpZ8tiVSD^t_d)rXmqy2hm(ZF_<;w*Xxc)(VibU*2wt%0isMj zl`+l?uLXA9!G!)_a?}O#hmF>yC>tUtnj@>(FppBfxiDpDXN-K5jtpsxgSMdsi=5${`M1Qo*hKuZGbGrs#TlI zLff1>$bIraoR-dggzceXj*o5bG=5PM*U7JoIlk`GZSYcTeM85Toowx%LSmilI1|jT zQ-*S5S}#kr^kW^L4&S&(USr(3se9iloG@=OOhx>EzMLUCfB!Jse*I*l{{@j};e zvgfmIXR2$$=a;P$cYl7b>bkWrq58TTlD<+sKrI-$&6$!N0m07C4rEn8$PV+k$WSLqH7x literal 0 HcmV?d00001 diff --git a/problem1/IRPF90_temp/sum.irp.o b/problem1/IRPF90_temp/sum.irp.o new file mode 100644 index 0000000000000000000000000000000000000000..ba5bbcec18b70b7448866914d8867af4d48d927a GIT binary patch literal 2328 zcmbu9Pe>F|7{K4SmaCa-QW06~N)SdmxM7qMqB-jJ*AO~%nr7Wu9NO8n-Py1R3${Io zNFE|OcJ5S!hc2;VltNV4t*aNq4rPZd0{gx<@6*RP+o3*~dEfW@{=N6+y}8qOzQ00I z7>UBV*rr94u{8;HbKK2pSvAupccS%X8)xw9Dg0E%uf`@hh)wQ6-WOfeT<{Xh#HLP7 zhr;*J!}^M)@k7ytB-sUs+sqnqq}nrKe*)zg&2&XdUnJAG8Tx@%vmT zd>8Y3lvUxHSy>8&S*-9S=uWA);GA~bL!oB3eX*1eEn}KHUp|?_tKeKxrT)~;sH+!|uaSiRC%TNRv!KJ~y42;Y<# z_rcgE^eZ@Ob@kV4>VoHXfUf3l+Kv&2(aE~w2x(a}WvGrh<}fv3I0jSWxg1l6Gq!D} zfu%E!sSaGc+?sQY;cHCg;pT{*%o?^S+Wq$sfeN^N+dY-Kh5gyXas9G1f>9|0p+Bv1 zm6KQ;qy`>TgJ^)@o}nCu2YCPuNm@jngt+SM)dCc2{%d{|a7q3Hp{rAgv4cA3q7@)Bf)Q=G{9$?2+it z&ocrc-esZfojZoEiAl|i1iT8^+uOeym|y>rIFR1+=j{*azJhU;?AyAZGvNEha2|d$ zLGHK1$i275?H1rWy|r_IZTwv~ocPymkmf`Gl)b>ccMX&9y!-L4GJL2E9|4Yir(r~) z@0ycveZmfSR_quI<2D`Ebnyl&<6c-~53g)LQOr)LtIF6zOv8CmX1VEJ6=q~YDc zJMeqm71U9X /dev/null | DO_NOTHING= + +clean: + rm -rf $(EXE) $(OBJ1) $(ALL_OBJ1) $(ALL) + +veryclean: + - $(MAKE) clean + + - rm -rf IRPF90_temp/ IRPF90_man/ irpf90.make irpf90_variables dist + diff --git a/problem1/irpf90_entities b/problem1/irpf90_entities new file mode 100644 index 0000000..2eb2510 --- /dev/null +++ b/problem1/irpf90_entities @@ -0,0 +1,4 @@ +fact.irp.f : integer, allocatable :: fact (nfact) +limit.irp.f : integer :: limit +limit.irp.f : integer :: nfact +sum.irp.f : integer :: sum diff --git a/problem1/limit.irp.f b/problem1/limit.irp.f new file mode 100644 index 0000000..d61342a --- /dev/null +++ b/problem1/limit.irp.f @@ -0,0 +1,11 @@ +BEGIN_PROVIDER [integer, limit] +&BEGIN_PROVIDER [integer, nfact] + BEGIN_DOC + ! enter limit + END_DOC + write(6,*)'limit?' + read(5,*)limit + write(6,*)'nfact?' + read(5,*)nfact + +END_PROVIDER diff --git a/problem1/prob1 b/problem1/prob1 new file mode 100755 index 0000000000000000000000000000000000000000..12065c3279d5f14fcb458e7fd87d70d61d76283e GIT binary patch literal 12720 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