Index: /trunk/MESOSCALE/LMD_MM_MARS/SRC/POSTPROC/api.F90
===================================================================
--- /trunk/MESOSCALE/LMD_MM_MARS/SRC/POSTPROC/api.F90	(revision 185)
+++ /trunk/MESOSCALE/LMD_MM_MARS/SRC/POSTPROC/api.F90	(revision 186)
@@ -35,4 +35,68 @@
       INCLUDE 'netcdf.inc'
 
+      !
+      ! VARIABLES
+      !
+      CHARACTER (LEN=500)                                :: path_to_input
+      CHARACTER (LEN=500)                                :: path_to_output
+      CHARACTER (LEN=500)                                :: input_name
+      CHARACTER (LEN=500)                                :: output_name
+      CHARACTER (LEN=20)                                 :: process
+      CHARACTER (LEN=2000)                               :: fields
+      REAL, DIMENSION(299)                               :: interp_levels
+      INTEGER                                            :: interp_method=1
+      INTEGER                                            :: extrapolate=0
+      LOGICAL                                            :: debug=.FALSE.
+      LOGICAL                                            :: unstagger_grid=.FALSE.
+      LOGICAL                                            :: bit64=.FALSE.
+      LOGICAL                                            :: oldvar=.TRUE.              
+
+      INTEGER                                            :: funit,ios
+      LOGICAL                                            :: is_used
+
+      !
+      ! NAMELISTS 
+      !
+      NAMELIST /io/ path_to_input, input_name, path_to_output, output_name, &
+                    process, fields, debug, bit64, oldvar
+      NAMELIST /interp_in/ interp_levels, interp_method, extrapolate, unstagger_grid
+ 
+      !
+      ! DEFAULT VALUES for VARIABLES
+      !
+      path_to_input   = './'
+      path_to_output  = './'
+      output_name     = ' '
+      interp_levels   = -99999.
+      process         = 'all'
+      
+
+      !
+      ! READ NAMELIST
+      !
+        DO funit=10,100
+           INQUIRE(unit=funit, opened=is_used)
+           IF (.not. is_used) EXIT
+        END DO
+        OPEN(funit,file='namelist.api',status='old',form='formatted',iostat=ios)
+        IF ( ios /= 0 ) STOP "ERROR opening namelist.api"
+        READ(funit,io)
+        READ(funit,interp_in)
+        CLOSE(funit)
+
+      !!! MAIN CALL
+      CALL api_main ( path_to_input, input_name, path_to_output, output_name, &
+                                 process, fields, debug, bit64, oldvar, &
+                                 interp_levels, interp_method, extrapolate, unstagger_grid, -99999. ) 
+
+ END PROGRAM api
+
+ SUBROUTINE api_main ( path_to_input, input_name, path_to_output, output_name, &
+                       process, fields, debug, bit64, oldvar, &
+                       interp_levels, interp_method, extrapolate, unstagger_grid, onelevel )
+
+      IMPLICIT NONE
+      INCLUDE 'netcdf.inc'
+
       !!
       !! EARTH CONSTANTS
@@ -62,6 +126,6 @@
       CHARACTER,         ALLOCATABLE, DIMENSION(:,:,:,:) :: text
       CHARACTER (LEN=31),ALLOCATABLE, DIMENSION(:)       :: dnamei, dnamej
-      CHARACTER(LEN=250),ALLOCATABLE, DIMENSION(:)       :: input_file_names
-      CHARACTER(LEN=250),ALLOCATABLE, DIMENSION(:)       :: output_file_names
+      CHARACTER(LEN=500),ALLOCATABLE, DIMENSION(:)       :: input_file_names
+      CHARACTER(LEN=500),ALLOCATABLE, DIMENSION(:)       :: output_file_names
       DOUBLE PRECISION,  ALLOCATABLE, DIMENSION(:,:,:,:) :: ddata1, ddata2
       REAL,              ALLOCATABLE, DIMENSION(:,:,:,:) :: data1, data2, data3
