diff --git a/src/MNH/modd_spawn.f90 b/src/MNH/modd_spawn.f90
index bed084bc483fe466de586f12a2f6592891374647..88fd2788a27c95053d73df834712ff7c387b9d0a 100644
--- a/src/MNH/modd_spawn.f90
+++ b/src/MNH/modd_spawn.f90
@@ -63,4 +63,10 @@ CHARACTER (LEN=28) :: CDADINIFILE ! DAD fm-file for initial file
 CHARACTER (LEN=28) :: CDADSPAFILE ! DAD fm-file for spawning file
                                     ! if LBAL_ONLY=T
 !
+! Pointers to the data of the mesh #1
+REAL,DIMENSION(:,:),  SAVE,POINTER :: XACPRR1
+REAL,DIMENSION(:,:,:),SAVE,POINTER :: XTHT1
+REAL,DIMENSION(:,:,:),SAVE,POINTER :: XUT1
+REAL,DIMENSION(:,:,:),SAVE,POINTER :: XVT1
+!
 END MODULE MODD_SPAWN
diff --git a/src/MNH/spawn_field2.f90 b/src/MNH/spawn_field2.f90
index 75e95c58b2826a3758af2fb23321a23a4467055f..e2ab3cebc0043b0554f86f7e597bd9efa242e901 100644
--- a/src/MNH/spawn_field2.f90
+++ b/src/MNH/spawn_field2.f90
@@ -174,6 +174,7 @@ USE MODD_ELEC_DESCR,      ONLY: CELECNAMES
 !
 USE MODD_BIKHARDT_n
 USE MODD_LUNIT_n
+USE MODD_SPAWN
 !
 USE MODI_BIKHARDT
 !
@@ -195,8 +196,6 @@ USE MODD_LATZ_EDFLX
 USE MODD_DEF_EDDY_FLUX_n           
 USE MODD_DEF_EDDYUV_FLUX_n
 !
-USE MODE_FIELD
-!
 USE MODE_MPPDB
 USE MODE_ll
 !
@@ -243,7 +242,8 @@ INTEGER             :: IRR       ! Number of moist variables
 REAL, DIMENSION(SIZE(FIELD_MODEL(1)%XRT,1),SIZE(FIELD_MODEL(1)%XRT,2),SIZE(FIELD_MODEL(1)%XRT,3)) :: ZHUT ! relative humidity
                                                              ! (model 1)
 !REAL, DIMENSION(SIZE(FIELD_MODEL(1)%XTHT,1),SIZE(FIELD_MODEL(1)%XTHT,2),SIZE(FIELD_MODEL(1)%XTHT,3)) :: ZTHVT! virtual pot. T
-REAL, DIMENSION(:,:,:),ALLOCATABLE :: ZTHVT! virtual pot. T
+!REAL, DIMENSION(:,:,:),ALLOCATABLE :: ZTHVT! virtual pot. T
+REAL, DIMENSION(SIZE(XTHT1,1),SIZE(XTHT1,2),SIZE(XTHT1,3)) :: ZTHVT! virtual pot. T
                                                                 ! (model 1)          
 !$20140708
 !$***** 3D
@@ -280,7 +280,6 @@ CHARACTER (LEN=16)  :: YRECFM_T        ! management
 CHARACTER (LEN=16)  :: YRECFM_M        ! management
 CHARACTER (LEN=100) :: YCOMMENT       ! variables
 CHARACTER (LEN=2)   :: YDIR
-INTEGER :: IID
 !
 CHARACTER(LEN=2)  :: INDICE
 INTEGER           :: I
@@ -300,12 +299,7 @@ CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
 !
 !*       1.1   Secondary variables
 !
