
{"id":119,"date":"2016-04-28T19:07:06","date_gmt":"2016-04-28T19:07:06","guid":{"rendered":"http:\/\/labs.la.utexas.edu\/gilden\/?page_id=119"},"modified":"2016-04-28T19:07:06","modified_gmt":"2016-04-28T19:07:06","slug":"parallel-code","status":"publish","type":"page","link":"https:\/\/labs.la.utexas.edu\/gilden\/parallel-code\/","title":{"rendered":"Parallel Code"},"content":{"rendered":"<pre>program parallel\r\n\t\tparameter(nmu=20,nsig=20,nd=11,ng=10,nc=16)\r\n\t\tparameter (nsim=2000)\r\n\t\tinteger k1,k2,k3,k4,k5,i,j,m,n\r\n\t\treal xmu,sigma,d,g,c\r\n\t\tdata xmu1\/.02\/,xmu2\/.4\/\r\n\t    data sig1\/.2\/,sig2\/4.\/\r\n\t\tdata d1\/1.\/,d2\/2.\/\r\n\t\tdata g1\/.1\/,g2\/1.\/\r\n\t\tdata c1\/1.\/,c2\/4.\/\r\n\t\tdata iseed\/-9\/\r\n\t\topen(unit=10,file='p10')\r\n\t\topen(unit=20,file='S1T0p.txt')\r\n\t\t\r\n\t\tr=ran2(iseed)\r\n\t\t\r\n\t\tread(20,*) n\r\n\t\tread(20,*) m\r\n\t\t\r\n\t\tdo k1=1,nmu\r\n\t\t\txmu=xmu1+(xmu2-xmu1)*(k1-1)\/float(nmu-1)\r\n\t\t \tdo k2=1,nsig\r\n\t\t  \t\tsigma=sig1+(sig2-sig1)*(k2-1)\/float(nsig-1)\r\n\t\t    \tdo k3=1,nd\r\n\t\t   \t  \t\td=d1+(d2-d1)*(k3-1)\/float(nd-1)\r\n\t\t\t  \t\tdo k4=1,ng\r\n\t\t  \t    \t\tg=g1+(g2-g1)*(k4-1)\/float(ng-1)\r\n\t\t  \t    \t\tdo k5=1,nc\r\n\t\t   \t    \t\t\tc=c1+(c2-c1)*(k5-1)\/float(nc-1)\r\n\t\t\t\t\tcall varpar(nsim,n,m,d,g,c,sigma,xmu)\r\n\t\t     \t\t\tenddo\r\n\t\t    \t\tenddo\r\n\t\t\t\tenddo\r\n\t\t\tenddo\r\n\t\tenddo\r\n\t\tend\t\t\r\n\t\t\r\n\t\tsubroutine varpar(nsim,n,m,d,g,c,sigma,xmu)\r\n\t\tinteger nsim,n,m,it,icorr,ntime\r\n\t\treal d,g,c,sigma,xmu,totcor,totstp,stepsq,pcorr\r\n\t\treal perr,avst,errvar,stvar\r\n\t\ttotcor=0\r\n\t\ttotstp=0\r\n\t\ttotsq=0\r\n\t\tstepsq=0\r\n\t\tdo it=1,nsim\r\n\t\t\tcall trpar(g,c,sigma,xmu,d,n,m,icorr,ntime) \t\t\t\r\n\t\t\ttotcor=totcor+icorr\r\n\t\t\ttotstp=totstp+ntime\r\n\t\t\tstepsq=stepsq+ntime**2\r\n\t\tenddo\r\n\t\t\r\n\t\tpcorr=totcor\/nsim\r\n\t\tperr=1.-pcorr\r\n\t\tavst=totstp\/nsim\r\n\t\terrvar=pcorr*perr\/nsim\r\n\t \tstvar=(stepsq-avst**2\/nsim)\/float(nsim-1)\t \r\n\t \twrite(10,*) perr,avst,stvar\r\n\t \r\n\t \treturn\r\n\t\tend\r\n\t\t\t\r\n\t\tsubroutine trpar(g,c,sigma,xmu,d,n,m,icorr,ntime)\r\n\t \tparameter(tb=20)\r\n\t\tinteger typetr\r\n\t\tinteger n,m,icorr,ntime,ndist\r\n\t\treal g,c,sigma,xmu,d,distb0,db,tbr\r\n\t\t\r\n\t\ttypetr=0\r\n\t\tntime=0\r\n\t\tndist=n-m\r\n\t\tdistb0=-d*tb\r\n\t\t\r\n\t\tdb=rlxb(n,c,distb0)\r\n\t\ttbr=rlxt(n,c,tb)\r\n\t\tcall walker(n,m,xmu,sigma,db,tb,tbr,g,ntime,typetr)\r\n  \r\n  \t\tif(m .gt. 0) then\t\t\t\r\n\t\t\tif(typetr .eq. 1) then\r\n\t\t\t\ticorr=1\r\n\t\t\telse\r\n\t\t\t\ticorr=0\r\n\t\t\tendif\r\n\t\t\r\n\t\telse\r\n\t\t\tif(typetr .eq. 0) then\r\n\t\t\t\ticorr=1\r\n\t\t\telse\r\n\t\t\t\ticorr=0\r\n\t\t\tendif\r\n\t\tendif\r\n\t\t\t\t\r\n\t\treturn\r\n\t\tend\t\t\r\n\t\t\r\n\t\tfunction rlxb(nel,c,distb0)\r\n\t\tinteger nel\r\n\t\treal c,distb0\r\n\t\tif(nel .eq. 4) rlxb=distb0\/(c*c)\r\n\t\tif(nel .eq. 2) rlxb=distb0\/c\r\n\t\tif(nel .eq. 1) rlxb=distb0\r\n\t\treturn\r\n\t\tend\r\n\t\t\r\n\t\tfunction rlxt(nel,c,targb)\r\n\t\tinteger nel\r\n\t\treal c,targb\r\n\t\tif(nel .eq. 4) rlxt=targb\/(c*c)\r\n\t\tif(nel .eq. 2) rlxt=targb\/c\r\n\t\tif(nel .eq. 1) rlxt=targb\r\n\t\treturn\r\n\t\tend\r\n\t\t\r\n\t\tsubroutine walker (nel,ntarg,xmu,sig,dbrlx,tb,tbr,g,n,idec)\r\n\t\tparameter(nelmax=4)\r\n\t\tinteger dstvec(nelmax),tv(nelmax),markd,markt\r\n\t\tinteger nel,ntarg,n,idec,ndist,i,k\r\n\t\treal wvec(nelmax)\r\n\t\treal xmu,sig,dbrlx,tb,tbr,g,typeel\r\n\t\tdimension xmean(nelmax)\r\n\t\tn=0\r\n\t\tndist=nel-ntarg\r\n\t\t\r\n\t\tdo i=1,nel\r\n\t\t\tdstvec(i)=3\r\n\t\t\ttv(i)=3\r\n\t\t\twvec(i)=0.\r\n\t\tenddo\r\n\t\t\r\n\t\tdo i=1,ntarg\r\n\t\t\txmean(i)=xmu\r\n\t\tenddo\r\n\t\tdo i=1,ndist\r\n\t\t\txmean(i+ntarg)=-xmu\r\n\t\tenddo\r\n\t\t\r\n  10    continue\r\n  \t\tdo i=1,nel\r\n\t\t\tdstvec(i)=3\r\n\t\t\ttv(i)=3\r\n\t\tenddo\r\n\t\tn=n+1\r\n\t\tdo i=1,nel\r\n\t\t\tcall subwlk(xmean(i),sig,dbrlx,tb,tbr,g,wvec(i),nel,typeel)\r\n\t\t\tif (typeel .eq. 1) then\r\n\t\t\t\tidec=1\r\n\t\t\t\treturn\r\n\t\t\tendif\r\n\t\t\tif (typeel .eq. 2) then\r\n\t\t\t\ttv(i)=0\r\n\t\t\t\tmarkt=0\r\n\t\t\t\tdo k=1,nel\r\n\t\t\t\t\tmarkt=markt+tv(k)\r\n\t\t\t\tenddo\r\n\t\t\t\tif (markt .eq. 0) then\r\n\t\t\t\t\tidec=1\r\n\t\t\t\t\treturn\r\n\t\t\t\tendif\r\n\t\t\tendif\r\n\t\t\tif (typeel .eq. 0) then\r\n\t\t\t\tdstvec(i)=0\r\n\t\t\t\tmarkd=0\r\n\t\t\t\tdo k=1,nel\r\n\t\t\t\t\tmarkd=markd+dstvec(k)\r\n\t\t\t\tenddo\r\n\t\t\t\tif (markd .eq. 0) then\r\n\t\t\t\t\tidec=0\r\n\t\t\t\t\treturn\r\n\t\t\t\tendif\r\n\t\t\tendif\r\n\t\tenddo\r\n\t\tgo to 10\r\n\t\tend\r\n\t\r\n\t\t\r\n  \t\tsubroutine subwlk(xm,sig,dbrlx,tb,tbr,g,w,nel,typeel)\r\n\t\tinteger nel\r\n\t\treal xgam\r\n\t\treal xm,sig,dbrlx,tb,tbr,g,w,typeel,step\r\n\t\tiran=1\r\n\t\txgam=0\r\n\t\tstep=gasdev(iran)*sig+xm\r\n\t\txgam=(-1.)*g\r\n\t\tstep=step*(float(nel) ** xgam)\r\n\t\tw=w+step\r\n\t\t\r\n\t\tif(w .ge. tb) then\r\n\t\t\ttypeel=1\r\n\t\t\treturn\r\n\t\tendif\r\n\t\tif(w .ge. tbr) then\r\n\t\t\ttypeel=2\r\n\t\t\treturn\r\n\t\tendif\r\n\t\tif(w .le. dbrlx) then\r\n\t\t\ttypeel=0\r\n\t\t\treturn\r\n\t\tendif\r\n\t\ttypeel=3\r\n\t\treturn\r\n\t\tend\r\n\r\n\r\n       FUNCTION gasdev(idum)\r\n       INTEGER idum\r\n       REAL gasdev\r\nCU    USES ran1\r\n       INTEGER iset\r\n       REAL fac,gset,rsq,v1,v2,ran1\r\n\t   SAVE iset,gset\r\n       DATA iset\/0\/\r\n       if (iset.eq.0) then\r\n1       v1=2.*ran2(idum)-1.\r\n         v2=2.*ran2(idum)-1.\r\n         rsq=v1**2+v2**2\r\n         if(rsq.ge.1..or.rsq.eq.0.)goto 1\r\n         fac=sqrt(-2.*alog(rsq)\/rsq)\r\n         gset=v1*fac\r\n         gasdev=v2*fac\r\n         iset=1\r\n       else\r\n         gasdev=gset\r\n         iset=0\r\n       endif\r\n       return\r\n       END\r\n\t  \r\n\t  FUNCTION ran2(idum)\r\n      INTEGER idum,IM1,IM2,IMM1,IA1,IA2,IQ1,IQ2,IR1,IR2,NTAB,NDIV\r\n      REAL ran2,AM,EPS,RNMX\r\n      PARAMETER (IM1=2147483563,IM2=2147483399,AM=1.\/IM1,IMM1=IM1-1)\r\n\t  PARAMETER (IA1=40014,IA2=40692,IQ1=53668,IQ2=52774,IR1=12211)\r\n\t  PARAMETER (IR2=3791,NTAB=32,NDIV=1+IMM1\/NTAB,EPS=1.2e-7)\r\n\t  PARAMETER (RNMX=1.-EPS)\r\n      INTEGER idum2,j,k,iv(NTAB),iy\r\n      SAVE iv,iy,idum2\r\n      DATA idum2\/123456789\/, iv\/NTAB*0\/, iy\/0\/\r\n      if (idum.le.0) then\r\n        idum=max(-idum,1)\r\n        idum2=idum\r\n        do 11 j=NTAB+8,1,-1\r\n          k=idum\/IQ1\r\n          idum=IA1*(idum-k*IQ1)-k*IR1\r\n          if (idum.lt.0) idum=idum+IM1\r\n          if (j.le.NTAB) iv(j)=idum\r\n11      continue\r\n        iy=iv(1)\r\n      endif\r\n      k=idum\/IQ1\r\n      idum=IA1*(idum-k*IQ1)-k*IR1\r\n      if (idum.lt.0) idum=idum+IM1\r\n      k=idum2\/IQ2\r\n      idum2=IA2*(idum2-k*IQ2)-k*IR2\r\n      if (idum2.lt.0) idum2=idum2+IM2\r\n      j=1+iy\/NDIV\r\n      iy=iv(j)-idum2\r\n      iv(j)=idum\r\n      if(iy.lt.1)iy=iy+IMM1\r\n      ran2=min(AM*iy,RNMX)\r\n      return\r\n      END<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>program parallel parameter(nmu=20,nsig=20,nd=11,ng=10,nc=16) parameter (nsim=2000) integer k1,k2,k3,k4,k5,i,j,m,n real xmu,sigma,d,g,c data xmu1\/.02\/,xmu2\/.4\/ data sig1\/.2\/,sig2\/4.\/ data d1\/1.\/,d2\/2.\/ data g1\/.1\/,g2\/1.\/ data c1\/1.\/,c2\/4.\/ data iseed\/-9\/ open(unit=10,file=&#8217;p10&#8242;) open(unit=20,file=&#8217;S1T0p.txt&#8217;) r=ran2(iseed) read(20,*) n read(20,*) m do k1=1,nmu xmu=xmu1+(xmu2-xmu1)*(k1-1)\/float(nmu-1) do k2=1,nsig sigma=sig1+(sig2-sig1)*(k2-1)\/float(nsig-1) do k3=1,nd d=d1+(d2-d1)*(k3-1)\/float(nd-1) do k4=1,ng g=g1+(g2-g1)*(k4-1)\/float(ng-1) do k5=1,nc c=c1+(c2-c1)*(k5-1)\/float(nc-1) call varpar(nsim,n,m,d,g,c,sigma,xmu) enddo enddo enddo enddo enddo end subroutine varpar(nsim,n,m,d,g,c,sigma,xmu) integer nsim,n,m,it,icorr,ntime [&hellip;]<\/p>\n","protected":false},"author":107,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-119","page","type-page","status-publish","hentry","entry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"site-graphic":false},"uagb_author_info":{"display_name":"ecw255","author_link":"https:\/\/labs.la.utexas.edu\/gilden\/author\/ecw255\/"},"uagb_comment_info":0,"uagb_excerpt":"program parallel parameter(nmu=20,nsig=20,nd=11,ng=10,nc=16) parameter (nsim=2000) integer k1,k2,k3,k4,k5,i,j,m,n real xmu,sigma,d,g,c data xmu1\/.02\/,xmu2\/.4\/ data sig1\/.2\/,sig2\/4.\/ data d1\/1.\/,d2\/2.\/ data g1\/.1\/,g2\/1.\/ data c1\/1.\/,c2\/4.\/ data iseed\/-9\/ open(unit=10,file='p10') open(unit=20,file='S1T0p.txt') r=ran2(iseed) read(20,*) n read(20,*) m do k1=1,nmu xmu=xmu1+(xmu2-xmu1)*(k1-1)\/float(nmu-1) do k2=1,nsig sigma=sig1+(sig2-sig1)*(k2-1)\/float(nsig-1) do k3=1,nd d=d1+(d2-d1)*(k3-1)\/float(nd-1) do k4=1,ng g=g1+(g2-g1)*(k4-1)\/float(ng-1) do k5=1,nc c=c1+(c2-c1)*(k5-1)\/float(nc-1) call varpar(nsim,n,m,d,g,c,sigma,xmu) enddo enddo enddo enddo enddo end subroutine varpar(nsim,n,m,d,g,c,sigma,xmu) integer nsim,n,m,it,icorr,ntime&hellip;","_links":{"self":[{"href":"https:\/\/labs.la.utexas.edu\/gilden\/wp-json\/wp\/v2\/pages\/119","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/labs.la.utexas.edu\/gilden\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/labs.la.utexas.edu\/gilden\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/labs.la.utexas.edu\/gilden\/wp-json\/wp\/v2\/users\/107"}],"replies":[{"embeddable":true,"href":"https:\/\/labs.la.utexas.edu\/gilden\/wp-json\/wp\/v2\/comments?post=119"}],"version-history":[{"count":1,"href":"https:\/\/labs.la.utexas.edu\/gilden\/wp-json\/wp\/v2\/pages\/119\/revisions"}],"predecessor-version":[{"id":122,"href":"https:\/\/labs.la.utexas.edu\/gilden\/wp-json\/wp\/v2\/pages\/119\/revisions\/122"}],"wp:attachment":[{"href":"https:\/\/labs.la.utexas.edu\/gilden\/wp-json\/wp\/v2\/media?parent=119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}