@@ -79,16 +143,16 @@
       INTEGER,                        DIMENSION(4)       :: dims_in, dims_out
       INTEGER,                        DIMENSION(6)       :: ishape, jshape
-      CHARACTER (LEN=80)                                 :: cval
+      CHARACTER (LEN=500)                                :: cval !80
       CHARACTER (LEN=31)                                 :: cname, test_dim_name
-      CHARACTER (LEN=80)                                 :: input_file, output_file, att_text
-      CHARACTER (LEN=250)                                :: path_to_input
-      CHARACTER (LEN=250)                                :: path_to_output
-      CHARACTER (LEN=250)                                :: input_name
-      CHARACTER (LEN=250)                                :: output_name, tmp_name
+      CHARACTER (LEN=500)                                :: input_file, output_file, att_text !80
+      CHARACTER (LEN=500)                                :: path_to_input
+      CHARACTER (LEN=500)                                :: path_to_output
+      CHARACTER (LEN=500)                                :: input_name
+      CHARACTER (LEN=500)                                :: output_name, tmp_name
       CHARACTER (LEN=10)                                 :: option
       CHARACTER (LEN=132)                                :: command
       CHARACTER (LEN=20)                                 :: process, dummy
       CHARACTER (LEN=2000)                               :: fields, process_these_fields
-      REAL, DIMENSION(299)                               :: interp_levels
+      REAL, DIMENSION(299)                               :: interp_levels 
       REAL                                               :: rval
       REAL                                               :: MISSING=1.e36
@@ -96,6 +160,6 @@
       INTEGER                                            :: map_proj
       INTEGER                                            :: LINLOG = 1
-      INTEGER                                            :: interp_method=1
-      INTEGER                                            :: extrapolate=0
+      INTEGER                                            :: interp_method!=1
+      INTEGER                                            :: extrapolate!=0
       INTEGER                                            :: ncid, mcid, rcode
       INTEGER                                            :: idm, ndims, nvars, natt, ngatts
@@ -111,40 +175,17 @@
       INTEGER                                            :: kk
       LOGICAL                                            :: is_used
-      LOGICAL                                            :: debug=.FALSE.
+      LOGICAL                                            :: debug!=.FALSE.
       LOGICAL                                            :: interpolate=.FALSE.
-      LOGICAL                                            :: unstagger_grid=.FALSE.
+      LOGICAL                                            :: unstagger_grid!=.FALSE.
       LOGICAL                                            :: fix_meta_stag=.FALSE.
-      LOGICAL                                            :: bit64=.FALSE.
+      LOGICAL                                            :: bit64!=.FALSE.
       LOGICAL                                            :: first=.TRUE.
-      LOGICAL                                            :: oldvar=.FALSE.              
-
-      !
-      ! NAMELISTS 
-      !
-      NAMELIST /io/ path_to_input, input_name, path_to_output, output_name, &
-                    process, fields, debug, bit64, oldvar
-      NAMELIST /interp_in/ interp_levels, interp_method, extrapolate, unstagger_grid
-
-      !
-      ! DEFAULT VALUES for VARIABLES
-      !
-      path_to_input   = './'
-      path_to_output  = './'
-      output_name     = ' '
-      interp_levels   = -99999.
-      process         = 'all'
-
-      !
-      ! READ NAMELIST
-      !
-        DO funit=10,100
-           INQUIRE(unit=funit, opened=is_used)
-           IF (.not. is_used) EXIT
-        END DO
-        OPEN(funit,file='namelist.api',status='old',form='formatted',iostat=ios)
-        IF ( ios /= 0 ) STOP "ERROR opening namelist.api"
-        READ(funit,io)
-        READ(funit,interp_in)
-        CLOSE(funit)
+      LOGICAL                                            :: oldvar!=.FALSE.                   
+
+      REAL :: onelevel
+      if ( onelevel .ne. -99999. ) then
+        interp_levels(1) = onelevel
+        interp_levels(2:) = -99999.
+      endif
 
       !
@@ -152,11 +193,11 @@
       !
         lent = len_trim(path_to_input)