-!CALL COMPUTE_THV_HU(CONF_MODEL(1)%LUSERV,FIELD_MODEL(1)%XRT,FIELD_MODEL(1)%XTHT,FIELD_MODEL(1)%XPABST,ZTHVT,ZHUT)
-CALL FIND_FIELD_ID_FROM_MNHNAME('THT',IID,IRESP)
-ALLOCATE(ZTHVT(SIZE(TFIELDLIST(IID)%TFIELD_X3D(1)%DATA,1), &
-               SIZE(TFIELDLIST(IID)%TFIELD_X3D(1)%DATA,2), &
-               SIZE(TFIELDLIST(IID)%TFIELD_X3D(1)%DATA,3) ))
-CALL COMPUTE_THV_HU(CONF_MODEL(1)%LUSERV,FIELD_MODEL(1)%XRT,TFIELDLIST(IID)%TFIELD_X3D(1)%DATA,FIELD_MODEL(1)%XPABST,ZTHVT,ZHUT)
+CALL COMPUTE_THV_HU(CONF_MODEL(1)%LUSERV,FIELD_MODEL(1)%XRT,XTHT1,FIELD_MODEL(1)%XPABST,ZTHVT,ZHUT)
 !
 !*       1.2   Working arrays for reading in SON input file
 !
@@ -332,23 +326,15 @@ IF (KDXRATIO == 1 .AND. KDYRATIO == 1 ) THEN
 !
 !*       2.1.1  variables which always exist
 !
-!  PUT  (:,:,:)   =  FIELD_MODEL(1)%XUT  (KXOR:KXEND,KYOR:KYEND,:)
-!  PVT  (:,:,:)   =  FIELD_MODEL(1)%XVT  (KXOR:KXEND,KYOR:KYEND,:)
-  CALL FIND_FIELD_ID_FROM_MNHNAME('UT',IID,IRESP)
-  PUT  (:,:,:)   =  TFIELDLIST(IID)%TFIELD_X3D(1)%DATA(KXOR:KXEND,KYOR:KYEND,:)
-  CALL FIND_FIELD_ID_FROM_MNHNAME('VT',IID,IRESP)
-  PVT  (:,:,:)   =  TFIELDLIST(IID)%TFIELD_X3D(1)%DATA(KXOR:KXEND,KYOR:KYEND,:)
+  PUT  (:,:,:)   =  XUT1(KXOR:KXEND,KYOR:KYEND,:)
+  PVT  (:,:,:)   =  XVT1(KXOR:KXEND,KYOR:KYEND,:)
   PWT  (:,:,:)   =  FIELD_MODEL(1)%XWT  (KXOR:KXEND,KYOR:KYEND,:)
   PTHVT(:,:,:)   =  ZTHVT(KXOR:KXEND,KYOR:KYEND,:)
 !
-!  PLSUM (:,:,:)  =  FIELD_MODEL(1)%XUT (KXOR:KXEND,KYOR:KYEND,:)
-!  PLSVM (:,:,:)  =  FIELD_MODEL(1)%XVT (KXOR:KXEND,KYOR:KYEND,:)
   PLSUM (:,:,:)  =  PUT  (:,:,:) 
   PLSVM (:,:,:)  =  PVT  (:,:,:) 
   PLSWM (:,:,:)  =  FIELD_MODEL(1)%XWT (KXOR:KXEND,KYOR:KYEND,:)
-!  PLSTHM(:,:,:)  =  FIELD_MODEL(1)%XTHT(KXOR:KXEND,KYOR:KYEND,:)
-  CALL FIND_FIELD_ID_FROM_MNHNAME('THT',IID,IRESP)
-  PLSTHM(:,:,:)  =  TFIELDLIST(IID)%TFIELD_X3D(1)%DATA(KXOR:KXEND,KYOR:KYEND,:)
+  PLSTHM(:,:,:)  =  XTHT1(KXOR:KXEND,KYOR:KYEND,:)
 !
   PLSRVM(:,:,:)  = 0.
 !
@@ -484,14 +470,10 @@ ELSE
     !
     !$series of SET_LSFIELD_1WAY_ll
     !$***** 3D VARS
