Google Groups Home
Help | Sign in
Message from discussion compiler problem
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
Steven G. Kargl  
View profile
 More options May 8, 1:38 pm
Newsgroups: comp.lang.fortran
From: ka...@troutmask.apl.washington.edu (Steven G. Kargl)
Date: Thu, 8 May 2008 17:38:04 +0000 (UTC)
Local: Thurs, May 8 2008 1:38 pm
Subject: Re: compiler problem
In article <c28af821-e279-42f8-8b8c-16204ef43...@p25g2000pri.googlegroups.com>,
        rudra <bnrj.ru...@gmail.com> writes:

> hello friends,
> i was just trying to see the performance of different compiler
> (gfortran and ifort) and there is a problem inthis part of the code:
> "===============Creating Initial Configuration=============="
>  58         write(*,&
>  59         '(1x,"Minimum distance between any two particle is",
> 1x,f6.4)'),rcut    !rcut=1.5
>  60 !-----------------------------------------------
>  61 !          INITIALISE POSITION
>  62 !-----------------------------------------------
>  63 10        do i=1,ntot
>  64              x(i)=boxl*(ran(seed)-0.0)
>  65              y(i)=boxl*(ran(seed)-0.0)
>  66              z(i)=boxl*(ran(seed)-0.0)

Why subtract 0.0?

>  67              call pbc(x,y,z,boxl)
>  68          end do
>  69 !- - - - - - - - - - - - - - - - - - - - - - - -
>  70 !       KEEPING MINIMUM DIST. BETWEEN ANY TWO
>  71 !       ATOM GREATER THEN  RCUT
>  72 !- - - - - - - - - - - - - - - - - - - - - - - -

rcut2 = rcut**2

>  73          do i=1,nap-1
>  74            do j=i+1,nap
>  75             dx=x(i)-x(j)
>  76             dy=y(i)-y(j)
>  77             dz=z(i)-z(j)
>  78
>  79             dist=dsqrt(dx*dx+dy*dy+dz*dz)

Depending on the value of nap, it may be prudent to do

dist2 = dx*dx+dy*dy+dz*d

>  80             tr=tr+1
>  81 !                    write(*,*) tr
>  82             if (dist<rcut)go to 10

if (dist2 < rcut2) goto 10

>  83            end do
>  84         end do
>  85         write(*,'(1x,"Success after",1x,i0,1x,"try")')tr
>  86         call mindist(x,y,z)
>  87         write(*,*) &
>  88
> "==========================================================="
>  89         write(*,*) ""
>  90
>  91 !-----------------------------------------------
>  92 !       INITIAL CONFIGURATION DONE
>  93 !-----------------------------------------------
> while compiling with ifort, its converging after 160k steps, but even
> after waiting for 1000k steps with gfortran, its not
> converging......do you think its problem with ran? can you suggest a
> better way?

What is seed?  What is boxl()?

program a
  integer i, seed
  seed = 0
  do i = 1, 4
     print *, ran(seed)
  end do
  print *
  seed = 1
  do i = 1, 4
     print *, ran(seed)
  end do
  seed = 42
  do i = 1, 4
     print *, ran(seed)
  end do
end program a

RTFM?

--
Steve
http://troutmask.apl.washington.edu/~kargl/


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2008 Google