-        IF ( path_to_input(lent:lent) /= "/" ) THEN
-           path_to_input = TRIM(path_to_input)//"/"
-        ENDIF
-        lent = len_trim(path_to_output)
-        IF ( path_to_output(lent:lent) /= "/" ) THEN
-           path_to_output = TRIM(path_to_output)//"/"
-        ENDIF
+         !IF ( path_to_input(lent:lent) /= "/" ) THEN
+         !   path_to_input = TRIM(path_to_input)//"/"
+         !ENDIF
+         !lent = len_trim(path_to_output)
+         !IF ( path_to_output(lent:lent) /= "/" ) THEN
+         !   path_to_output = TRIM(path_to_output)//"/"
+         !ENDIF
         input_name = TRIM(path_to_input)//TRIM(input_name)
         !
@@ -526,5 +567,5 @@
         write(6,*) "  Data will be output on unstaggered grid "
         do kk = 1, times_in_file
-         IF ( DEBUG ) print *, kk
+         !IF ( DEBUG ) print *, kk
          IF (oldvar) THEN
            interm1(1:iweg-1,:,:) = ( u(1:iweg-1,:,:,kk) + u(2:iweg,:,:,kk) ) * .5
@@ -673,5 +714,5 @@
                 ENDDO
                    deallocate (data1)
-                   PRINT *, pres_field(10,10,:,1)
+                   !PRINT *, pres_field(10,10,:,1)
            ENDIF
  
@@ -949,5 +990,5 @@
                                       DO ii = 1,4
                                         dims_out(ii) = dvalj(jshape(ii))
-                                        print *, dims_out(ii)
+                                        !print *, dims_out(ii)
                                       ENDDO
                                       !!! NB: what follows is useful because we'd like diagnostics for each history timestep
@@ -1134,5 +1175,6 @@
       write(6,*) "##########################################"
 
- END PROGRAM api
+END SUBROUTINE
+! END PROGRAM api
 !---------------------------------------------------------------------
 !---------------------------------------------------------------------
@@ -1573,5 +1615,4 @@
    real, parameter :: RAD_PER_DEG = PI/180.
 
-!  print *, 'map ', map_proj
   IF ( map_proj .ge. 3 ) THEN                         ! No need to rotate
     !PRINT *, 'NO NEED TO ROTATE !!!! equivalent to output U,V with unstagger_grid'
@@ -1579,5 +1620,4 @@
     VVVmet(:,:,:) = VVV
   ELSE
-  !END IF
 
   cone = 1.                                          !  PS
@@ -1606,7 +1646,4 @@
   END DO
 
-!print *, longi(10,10)
-!print *, lati(10,10)
-
 
   DO i = 1, west_east_dim
@@ -1624,6 +1661,4 @@
     UUUmet(:,:,k) = VVV(:,:,k)*sin(alpha) + UUU(:,:,k)*cos(alpha)
     VVVmet(:,:,k) = VVV(:,:,k)*cos(alpha) - UUU(:,:,k)*sin(alpha)
-!print *,UUU(10,10,k), UUUmet(10,10,k)
-!print *,VVV(10,10,k), VVVmet(10,10,k)
   END DO
   END IF
Index: /trunk/MESOSCALE/LMD_MM_MARS/SRC/POSTPROC/comp_api
===================================================================
--- /trunk/MESOSCALE/LMD_MM_MARS/SRC/POSTPROC/comp_api	(revision 185)
+++ /trunk/MESOSCALE/LMD_MM_MARS/SRC/POSTPROC/comp_api	(revision 186)
@@ -5,8 +5,8 @@
 #
 
-pgf90 api.F90 -L$NETCDF/lib -lnetcdf -lm -I$NETCDF/include -Mfree -o api
+#pgf90 api.F90 -L$NETCDF/lib -lnetcdf -lm -I$NETCDF/include -Mfree -o api
 
 
-#g95 api.F90 -L$NETCDF/lib -lnetcdf -lm -I$NETCDF/include -Wall -Wno=112,141,137,155 -fno-second-underscore -ffree-form -o api
+g95 api.F90 -L$NETCDF/lib -lnetcdf -lm -I$NETCDF/include -Wall -Wno=112,141,137,155 -fno-second-underscore -ffree-form -o api
 #g95 api.F90 -L$NETCDF/lib -lnetcdf -lm -I$NETCDF/include -Wall -Wno=112,141,137,155 -ffree-form -o api
 #pgf90 -mcmodel=medium -Mlarge_arrays api.F90 -L$NETCDF/lib -lnetcdf -lm -I$NETCDF/include -Mfree -o p_interp