-!    CALL SET_LSFIELD_1WAY_ll(FIELD_MODEL(1)%XUT(:,:,JI),ZUT_C(:,:,JI),2)
-    CALL FIND_FIELD_ID_FROM_MNHNAME('UT',IID,IRESP)
-    CALL SET_LSFIELD_1WAY_ll(TFIELDLIST(IID)%TFIELD_X3D(1)%DATA(:,:,JI),ZUT_C(:,:,JI),2)
+    CALL SET_LSFIELD_1WAY_ll(XUT1(:,:,JI),ZUT_C(:,:,JI),2)
     CALL SET_LSFIELD_1WAY_ll(LSFIELD_MODEL(1)%XLSUM(:,:,JI), ZLSUM_C(:,:,JI),2)
     !
-!    CALL SET_LSFIELD_1WAY_ll(FIELD_MODEL(1)%XVT(:,:,JI),ZVT_C(:,:,JI),2)
-    CALL FIND_FIELD_ID_FROM_MNHNAME('VT',IID,IRESP)
-    CALL SET_LSFIELD_1WAY_ll(TFIELDLIST(IID)%TFIELD_X3D(1)%DATA(:,:,JI),ZUT_C(:,:,JI),2)
+    CALL SET_LSFIELD_1WAY_ll(XVT1(:,:,JI),ZVT_C(:,:,JI),2)
     CALL SET_LSFIELD_1WAY_ll(LSFIELD_MODEL(1)%XLSVM(:,:,JI),ZLSVM_C(:,:,JI),2)
     !
     CALL SET_LSFIELD_1WAY_ll(FIELD_MODEL(1)%XWT(:,:,JI),ZWT_C(:,:,JI),2)
diff --git a/src/MNH/spawn_pressure2.f90 b/src/MNH/spawn_pressure2.f90
index 83015a497d45b025095e22a785276ba51ce70a96..be300a2b4bd61ac07b49abf6ba00a48dc9c48686 100644
--- a/src/MNH/spawn_pressure2.f90
+++ b/src/MNH/spawn_pressure2.f90
@@ -124,6 +124,7 @@ USE MODD_REF_n,  ONLY: REF_MODEL
 !
 USE MODD_BIKHARDT_n
 USE MODD_VER_INTERP_LIN
+USE MODD_SPAWN
 !
 USE MODI_SHUMAN
 USE MODI_BIKHARDT
@@ -131,8 +132,6 @@ USE MODI_COMPUTE_EXNER_FROM_TOP
 USE MODI_COEF_VER_INTERP_LIN
 USE MODI_VER_INTERP_LIN
 !
-USE MODE_FIELD
-!
 USE MODE_MODELN_HANDLER
 USE MODE_ll
 USE MODE_MPPDB
@@ -169,8 +168,7 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: & ! MODEL 1 VARIABLES
  ZTHV1,       & ! virtual potential temperature at mass points at t or t-dt
  ZHYDEXN1,    & ! hydrostatic Exner functions at mass points   at t or t-dt
  ZSUMR          ! sum of water mixing ratios (at t-dt or t)  
-!REAL, DIMENSION(SIZE(FIELD_MODEL(1)%XTHT,1),SIZE(FIELD_MODEL(1)%XTHT,2)) ::              & ! MODEL 1 VARIABLES
-REAL, DIMENSION(:,:),ALLOCATABLE ::              & ! MODEL 1 VARIABLES
+REAL, DIMENSION(SIZE(XTHT1,1),SIZE(XTHT1,2)) ::              & ! MODEL 1 VARIABLES
  ZHYDEXNTOP1    ! model top Exner functions                    at t or t-dt
 !$20140709
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZHYDEXNTOP1_C
@@ -190,7 +188,6 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZWORK
 INTEGER  :: IMI
 INTEGER  :: JI, IDIMX_C,IDIMY_C
 INTEGER  :: IINFO_ll
-INTEGER :: IID,IRESP
 !
 !-------------------------------------------------------------------------------
 !
@@ -202,11 +199,8 @@ CALL GOTO_MODEL(2)
 !
 IIU = SIZE(PTHVT,1)
 IJU = SIZE(PTHVT,2)
