Index: /trunk/CONFIG/GYRE/EXP00/namelist
===================================================================
--- /trunk/CONFIG/GYRE/EXP00/namelist	(revision 1274)
+++ /trunk/CONFIG/GYRE/EXP00/namelist	(revision 1275)
@@ -133,11 +133,11 @@
 &namsbc_flx    !   surface boundary condition : flux formulation
 !-----------------------------------------------------------------------
-!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_utau     =      'utau'        ,        24.        ,    'utau'  ,     .false.    , .false. ,   'yearly'
-   sn_vtau     =      'vtau'        ,        24.        ,    'vtau'  ,     .false.    , .false. ,   'yearly'
-   sn_qtot     =      'qtot'        ,        24.        ,    'qtot'  ,     .false.    , .false. ,   'yearly'
-   sn_qsr      =      'qsr'         ,        24.        ,    'qsr'   ,     .false.    , .false. ,   'yearly'
-   sn_emp      =      'emp'         ,        24.        ,    'emp'   ,     .false.    , .false. ,   'yearly'
+!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_utau     =      'utau'        ,        24.        ,    'utau'  ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_vtau     =      'vtau'        ,        24.        ,    'vtau'  ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_qtot     =      'qtot'        ,        24.        ,    'qtot'  ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_qsr      =      'qsr'         ,        24.        ,    'qsr'   ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_emp      =      'emp'         ,        24.        ,    'emp'   ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
 !
    cn_dir      = './'      !  root directory for the location of the flux files
@@ -146,13 +146,13 @@
 &namsbc_clio   !   namsbc_clio  CLIO bulk formulea
 !-----------------------------------------------------------------------
-!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_utau     =    'taux_1m'       ,       -1.         , 'sozotaux' ,    .false.     , .true.  ,   'yearly'    
-   sn_vtau     =    'tauy_1m'       ,       -1.         , 'sometauy' ,    .false.     , .true.  ,   'yearly'    
-   sn_wndm     =    'flx'           ,       -1.         , 'socliowi' ,    .false.     , .true.  ,   'yearly'      
-   sn_tair     =    'flx'           ,       -1.         , 'socliot2' ,    .false.     , .true.  ,   'yearly'     
-   sn_humi     =    'flx'           ,       -1.         , 'socliohu' ,    .false.     , .true.  ,   'yearly'    
-   sn_ccov     =    'flx'           ,       -1.         , 'socliocl' ,    .false.     , .true.  ,   'yearly'      
-   sn_prec     =    'flx'           ,       -1.         , 'socliopl' ,    .false.     , .true.  ,   'yearly'       
+!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_utau     =    'taux_1m'       ,       -1.         , 'sozotaux' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_vtau     =    'tauy_1m'       ,       -1.         , 'sometauy' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_wndm     =    'flx'           ,       -1.         , 'socliowi' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_tair     =    'flx'           ,       -1.         , 'socliot2' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_humi     =    'flx'           ,       -1.         , 'socliohu' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_ccov     =    'flx'           ,       -1.         , 'socliocl' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_prec     =    'flx'           ,       -1.         , 'socliopl' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
 !
    cn_dir      = './'      !  root directory for the location of the bulk files are
@@ -161,17 +161,17 @@
 &namsbc_core   !   namsbc_core  CORE bulk formulea
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_wndi     =    'u10'           ,       24.         , 'U_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_wndj     =    'v10'           ,       24.         , 'V_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_qsr      =    'rad'           ,       24.         , 'SWDN_MOD' ,    .false.     , .true.  ,   'yearly'      
-   sn_qlw      =    'rad'           ,       24.         , 'LWDN_MOD' ,    .false.     , .true.  ,   'yearly'      
-   sn_tair     =    't10'           ,       24.         , 'T_10_MOD' ,    .false.     , .true.  ,   'yearly'     
-   sn_humi     =    'q10'           ,       24.         , 'Q_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_prec     =    'precip'        ,       -1.         , 'RAIN'     ,    .false.     , .true.  ,   'yearly'      
-   sn_snow     =    'precip'        ,       -1.         , 'SNOW'     ,    .false.     , .true.  ,   'yearly'       
+!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_wndi     =    'u10_core'      ,       -1.         , 'u10'      ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  'U1'
+   sn_wndj     =    'v10_core'      ,       -1.         , 'v10'      ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  'V1'
+   sn_qsr      =    'qsw_core'      ,       -1.         , 'swdn'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_qlw      =    'qlw_core'      ,       -1.         , 'lwdn'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_tair     =    't2_core'       ,       -1.         , 't2'       ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_humi     =    'q2_core'       ,       -1.         , 'q2'       ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_prec     =    'precip_core'   ,       -1.         , 'precip'   ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_snow     =    'snow_core'     ,       -1.         , 'snow'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
 !
    cn_dir      = './'      !  root directory for the location of the bulk files
-   ln_2m       = .false.   !  air temperature and humidity referenced at 2m (T) instead 10m (F)
+   ln_2m       = .true.    !  air temperature and humidity referenced at 2m (T) instead 10m (F)
    alpha_precip= 1.        !  multiplicative factor for precipitation (total & snow)
 /
@@ -191,8 +191,8 @@
 &namsbc_rnf    !   runoffs namelist surface boundary condition
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_rnf    =   'runoff_1m_nomask' ,        -1.        , 'sorunoff' ,    .true.      , .true.  ,   'yearly'     
-   sn_cnf    =   'runoff_1m_nomask' ,         0.        , 'socoefr'  ,    .false.     , .true.  ,   'yearly'              
+!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_rnf    =   'runoff_1m_nomask' ,        -1.        , 'sorunoff' ,    .true.      , .true.  ,   'yearly'  , ' '      , ' '
+   sn_cnf    =   'runoff_1m_nomask' ,         0.        , 'socoefr'  ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
 !
    cn_dir       = './'      !  root directory for the location of the runoff files
@@ -205,8 +205,8 @@
 &namsbc_ssr    !   surface boundary condition : sea surface restoring
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_sst      =    'sst_data'      ,        24.        ,  'sst'     ,     .false.    , .false. ,   'yearly'
-   sn_sss      =    'sss_data'      ,        -1.        ,  'sss'     ,     .true.     , .false. ,   'yearly'
+!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_sst      =    'sst_data'      ,        24.        ,  'sst'     ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_sss      =    'sss_data'      ,        -1.        ,  'sss'     ,     .true.     , .false. ,   'yearly'  , ' '      , ' '
 !
    cn_dir      = './'      !  root directory for the location of the runoff files
Index: /trunk/CONFIG/GYRE_LOBSTER/EXP00/namelist
===================================================================
--- /trunk/CONFIG/GYRE_LOBSTER/EXP00/namelist	(revision 1274)
+++ /trunk/CONFIG/GYRE_LOBSTER/EXP00/namelist	(revision 1275)
@@ -133,11 +133,11 @@
 &namsbc_flx    !   surface boundary condition : flux formulation
 !-----------------------------------------------------------------------
-!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_utau     =      'utau'        ,        24.        ,    'utau'  ,     .false.    , .false. ,   'yearly'
-   sn_vtau     =      'vtau'        ,        24.        ,    'vtau'  ,     .false.    , .false. ,   'yearly'
-   sn_qtot     =      'qtot'        ,        24.        ,    'qtot'  ,     .false.    , .false. ,   'yearly'
-   sn_qsr      =      'qsr'         ,        24.        ,    'qsr'   ,     .false.    , .false. ,   'yearly'
-   sn_emp      =      'emp'         ,        24.        ,    'emp'   ,     .false.    , .false. ,   'yearly'
+!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_utau     =      'utau'        ,        24.        ,    'utau'  ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_vtau     =      'vtau'        ,        24.        ,    'vtau'  ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_qtot     =      'qtot'        ,        24.        ,    'qtot'  ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_qsr      =      'qsr'         ,        24.        ,    'qsr'   ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_emp      =      'emp'         ,        24.        ,    'emp'   ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
 !
    cn_dir      = './'      !  root directory for the location of the flux files
@@ -146,13 +146,13 @@
 &namsbc_clio   !   namsbc_clio  CLIO bulk formulea
 !-----------------------------------------------------------------------
-!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_utau     =    'taux_1m'       ,       -1.         , 'sozotaux' ,    .false.     , .true.  ,   'yearly'    
-   sn_vtau     =    'tauy_1m'       ,       -1.         , 'sometauy' ,    .false.     , .true.  ,   'yearly'    
-   sn_wndm     =    'flx'           ,       -1.         , 'socliowi' ,    .false.     , .true.  ,   'yearly'      
-   sn_tair     =    'flx'           ,       -1.         , 'socliot2' ,    .false.     , .true.  ,   'yearly'     
-   sn_humi     =    'flx'           ,       -1.         , 'socliohu' ,    .false.     , .true.  ,   'yearly'    
-   sn_ccov     =    'flx'           ,       -1.         , 'socliocl' ,    .false.     , .true.  ,   'yearly'      
-   sn_prec     =    'flx'           ,       -1.         , 'socliopl' ,    .false.     , .true.  ,   'yearly'       
+!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_utau     =    'taux_1m'       ,       -1.         , 'sozotaux' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_vtau     =    'tauy_1m'       ,       -1.         , 'sometauy' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_wndm     =    'flx'           ,       -1.         , 'socliowi' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_tair     =    'flx'           ,       -1.         , 'socliot2' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_humi     =    'flx'           ,       -1.         , 'socliohu' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_ccov     =    'flx'           ,       -1.         , 'socliocl' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_prec     =    'flx'           ,       -1.         , 'socliopl' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
 !
    cn_dir      = './'      !  root directory for the location of the bulk files are
