1 SUBROUTINE dump2ds(im,jm,z,nom_z)
17 CHARACTER*32 jform,jline*1000
20 logical zinf,znan,zsign
21 CHARACTER (len=*) :: nom_z
23 equivalence(az,icheck)
24 equivalence(iform,jform)
25 DATA jform/
'-@zyxwvutsrqpon NOPQRSTUVWXYZ*+?'/
26 INTEGER i,j,k,imin,imax,jmin,jmax,kzero,kchar(im)
27 REAL zmin,zmax,zllu,zllm
28 write(f1000,
'(''(4x,'',I3,''(1H-))'')')im+3
30 jline(1+(i-1)*5:5*i)=
'. '
41 IF(.NOT.( z(i,j).GT.zmax))
GOTO 10007
45 10007
IF(.NOT.( z(i,j).LT.zmin))
GOTO 10009
49 10009
IF(.NOT.( z(i,j).eq.0.))
GOTO 10011
55 10004 zsign=(sign(1.,zmin)*sign(1.,zmax).gt.0.)
56 WRITE(*,*)
'>>> dump2ds: ',trim(nom_z)
57 print*,
'>>> ',kzero,
' zero values <<<'
58 IF(.NOT.( zmin.lt.0.))
GOTO 10013
59 print2000,
' [MIN:',zmin,
'(',imin,
',',jmin,
') (-@zyxwvutsrqpon NOPQ
60 *RSTUVWXYZ*+) ',zmax,
'(',imax,
',',jmax,
'):MAX]'
62 10013 print2000,
' [MIN:',zmin,
'(',imin,
',',jmin,
') ( NOPQRSTUVWXYZ*+) ',
63 *zmax,
'(',imax,
',',jmax,
'):MAX]'
65 2000
Format(a,1pg11.4,a1,i3,a1,i3,a,1pg11.4,a1,i3,a1,i3,a)
66 IF(.NOT.( zmax.GT.zmin))
GOTO 10015
67 zllm=max(abs(zmax),abs(zmin))
68 zllu=min(abs(zmax),abs(zmin))
69 if(im.ge.100)
WRITE(*,
'(104x,900i1)')(mod(i/100,10),i=100,im)
70 WRITE(*,
'(14x,1000i1)')(mod(i/10,10),i=10,im)
71 WRITE(*,
'(5x,1009i1)')(mod(i,10),i=1,im)
78 IF(.NOT.( az.eq.0.))
GOTO 10021
81 10021
IF(.NOT.((az.ne.0.and.icheck(1).eq.0.and.icheck(2).eq.2146435072))
86 10023
IF(.NOT.((az.ne.0.and.icheck(1).eq.0.and.icheck(2).eq.2146959360))
91 10024
IF(.NOT.( zsign))
GOTO 10025
92 kchar(i)=nint(13.*(az-zllu)/(zllm-zllu)+17)
94 10025 kchar(i)=nint(13.*az/zllm+17)
96 10022
IF(.NOT.( z(i,j).lt.0.))
GOTO 10027
100 10020
WRITE(*,
'(1x,i3,''|'',1000a)')j+1,(iform(kchar(i)),i=1,im),
'|',
'|
104 WRITE(*,
'(5x,1000i1)')(mod(i,10),i=1,im)
105 WRITE(*,
'(14x,1000i1)')(mod(i/10,10),i=10,im)
106 if(im.ge.100)
WRITE(*,
'(104x,900i1)')(mod(i/100,10),i=100,im)
108 10015 print*,
'>>> ZERO MAP <<<'
109 10016
if(zinf)print*,
' *** Infty value(s) (+ or -) in map ***'
110 if(znan)print*,
' *** NaN value(s) (?) in map ***'
!$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 false
subroutine dump2ds(im, jm, z, nom_z)
!$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