-!IIU1= SIZE(FIELD_MODEL(1)%XTHT,1)
-!IJU1= SIZE(FIELD_MODEL(1)%XTHT,2)
-CALL FIND_FIELD_ID_FROM_MNHNAME('THT',IID,IRESP)
-IIU1= SIZE(TFIELDLIST(IID)%TFIELD_X3D(1)%DATA,1)
-IJU1= SIZE(TFIELDLIST(IID)%TFIELD_X3D(1)%DATA,2)
+IIU1= SIZE(XTHT1,1)
+IJU1= SIZE(XTHT1,2)
 IKU=SIZE(PZZ,3)
 IKE=IKU-JPVEXT
 !
@@ -236,20 +230,16 @@ END IF
   ALLOCATE(ZEXN1(IIU1,IJU1,IKU))
   ALLOCATE(ZTHV1(IIU1,IJU1,IKU))
   ALLOCATE(ZSUMR(IIU1,IJU1,IKU))
-  ALLOCATE(ZHYDEXNTOP1(IIU1,IJU1))
   ZSUMR(:,:,:) = 0.
   DO JRR=1,CONF_MODEL(1)%NRR
     ZSUMR(:,:,:) = ZSUMR(:,:,:) + FIELD_MODEL(1)%XRT(:,:,:,JRR)
   END DO
     !
   ZEXN1(:,:,:)=(FIELD_MODEL(1)%XPABST(:,:,:)/XP00)**(XRD/XCPD)
-  CALL FIND_FIELD_ID_FROM_MNHNAME('THT',IID,IRESP)
   IF (CONF_MODEL(1)%LUSERV) THEN
-!    ZTHV1(:,:,:)=FIELD_MODEL(1)%XTHT(:,:,:)*(1.+XRV/XRD*FIELD_MODEL(1)%XRT(:,:,:,1))/(1.+ZSUMR)
-    ZTHV1(:,:,:)=TFIELDLIST(IID)%TFIELD_X3D(1)%DATA(:,:,:)*(1.+XRV/XRD*FIELD_MODEL(1)%XRT(:,:,:,1))/(1.+ZSUMR)
+    ZTHV1(:,:,:)=XTHT1(:,:,:)*(1.+XRV/XRD*FIELD_MODEL(1)%XRT(:,:,:,1))/(1.+ZSUMR)
   ELSE
-!    ZTHV1(:,:,:)=FIELD_MODEL(1)%XTHT(:,:,:)
-    ZTHV1(:,:,:)=TFIELDLIST(IID)%TFIELD_X3D(1)%DATA(:,:,:)
+    ZTHV1(:,:,:)=XTHT1(:,:,:)
   END IF
   DEALLOCATE(ZSUMR)
 !
diff --git a/src/MNH/spawn_surf2_rain.f90 b/src/MNH/spawn_surf2_rain.f90
index 5ea40207d2727dc6adc2e5a6cc4903450ab0553b..18cfed7cb47dc43682b353dd3aeaf046f2c1402c 100644
--- a/src/MNH/spawn_surf2_rain.f90
+++ b/src/MNH/spawn_surf2_rain.f90
@@ -122,14 +122,14 @@ USE MODD_LUNIT_n, ONLY : CLUOUT
 USE MODD_FIELD_n, ONLY : XTHT
 USE MODD_CONF,    ONLY : CCONF,CPROGRAM
 !
+USE MODD_SPAWN
+!
 USE MODI_BIKHARDT         ! Interface modules
 !
 USE MODE_MODELN_HANDLER
 !
 USE MODI_READ_PRECIP_FIELD
 !
-USE MODE_FIELD
-!
 !
 IMPLICIT NONE
 !
@@ -180,7 +180,6 @@ CHARACTER (LEN=4):: YGETRCT,YGETRRT,YGETRST,YGETRGT,YGETRHT ! READ,INIT or SKIP
 INTEGER             :: ILU                        ! vertical size of arrays
 !
 INTEGER             :: IDIMX,IDIMY
-INTEGER :: IID,IRESP
 !-------------------------------------------------------------------------------
 !
 !*       1.    PROLOGUE:
