Index: TOOLS/MOSAIX/CalvingWeights.py
===================================================================
--- TOOLS/MOSAIX/CalvingWeights.py	(revision 6102)
+++ TOOLS/MOSAIX/CalvingWeights.py	(revision 6105)
@@ -50,5 +50,5 @@
 parser.add_argument ('--fmt'     , help='NetCDF file format, using nco syntax', default='netcdf4',
                          choices=['classic', 'netcdf3', '64bit', '64bit_data', '64bit_data', 'netcdf4', 'netcdf4_classsic'] )
-parser.add_argument ('--ocePerio', help='periodicity of ocean grid', type=int, default=0 )
+parser.add_argument ('--ocePerio', help='periodicity of ocean grid', type=float, default=0, choices=nemo.nperio_valid_range )
 
 # Parse command line
Index: TOOLS/MOSAIX/CreateWeightsMask.bash
===================================================================
--- TOOLS/MOSAIX/CreateWeightsMask.bash	(revision 6102)
+++ TOOLS/MOSAIX/CreateWeightsMask.bash	(revision 6105)
@@ -72,6 +72,8 @@
 #CplModel=ORCA2.3xLMD9695
 #CplModel=ORCA2.3xICO30
-CplModel=ORCA2.3xICO40
-#CplModel=eORCA1.2xLMD144142
+#CplModel=ORCA2.3xICO40
+CplModel=eORCA1.2xLMD144142
+#CplModel=eORCA1.4.0xLMD144142
+#CplModel=eORCA1.4.2xLMD144142
 #CplModel=eORCA1.2xLMD256256
 #CplModel=eORCA1.2xICO40
@@ -111,7 +113,7 @@
 
 # More specific cases
-[[ ${CplModel} = eORCA1.2xLMD144142 ]] && { atmCoastWidth=2 ; oceCoastWidth=2 ; searchRadius=550.0 ; }
-
-if [[ ${CplModel} = eORCA1.2xLMD144142 && Version = "NoSearchRadius" ]] ; then
+[[ ${CplModel} = eORCA1.*xLMD144142 ]] && { atmCoastWidth=2 ; oceCoastWidth=2 ; searchRadius=550.0 ; }
+
+if [[ ${CplModel} = eORCA1.*xLMD144142 && Version = "NoSearchRadius" ]] ; then
     atmCoastWidth=2 ; oceCoastWidth=2 ; searchRadius=0.0
 fi
@@ -192,4 +194,9 @@
 # Functions to handle command parameters
 # ======================================