@@ -161,17 +161,17 @@
 &namsbc_core   !   namsbc_core  CORE bulk formulea
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_wndi     =    'u10'           ,       24.         , 'U_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_wndj     =    'v10'           ,       24.         , 'V_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_qsr      =    'rad'           ,       24.         , 'SWDN_MOD' ,    .false.     , .true.  ,   'yearly'      
-   sn_qlw      =    'rad'           ,       24.         , 'LWDN_MOD' ,    .false.     , .true.  ,   'yearly'      
-   sn_tair     =    't10'           ,       24.         , 'T_10_MOD' ,    .false.     , .true.  ,   'yearly'     
-   sn_humi     =    'q10'           ,       24.         , 'Q_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_prec     =    'precip'        ,       -1.         , 'RAIN'     ,    .false.     , .true.  ,   'yearly'      
-   sn_snow     =    'precip'        ,       -1.         , 'SNOW'     ,    .false.     , .true.  ,   'yearly'       
+!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_wndi     =    'u10_core'      ,       -1.         , 'u10'      ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  'U1'
+   sn_wndj     =    'v10_core'      ,       -1.         , 'v10'      ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  'V1'
+   sn_qsr      =    'qsw_core'      ,       -1.         , 'swdn'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_qlw      =    'qlw_core'      ,       -1.         , 'lwdn'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_tair     =    't2_core'       ,       -1.         , 't2'       ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_humi     =    'q2_core'       ,       -1.         , 'q2'       ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_prec     =    'precip_core'   ,       -1.         , 'precip'   ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_snow     =    'snow_core'     ,       -1.         , 'snow'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
 !
    cn_dir      = './'      !  root directory for the location of the bulk files
-   ln_2m       = .false.   !  air temperature and humidity referenced at 2m (T) instead 10m (F)
+   ln_2m       = .true.    !  air temperature and humidity referenced at 2m (T) instead 10m (F)
    alpha_precip= 1.        !  multiplicative factor for precipitation (total & snow)
 /
@@ -191,8 +191,8 @@
 &namsbc_rnf    !   runoffs namelist surface boundary condition
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_rnf    =   'runoff_1m_nomask' ,        -1.        , 'sorunoff' ,    .true.      , .true.  ,   'yearly'     
-   sn_cnf    =   'runoff_1m_nomask' ,         0.        , 'socoefr'  ,    .false.     , .true.  ,   'yearly'              
+!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_rnf    =   'runoff_1m_nomask' ,        -1.        , 'sorunoff' ,    .true.      , .true.  ,   'yearly'  , ' '      , ' '
+   sn_cnf    =   'runoff_1m_nomask' ,         0.        , 'socoefr'  ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
 !
    cn_dir       = './'      !  root directory for the location of the runoff files
@@ -205,8 +205,8 @@
 &namsbc_ssr    !   surface boundary condition : sea surface restoring
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_sst      =    'sst_data'      ,        24.        ,  'sst'     ,     .false.    , .false. ,   'yearly'
-   sn_sss      =    'sss_data'      ,        -1.        ,  'sss'     ,     .true.     , .false. ,   'yearly'
+!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_sst      =    'sst_data'      ,        24.        ,  'sst'     ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_sss      =    'sss_data'      ,        -1.        ,  'sss'     ,     .true.     , .false. ,   'yearly'  , ' '      , ' '
 !
    cn_dir      = './'      !  root directory for the location of the runoff files
Index: /trunk/CONFIG/ORCA2_LIM/EXP00/1_namelist
===================================================================
--- /trunk/CONFIG/ORCA2_LIM/EXP00/1_namelist	(revision 1274)
+++ /trunk/CONFIG/ORCA2_LIM/EXP00/1_namelist	(revision 1275)
@@ -32,5 +32,5 @@
                            !                  = 2 calendar parameters read in the restart file
    nit000      =       1   !  first time step
-   nitend      =    5475   !  last  time step
+   nitend      =   10950   !  last  time step
    ndate0      =  010101   !  initial calendar date yymmdd (used if nrstdt=1)
    nleapy      =       0   !  Leap year calendar (1) or not (0)
@@ -133,11 +133,11 @@
 &namsbc_flx    !   surface boundary condition : flux formulation
 !-----------------------------------------------------------------------
-!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_utau     =      'utau'        ,        24.        ,    'utau'  ,     .false.    , .false. ,   'yearly'
-   sn_vtau     =      'vtau'        ,        24.        ,    'vtau'  ,     .false.    , .false. ,   'yearly'
-   sn_qtot     =      'qtot'        ,        24.        ,    'qtot'  ,     .false.    , .false. ,   'yearly'
-   sn_qsr      =      'qsr'         ,        24.        ,    'qsr'   ,     .false.    , .false. ,   'yearly'
-   sn_emp      =      'emp'         ,        24.        ,    'emp'   ,     .false.    , .false. ,   'yearly'
+!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_utau     =      'utau'        ,        24.        ,    'utau'  ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_vtau     =      'vtau'        ,        24.        ,    'vtau'  ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_qtot     =      'qtot'        ,        24.        ,    'qtot'  ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_qsr      =      'qsr'         ,        24.        ,    'qsr'   ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_emp      =      'emp'         ,        24.        ,    'emp'   ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
 !
    cn_dir      = './'      !  root directory for the location of the flux files
@@ -146,13 +146,13 @@
 &namsbc_clio   !   namsbc_clio  CLIO bulk formulea
 !-----------------------------------------------------------------------
-!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_utau     =    'taux_1m'       ,       -1.         , 'sozotaux' ,    .false.     , .true.  ,   'yearly'    
-   sn_vtau     =    'tauy_1m'       ,       -1.         , 'sometauy' ,    .false.     , .true.  ,   'yearly'    
-   sn_wndm     =    'flx'           ,       -1.         , 'socliowi' ,    .false.     , .true.  ,   'yearly'      
-   sn_tair     =    'flx'           ,       -1.         , 'socliot2' ,    .false.     , .true.  ,   'yearly'     
-   sn_humi     =    'flx'           ,       -1.         , 'socliohu' ,    .false.     , .true.  ,   'yearly'    
-   sn_ccov     =    'flx'           ,       -1.         , 'socliocl' ,    .false.     , .true.  ,   'yearly'      
-   sn_prec     =    'flx'           ,       -1.         , 'socliopl' ,    .false.     , .true.  ,   'yearly'       
+!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_utau     =    'taux_1m'       ,       -1.         , 'sozotaux' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_vtau     =    'tauy_1m'       ,       -1.         , 'sometauy' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_wndm     =    'flx'           ,       -1.         , 'socliowi' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_tair     =    'flx'           ,       -1.         , 'socliot2' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_humi     =    'flx'           ,       -1.         , 'socliohu' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_ccov     =    'flx'           ,       -1.         , 'socliocl' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
+   sn_prec     =    'flx'           ,       -1.         , 'socliopl' ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
 !
    cn_dir      = './'      !  root directory for the location of the bulk files are
@@ -161,17 +161,17 @@
 &namsbc_core   !   namsbc_core  CORE bulk formulea
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_wndi     =    'u10'           ,       24.         , 'U_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_wndj     =    'v10'           ,       24.         , 'V_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_qsr      =    'rad'           ,       24.         , 'SWDN_MOD' ,    .false.     , .true.  ,   'yearly'      
-   sn_qlw      =    'rad'           ,       24.         , 'LWDN_MOD' ,    .false.     , .true.  ,   'yearly'      
-   sn_tair     =    't10'           ,       24.         , 'T_10_MOD' ,    .false.     , .true.  ,   'yearly'     
-   sn_humi     =    'q10'           ,       24.         , 'Q_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_prec     =    'precip'        ,       -1.         , 'RAIN'     ,    .false.     , .true.  ,   'yearly'      
-   sn_snow     =    'precip'        ,       -1.         , 'SNOW'     ,    .false.     , .true.  ,   'yearly'       
+!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_wndi     =    'u10_core'      ,       -1.         , 'u10'      ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  'U1'
+   sn_wndj     =    'v10_core'      ,       -1.         , 'v10'      ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  'V1'
+   sn_qsr      =    'qsw_core'      ,       -1.         , 'swdn'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_qlw      =    'qlw_core'      ,       -1.         , 'lwdn'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_tair     =    't2_core'       ,       -1.         , 't2'       ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_humi     =    'q2_core'       ,       -1.         , 'q2'       ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_prec     =    'precip_core'   ,       -1.         , 'precip'   ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_snow     =    'snow_core'     ,       -1.         , 'snow'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
 !
    cn_dir      = './'      !  root directory for the location of the bulk files
-   ln_2m       = .false.   !  air temperature and humidity referenced at 2m (T) instead 10m (F)
+   ln_2m       = .true.    !  air temperature and humidity referenced at 2m (T) instead 10m (F)
    alpha_precip= 1.        !  multiplicative factor for precipitation (total & snow)
 /
@@ -191,8 +191,8 @@
 &namsbc_rnf    !   runoffs namelist surface boundary condition
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_rnf    =   'runoff_1m_nomask' ,        -1.        , 'sorunoff' ,    .true.      , .true.  ,   'yearly'     
-   sn_cnf    =   'runoff_1m_nomask' ,         0.        , 'socoefr'  ,    .false.     , .true.  ,   'yearly'              
+!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_rnf    =   'runoff_1m_nomask' ,        -1.        , 'sorunoff' ,    .true.      , .true.  ,   'yearly'  , ' '      , ' '
+   sn_cnf    =   'runoff_1m_nomask' ,         0.        , 'socoefr'  ,    .false.     , .true.  ,   'yearly'  , ' '      , ' '
 !
    cn_dir       = './'      !  root directory for the location of the runoff files
@@ -205,8 +205,8 @@
 &namsbc_ssr    !   surface boundary condition : sea surface restoring
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_sst      =     'sst_data'     ,        24.        ,  'sst'     ,     .false.    , .false. ,   'yearly'
-   sn_sss      =     'sss_data'     ,        -1.        ,  'sss'     ,     .true.     , .false. ,   'yearly'
+!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_sst      =     'sst_data'     ,        24.        ,  'sst'     ,     .false.    , .false. ,   'yearly'  , ' '      , ' '
+   sn_sss      =     'sss_data'     ,        -1.        ,  'sss'     ,     .true.     , .false. ,   'yearly'  , ' '      , ' '
 !
    cn_dir      = './'      !  root directory for the location of the runoff files
Index: /trunk/CONFIG/ORCA2_LIM/EXP00/namelist
===================================================================
--- /trunk/CONFIG/ORCA2_LIM/EXP00/namelist	(revision 1274)
+++ /trunk/CONFIG/ORCA2_LIM/EXP00/namelist	(revision 1275)
@@ -133,11 +133,11 @@
 &namsbc_flx    !   surface boundary condition : flux formulation
 !-----------------------------------------------------------------------