Index: /trunk/MESOSCALE/LMD_MM_MARS/SRC/POSTPROC/namelist.api
===================================================================
--- /trunk/MESOSCALE/LMD_MM_MARS/SRC/POSTPROC/namelist.api	(revision 185)
+++ /trunk/MESOSCALE/LMD_MM_MARS/SRC/POSTPROC/namelist.api	(revision 186)
@@ -1,63 +1,12 @@
 &io
-! path_to_input  = './dossier/ALT_POLAR_top0.1_sponge_smooth_topo/'  !! ne doit pas etre trop long
-! path_to_output = './smooth'
- path_to_input  = './dossier/ALT_POLAR_top0.1_sponge/'
+ path_to_input  = './'
  path_to_output = './'
-! input_name     = 'wrfout_d01_2024*'
- input_name     = 'wrfout_d01_2024-07-03_06:00:00'
-! path_to_input = './dossier_test/'
-! input_name     = 'wrfout_d01_2024-01-05_02:00:00'
-! input_name     = 'nca_wrfout_d01_2024-01-05_02:00:00'
+ input_name     = 'wrfout_d01_9999-09-09_09:00:00'
  process        = 'list'    !! list fields required in "fields" (available tk, tpot, GHT)     
-! fields         = 'W,SWDOWNZ,TAU_DUST,TSURF,XLONG,XLAT,HGT'
-! fields         = 'W'
-! fields         = 'U,V'  !! beware, not only tk ! only one 3D field at least
  fields         = 'tk,W,uvmet'  
- debug          = .TRUE.
 /
- process = 'all'  !! process all fields in file
- debug = .TRUE.
- bit64 = .TRUE. ! bit64 = .TRUE. !! ne pas utiliser ?
 
 &interp_in
-! interp_levels = 1000.,987.5,975.,962.5,950.,937.5,925., 
-!                 900.,875.,850.,825.,800.,750.,700.,650.,  
-!                 600.,550.,500.,450.,400.,350.,300.,250., 
-!                 225.,200.,175.,150.,137.5,125.,112.5,100., 
-!                 87.5,75.,62.5,50.,37.5,25.,12.5,
-!interp_levels = 5., 4.9, 4.8, 4.7, 4.6, 4.5, 4.4, 4.3, 4.2, 4.1, 4.0,
-!                    3.9, 3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0,
-!                    2.9, 2.8, 2.7, 2.6, 2.5, 2.4, 2.3, 2.2, 2.1, 2.0,
-!                    1.9, 1.8, 1.7, 1.6, 1.5, 1.4, 1.3, 1.2, 1.1, 1.0,
-!                    0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 
-! interp_levels = 5., 3., 1., 0.1
-! interp_method = 2,
- interp_method = 3                 !! INTERPOLATION: ALTITUDE ABOVE MOLA AREOID (km)
-! interp_method = 4
-! interp_levels = 20.
-! interp_levels = -09., -08., -07., -06., -05., -04., -03., -02., -01.,  00.,
-!                  01.,  02.,  03.,  04.,  05.,  06.,  07.,  08.,  09.,
-! interp_levels =  01.,  02.,  03.,  04.,  05.,  06.,  07.,  08.,  09.,
-!                  10.,  11.,  12.,  13.,  14.,  15.,  16.,  17.,  18.,  19.,
-!                  20.,  21.,  22.,  23.,  24.,  25.,  26.,  27.,  28.,  29.,
-!!                  30.,  31.,  32.,  33.,  34.,  35.,  36.,  37.,  38.,  39.,
-!!                  40.,  41.,  42.,  43.,  44.,  45.,  46.,  47.,  48.,  49.
-! interp_levels =               01.,  01.5,  02.,  02.5,  03.,  03.5,  04.,  04.5,  05.,  05.5,  06.,  06.5,  07.,  07.5,  08.,  08.5,  09.,  09.5 
-!                  10.,  10.5,  11.,  11.5,  12.,  12.5,  13.,  13.5,  14.,  14.5,  15.,  15.5,  16.,  16.5,  17.,  17.5,  18.,  18.5,  19.,  19.5
-!                  20.,  20.5,  21.,  21.5,  22.,  22.5,  23.,  23.5,  24.,  24.5,  25.,  25.5,  26.,  26.5,  27.,  27.5,  28.,  28.5,  29.,  29.5
- interp_levels = 20.0
-! interp_levels = 01.00,01.25,01.50,01.75,02.00,02.25,02.50,02.75,03.00,03.25,03.50,03.75,04.00,04.25,04.50,04.75,05.00,
-!                       05.25,05.50,05.75,06.00,06.25,06.50,06.75,07.00,07.25,07.50,07.75,08.00,08.25,08.50,08.75,09.00,
-!                       09.25,09.50,09.75,10.00,10.25,10.50,10.75,11.00,11.25,11.50,11.75,12.00,12.25,12.50,12.75,13.00,
-!                       13.25,13.50,13.75,14.00,14.25,14.50,14.75,15.00,15.25,15.50,15.75,16.00,16.25,16.50,16.75,17.00
-! interp_method = 2,
-! interp_levels = 1.,
+ interp_method = 4
+ interp_levels = 0.050
 /
