~ubuntu-branches/debian/sid/abinit/sid

« back to all changes in this revision

Viewing changes to lib/light/lightweight.F90

  • Committer: Bazaar Package Importer
  • Author(s): Christophe Prud'homme
  • Date: 2007-09-14 13:05:00 UTC
  • Revision ID: james.westby@ubuntu.com-20070914130500-1kzh2mrgo6ir4b6i
Tags: upstream-5.3.4.dfsg
ImportĀ upstreamĀ versionĀ 5.3.4.dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
PROGRAM lightweight
 
2
  !Programme leger de dynamique moleculaire. Juste por tester
 
3
  !divers champs de force.
 
4
  !Il est totalement non optimise, excessivement redondant et donc tres simple.
 
5
  !(au moins avant d'etre ecrit)
 
6
  !local variables
 
7
  !eneropt: option sur le calcul de l'energie
 
8
  !npart: nombre de particules
 
9
  !volume: volume du systeme 
 
10
  !nvec:nombre de vecteurs de base
 
11
  !ndim: dimensionlite de l'espace
 
12
  !posopt: type de reseau des  positions initiales
 
13
  !velopt: mode d'initialisation des vitesses
 
14
  !cell(nvec,ndim): vecteurs de base de la boite de simulation
 
15
  !pos(npart,ndim): position des particules
 
16
  !vel(npart,ndim): vitesse des particules
 
17
  !masse: masse des particules
 
18
  !ipas: indice du pas
 
19
  !npas: nombre de pas
 
20
  !dt: pas de temps
 
21
  !reall:unite reele de longueur
 
22
  USE types_def
 
23
  IMPLICIT NONE
 
24
  TYPE(options_type) :: options
 
25
  INTEGER :: npart,nvec,ndim,ipas,npas,nimage
 
26
  DOUBLE PRECISION :: ameam(2),volume,energy,masse,dt,dx,reall,rcut
 
27
  DOUBLE PRECISION, ALLOCATABLE :: cell(:,:),pos(:,:),vel(:,:),forces(:,:)
 
28
  !Lecture des donees
 
29
  Call readinput(ameam,npart,volume,masse,nvec,ndim,npas,dt,dx,reall,options,rcut)
 
30
  ALLOCATE(cell(nvec,ndim),pos(npart,ndim),vel(npart,ndim),forces(npart,ndim))
 
31
  !Creation de la maille de simulation
 
32
  CALL inicell(cell,nvec,ndim)
 
33
  !Positions initiales
 
34
  CALL inipos(pos,npart,ndim,cell,nvec,options,rcut,reall,nimage)
 
35
  !Vitesses initiales
 
36
  CALL inivel(vel,npart,ndim,masse,reall,options)
 
37
  !Forces initiales
 
38
  Call forc(forces,npart,ndim,pos,cell,nvec,reall,dx,options,rcut,nimage)
 
39
  !Energie initiale
 
40
  Call ener(ameam,energy,pos,npart,vel,masse,ndim,cell,nvec,reall,options,rcut,nimage)
 
41
  !On teste les forces
 
42
  CALL  testforce(ameam,pos,npart,ndim,dx,cell,nvec,reall,options,rcut,nimage)
 
43
  !En avant (suivant Verlet des vitesses)
 
44
  write(80,*) npart,ndim,masse,dt,nvec,reall,dx,options,rcut,nimage
 
45
  write(80,*)pos,vel,cell
 
46
!!$  stop
 
47
!!$  read(80)npart,ndim,masse,dt,nvec,reall,dx,options,rcut,nimage
 
48
!!$  allocate(pos(npart,ndim),vel(npart,ndim),cell(ndim,ndim))
 
49
!!$  read(80)pos,vel,cell
 
50
!  npas=15
 
51
  DO ipas=0,npas
 
52
     CALL move_li(pos,npart,ndim,vel,masse,dt,cell,nvec,reall,options,dx,rcut,nimage)
 
53
     write(75,*) dt*ipas, pos(1,1)
 
54
     CALL ener(ameam,energy,pos,npart,vel,masse,ndim,cell,nvec,reall,options,rcut,nimage)
 
55
!     CALL output(pos,npart,ndim,vel,forces,energy,ipas)
 
56
  ENDDO
 
57
  CALL  testforce(ameam,pos,npart,ndim,dx,cell,nvec,reall,options,rcut,nimage)
 
58
  !On ferme
 
59
  CALL CLOSE()
 
60
  STOP
 
61
END PROGRAM lightweight
 
62
!C'est fini