@@ -219,9 +218,7 @@ IF (KDXRATIO == 1 .AND. KDYRATIO == 1 ) THEN
     PINPRR(:,:) = PRECIP_MODEL(1)%XINPRR(KXOR:KXEND,KYOR:KYEND)
     PINPRR3D(:,:,:) = PRECIP_MODEL(1)%XINPRR3D(KXOR:KXEND,KYOR:KYEND,:)
     PEVAP3D(:,:,:) = PRECIP_MODEL(1)%XEVAP3D(KXOR:KXEND,KYOR:KYEND,:)
-!    PACPRR(:,:) = PRECIP_MODEL(1)%XACPRR(KXOR:KXEND,KYOR:KYEND)
-    CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRR',IID,IRESP)
-    PACPRR(:,:) = TFIELDLIST(IID)%TFIELD_X2D(1)%DATA(KXOR:KXEND,KYOR:KYEND)
+    PACPRR(:,:) = XACPRR1(KXOR:KXEND,KYOR:KYEND)
   END IF
 !
   IF (SIZE(PRECIP_MODEL(1)%XINPRS) /= 0 ) THEN
@@ -297,12 +294,10 @@ ELSE
                     XBFX1,XBFX2,XBFX3,XBFX4,XBFY1,XBFY2,XBFY3,XBFY4, &
                     2,2,IDIMX-1,IDIMY-1,KDXRATIO,KDYRATIO,1,       &
                     LBC_MODEL(1)%CLBCX,LBC_MODEL(1)%CLBCY,PRECIP_MODEL(1)%XEVAP3D,PEVAP3D)
-      CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRR',IID,IRESP)
       CALL BIKHARDT(XBMX1,XBMX2,XBMX3,XBMX4,XBMY1,XBMY2,XBMY3,XBMY4, &
                     XBFX1,XBFX2,XBFX3,XBFX4,XBFY1,XBFY2,XBFY3,XBFY4, &
                     2,2,IDIMX-1,IDIMY-1,KDXRATIO,KDYRATIO,1,       &
-!                    LBC_MODEL(1)%CLBCX,LBC_MODEL(1)%CLBCY,PRECIP_MODEL(1)%XACPRR,PACPRR)
-                    LBC_MODEL(1)%CLBCX,LBC_MODEL(1)%CLBCY,TFIELDLIST(IID)%TFIELD_X2D(1)%DATA,PACPRR)
+                    LBC_MODEL(1)%CLBCX,LBC_MODEL(1)%CLBCY,XACPRR1,PACPRR)
      PINPRR(:,:)=MAX(0.,PINPRR(:,:))
      PINPRR3D(:,:,:)=MAX(0.,PINPRR3D(:,:,:))
      PEVAP3D(:,:,:)=MAX(0.,PEVAP3D(:,:,:))
diff --git a/src/MNH/spawning.f90 b/src/MNH/spawning.f90
index 914c14f2b7bb585b4154e5ef6e48e1d28fa1615c..ef037122296337c430316a29e5b805498954869c 100644
--- a/src/MNH/spawning.f90
+++ b/src/MNH/spawning.f90
@@ -224,6 +224,7 @@ CALL MPPDB_CHECK3D(XUT,"SPAWNING-after boundaries::XUT",PRECISION)
 CALL OPEN_ll(unit=ILUSPA,FILE=YEXSPA,iostat=IRESP,status="OLD",action='READ',  &
              form='FORMATTED',position="REWIND",mode=GLOBAL)
 CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
+CALL SET_POINTERS_TO_MODEL1()
 CALL GOTO_MODEL(2)
 CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP)
 CALL INIT_NMLVAR
@@ -256,6 +257,18 @@ SUBROUTINE UPDATE_MODD_FROM_NMLVAR
 LRES_n=LRES
 XRES_n=XRES
 END SUBROUTINE UPDATE_MODD_FROM_NMLVAR
+
+SUBROUTINE SET_POINTERS_TO_MODEL1()
+!
+USE MODD_FIELD_n
+USE MODD_PRECIP_n
+!
+XACPRR1 => XACPRR
+XTHT1 => XTHT
+XUT1 => XUT
+XVT1 => XVT
+!
+END SUBROUTINE SET_POINTERS_TO_MODEL1
 !
 !-------------------------------------------------------------------------------
 !