- extrapolate = 1,
- interp_method = 2,
- unstagger_grid = .TRUE.  !! pb !! non c OK
-
- extrapolate = 0    ;; set values below ground and above model top to missing (default)
- extrapolate = 1    ;; extrapolate below ground, and set above model top to model top values
- interp_method = 1  ;; linear in p interpolation (default)
- interp_method = 2  ;; linear in log p interpolation
Index: /trunk/MESOSCALE/PLOT/PYTHON/mylib/api_g95.sh
===================================================================
--- /trunk/MESOSCALE/PLOT/PYTHON/mylib/api_g95.sh	(revision 186)
+++ /trunk/MESOSCALE/PLOT/PYTHON/mylib/api_g95.sh	(revision 186)
@@ -0,0 +1,3 @@
+#! /bin/bash
+
+f2py -c -m api ~/Science/MODELES/MESOSCALE/LMD_MM_MARS/SRC/POSTPROC/api.F90 --fcompiler=g95 -L$NETCDF/lib -lnetcdf -lm -I$NETCDF/include --f90flags="-Wall -Wno=112,141,137,155 -fno-second-underscore -ffree-form" > ~/logc 2> ~/loge
Index: /trunk/MESOSCALE/PLOT/PYTHON/mylib/api_wrapper.py
===================================================================
--- /trunk/MESOSCALE/PLOT/PYTHON/mylib/api_wrapper.py	(revision 186)
+++ /trunk/MESOSCALE/PLOT/PYTHON/mylib/api_wrapper.py	(revision 186)
@@ -0,0 +1,33 @@
+
+### A. Spiga -- LMD -- 03/07/2011
+
+def api_onelevel (  path_to_input   = './', \
+                    input_name      = 'wrfout_d0?_????-??-??_??:00:00', \
+                    path_to_output  = None, \
+                    output_name     = None, \
+                    process         = 'list', \
+                    fields          = 'tk,W,uvmet,HGT', \
+                    debug           = False, \
+                    bit64           = False, \
+                    oldvar          = True, \
+                    interp_method   = 4, \
+                    extrapolate     = 0, \
+                    unstagger_grid  = False, \
+                    onelevel        = 0.020  ):
+    import api
+    import numpy as np
+
+    if not path_to_output:  path_to_output = path_to_input
+
+    if not output_name:
+        if interp_method <= 2:    output_name = input_name+'_p'
+        if interp_method == 3:    output_name = input_name+'_z'
+        if interp_method == 4:    output_name = input_name+'_zabg'
+
+    print input_name, output_name
+
+    api.api_main ( path_to_input, input_name, path_to_output, output_name, \
+                   process, fields, debug, bit64, oldvar, np.arange(299), \
+                   interp_method, extrapolate, unstagger_grid, onelevel )
+
+    return output_name
Index: /trunk/MESOSCALE/PLOT/PYTHON/mylib/myplot.py
===================================================================
--- /trunk/MESOSCALE/PLOT/PYTHON/mylib/myplot.py	(revision 185)
+++ /trunk/MESOSCALE/PLOT/PYTHON/mylib/myplot.py	(revision 186)
@@ -35,4 +35,26 @@
 	return wlon,wlat
 