-!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_utau     =      'utau'        ,        24.        ,    'utau'  ,     .false.    , .false. ,   'yearly'
-   sn_vtau     =      'vtau'        ,        24.        ,    'vtau'  ,     .false.    , .false. ,   'yearly'
-   sn_qtot     =      'qtot'        ,        24.        ,    'qtot'  ,     .false.    , .false. ,   'yearly'
-   sn_qsr      =      'qsr'         ,        24.        ,    'qsr'   ,     .false.    , .false. ,   'yearly'
-   sn_emp      =      'emp'         ,        24.        ,    'emp'   ,     .false.    , .false. ,   'yearly'
+!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_utau     =      'utau'        ,        24.        ,    'utau'  ,     .false.    , .false. ,   'yearly'  , ''       , ''
+   sn_vtau     =      'vtau'        ,        24.        ,    'vtau'  ,     .false.    , .false. ,   'yearly'  , ''       , ''
+   sn_qtot     =      'qtot'        ,        24.        ,    'qtot'  ,     .false.    , .false. ,   'yearly'  , ''       , ''
+   sn_qsr      =      'qsr'         ,        24.        ,    'qsr'   ,     .false.    , .false. ,   'yearly'  , ''       , ''
+   sn_emp      =      'emp'         ,        24.        ,    'emp'   ,     .false.    , .false. ,   'yearly'  , ''       , ''
 !
    cn_dir      = './'      !  root directory for the location of the flux files
@@ -146,13 +146,13 @@
 &namsbc_clio   !   namsbc_clio  CLIO bulk formulea
 !-----------------------------------------------------------------------
-!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_utau     =    'taux_1m'       ,       -1.         , 'sozotaux' ,    .true.      , .true.  ,   'yearly'    
-   sn_vtau     =    'tauy_1m'       ,       -1.         , 'sometauy' ,    .true.      , .true.  ,   'yearly'    
-   sn_wndm     =    'flx'           ,       -1.         , 'socliowi' ,    .true.      , .true.  ,   'yearly'      
-   sn_tair     =    'flx'           ,       -1.         , 'socliot2' ,    .true.      , .true.  ,   'yearly'     
-   sn_humi     =    'flx'           ,       -1.         , 'socliohu' ,    .true.      , .true.  ,   'yearly'    
-   sn_ccov     =    'flx'           ,       -1.         , 'socliocl' ,    .false.     , .true.  ,   'yearly'      
-   sn_prec     =    'flx'           ,       -1.         , 'socliopl' ,    .false.     , .true.  ,   'yearly'       
+!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_utau     =    'taux_1m'       ,       -1.         , 'sozotaux' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
+   sn_vtau     =    'tauy_1m'       ,       -1.         , 'sometauy' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
+   sn_wndm     =    'flx'           ,       -1.         , 'socliowi' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
+   sn_tair     =    'flx'           ,       -1.         , 'socliot2' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
+   sn_humi     =    'flx'           ,       -1.         , 'socliohu' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
+   sn_ccov     =    'flx'           ,       -1.         , 'socliocl' ,    .false.     , .true.  ,   'yearly'  , ''       , ''
+   sn_prec     =    'flx'           ,       -1.         , 'socliopl' ,    .false.     , .true.  ,   'yearly'  , ''       , ''
 !
    cn_dir      = './'      !  root directory for the location of the bulk files are
@@ -161,17 +161,17 @@
 &namsbc_core   !   namsbc_core  CORE bulk formulea
 !-----------------------------------------------------------------------
-!              !   file name        ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_wndi     =    'u10'           ,       24.         , 'U_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_wndj     =    'v10'           ,       24.         , 'V_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_qsr      =    'rad'           ,       24.         , 'SWDN_MOD' ,    .false.     , .true.  ,   'yearly'      
-   sn_qlw      =    'rad'           ,       24.         , 'LWDN_MOD' ,    .false.     , .true.  ,   'yearly'      
-   sn_tair     =    't10'           ,       24.         , 'T_10_MOD' ,    .false.     , .true.  ,   'yearly'     
-   sn_humi     =    'q10'           ,       24.         , 'Q_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_prec     =    'precip'        ,       -1.         , 'RAIN'     ,    .false.     , .true.  ,   'yearly'      
-   sn_snow     =    'precip'        ,       -1.         , 'SNOW'     ,    .false.     , .true.  ,   'yearly'       
+!              !   file name        ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_wndi     =    'u10_core'      ,       -1.         , 'u10'      ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  'U1'
+   sn_wndj     =    'v10_core'      ,       -1.         , 'v10'      ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  'V1'
+   sn_qsr      =    'qsw_core'      ,       -1.         , 'swdn'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_qlw      =    'qlw_core'      ,       -1.         , 'lwdn'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_tair     =    't2_core'       ,       -1.         , 't2'       ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_humi     =    'q2_core'       ,       -1.         , 'q2'       ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_prec     =    'precip_core'   ,       -1.         , 'precip'   ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_snow     =    'snow_core'     ,       -1.         , 'snow'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
 !
    cn_dir      = './'      !  root directory for the location of the bulk files
-   ln_2m       = .false.   !  air temperature and humidity referenced at 2m (T) instead 10m (F)
+   ln_2m       = .true.    !  air temperature and humidity referenced at 2m (T) instead 10m (F)
    alpha_precip= 1.        !  multiplicative factor for precipitation (total & snow)
 /
@@ -211,8 +211,8 @@
 &namsbc_rnf    !   runoffs namelist surface boundary condition
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_rnf    =   'runoff_1m_nomask' ,        -1.        , 'sorunoff' ,    .true.      , .true.  ,   'yearly'     
-   sn_cnf    =   'runoff_1m_nomask' ,         0.        , 'socoefr'  ,    .false.     , .true.  ,   'yearly'              
+!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_rnf    =   'runoff_1m_nomask' ,        -1.        , 'sorunoff' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
+   sn_cnf    =   'runoff_1m_nomask' ,         0.        , 'socoefr'  ,    .false.     , .true.  ,   'yearly'  , ''       , ''
 !
    cn_dir       = './'      !  root directory for the location of the runoff files
@@ -225,8 +225,8 @@
 &namsbc_ssr    !   surface boundary condition : sea surface restoring
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_sst      =    'sst_data'     ,        24.        ,  'sst'     ,     .false.    , .false. ,   'yearly'
-   sn_sss      =    'sss_data'     ,        -1.        ,  'sss'     ,     .true.     , .true.  ,   'yearly'
+!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_sst      =    'sst_data'     ,        24.        ,  'sst'     ,     .false.    , .false. ,   'yearly'   , ''       , ''
+   sn_sss      =    'sss_data'     ,        -1.        ,  'sss'     ,     .true.     , .true.  ,   'yearly'   , ''       , ''
 !   
    cn_dir      = './'      !  root directory for the location of the runoff files
Index: /trunk/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist
===================================================================
--- /trunk/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist	(revision 1274)
+++ /trunk/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist	(revision 1275)
@@ -133,11 +133,11 @@
 &namsbc_flx    !   surface boundary condition : flux formulation
 !-----------------------------------------------------------------------
-!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_utau     =      'utau'        ,        24.        ,    'utau'  ,     .false.    , .false. ,   'yearly'
-   sn_vtau     =      'vtau'        ,        24.        ,    'vtau'  ,     .false.    , .false. ,   'yearly'
-   sn_qtot     =      'qtot'        ,        24.        ,    'qtot'  ,     .false.    , .false. ,   'yearly'
-   sn_qsr      =      'qsr'         ,        24.        ,    'qsr'   ,     .false.    , .false. ,   'yearly'
-   sn_emp      =      'emp'         ,        24.        ,    'emp'   ,     .false.    , .false. ,   'yearly'
+!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_utau     =      'utau'        ,        24.        ,    'utau'  ,     .false.    , .false. ,   'yearly'  , ''       , ''
+   sn_vtau     =      'vtau'        ,        24.        ,    'vtau'  ,     .false.    , .false. ,   'yearly'  , ''       , ''
+   sn_qtot     =      'qtot'        ,        24.        ,    'qtot'  ,     .false.    , .false. ,   'yearly'  , ''       , ''
+   sn_qsr      =      'qsr'         ,        24.        ,    'qsr'   ,     .false.    , .false. ,   'yearly'  , ''       , ''
+   sn_emp      =      'emp'         ,        24.        ,    'emp'   ,     .false.    , .false. ,   'yearly'  , ''       , ''
 !
    cn_dir      = './'      !  root directory for the location of the flux files
@@ -146,13 +146,13 @@
 &namsbc_clio   !   namsbc_clio  CLIO bulk formulea
 !-----------------------------------------------------------------------
-!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_utau     =    'taux_1m'       ,       -1.         , 'sozotaux' ,    .true.      , .true.  ,   'yearly'    
-   sn_vtau     =    'tauy_1m'       ,       -1.         , 'sometauy' ,    .true.      , .true.  ,   'yearly'    
-   sn_wndm     =    'flx'           ,       -1.         , 'socliowi' ,    .true.      , .true.  ,   'yearly'      
-   sn_tair     =    'flx'           ,       -1.         , 'socliot2' ,    .true.      , .true.  ,   'yearly'     
-   sn_humi     =    'flx'           ,       -1.         , 'socliohu' ,    .true.      , .true.  ,   'yearly'    
-   sn_ccov     =    'flx'           ,       -1.         , 'socliocl' ,    .false.     , .true.  ,   'yearly'      
-   sn_prec     =    'flx'           ,       -1.         , 'socliopl' ,    .false.     , .true.  ,   'yearly'       
+!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_utau     =    'taux_1m'       ,       -1.         , 'sozotaux' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
+   sn_vtau     =    'tauy_1m'       ,       -1.         , 'sometauy' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
+   sn_wndm     =    'flx'           ,       -1.         , 'socliowi' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
+   sn_tair     =    'flx'           ,       -1.         , 'socliot2' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
+   sn_humi     =    'flx'           ,       -1.         , 'socliohu' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
+   sn_ccov     =    'flx'           ,       -1.         , 'socliocl' ,    .false.     , .true.  ,   'yearly'  , ''       , ''
+   sn_prec     =    'flx'           ,       -1.         , 'socliopl' ,    .false.     , .true.  ,   'yearly'  , ''       , ''
 !
    cn_dir      = './'      !  root directory for the location of the bulk files are