+function tolow { echo ${*} | tr '[:upper:]' '[:lower:]' ; }
+function toup  { echo ${*} | tr '[:lower:]' '[:upper:]' ; }
+function capit { echo $(toup ${1:0:1})$(tolow ${1:1})   ; }
+function Capit { echo $(toup ${1:0:1})${1:1}            ; }
+
 function readCommand {
     # Decipher the command line to set bash variables 
@@ -215,6 +222,8 @@
     readCommand ${1}
     #
-    oceGrid=${oceGrid,,} ; atmGrid=${atmGrid,,} # Model names to lower case
-    OCEGRID=${oceGrid^^} ; ATMGRID=${atmGrid^^} # Model names to upper case
+    #oceGrid=${oceGrid,,} ; atmGrid=${atmGrid,,} # Model names to lower case
+    #OCEGRID=${oceGrid^^} ; ATMGRID=${atmGrid^^} # Model names to upper case
+    oceGrid=$(tolow ${oceGrid}) ; atmGrid=$(tolow ${atmGrid})
+    OCEGRID=$(toup  ${oceGrid}) ; ATMGRID=$(toup  ${atmGrid})
 
     case ${Order} in
@@ -309,7 +318,12 @@
 
 case ${OCE} in # Periodicity type of ORCA grid
-    ( ORCA2*               ) OcePerio=4 ;; # 4 ORCA 6 PALEORCA
-    ( ORCA1*   | eORCA1*   ) OcePerio=6 ;;
-    ( ORCA025* | eORCA025* ) OcePerio=6 ;;
+    ( ORCA2.4              ) OcePerio=4.2 ;; # 4 ORCA 6 PALEORCA
+    ( ORCA2*               ) OcePerio=4   ;;  # 4 ORCA 6 PALEORCA
+    ( eORCA1.2             ) OcePerio=6   ;;
+    ( eORCA1.4.0           ) OcePerio=6   ;;
+    ( eORCA1.4.2           ) OcePerio=6.2 ;;
+    ( ORCA1*               ) OcePerio=6   ;;
+    ( eORCA025.4           ) OcePerio=6.2 ;;
+    ( ORCA025* | eORCA025* ) OcePerio=6   ;;
 esac
 #
@@ -345,5 +359,5 @@
 OutFileName=${srcGrid}${src}_to_${dstGrid}${dst}_${FullName}
 
-cp iodef_oce_to_atm.xml   iodef.xml
+cp iodef_oce_to_atm.xml iodef.xml
 
 cat << EOF > command_file_${OutFileName}.txt
@@ -815,5 +829,6 @@
 	
 	( eORCA1.2 | eORCA1.4 )
-	cp ${R_IN}/OCE/NEMO/ORCA1_LIM3_PISCES/v3.6_stable/runoff-icb_DaiTrenberth_Depoorter_eORCA1_JD.nc .
+	cp ${R_IN}/OCE/NEMO/${OCE}/OPA/runoff-icb_DaiTrenberth_Depoorter_eORCA1_JD.nc .
+	
 	${PyRun} python3 -u CalvingWeights.py --output=rmp_t${atm}_to_t${oce}_calving_nosouth.nc  --fmt=${FMT_XIOS} \
 		 --oce=${OCE} --atm=${ATM} --type=nosouth   \
Index: TOOLS/MOSAIX/RunoffWeights.py
===================================================================
--- TOOLS/MOSAIX/RunoffWeights.py	(revision 6102)
+++ TOOLS/MOSAIX/RunoffWeights.py	(revision 6105)
@@ -1,3 +1,4 @@
 # -*- Mode: python -*-
+#!/usr/bin/env python3
 ### ===========================================================================
 ###
@@ -71,5 +72,5 @@
 parser.add_argument ('--fmt'   , help='NetCDF file format, using nco syntax', default='netcdf4',
                          choices=['classic', 'netcdf3', '64bit', '64bit_data', '64bit_data', 'netcdf4', 'netcdf4_classsic'] )
-parser.add_argument ('--ocePerio'   , help='periodicity of ocean grid', type=int, default=0 )
+parser.add_argument ('--ocePerio'   , help='periodicity of ocean grid', type=float, default=0, choices=nemo.nperio_valid_range)
 
 # Parse command line
@@ -169,5 +170,5 @@
     if oce_jpi == 1442 : oce_perio = 6 # ORCA 025
         
-print ("Oce NPERIO parameter : {:d}".format(oce_perio))
+print ("Oce NPERIO parameter : {:}".format(oce_perio))
 oce_grid_pmask = nemo.lbc_mask (np.reshape(oce_grid_imask.values, (oce_jpj,oce_jpi)), nperio=oce_perio, cd_type='T', sval=0).ravel()
 oce_address = np.arange(oce_jpj*oce_jpi)
Index: TOOLS/MOSAIX/nemo.py
===================================================================
--- TOOLS/MOSAIX/nemo.py	(revision 6102)
+++ TOOLS/MOSAIX/nemo.py	(revision 6105)
@@ -24,5 +24,5 @@
 rpi = np.pi ; rad = rpi / 180.0
 
-nperio_valid_range = [0,1,4,5,6]
+nperio_valid_range = [0, 1, 4, 4.2, 5, 6, 6.2]
 
 ## SVN information
@@ -38,19 +38,32 @@
     
     Inputs
+    jpj    : number of latitudes
     jpi    : number of longitudes
     nperio : periodicity parameter
     '''
     if nperio == None :
-        if jpi ==  182 : nperio = 4 #   ORCA2. We choose legacy orca2.
-        if jpi ==  362 : nperio = 6 #   eORCA1.
-        if jpi == 1442 : nperio = 6 #   ORCA025.
-
-        if jpj ==  149 : nperio = 4 #   ORCA2. We choose legacy orca2.
-        if jpj ==  332 : nperio = 6 #   eORCA1.
+        ## Values for NEMO version < 4.2
+        if jpi ==  182 : nperio = 4   #   ORCA2. We choose legacy orca2.
+        if jpi ==  362 : nperio = 6   #   eORCA1.
+        if jpi == 1442 : nperio = 6   #   ORCA025.
+
+        if jpj ==  149 : nperio = 4   #   ORCA2. We choose legacy orca2.
+        if jpj ==  332 : nperio = 6   #   eORCA1.
+
+        ## Values for NEMO version >= 4.2. No more halo points
+        if jpi ==  180 : nperio = 4.2 #   ORCA2. We choose legacy orca2.
+        if jpi ==  360 : nperio = 0   #   eORCA1.
+        if jpi == 1440 : nperio = 0   #   ORCA025.
+
+        if jpj ==  148 : nperio = 4.2 #   ORCA2. We choose legacy orca2.
+        if jpj ==  330 : nperio = 0   #   eORCA1.
+
         #
         if nperio == None :
             sys.exit ('in nemo module : nperio not found, and cannot by guessed' )
         else :
-            print ('nperio set as {:d} (deduced from jpi={:d})'.format (nperio, jpi))
+            sys.ext  ('nperio set as {:} (deduced from jpi={:d}) : nemo.py is not ready for this value'.format (nperio, jpi) )
+            
+            print ('nperio set as {:} (deduced from jpi={:d})'.format (nperio, jpi))
 
     return nperio
@@ -103,5 +116,6 @@
     # Special case for eORCA025
     if lon.shape[-1] == 1442 : lon [..., -2, :] =  lon [..., -3, :]
-        
+    if lon.shape[-1] == 1440 : lon [..., -1, :] =  lon [..., -2, :]
+                
     return fixed_lon
 
@@ -359,5 +373,19 @@
             ptab [..., -1, 0:-1     ] = psgn * ptab [..., -4, -1:0:-1      ]
             ptab [..., -1,  0       ] = psgn * ptab [..., -4,  1           ]
-            ptab [..., -1, -1       ] = psgn * ptab [..., -4, -2           ] 
+            ptab [..., -1, -1       ] = psgn * ptab [..., -4, -2           ]
+
+    if nperio in [4.2] :  # North fold T-point pivot
+        if cd_type in [ 'T', 'W' ] : # T-, W-point
+            ptab [..., -1, jpi//2:  ] = psgn * ptab [..., -1, jpi//2:0:-1  ]
+                
+        if cd_type == 'U' :
+            ptab [..., -1, jpi//2-1:-1] = psgn * ptab [..., -1, jpi//2:0:-1]
+                
+        if cd_type == 'V' : 
+            ptab [..., -1, 1:       ] = psgn * ptab [..., -2, jpi-1:0:-1   ]
+                
+        if cd_type == 'F' :
+            ptab [..., -1, 0:-1     ] = psgn * ptab [..., -2, -1:0:-1      ]
+         
         
     if nperio in [5, 6] :            #  North fold F-point pivot  
@@ -428,4 +456,17 @@
             ptab [..., -2, :     ] = sval
             ptab [..., -1, :     ] = sval
+
+    if nperio in [4.2] :  # North fold T-point pivot
+        if cd_type in [ 'T', 'W' ] : # T-, W-point
+            ptab [..., -1, jpi//2:  ] = sval
+                
+        if cd_type == 'U' :
+            ptab [..., -1, jpi//2-1:-1] = sval
+                
+        if cd_type == 'V' : 
+            ptab [..., -1, 1:       ] = sval
+                
+        if cd_type == 'F' :
+            ptab [..., -1, 0:-1     ] = sval
     
     if nperio in [5, 6] :            #  North fold F-point pivot
@@ -491,4 +532,17 @@
             ptab [..., -2, : ] = sval
             ptab [..., -1, : ] = sval
+
+    if nperio in [4.2] :  # North fold T-point pivot
+        if cd_type in [ 'T', 'W' ] : # T-, W-point
+            ptab [..., -1, jpi//2:  ] = sval
+                
+        if cd_type == 'U' :
+            ptab [..., -1, jpi//2-1:-1] = sval
+                
+        if cd_type == 'V' : 
+            ptab [..., -1, 1:       ] = sval
+                
+        if cd_type == 'F' :
+            ptab [..., -1, 0:-1     ] = sval
       
     if nperio in [5, 6] :            #  North fold F-point pivot  