+def api_onelevel (  path_to_input   = None, \
+                    input_name      = 'wrfout_d0?_????-??-??_??:00:00', \
+                    path_to_output  = None, \
+                    output_name     = 'output.nc', \
+                    process         = 'list', \
+                    fields          = 'tk,W,uvmet,HGT', \
+                    debug           = False, \
+                    bit64           = False, \
+                    oldvar          = True, \
+                    interp_method   = 4, \
+                    extrapolate     = 0, \
+                    unstagger_grid  = False, \
+                    onelevel        = 0.020  ):
+    import api
+    import numpy as np
+    if not path_to_input:   path_to_input  = './'
+    if not path_to_output:  path_to_output = path_to_input
+    api.api_main ( path_to_input, input_name, path_to_output, output_name, \
+                   process, fields, debug, bit64, oldvar, np.arange (299), \
+                   interp_method, extrapolate, unstagger_grid, onelevel )
+    return
+
 def getproj (nc):
     map_proj = getattr(nc, 'MAP_PROJ')
@@ -51,4 +73,6 @@
         print "mercator projection"
         proj="merc"
+    else:
+        proj="merc"
     return proj    
 
@@ -70,6 +94,6 @@
     import  matplotlib.pyplot as plt
     res = int(res)
-    if folder != '':      name = folder+'/'+filename+str(res)+".png"
-    else:           	  name = filename+str(res)+".png"
+    name = filename+"_"+str(res)+".png"
+    if folder != '':      name = folder+'/'+name
     plt.savefig(name,dpi=res,bbox_inches='tight',pad_inches=pad_inches_value)
     if disp:              display(name)		
Index: /trunk/MESOSCALE/PLOT/PYTHON/scripts/winds.py
===================================================================
--- /trunk/MESOSCALE/PLOT/PYTHON/scripts/winds.py	(revision 185)
+++ /trunk/MESOSCALE/PLOT/PYTHON/scripts/winds.py	(revision 186)
@@ -24,8 +24,4 @@
     import numpy as np
 
-    #############################
-    ### Lower a bit the font size
-    rcParams['font.size'] = int( rcParams['font.size'] * 2. / 3. )
-
     ######################
     ### Load NETCDF object
@@ -50,8 +46,8 @@
                                     ## pb avec les autres (de trace derriere la sphere ?)
 
-    ###################################################################
-    ### For mesoscale results plot the underlying topography by default 
+    ####################################################################
+    #### For mesoscale results plot the underlying topography by default 
     if typefile in ['mesoapi','meso']: 
-        if var == None: var = 'HGT'
+        if var == None: back="mola" #var = 'HGT'
 
     ####################################################
@@ -83,4 +79,5 @@
         [u,v] = getwinds(nc,charu='U',charv='V')
         metwind = False ## geometrical (wrt grid)
+        print "Beware ! Not using meteorological winds. You trust numerical grid as being (x,y)."
 
     ####################################################
@@ -95,45 +92,74 @@
             elif dimension == 3:   field = nc.variables[var][:,:,:]
             elif dimension == 4:   field = nc.variables[var][:,nvert,:,:]  
