LMDZ
inigrads.F
Go to the documentation of this file.
1 !
2 ! $Header$
3 !
4  subroutine inigrads(if,im
5  s ,x,fx,xmin,xmax,jm,y,ymin,ymax,fy,lm,z,fz
6  s ,dt,file,titlel)
7 
8 
9  implicit none
10 
11  integer if,im,jm,lm,i,j,l
12  real x(im),y(jm),z(lm),fx,fy,fz,dt
13  real xmin,xmax,ymin,ymax
14 
15  character(len=*),intent(in) :: file
16  character(len=*),intent(in) :: titlel
17 
18 #include "gradsdef.h"
19 
20 c data unit/66,32,34,36,38,40,42,44,46,48/
21  integer nf
22  save nf
23  data nf/0/
24 
25  unit(1)=66
26  unit(2)=32
27  unit(3)=34
28  unit(4)=36
29  unit(5)=38
30  unit(6)=40
31  unit(7)=42
32  unit(8)=44
33  unit(9)=46
34 
35  if (if.le.nf) stop'verifier les appels a inigrads'
36 
37  print*,'Entree dans inigrads'
38 
39  nf=if
40  title(if)=titlel
41  ivar(if)=0
42 
43  fichier(if)=trim(file)
44 
45  firsttime(if)=.true.
46  dtime(if)=dt
47 
48  iid(if)=1
49  ifd(if)=im
50  imd(if)=im
51  do i=1,im
52  xd(i,if)=x(i)*fx
53  if(xd(i,if).lt.xmin) iid(if)=i+1
54  if(xd(i,if).le.xmax) ifd(if)=i
55  enddo
56  print*,'On stoke du point ',iid(if),' a ',ifd(if),' en x'
57 
58  jid(if)=1
59  jfd(if)=jm
60  jmd(if)=jm
61  do j=1,jm
62  yd(j,if)=y(j)*fy
63  if(yd(j,if).gt.ymax) jid(if)=j+1
64  if(yd(j,if).ge.ymin) jfd(if)=j
65  enddo
66  print*,'On stoke du point ',jid(if),' a ',jfd(if),' en y'
67 
68  print*,'Open de dat'
69  print*,'file=',file
70  print*,'fichier(if)=',fichier(if)
71 
72  print*,4*(ifd(if)-iid(if))*(jfd(if)-jid(if))
73  print*,trim(file)//'.dat'
74 
75  OPEN (unit(if)+1,file=trim(file)//'.dat'
76  s ,form='unformatted',
77  s access='direct'
78  s ,recl=4*(ifd(if)-iid(if)+1)*(jfd(if)-jid(if)+1))
79 
80  print*,'Open de dat ok'
81 
82  lmd(if)=lm
83  do l=1,lm
84  zd(l,if)=z(l)*fz
85  enddo
86 
87  irec(if)=0
88 
89  print*,if,imd(if),jmd(if),lmd(if)
90  print*,'if,imd(if),jmd(if),lmd(if)'
91 
92  return
93  end
!$Header!integer nvarmx s iid
Definition: gradsdef.h:20
!$Header!integer nvarmx yd
Definition: gradsdef.h:20
!$Header!integer nvarmx dtime
Definition: gradsdef.h:20
!$Header!c REAL ripx REAL fy
Definition: fxy_new.h:6
!$Header!integer nvarmx s imd
Definition: gradsdef.h:20
!$Header!c REAL ripx REAL fx
Definition: fxy_new.h:6
!$Id jm
Definition: comconst.h:7
!$Header!integer nvarmx s ifd
Definition: gradsdef.h:20
!$Id calend INTEGER itaufin INTEGER itau_phy INTEGER day_ref REAL dt
Definition: temps.h:15
!$Header!integer nvarmx s s s fichier
Definition: gradsdef.h:20
!$Header!integer nvarmx s lmd
Definition: gradsdef.h:20
subroutine inigrads(if, im, x, fx, xmin, xmax, jm, y, ymin, ymax, fy, lm, z, fz, dt, file, titlel)
Definition: inigrads.F:7
!$Header!integer nvarmx s jid
Definition: gradsdef.h:20
!$Header!integer nvarmx s s irec
Definition: gradsdef.h:20
!$Header!integer nvarmx s jmd
Definition: gradsdef.h:20
!$Header!integer nvarmx zd
Definition: gradsdef.h:20
!$Header!c c INCLUDE fxyprim h c c c Fonctions in line c c REAL fyprim REAL rj c c il faut la calculer avant d appeler ces fonctions c c c Fonctions a changer selon x(x) et y(y) choisis.c-----------------------------------------------------------------c c.....ici
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
!$Header!integer nvarmx s s s title
Definition: gradsdef.h:20
!$Header!integer nvarmx s jfd
Definition: gradsdef.h:20
!$Header!integer nvarmx s s unit
Definition: gradsdef.h:20
!$Header!integer nvarmx s s firsttime
Definition: gradsdef.h:20
!$Header!integer nvarmx s s ivar
Definition: gradsdef.h:20