@@ -161,17 +161,17 @@
 &namsbc_core   !   namsbc_core  CORE bulk formulea
 !-----------------------------------------------------------------------
-!              !   file name        ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_wndi     =    'u10'           ,       24.         , 'U_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_wndj     =    'v10'           ,       24.         , 'V_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_qsr      =    'rad'           ,       24.         , 'SWDN_MOD' ,    .false.     , .true.  ,   'yearly'      
-   sn_qlw      =    'rad'           ,       24.         , 'LWDN_MOD' ,    .false.     , .true.  ,   'yearly'      
-   sn_tair     =    't10'           ,       24.         , 'T_10_MOD' ,    .false.     , .true.  ,   'yearly'     
-   sn_humi     =    'q10'           ,       24.         , 'Q_10_MOD' ,    .false.     , .true.  ,   'yearly'    
-   sn_prec     =    'precip'        ,       -1.         , 'RAIN'     ,    .false.     , .true.  ,   'yearly'      
-   sn_snow     =    'precip'        ,       -1.         , 'SNOW'     ,    .false.     , .true.  ,   'yearly'       
+!              !   file name        ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_wndi     =    'u10_core'      ,       -1.         , 'u10'      ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  'U1'
+   sn_wndj     =    'v10_core'      ,       -1.         , 'v10'      ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  'V1'
+   sn_qsr      =    'qsw_core'      ,       -1.         , 'swdn'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_qlw      =    'qlw_core'      ,       -1.         , 'lwdn'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_tair     =    't2_core'       ,       -1.         , 't2'       ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_humi     =    'q2_core'       ,       -1.         , 'q2'       ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_prec     =    'precip_core'   ,       -1.         , 'precip'   ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+   sn_snow     =    'snow_core'     ,       -1.         , 'snow'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
 !
    cn_dir      = './'      !  root directory for the location of the bulk files
-   ln_2m       = .false.   !  air temperature and humidity referenced at 2m (T) instead 10m (F)
+   ln_2m       = .true.    !  air temperature and humidity referenced at 2m (T) instead 10m (F)
    alpha_precip= 1.        !  multiplicative factor for precipitation (total & snow)
 /
@@ -211,8 +211,8 @@
 &namsbc_rnf    !   runoffs namelist surface boundary condition
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_rnf    =   'runoff_1m_nomask' ,        -1.        , 'sorunoff' ,    .true.      , .true.  ,   'yearly'     
-   sn_cnf    =   'runoff_1m_nomask' ,         0.        , 'socoefr'  ,    .false.     , .true.  ,   'yearly'              
+!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_rnf    =   'runoff_1m_nomask' ,        -1.        , 'sorunoff' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
+   sn_cnf    =   'runoff_1m_nomask' ,         0.        , 'socoefr'  ,    .false.     , .true.  ,   'yearly'  , ''       , ''
 !
    cn_dir       = './'      !  root directory for the location of the runoff files
@@ -225,8 +225,8 @@
 &namsbc_ssr    !   surface boundary condition : sea surface restoring
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  !
-   sn_sst      =    'sst_data'     ,        24.        ,  'sst'     ,     .false.    , .false. ,   'yearly'
-   sn_sss      =    'sss_data'     ,        -1.        ,  'sss'     ,     .true.     , .true.  ,   'yearly'
+!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
+!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
+   sn_sst      =    'sst_data'     ,        24.        ,  'sst'     ,     .false.    , .false. ,   'yearly'   , ''       , ''
+   sn_sss      =    'sss_data'     ,        -1.        ,  'sss'     ,     .true.     , .true.  ,   'yearly'   , ''       , ''
 !   
    cn_dir      = './'      !  root directory for the location of the runoff files
Index: /trunk/NEMO/OPA_SRC/SBC/fldread.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/SBC/fldread.F90	(revision 1274)
+++ /trunk/NEMO/OPA_SRC/SBC/fldread.F90	(revision 1275)
@@ -5,4 +5,6 @@
    !!=====================================================================
    !! History :  9.0  !  06-06  (G. Madec) Original code
+   !!                 !  05-08  (S. Alderson) Modified for Interpolation in memory
+   !!                 !         from input grid to model grid
    !!----------------------------------------------------------------------
 
@@ -17,4 +19,5 @@
    USE in_out_manager  ! I/O manager
    USE iom             ! I/O manager library
+   USE geo2ocean       ! for vector rotation on to model grid
 
    IMPLICIT NONE
@@ -28,4 +31,8 @@
       LOGICAL             ::   ln_clim     ! climatology or not (T/F)
       CHARACTER(len = 7)  ::   cltype      ! type of data file 'monthly' or yearly'
+      CHARACTER(len = 34) ::   wname       ! generic name of a NetCDF weights file to be used, blank if not
+      CHARACTER(len = 34) ::   vcomp       ! symbolic component name if a vector that needs rotation
+                                           ! a string starting with "U" or "V" for each component   
+                                           ! chars 2 onwards identify which components go together  
    END TYPE FLD_N
 
@@ -44,5 +51,41 @@
       REAL(wp) , ALLOCATABLE, DIMENSION(:,:)   ::   fnow         ! input fields interpolated to now time step
       REAL(wp) , ALLOCATABLE, DIMENSION(:,:,:) ::   fdta         ! 2 consecutive record of input fields
+      CHARACTER(len = 256)            ::   wgtname      ! current name of the NetCDF weight file acting as a key
+                                                        ! into the WGTLIST structure
+      CHARACTER(len = 34)             ::   vcomp        ! symbolic name for a vector component that needs rotation
+      LOGICAL ,  DIMENSION(2)         ::   rotn         ! flag to indicate whether field has been rotated
    END TYPE FLD
+
+!$AGRIF_DO_NOT_TREAT
+
+   !! keep list of all weights variables so they're only read in once
+   !! need to add AGRIF directives not to process this structure
+   !! also need to force wgtname to include AGRIF nest number
+   TYPE         ::   WGT        !: Input weights related variables
+      CHARACTER(len = 256)                    ::   wgtname      ! current name of the NetCDF weight file
+      INTEGER , DIMENSION(2)                  ::   ddims        ! shape of input grid
+      INTEGER , DIMENSION(2)                  ::   botleft      ! top left corner of box in input grid containing 
+                                                                ! current processor grid
+      INTEGER , DIMENSION(2)                  ::   topright     ! top right corner of box 
+      INTEGER                                 ::   jpiwgt       ! width of box on input grid
+      INTEGER                                 ::   jpjwgt       ! height of box on input grid
+      INTEGER                                 ::   numwgt       ! number of weights (4=bilinear, 16=bicubic)
+      INTEGER                                 ::   nestid       ! for agrif, keep track of nest we're in
+      INTEGER                                 ::   offset       ! =0 when cyclic grid has coincident first/last columns, 
+                                                                ! =1 when they assumed to be one grid spacing apart      
+                                                                ! =-1 otherwise
+      LOGICAL                                 ::   cyclic       ! east-west cyclic or not
+      INTEGER, DIMENSION(:,:,:), POINTER      ::   data_jpi     ! array of source integers
+      INTEGER, DIMENSION(:,:,:), POINTER      ::   data_jpj     ! array of source integers
+      REAL(wp), DIMENSION(:,:,:), POINTER     ::   data_wgt     ! array of weights on model grid
+      REAL(wp), DIMENSION(:,:), POINTER       ::   fly_dta      ! array of values on input grid
+      REAL(wp), DIMENSION(:,:), POINTER       ::   col2         ! temporary array for reading in columns
+   END TYPE WGT
+
+   INTEGER,     PARAMETER             ::   tot_wgts = 10
+   TYPE( WGT ), DIMENSION(tot_wgts)   ::   ref_wgts     ! array of wgts
+   INTEGER                            ::   nxt_wgt = 1  ! point to next available space in ref_wgts array
+
+!$AGRIF_END_DO_NOT_TREAT
 
    PUBLIC   fld_read, fld_fill   ! called by sbc... modules
@@ -72,5 +115,11 @@
       TYPE(FLD), INTENT(inout), DIMENSION(:) ::   sd        ! input field related variables
       !!
+      CHARACTER (LEN=34)                     ::   acomp     ! dummy weight name
+      INTEGER                                ::   kf, nf    ! dummy indices
+      INTEGER                                ::   imf       ! size of the structure sd
+      REAL(wp), DIMENSION(jpi,jpj)           ::   utmp, vtmp! temporary arrays for vector rotation
+
       INTEGER  ::   jf         ! dummy indices
+      INTEGER  ::   kw         ! index into wgts array
       REAL(wp) ::   zreclast   ! last record to be read in the current year file
       REAL(wp) ::   zsecend    ! number of second since Jan. 1st 00h of nit000 year at nitend
@@ -81,6 +130,8 @@
       CHARACTER(LEN=1000) ::   clfmt   ! write format
       !!---------------------------------------------------------------------
+      !
+      imf = SIZE( sd )
       !                                         ! ===================== !
-      DO jf = 1, SIZE( sd )                     !    LOOP OVER FIELD    !
+      DO jf = 1, imf                            !    LOOP OVER FIELD    !
          !                                      ! ===================== !
          !
@@ -93,4 +144,5 @@
 !CDIR COLLAPSE
                sd(jf)%fdta(:,:,1) = sd(jf)%fdta(:,:,2)
+               sd(jf)%rotn(1)     = sd(jf)%rotn(2)
             ENDIF
 
@@ -144,8 +196,68 @@
 
             ! read after data