+    nt = len(u[:,0,0,0])
+
+    #########################################
+    ### Name for title and graphics save file
+    basename = "WINDS"
+    if var:
+        basename = basename + "_" + var
+    basename = basename + "_z" + str(nvert)
 
     ##################################
     ### Open a figure and set subplots
     fig = figure()
-    if   numplot == 4: 
-        sub = 221
-        fig.subplots_adjust(wspace = 0.1, hspace = 0.3)
-    elif numplot == 2: 
-        sub = 121
-        fig.subplots_adjust(wspace = 0.3)
-    elif numplot == 3: 
-        sub = 131
-        fig.subplots_adjust(wspace = 0.3)
-    elif numplot == 6: 
-        sub = 231
-        fig.subplots_adjust(wspace = 0.4, hspace = 0.0)
-    elif numplot == 8: 
-        sub = 331 #241
-        fig.subplots_adjust(wspace = 0.1, hspace = 0.3)
-    else:
-        print "supported: 1,2,3,4,6,8"
-        exit()
-
-    #####################
-    ### Prepare time loop
-    nt = len(u[:,0,0,0])
-    if nt <= numplot or numplot == 1:  
-        print "I am plotting only one map ",nt,numplot
-        tabrange = [0]
-    else:                          
-        tabrange = range(0,nt-1,int(nt/numplot))
+    if   numplot > 0:    
+        if   numplot == 4: 
+            sub = 221
+            fig.subplots_adjust(wspace = 0.1, hspace = 0.3)
+            rcParams['font.size'] = int( rcParams['font.size'] * 2. / 3. )
+        elif numplot == 2: 
+            sub = 121
+            fig.subplots_adjust(wspace = 0.3)
+            rcParams['font.size'] = int( rcParams['font.size'] * 3. / 4. )
+        elif numplot == 3: 
+            sub = 131
+            fig.subplots_adjust(wspace = 0.3)
+            rcParams['font.size'] = int( rcParams['font.size'] * 2. / 3. )
+        elif numplot == 6: 
+            sub = 231
+            fig.subplots_adjust(wspace = 0.4, hspace = 0.0)
+            rcParams['font.size'] = int( rcParams['font.size'] * 2. / 3. )
+        elif numplot == 8: 
+            sub = 331 #241
+            fig.subplots_adjust(wspace = 0.1, hspace = 0.3)
+            rcParams['font.size'] = int( rcParams['font.size'] * 1. / 2. )
+        elif numplot == 9:
+            sub = 331 
+            fig.subplots_adjust(wspace = 0.1, hspace = 0.3)
+            rcParams['font.size'] = int( rcParams['font.size'] * 1. / 2. )
+        elif numplot == 1:
+            pass
+        else:
+            print "supported: 1,2,3,4,6,8"
+            exit()
+        ### Prepare time loop
+        if nt <= numplot or numplot == 1:  
+            tabrange = [0]
+            numplot = 1
+        else:                          
+            tabrange = range(0,nt,int(nt/numplot))  #nt-1
+            tabrange = tabrange[0:numplot]
+    else: 
+        tabrange = range(0,nt,1)
+        sub = 99999
+    print tabrange
 
     #################################
     ### Time loop for plotting device
+    found_lct = False
     for i in tabrange:
 
-       print i
-
        ### General plot settings
-       if tabrange != [0]: subplot(sub)
-       zetitle = "WINDS" + "_"
+       if numplot > 1: 
+           subplot(sub)
+           found_lct = True
+       elif numplot == 1:
+           found_lct = True 
+        ### If only one local time is requested (numplot < 0)
+       elif numplot <= 0: 
+           #print (ltst+i)%24, numplot, (ltst+i)%24+numplot
+           if (ltst+i)%24 + numplot != 0:   continue
+           else:                            found_lct = True
 
        ### Map projection
@@ -143,5 +169,4 @@
        #### Contour plot
        if var:
-           zetitle = zetitle + var + "_"
            if typefile in ['mesoapi','meso']:    what_I_plot = dumpbdy(field[i,:,:])
            elif typefile in ['gcm']:             
@@ -158,19 +183,20 @@
            key = False
        if metwind:  [vecx,vecy] = m.rotate_vector(vecx, vecy, lon2d, lat2d)
