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