-            CALL iom_get( sd(jf)%num, jpdom_data, sd(jf)%clvar, sd(jf)%fdta(:,:,2), NINT( sd(jf)%rec_a(1) ) )
-
-         ENDIF
-
+            IF( LEN(TRIM(sd(jf)%wgtname)) > 0 ) THEN
+               CALL wgt_list( sd(jf), kw )
+               CALL fld_interp( sd(jf)%num, sd(jf)%clvar, kw, sd(jf)%fdta(:,:,2), NINT( sd(jf)%rec_a(1) ) )
+            ELSE
+               CALL iom_get( sd(jf)%num, jpdom_data, sd(jf)%clvar, sd(jf)%fdta(:,:,2), NINT( sd(jf)%rec_a(1) ) )
+            ENDIF
+            sd(jf)%rotn(2) = .FALSE.
+
+         ENDIF
+         !                                      ! ===================== !
+      END DO                                    !  END LOOP OVER FIELD  !
+      !                                         ! ===================== !
+
+      IF( kt == nit000 .AND. lwp ) CALL wgt_print()
+
+      !! Vector fields may need to be rotated onto the local grid direction
+      !! This has to happen before the time interpolations
+      !! (sga: following code should be modified so that pairs arent searched for each time
+
+      DO jf = 1, imf
+         !! find vector rotations required 
+         IF( LEN(TRIM(sd(jf)%vcomp)) > 0 ) THEN
+             !! east-west component has symbolic name starting with 'U'
+             IF( sd(jf)%vcomp(1:1) == 'U' ) THEN
+                !! found an east-west component, look for the north-south component
+                !! which has same symbolic name but with 'U' replaced with 'V'
+                nf = LEN_TRIM( sd(jf)%vcomp )
+                IF( nf == 1) THEN
+                   acomp = 'V'
+                ELSE
+                   acomp = 'V' // sd(jf)%vcomp(2:nf)
+                ENDIF
+                kf = -1
+                DO nf = 1, imf
+                  IF( TRIM(sd(nf)%vcomp) == TRIM(acomp) ) kf = nf
+                END DO
+                IF( kf > 0 ) THEN
+                   !! fields jf,kf are two components which need to be rotated together
+                   DO nf = 1,2
+                      !! check each time level of this pair
+                      IF( .NOT. sd(jf)%rotn(nf) .AND. .NOT. sd(kf)%rotn(nf) ) THEN
+                         utmp(:,:) = 0.0
+                         vtmp(:,:) = 0.0
+                         CALL rot_rep( sd(jf)%fdta(:,:,nf), sd(kf)%fdta(:,:,nf), 'T', 'en->i', utmp(:,:) )
+                         CALL rot_rep( sd(jf)%fdta(:,:,nf), sd(kf)%fdta(:,:,nf), 'T', 'en->j', vtmp(:,:) )
+                         sd(jf)%fdta(:,:,nf) = utmp(:,:)
+                         sd(kf)%fdta(:,:,nf) = vtmp(:,:)
+                         sd(jf)%rotn(nf) = .TRUE.
+                         sd(kf)%rotn(nf) = .TRUE.
+                         IF( lwp .AND. kt == nit000 ) &
+                                   WRITE(numout,*) 'fld_read: vector pair (',  &
+                                                   TRIM(sd(jf)%clvar),',',TRIM(sd(kf)%clvar), &
+                                                   ') rotated on to model grid'
+                      ENDIF
+                   END DO
+                ENDIF
+             ENDIF
+         ENDIF
+      END DO
+
+      !                                         ! ===================== !
+      DO jf = 1, imf                            !    LOOP OVER FIELD    !
+         !                                      ! ===================== !
+         !
          ! update field at each kn_fsbc time-step
          IF( MOD( kt-1, kn_fsbc ) == 0 ) THEN   
@@ -200,4 +312,5 @@
       INTEGER :: idvar          ! variable id 
       INTEGER :: inrec          ! number of record existing for this variable
+      INTEGER :: kwgt
       CHARACTER(LEN=1000) ::   clfmt   ! write format
       !!---------------------------------------------------------------------
@@ -249,5 +362,11 @@
 
          ! read before data into sdjf%fdta(:,:,2) because we will swap data in the following part of fld_read
-         CALL iom_get( sdjf%num, jpdom_data, sdjf%clvar, sdjf%fdta(:,:,2), NINT( sdjf%rec_b(1) ) )
+         IF( LEN(TRIM(sdjf%wgtname)) > 0 ) THEN
+            CALL wgt_list( sdjf, kwgt )
+            CALL fld_interp( sdjf%num, sdjf%clvar, kwgt, sdjf%fdta(:,:,2), NINT( sdjf%rec_b(1) ) )
+         ELSE
+            CALL iom_get( sdjf%num, jpdom_data, sdjf%clvar, sdjf%fdta(:,:,2), NINT( sdjf%rec_b(1) ) )
+         ENDIF
+         sdjf%rotn(2) = .FALSE.
 
          clfmt = "('fld_init : time-interpolation for ', a, ' read previous record = ', i4, ' at time = ', f7.2, ' days')"
@@ -418,4 +537,8 @@
          ELSE                               ;    sdf(jf)%cltype = sdf_n(jf)%cltype
          ENDIF
+         sdf(jf)%wgtname = " "
+         IF( LEN( TRIM(sdf_n(jf)%wname) ) > 0 )  &
+            sdf(jf)%wgtname = TRIM( cdir )//TRIM( sdf_n(jf)%wname )
+         sdf(jf)%vcomp   = sdf_n(jf)%vcomp
       END DO
 
@@ -432,4 +555,6 @@
                &                          ' time interp: '    ,       sdf(jf)%ln_tint     ,   &
                &                          ' climatology: '    ,       sdf(jf)%ln_clim     ,   &
+               &                          ' weights    : '    , TRIM( sdf(jf)%wgtname    ),   &
+               &                          ' pairing    : '    , TRIM( sdf(jf)%vcomp      ),   &
                &                          ' data type: '      ,       sdf(jf)%cltype
          END DO
@@ -439,3 +564,407 @@
 
 
+   SUBROUTINE wgt_list( sd, kwgt )
+      !!---------------------------------------------------------------------
+      !!                    ***  ROUTINE wgt_list  ***
+      !!
+      !! ** Purpose :   search array of WGTs and find a weights file
+      !!                entry, or return a new one adding it to the end
+      !!                if it is a new entry, the weights data is read in and
+      !!                restructured (fld_weight)
+      !!
+      !! ** Method  :   
+      !!----------------------------------------------------------------------
+      TYPE( FLD ),      INTENT(in)    ::   sd        ! field with name of weights file
+      INTEGER,      INTENT(inout)     ::   kwgt      ! index of weights
+      !!
+      INTEGER                         ::   kw
+      INTEGER                         ::   nestid
+      LOGICAL                         ::   found
+      !!----------------------------------------------------------------------
+      !
+      !! search down linked list 
+      !! weights filename is either present or we hit the end of the list
+      found = .FALSE.
+
+      !! because agrif nest part of filenames are now added in iom_open
+      !! to distinguish between weights files on the different grids, need to track
+      !! nest number explicitly
+      nestid = 0
+#if defined key_agrif
+      nestid = Agrif_Fixed()
+#endif
+      DO kw = 1, nxt_wgt-1
+         IF( TRIM(ref_wgts(kw)%wgtname) == TRIM(sd%wgtname) .AND. &
+             ref_wgts(kw)%nestid == nestid) THEN
+            kwgt = kw
+            found = .TRUE.
+            EXIT
+         ENDIF
+      END DO
+      IF( .NOT.found ) THEN
+         kwgt = nxt_wgt
+         CALL fld_weight( sd )
+      ENDIF
+
+   END SUBROUTINE wgt_list
+
+   SUBROUTINE wgt_print( )
+      !!---------------------------------------------------------------------
+      !!                    ***  ROUTINE wgt_print  ***
+      !!
+      !! ** Purpose :   print the list of known weights
+      !!
+      !! ** Method  :   
+      !!----------------------------------------------------------------------
+      !!
+      INTEGER                         ::   kw
+      !!----------------------------------------------------------------------
+      !
+
+      DO kw = 1, nxt_wgt-1
+         WRITE(numout,*) 'weight file:  ',TRIM(ref_wgts(kw)%wgtname)
+         WRITE(numout,*) '      ddims:  ',ref_wgts(kw)%ddims(1),ref_wgts(kw)%ddims(2)
+         WRITE(numout,*) '     numwgt:  ',ref_wgts(kw)%numwgt
+         WRITE(numout,*) '     jpiwgt:  ',ref_wgts(kw)%jpiwgt
+         WRITE(numout,*) '     jpjwgt:  ',ref_wgts(kw)%jpjwgt
+         WRITE(numout,*) '    botleft:  ',ref_wgts(kw)%botleft
+         WRITE(numout,*) '   topright:  ',ref_wgts(kw)%topright
+         IF( ref_wgts(kw)%cyclic ) THEN
+            WRITE(numout,*) '       cyclical'
+            IF( ref_wgts(kw)%offset > 0 ) WRITE(numout,*) '                 with offset'
+         ELSE
+            WRITE(numout,*) '       not cyclical'
+         ENDIF
+         IF( ASSOCIATED(ref_wgts(kw)%data_wgt) )  WRITE(numout,*) '       allocated'
+      END DO
+
+   END SUBROUTINE wgt_print
+
+   SUBROUTINE fld_weight( sd )
+      !!---------------------------------------------------------------------
+      !!                    ***  ROUTINE fld_weight  ***
+      !!
+      !! ** Purpose :   create a new WGT structure and fill in data from  
+      !!                file, restructuring as required
+      !!
+      !! ** Method  :   
+      !!----------------------------------------------------------------------
+      TYPE( FLD ),      INTENT(in)            ::   sd            ! field with name of weights file
+      !!
+      INTEGER                                 ::   jn            ! dummy loop indices
+      INTEGER                                 ::   inum          ! temporary logical unit
+      INTEGER                                 ::   id            ! temporary variable id
+      CHARACTER (len=5)                       ::   aname
+      INTEGER , DIMENSION(3)                  ::   ddims
+      INTEGER , DIMENSION(jpi, jpj)           ::   data_src
+      REAL(wp), DIMENSION(jpi, jpj)           ::   data_tmp
+      REAL(wp), DIMENSION(:,:), ALLOCATABLE   ::   line2, lines  ! temporary array to read 2 lineumns
+      CHARACTER (len=34)                      ::   lonvar
+      LOGICAL                                 ::   cyclical
+      REAL(wp)                                ::   resid, dlon   ! temporary array to read 2 lineumns
+      INTEGER                                 ::   offset        ! temporary integer
+      !!----------------------------------------------------------------------
+      !
+      IF( nxt_wgt > tot_wgts ) THEN
+        CALL ctl_stop("fld_weights: weights array size exceeded, increase tot_wgts")
+      ENDIF
+      !
+      !! new weights file entry, add in extra information
+      !! a weights file represents a 2D grid of a certain shape, so we assume that the current
+      !! input data file is representative of all other files to be opened and processed with the
+      !! current weights file
+
+      !! open input data file (non-model grid)
+      CALL iom_open( sd%clname, inum )
+
+      !! get dimensions
+      id = iom_varid( inum, sd%clvar, ddims )
+
+      !! check for an east-west cyclic grid
+      !! try to guess name of longitude variable
+
+      lonvar = 'nav_lon'
+      id = iom_varid(inum, TRIM(lonvar), ldstop=.FALSE.)
+      IF( id <= 0 ) THEN
+         lonvar = 'lon'
+         id = iom_varid(inum, TRIM(lonvar), ldstop=.FALSE.)
+      ENDIF
+
+      offset = -1
+      cyclical = .FALSE.
+      IF( id > 0 ) THEN
+         !! found a longitude variable
+         !! now going to assume that grid is regular so we can read a single row
+
+         !! because input array is 2d, have to present iom with 2d array even though we only need 1d slice
+         !! worse, we cant pass line2(:,1) to iom_get since this is treated as a 1d array which doesnt match input file
+         ALLOCATE( lines(ddims(1),2) )
+         CALL iom_get(inum, jpdom_unknown, lonvar, lines(:,:), 1, kstart=(/1,1/), kcount=(/ddims(1),2/) )
+
+         !! find largest grid spacing
+         lines(1:ddims(1)-1,2) = lines(2:ddims(1),1) - lines(1:ddims(1)-1,1)
+         dlon = MAXVAL( lines(1:ddims(1)-1,2) )
+
+         resid = ABS(ABS(lines(ddims(1),1)-lines(1,1))-360.0)
+         IF( resid < rsmall ) THEN
+            !! end rows overlap in longitude
+            offset = 0
+            cyclical = .TRUE.
+         ELSEIF( resid < 2.0*dlon ) THEN
+            !! also call it cyclic if difference between end points is less than twice dlon from 360
+            offset = 1
+            cyclical = .TRUE.
+         ENDIF
+
+         DEALLOCATE( lines )
+
+      ELSE
+         !! guessing failed
+         !! read in first and last columns of data variable
+         !! since we dont know the name of the longitude variable (or even if there is one)
+         !! we assume that if these two columns are equal, file is cyclic east-west
+
+         !! because input array is 2d, have to present iom with 2d array even though we only need 1d slice
+         !! worse, we cant pass line2(1,:) to iom_get since this is treated as a 1d array which doesnt match input file
+         ALLOCATE( lines(2,ddims(2)), line2(2,ddims(2)) )
+         CALL iom_get(inum, jpdom_unknown, sd%clvar, line2(:,:), 1, kstart=(/1,1/), kcount=(/2,ddims(2)/) )
+         lines(2,:) = line2(1,:)
+
+         CALL iom_get(inum, jpdom_unknown, sd%clvar, line2(:,:), 1, kstart=(/ddims(1)-1,1/), kcount=(/2,ddims(2)/) )
+         lines(1,:) = line2(2,:)
+
+         resid = SUM( ABS(lines(1,:) - lines(2,:)) )
+         IF( resid < ddims(2)*rsmall ) THEN
+            offset = 0
+            cyclical = .TRUE.
+         ENDIF
+
+         DEALLOCATE( lines, line2 )
+      ENDIF
+
+      !! close it
+      CALL iom_close( inum )
+
+      !! now open the weights file
+
+      CALL iom_open ( sd%wgtname, inum )   ! interpolation weights
+      IF ( inum > 0 ) THEN
+
+         ref_wgts(nxt_wgt)%ddims(1) = ddims(1)
+         ref_wgts(nxt_wgt)%ddims(2) = ddims(2)
+         ref_wgts(nxt_wgt)%wgtname = sd%wgtname
+         ref_wgts(nxt_wgt)%offset = -1
+         ref_wgts(nxt_wgt)%cyclic = .FALSE.
+         IF( cyclical ) THEN
+            ref_wgts(nxt_wgt)%offset = offset
+            ref_wgts(nxt_wgt)%cyclic = .TRUE.
+         ENDIF
+         ref_wgts(nxt_wgt)%nestid = 0
+#if defined key_agrif
+         ref_wgts(nxt_wgt)%nestid = Agrif_Fixed()
+#endif
+         !! weights file is stored as a set of weights (wgt01->wgt04 or wgt01->wgt16)
+         !! for each weight wgtNN there is an integer array srcNN which gives the point in
+         !! the input data grid which is to be multiplied by the weight
+         !! they are both arrays on the model grid so the result of the multiplication is
+         !! added into an output array on the model grid as a running sum
+
+         !! two possible cases: bilinear (4 weights) or bicubic (16 weights)
+         id = iom_varid(inum, 'src05', ldstop=.FALSE.)
+         IF( id <= 0) THEN
+            ref_wgts(nxt_wgt)%numwgt = 4
+         ELSE
+            ref_wgts(nxt_wgt)%numwgt = 16
+         ENDIF
+
+         ALLOCATE( ref_wgts(nxt_wgt)%data_jpi(jpi,jpj,4) )
+         ALLOCATE( ref_wgts(nxt_wgt)%data_jpj(jpi,jpj,4) )
+         ALLOCATE( ref_wgts(nxt_wgt)%data_wgt(jpi,jpj,ref_wgts(nxt_wgt)%numwgt) )
+
+         DO jn = 1,4
+            aname = ' '
+            WRITE(aname,'(a3,i2.2)') 'src',jn
+            data_tmp(:,:) = 0
+            CALL iom_get ( inum, jpdom_unknown, aname, data_tmp(1:nlci,1:nlcj), &
+                           kstart=(/nimpp,njmpp/), kcount=(/nlci,nlcj/) )
+            data_src(:,:) = INT(data_tmp(:,:))
+            ref_wgts(nxt_wgt)%data_jpj(:,:,jn) = 1 + (data_src(:,:)-1) / ref_wgts(nxt_wgt)%ddims(1)
+            ref_wgts(nxt_wgt)%data_jpi(:,:,jn) = data_src(:,:) - ref_wgts(nxt_wgt)%ddims(1)*(ref_wgts(nxt_wgt)%data_jpj(:,:,jn)-1)
+         END DO
+
+         DO jn = 1, ref_wgts(nxt_wgt)%numwgt
+            aname = ' '
+            WRITE(aname,'(a3,i2.2)') 'wgt',jn
+            ref_wgts(nxt_wgt)%data_wgt(1:nlci,1:nlcj,jn) = 0.0
+            CALL iom_get ( inum, jpdom_unknown, aname, ref_wgts(nxt_wgt)%data_wgt(1:nlci,1:nlcj,jn), &
+                           kstart=(/nimpp,njmpp/), kcount=(/nlci,nlcj/) )
+         END DO
+         CALL iom_close (inum)
+ 
+         ! find min and max indices in grid
+         ref_wgts(nxt_wgt)%botleft(1) = MINVAL(ref_wgts(nxt_wgt)%data_jpi(1:nlci,1:nlcj,:))
+         ref_wgts(nxt_wgt)%botleft(2) = MINVAL(ref_wgts(nxt_wgt)%data_jpj(1:nlci,1:nlcj,:))
+         ref_wgts(nxt_wgt)%topright(1) = MAXVAL(ref_wgts(nxt_wgt)%data_jpi(1:nlci,1:nlcj,:))
+         ref_wgts(nxt_wgt)%topright(2) = MAXVAL(ref_wgts(nxt_wgt)%data_jpj(1:nlci,1:nlcj,:))
+
+         ! and therefore dimensions of the input box
+         ref_wgts(nxt_wgt)%jpiwgt = ref_wgts(nxt_wgt)%topright(1) - ref_wgts(nxt_wgt)%botleft(1) + 1
+         ref_wgts(nxt_wgt)%jpjwgt = ref_wgts(nxt_wgt)%topright(2) - ref_wgts(nxt_wgt)%botleft(2) + 1
+
+         ! shift indexing of source grid
+         ref_wgts(nxt_wgt)%data_jpi(:,:,:) = ref_wgts(nxt_wgt)%data_jpi(:,:,:) - ref_wgts(nxt_wgt)%botleft(1) + 1
+         ref_wgts(nxt_wgt)%data_jpj(:,:,:) = ref_wgts(nxt_wgt)%data_jpj(:,:,:) - ref_wgts(nxt_wgt)%botleft(2) + 1
+
+         ! create input grid, give it a halo to allow gradient calculations
+         ALLOCATE( ref_wgts(nxt_wgt)%fly_dta(ref_wgts(nxt_wgt)%jpiwgt+2, ref_wgts(nxt_wgt)%jpjwgt+2) )
+         IF( ref_wgts(nxt_wgt)%cyclic ) ALLOCATE( ref_wgts(nxt_wgt)%col2(2,ref_wgts(nxt_wgt)%jpjwgt+2) )
+
+         nxt_wgt = nxt_wgt + 1
+
+      ELSE 
+         CALL ctl_stop( '    fld_weight : unable to read the file ' )
+      ENDIF
+
+   END SUBROUTINE fld_weight
+
+   SUBROUTINE fld_interp(num, clvar, kw, dta, nrec)
+      !!---------------------------------------------------------------------
+      !!                    ***  ROUTINE fld_interp  ***
+      !!
+      !! ** Purpose :   apply weights to input gridded data to create data
+      !!                on model grid
+      !!
+      !! ** Method  :   
+      !!----------------------------------------------------------------------
+      INTEGER,          INTENT(in)                        ::   num                 ! stream number
+      CHARACTER(LEN=*), INTENT(in)                        ::   clvar               ! variable name
+      INTEGER,          INTENT(in)                        ::   kw                  ! weights number
+      REAL(wp),         INTENT(inout), DIMENSION(jpi,jpj) ::   dta                 ! output field on model grid
+      INTEGER,          INTENT(in)                        ::   nrec                ! record number to read (ie time slice)
+      !! 
+      INTEGER, DIMENSION(2)                               ::   rec1,recn           ! temporary arrays for start and length
+      INTEGER                                             ::  jk, jn, jm           ! loop counters
+      INTEGER                                             ::  ni, nj               ! lengths
+      INTEGER                                             ::  jpimin,jpiwid        ! temporary indices
+      INTEGER                                             ::  jpjmin,jpjwid        ! temporary indices
+      INTEGER                                             ::  jpi1,jpi2,jpj1,jpj2  ! temporary indices
+      !!----------------------------------------------------------------------
+      !
+
+      !! for weighted interpolation we have weights at four corners of a box surrounding 
+      !! a model grid point, each weight is multiplied by a grid value (bilinear case)
+      !! or by a grid value and gradients at the corner point (bicubic case) 
+      !! so we need to have a 4 by 4 subgrid surrounding each model point to cover both cases
+
+      !! sub grid where we already have weights
+      jpimin = ref_wgts(kw)%botleft(1)
+      jpjmin = ref_wgts(kw)%botleft(2)
+      jpiwid = ref_wgts(kw)%jpiwgt
+      jpjwid = ref_wgts(kw)%jpjwgt
+
+      !! what we need to read into sub grid in order to calculate gradients
+      rec1(1) = MAX( jpimin-1, 1 )
+      rec1(2) = MAX( jpjmin-1, 1 )
+      recn(1) = MIN( jpiwid+2, ref_wgts(kw)%ddims(1)-rec1(1)+1 )
+      recn(2) = MIN( jpjwid+2, ref_wgts(kw)%ddims(2)-rec1(2)+1 )
+
+      !! where we need to read it to
+      jpi1 = 2 + rec1(1) - jpimin
+      jpj1 = 2 + rec1(2) - jpjmin
+      jpi2 = jpi1 + recn(1) - 1
+      jpj2 = jpj1 + recn(2) - 1
+
+      ref_wgts(kw)%fly_dta(:,:) = 0.0
+      CALL iom_get( num, jpdom_unknown, clvar, ref_wgts(kw)%fly_dta(jpi1:jpi2,jpj1:jpj2), nrec, rec1, recn)
+
+      !! first four weights common to both bilinear and bicubic
+      !! note that we have to offset by 1 into fly_dta array because of halo
+      dta(:,:) = 0.0
+      DO jk = 1,4
+        DO jn = 1, jpj
+          DO jm = 1,jpi
+            ni = ref_wgts(kw)%data_jpi(jm,jn,jk)
+            nj = ref_wgts(kw)%data_jpj(jm,jn,jk)
+            dta(jm,jn) = dta(jm,jn) + ref_wgts(kw)%data_wgt(jm,jn,jk) * ref_wgts(kw)%fly_dta(ni+1,nj+1)
+          END DO
+        END DO
+      END DO
+
+      IF (ref_wgts(kw)%numwgt .EQ. 16) THEN
+
+        !! fix up halo points that we couldnt read from file
+        IF( jpi1 == 2 ) THEN
+           ref_wgts(kw)%fly_dta(jpi1-1,:) = ref_wgts(kw)%fly_dta(jpi1,:)
+        ENDIF
+        IF( jpi2 + jpimin - 1 == ref_wgts(kw)%ddims(1)+1 ) THEN
+           ref_wgts(kw)%fly_dta(jpi2+1,:) = ref_wgts(kw)%fly_dta(jpi2,:)
+        ENDIF
+        IF( jpj1 == 2 ) THEN
+           ref_wgts(kw)%fly_dta(:,jpj1-1) = ref_wgts(kw)%fly_dta(:,jpj1)
+        ENDIF
+        IF( jpj2 + jpjmin - 1 == ref_wgts(kw)%ddims(2)+1 .AND. jpj2 .lt. jpjwid+2 ) THEN
+           ref_wgts(kw)%fly_dta(:,jpj2+1) = 2.0*ref_wgts(kw)%fly_dta(:,jpj2) - ref_wgts(kw)%fly_dta(:,jpj2-1)
+        ENDIF
+
+        !! if data grid is cyclic we can do better on east-west edges
+        !! but have to allow for whether first and last columns are coincident
+        IF( ref_wgts(kw)%cyclic ) THEN
+           rec1(2) = MAX( jpjmin-1, 1 )
+           recn(1) = 2
+           recn(2) = MIN( jpjwid+2, ref_wgts(kw)%ddims(2)-rec1(2)+1 )
+           jpj1 = 2 + rec1(2) - jpjmin
+           jpj2 = jpj1 + recn(2) - 1
+           IF( jpi1 == 2 ) THEN
+              rec1(1) = ref_wgts(kw)%ddims(1) - 1
+              CALL iom_get( num, jpdom_unknown, clvar, ref_wgts(kw)%col2(:,jpj1:jpj2), nrec, rec1, recn)
+              ref_wgts(kw)%fly_dta(jpi1-1,jpj1:jpj2) = ref_wgts(kw)%col2(ref_wgts(kw)%offset+1,jpj1:jpj2)
+           ENDIF
+           IF( jpi2 + jpimin - 1 == ref_wgts(kw)%ddims(1)+1 ) THEN
+              rec1(1) = 1
+              CALL iom_get( num, jpdom_unknown, clvar, ref_wgts(kw)%col2(:,jpj1:jpj2), nrec, rec1, recn)
+              ref_wgts(kw)%fly_dta(jpi2+1,jpj1:jpj2) = ref_wgts(kw)%col2(2-ref_wgts(kw)%offset,jpj1:jpj2)
+           ENDIF
+        ENDIF
+
+        ! gradient in the i direction
+        DO jk = 1,4
+          DO jn = 1, jpj
+            DO jm = 1,jpi
+              ni = ref_wgts(kw)%data_jpi(jm,jn,jk)
+              nj = ref_wgts(kw)%data_jpj(jm,jn,jk)
+              dta(jm,jn) = dta(jm,jn) + ref_wgts(kw)%data_wgt(jm,jn,jk+4) * 0.5 *         &
+                               (ref_wgts(kw)%fly_dta(ni+2,nj+1) - ref_wgts(kw)%fly_dta(ni,nj+1))
+            END DO
+          END DO
+        END DO
+
+        ! gradient in the j direction
+        DO jk = 1,4
+          DO jn = 1, jpj
+            DO jm = 1,jpi
+              ni = ref_wgts(kw)%data_jpi(jm,jn,jk)
+              nj = ref_wgts(kw)%data_jpj(jm,jn,jk)
+              dta(jm,jn) = dta(jm,jn) + ref_wgts(kw)%data_wgt(jm,jn,jk+8) * 0.5 *         &
+                               (ref_wgts(kw)%fly_dta(ni+1,nj+2) - ref_wgts(kw)%fly_dta(ni+1,nj))
+            END DO
+          END DO
+        END DO
+
+        ! gradient in the ij direction
+        DO jk = 1,4
+          DO jn = 1, jpj
+            DO jm = 1,jpi
+              ni = ref_wgts(kw)%data_jpi(jm,jn,jk)
+              nj = ref_wgts(kw)%data_jpj(jm,jn,jk)
+              dta(jm,jn) = dta(jm,jn) + ref_wgts(kw)%data_wgt(jm,jn,jk+12) * 0.25 * ( &
+                               (ref_wgts(kw)%fly_dta(ni+2,nj+2) - ref_wgts(kw)%fly_dta(ni  ,nj+2)) -   &
+                               (ref_wgts(kw)%fly_dta(ni+2,nj  ) - ref_wgts(kw)%fly_dta(ni  ,nj  )))
+            END DO
+          END DO
+        END DO
+
+      END IF
+
+   END SUBROUTINE fld_interp
+  
 END MODULE fldread
Index: /trunk/NEMO/OPA_SRC/SBC/sbcblk_clio.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/SBC/sbcblk_clio.F90	(revision 1274)
+++ /trunk/NEMO/OPA_SRC/SBC/sbcblk_clio.F90	(revision 1275)
@@ -138,13 +138,13 @@
 
          ! (NB: frequency positive => hours, negative => months)
-         !            !    file     ! frequency !  variable  ! time intep !  clim   ! 'yearly' or !
-         !            !    name     !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  !
-         sn_utau = FLD_N( 'utau'    ,    24.    ,  'utau'    ,  .true.    , .false. ,   'yearly'  ) 
-         sn_vtau = FLD_N( 'vtau'    ,    24.    ,  'vtau'    ,  .true.    , .false. ,   'yearly'  ) 
-         sn_wndm = FLD_N( 'mwnd10m' ,    24.    ,  'm_10'    ,  .true.    , .false. ,   'yearly'  ) 
-         sn_tair = FLD_N( 'tair10m' ,    24.    ,  't_10'    ,  .false.   , .false. ,   'yearly'  ) 
-         sn_humi = FLD_N( 'humi10m' ,    24.    ,  'q_10'    ,  .false.   , .false. ,   'yearly'  ) 
-         sn_ccov = FLD_N( 'ccover'  ,    -1.    ,  'cloud'   ,  .true.    , .false. ,   'yearly'  ) 
-         sn_prec = FLD_N( 'precip'  ,    -1.    ,  'precip'  ,  .true.    , .false. ,  ' yearly'  ) 
+         !            !    file     ! frequency !  variable  ! time intep !  clim   ! 'yearly' or ! weights  ! rotation   !
+         !            !    name     !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  ! filename ! pairs      !
+         sn_utau = FLD_N( 'utau'    ,    24.    ,  'utau'    ,  .true.    , .false. ,   'yearly'  , ''       , ''         ) 
+         sn_vtau = FLD_N( 'vtau'    ,    24.    ,  'vtau'    ,  .true.    , .false. ,   'yearly'  , ''       , ''         ) 
+         sn_wndm = FLD_N( 'mwnd10m' ,    24.    ,  'm_10'    ,  .true.    , .false. ,   'yearly'  , ''       , ''         ) 
+         sn_tair = FLD_N( 'tair10m' ,    24.    ,  't_10'    ,  .false.   , .false. ,   'yearly'  , ''       , ''         ) 
+         sn_humi = FLD_N( 'humi10m' ,    24.    ,  'q_10'    ,  .false.   , .false. ,   'yearly'  , ''       , ''         ) 
+         sn_ccov = FLD_N( 'ccover'  ,    -1.    ,  'cloud'   ,  .true.    , .false. ,   'yearly'  , ''       , ''         ) 
+         sn_prec = FLD_N( 'precip'  ,    -1.    ,  'precip'  ,  .true.    , .false. ,   'yearly'  , ''       , ''         ) 
 
          REWIND( numnam )                    ! ... read in namlist namsbc_clio
Index: /trunk/NEMO/OPA_SRC/SBC/sbcblk_core.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/SBC/sbcblk_core.F90	(revision 1274)
+++ /trunk/NEMO/OPA_SRC/SBC/sbcblk_core.F90	(revision 1275)
@@ -125,14 +125,14 @@
 
          ! (NB: frequency positive => hours, negative => months)
-         !            !    file     ! frequency !  variable  ! time intep !  clim   ! 'yearly' or !
-         !            !    name     !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  !
-         sn_wndi = FLD_N( 'uwnd10m' ,    24.    ,  'u_10'    ,  .false.   , .false. ,   'yearly'  ) 
-         sn_wndj = FLD_N( 'vwnd10m' ,    24.    ,  'v_10'    ,  .false.   , .false. ,   'yearly'  ) 
-         sn_qsr  = FLD_N( 'qsw'     ,    24.    ,  'qsw'     ,  .false.   , .false. ,   'yearly'  ) 
-         sn_qlw  = FLD_N( 'qlw'     ,    24.    ,  'qlw'     ,  .false.   , .false. ,   'yearly'  ) 
-         sn_tair = FLD_N( 'tair10m' ,    24.    ,  't_10'    ,  .false.   , .false. ,   'yearly'  ) 
-         sn_humi = FLD_N( 'humi10m' ,    24.    ,  'q_10'    ,  .false.   , .false. ,   'yearly'  ) 
-         sn_prec = FLD_N( 'precip'  ,    -1.    ,  'precip'  ,  .true.    , .false. ,   'yearly'  ) 
-         sn_snow = FLD_N( 'snow'    ,    -1.    ,  'snow'    ,  .true.    , .false. ,   'yearly'  ) 
+         !            !    file     ! frequency !  variable  ! time intep !  clim   ! 'yearly' or ! weights  ! rotation   !
+         !            !    name     !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  ! filename ! pairs      !
+         sn_wndi = FLD_N( 'uwnd10m' ,    24.    ,  'u_10'    ,  .false.   , .false. ,   'yearly'  , ''       , ''         )
+         sn_wndj = FLD_N( 'vwnd10m' ,    24.    ,  'v_10'    ,  .false.   , .false. ,   'yearly'  , ''       , ''         )
+         sn_qsr  = FLD_N( 'qsw'     ,    24.    ,  'qsw'     ,  .false.   , .false. ,   'yearly'  , ''       , ''         )
+         sn_qlw  = FLD_N( 'qlw'     ,    24.    ,  'qlw'     ,  .false.   , .false. ,   'yearly'  , ''       , ''         )
+         sn_tair = FLD_N( 'tair10m' ,    24.    ,  't_10'    ,  .false.   , .false. ,   'yearly'  , ''       , ''         )
+         sn_humi = FLD_N( 'humi10m' ,    24.    ,  'q_10'    ,  .false.   , .false. ,   'yearly'  , ''       , ''         )
+         sn_prec = FLD_N( 'precip'  ,    -1.    ,  'precip'  ,  .true.    , .false. ,   'yearly'  , ''       , ''         )
+         sn_snow = FLD_N( 'snow'    ,    -1.    ,  'snow'    ,  .true.    , .false. ,   'yearly'  , ''       , ''         )
 
          REWIND( numnam )                    ! ... read in namlist namsbc_core
Index: /trunk/NEMO/OPA_SRC/SBC/sbcflx.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/SBC/sbcflx.F90	(revision 1274)
+++ /trunk/NEMO/OPA_SRC/SBC/sbcflx.F90	(revision 1275)
@@ -108,11 +108,11 @@
          cn_dir = './'        ! directory in which the model is executed
          ! ... default values (NB: frequency positive => hours, negative => months)
-         !              !   file    ! frequency !  variable  ! time intep !  clim   ! 'yearly' or !
-         !              !   name    !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  !
-         sn_utau = FLD_N(   'utau'  ,    24.    ,  'utau'    ,  .false.   , .false. ,   'yearly'  )
-         sn_vtau = FLD_N(   'vtau'  ,    24.    ,  'vtau'    ,  .false.   , .false. ,   'yearly'  )
-         sn_qtot = FLD_N(   'qtot'  ,    24.    ,  'qtot'    ,  .false.   , .false. ,   'yearly'  )
-         sn_qsr  = FLD_N(   'qsr'   ,    24.    ,  'qsr'     ,  .false.   , .false. ,   'yearly'  )
-         sn_emp  = FLD_N(   'emp'   ,    24.    ,  'emp'     ,  .false.   , .false. ,   'yearly'  )
+         !              !   file    ! frequency !  variable  ! time intep !  clim   ! 'yearly' or ! weights  ! rotation   !
+         !              !   name    !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  ! filename ! pairs      !
+         sn_utau = FLD_N(   'utau'  ,    24.    ,  'utau'    ,  .false.   , .false. ,   'yearly'  , ''       , ''         )
+         sn_vtau = FLD_N(   'vtau'  ,    24.    ,  'vtau'    ,  .false.   , .false. ,   'yearly'  , ''       , ''         )
+         sn_qtot = FLD_N(   'qtot'  ,    24.    ,  'qtot'    ,  .false.   , .false. ,   'yearly'  , ''       , ''         )
+         sn_qsr  = FLD_N(   'qsr'   ,    24.    ,  'qsr'     ,  .false.   , .false. ,   'yearly'  , ''       , ''         )
+         sn_emp  = FLD_N(   'emp'   ,    24.    ,  'emp'     ,  .false.   , .false. ,   'yearly'  , ''       , ''         )
 
          REWIND ( numnam )               ! ... read in namlist namflx
Index: /trunk/NEMO/OPA_SRC/SBC/sbcice_if.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/SBC/sbcice_if.F90	(revision 1274)
+++ /trunk/NEMO/OPA_SRC/SBC/sbcice_if.F90	(revision 1275)
@@ -69,7 +69,7 @@
          cn_dir = './'        ! directory in which the model is executed
          ! ... default values (NB: frequency positive => hours, negative => months)
-         !             !   file    ! frequency !  variable  ! time intep !  clim  ! 'yearly' or !
-         !             !   name    !  (hours)  !   name     !   (T/F)    !  (T/F) !  'monthly'  ! 
-         sn_ice = FLD_N('ice_cover',    -1.    ,  'ice_cov' ,  .true.    , .true. ,   'yearly'  )
+         !             !   file    ! frequency !  variable  ! time intep !  clim  ! 'yearly' or ! weights  ! rotation   !
+         !             !   name    !  (hours)  !   name     !   (T/F)    !  (T/F) !  'monthly'  ! filename ! pairs      ! 
+         sn_ice = FLD_N('ice_cover',    -1.    ,  'ice_cov' ,  .true.    , .true. ,   'yearly'  , ''       , ''         )
 
          REWIND ( numnam )               ! ... read in namlist namiif
Index: /trunk/NEMO/OPA_SRC/SBC/sbcrnf.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/SBC/sbcrnf.F90	(revision 1274)
+++ /trunk/NEMO/OPA_SRC/SBC/sbcrnf.F90	(revision 1275)
@@ -128,8 +128,8 @@
       !                                   ! ============
       ! (NB: frequency positive => hours, negative => months)
-      !            !   file    ! frequency !  variable  ! time intep !  clim  ! 'yearly' or !
-      !            !   name    !  (hours)  !   name     !   (T/F)    !  (T/F) !  'monthly'  !
-      sn_rnf = FLD_N( 'runoffs',    -1.    , 'sorunoff' ,  .TRUE.    , .true. ,   'yearly'  )
-      sn_cnf = FLD_N( 'runoffs',     0.    , 'sorunoff' ,  .FALSE.   , .true. ,   'yearly'  )
+      !            !   file    ! frequency !  variable  ! time intep !  clim  ! 'yearly' or ! weights  ! rotation   !
+      !            !   name    !  (hours)  !   name     !   (T/F)    !  (T/F) !  'monthly'  ! filename ! pairs      !
+      sn_rnf = FLD_N( 'runoffs',    -1.    , 'sorunoff' ,  .TRUE.    , .true. ,   'yearly'  , ''       , ''         )
+      sn_cnf = FLD_N( 'runoffs',     0.    , 'sorunoff' ,  .FALSE.   , .true. ,   'yearly'  , ''       , ''         )
 
       !
Index: /trunk/NEMO/OPA_SRC/SBC/sbcssr.F90
===================================================================
--- /trunk/NEMO/OPA_SRC/SBC/sbcssr.F90	(revision 1274)
+++ /trunk/NEMO/OPA_SRC/SBC/sbcssr.F90	(revision 1275)
@@ -86,8 +86,8 @@
          cn_dir = './'       ! directory in which the model is executed
          ! ... default values (NB: frequency positive => hours, negative => months)
-         !            !   file    ! frequency !  variable  ! time intep !  clim   ! 'yearly' or !
-         !            !   name    !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  !
-         sn_sst = FLD_N( 'sst'    ,    24.    ,  'sst'     ,  .false.   , .false. ,   'yearly'  )
-         sn_sss = FLD_N( 'sss'    ,    -1.    ,  'sss'     ,  .true.    , .false. ,   'yearly'  )
+         !            !   file    ! frequency !  variable  ! time intep !  clim   ! 'yearly' or ! weights  ! rotation   !
+         !            !   name    !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  ! filename ! pairs      !
+         sn_sst = FLD_N( 'sst'    ,    24.    ,  'sst'     ,  .false.   , .false. ,   'yearly'  , ''       , ''         )
+         sn_sss = FLD_N( 'sss'    ,    -1.    ,  'sss'     ,  .true.    , .false. ,   'yearly'  , ''       , ''         )
 
          REWIND ( numnam )         ! ... read in namlist namflx