-       else:        print "Beware ! Not using meteorological winds. You trust numerical grid as being (x,y)."
        vectorfield(vecx, vecy,\
-                      x, y, stride=stride, csmooth=2,\
+                      x, y, stride=stride, csmooth=stride,\
                       scale=15., factor=200., color='k', key=key)
+                                                   ## or csmooth=2
        
        ### Next subplot
-       zetitle = zetitle + "LT"+str((ltst+i)%24)
-       ptitle(zetitle)
+       ptitle( basename + "_LT"+str((ltst+i)%24) )
        sub += 1
 
     ##########################################################################
     ### Save the figure in a file in the data folder or an user-defined folder
-    if not target:   zeplot = namefile+zetitle
-    else:            zeplot = target+"/"+zetitle
-    makeplotpng(zeplot,pad_inches_value=0.35)   
+    if not target:    zeplot = namefile+"_"+basename
+    else:             zeplot = target+"/"+basename
+    if numplot <= 0:  zeplot = zeplot + "_LT"+str(abs(numplot))
+    if found_lct:     makeplotpng(zeplot,pad_inches_value=0.35)   
+    else:             print "Local time not found"
 
 
@@ -196,13 +222,15 @@
     import sys
     from optparse import OptionParser    ### to be replaced by argparse
+    from api_wrapper import api_onelevel
     parser = OptionParser()
     parser.add_option('-f', action='store', dest='namefile',    type="string",  default=None,  help='name of WRF file [NEEDED]')
-    parser.add_option('-l', action='store', dest='nvert',       type="int",     default=0,     help='subscript for vertical level')
+    parser.add_option('-l', action='store', dest='nvert',       type="float",   default=0,     help='vertical level (def=0)')
     parser.add_option('-p', action='store', dest='proj',        type="string",  default=None,  help='projection')
     parser.add_option('-b', action='store', dest='back',        type="string",  default=None,  help='background')
     parser.add_option('-t', action='store', dest='target',      type="string",  default=None,  help='destination folder')
-    parser.add_option('-s', action='store', dest='stride',      type="int",     default=3,     help='stride vectors')
+    parser.add_option('-s', action='store', dest='stride',      type="int",     default=3,     help='stride vectors (def=3)')
     parser.add_option('-v', action='store', dest='var',         type="string",  default=None,  help='variable contoured')
-    parser.add_option('-n', action='store', dest='numplot',     type="int",     default=4,     help='number of plots')
+    parser.add_option('-n', action='store', dest='numplot',     type="int",     default=4,     help='number of plots (def=1)(if <0: 1 plot of LT -*numplot*)')
+    parser.add_option('-i', action='store', dest='interp',      type="int",     default=None,  help='interpolation method (done at level *nvert* km)')
     (opt,args) = parser.parse_args()
     if opt.namefile is None: 
@@ -210,8 +238,18 @@
         exit()
     print "Options:", opt
-    winds (opt.namefile,opt.nvert,proj=opt.proj,back=opt.back,target=opt.target,stride=opt.stride,var=opt.var,numplot=opt.numplot)
-
-#    if typefile in ['gcm']:
-#        if var == 'HGT':    var = 'phisinit'  ## default choice for GCM
-
-
+
+    zefile = opt.namefile    
+    zelevel = opt.nvert   
+    if opt.nvert is 0 and opt.interp:   zelevel = 0.020 
+    if opt.interp is not None:
+        if   opt.var is None    :  zefields = 'uvmet'
+        else                    :  zefields = 'uvmet,'+opt.var
+        zefile = api_onelevel (  path_to_input   = '', \
+                                 input_name      = zefile, \
+                                 path_to_output  = opt.target, \
+                                 fields          = zefields, \
+                                 interp_method   = opt.interp, \
+                                 onelevel        = zelevel )
+        zelevel = 0
+
+    winds (zefile,int(zelevel),proj=opt.proj,back=opt.back,target=opt.target,stride=opt.stride,var=opt.var,numplot=opt.numplot)
