Index: codes/icosagcm/trunk/src/physics.f90
===================================================================
--- codes/icosagcm/trunk/src/physics.f90	(revision 213)
+++ codes/icosagcm/trunk/src/physics.f90	(revision 214)
@@ -23,6 +23,5 @@
     USE icosa
     USE physics_interface_mod
-    USE physics_dcmip_mod, ONLY : &
-         init_physics_dcmip=>init_physics, init_physics_dcmip_new=>init_physics_new
+    USE physics_dcmip_mod, ONLY : init_physics_dcmip_new=>init_physics
     IMPLICIT NONE
 
@@ -47,6 +46,5 @@
 
     CASE ('dcmip')
-       CALL init_physics_dcmip_new
-!       CALL init_physics_dcmip
+       CALL init_physics_dcmip
        phys_type = phys_DCMIP
     CASE DEFAULT
@@ -56,16 +54,7 @@
     END SELECT
 
-    IF(is_mpi_root) THEN
-       PRINT *, 'phys_type = ',phys_type
-       PRINT *, 'nb_extra_physics_2D = ', nb_extra_physics_2D
-       PRINT *, 'nb_extra_physics_3D = ', nb_extra_physics_3D
-    END IF
-
-    IF(.FALSE.) THEN ! draft interface
-       IF(nb_extra_physics_2D>0) CALL allocate_field(f_extra_physics_2D,field_t,type_real,nb_extra_physics_2D)
-       IF(nb_extra_physics_3D>0) CALL allocate_field(f_extra_physics_3D,field_t,type_real,llm,nb_extra_physics_3D)
-    ELSE
-       CALL init_pack_after ! Defines Ai, lon, lat in physics_inout
-    END IF
+    IF(is_mpi_root) PRINT *, 'phys_type = ',phys_type
+    physics_inout%dt_phys = dt*itau_physics
+    CALL init_pack_after ! Defines Ai, lon, lat in physics_inout
   END SUBROUTINE init_physics
 
@@ -101,30 +90,5 @@
           CALL held_suarez(f_ps,f_theta_rhodz,f_ue) 
        CASE DEFAULT
-          IF(.FALSE.) THEN ! draft interface
-             args%dt_phys = dt*itau_physics
-             DO ind=1,ndomain
-                IF (.NOT. assigned_domain(ind)) CYCLE
-                CALL swap_dimensions(ind)
-                CALL swap_geometry(ind)
-                
-                phis=f_phis(ind)
-                ps=f_ps(ind)
-                theta_rhodz=f_theta_rhodz(ind)
-                ue=f_ue(ind)
-                q=f_q(ind)
-                
-                IF(nb_extra_physics_2D>0) args%extra_2D=f_extra_physics_2D(ind)
-                IF(nb_extra_physics_3D>0) args%extra_3D=f_extra_physics_3D(ind)
-                CALL physics_column(args, phis, ps, theta_rhodz, ue, q)
-             ENDDO
-             
-             IF (mod(it,itau_out)==0 ) THEN
-                IF(nb_extra_physics_2D>0) CALL writefield("extra_physics_2D",f_extra_physics_2D)
-                IF(nb_extra_physics_3D>0) CALL writefield("extra_physics_3D",f_extra_physics_3D)
-             ENDIF
-          ELSE ! new interface
-             physics_inout%dt_phys = dt*itau_physics
-             CALL physics_column_new(it, f_phis, f_ps, f_theta_rhodz, f_ue, f_q)
-          END IF
+          CALL physics_column(it, f_phis, f_ps, f_theta_rhodz, f_ue, f_q)
        END SELECT
 
@@ -143,7 +107,5 @@
   END SUBROUTINE physics
 
-!--------------------------------- New interface --------------------------------------
-
-  SUBROUTINE physics_column_new(it, f_phis, f_ps, f_theta_rhodz, f_ue, f_q)
+  SUBROUTINE physics_column(it, f_phis, f_ps, f_theta_rhodz, f_ue, f_q)
     USE icosa
     USE physics_interface_mod
@@ -207,5 +169,5 @@
     END DO
 
-  END SUBROUTINE physics_column_new
+  END SUBROUTINE physics_column
 
   SUBROUTINE pack_physics(info, phis, ps, theta_rhodz, ue, q)
@@ -298,90 +260,3 @@
   END SUBROUTINE compute_update_velocity
 
-!--------------------------------- Draft interface --------------------------------------
-
-  SUBROUTINE physics_column(args, phis, ps, theta_rhodz, ue, q)
-    USE icosa
-    USE wind_mod
-    USE pression_mod
-    USE theta2theta_rhodz_mod
-    USE physics_interface_mod
-    USE physics_dcmip_mod
-    IMPLICIT NONE
-    TYPE(t_physics_inout) :: args    
-    REAL(rstd) :: phis(iim*jjm)
-    REAL(rstd) :: ps(iim*jjm)
-    REAL(rstd) :: theta_rhodz(iim*jjm,llm)
-    REAL(rstd) :: ue(3*iim*jjm,llm)
-    REAL(rstd), TARGET :: q(iim*jjm,llm,nqtot)
-    ! local arrays
-    REAL(rstd), TARGET :: lat(iim*jjm)
-    REAL(rstd), TARGET :: lon(iim*jjm)
-    REAL(rstd), TARGET :: p(iim*jjm,llm+1)
-    REAL(rstd), TARGET :: Temp(iim*jjm,llm)
-    REAL(rstd), TARGET :: ulon(iim*jjm,llm)
-    REAL(rstd), TARGET :: ulat(iim*jjm,llm)
-    REAL(rstd), TARGET :: dTemp(iim*jjm,llm)
-    REAL(rstd), TARGET :: dulon(iim*jjm,llm)
-    REAL(rstd), TARGET :: dulat(iim*jjm,llm)
-    REAL(rstd), TARGET :: dq(iim*jjm,llm,nqtot)
-    REAL(rstd) :: uc(iim*jjm,3,llm)  ! 3D velocity at cell centers
-
-    INTEGER :: i,j,ij,l
-    REAL(rstd) :: due, dt2
-
-    DO j=jj_begin,jj_end
-      DO i=ii_begin,ii_end
-        ij=(j-1)*iim+i
-        CALL xyz2lonlat(xyz_i(ij,:),lon(ij),lat(ij)) 
-      ENDDO
-    ENDDO
-
-    ! Reconstruct wind vector at hexagons
-    CALL compute_pression(ps,p,0)
-    CALL compute_theta_rhodz2temperature(ps,theta_rhodz,Temp,0)
-    CALL compute_wind_centered(ue,uc)
-    CALL compute_wind_centered_lonlat_compound(uc, ulon, ulat)
-    args%ngrid = iim*jjm
-    args%lon => lon
-    args%lat => lat
-    args%p => p
-    args%Temp => Temp
-    args%ulon => ulon
-    args%ulat => ulat
-    args%q => q
-    args%dTemp => dTemp
-    args%dulon => dulon
-    args%dulat => dulat
-    args%dq => dq
-
-    SELECT CASE(phys_type)
-    CASE (phys_DCMIP)
-       CALL compute_phys_wrap(args)
-    END SELECT
-
-    q = q + args%dt_phys * dq
-    Temp = Temp + args%dt_phys * dTemp
-    CALL compute_temperature2theta_rhodz(ps,Temp,theta_rhodz,0)
-    
-    ! Reconstruct wind tendencies at edges and add
-    CALL compute_wind_centered_from_lonlat_compound(dulon,dulat,uc)
-    dt2=.5*args%dt_phys
-    DO l=1,llm
-      DO j=jj_begin,jj_end
-        DO i=ii_begin,ii_end
-          ij=(j-1)*iim+i
-          due = sum( (uc(ij,:,l) + uc(ij+t_right,:,l))*ep_e(ij+u_right,:) )
-          ue(ij+u_right,l) = ue(ij+u_right,l) + dt2*due
-
-          due = sum( (uc(ij,:,l) + uc(ij+t_lup,:,l))*ep_e(ij+u_lup,:) )
-          ue(ij+u_lup,l)=ue(ij+u_lup,l) + dt2*due
-
-          due = sum( (uc(ij,:,l) + uc(ij+t_ldown,:,l))*ep_e(ij+u_ldown,:) )
-          ue(ij+u_ldown,l)=ue(ij+u_ldown,l) + dt2*due
-        ENDDO
-      ENDDO
-    ENDDO
-
-  END SUBROUTINE physics_column
-
 END MODULE physics_mod
Index: codes/icosagcm/trunk/src/physics_dcmip.f90
===================================================================
--- codes/icosagcm/trunk/src/physics_dcmip.f90	(revision 213)
+++ codes/icosagcm/trunk/src/physics_dcmip.f90	(revision 214)
@@ -12,12 +12,9 @@
   REAL(rstd),ALLOCATABLE :: precl_packed(:)
 
-  PUBLIC :: compute_phys_wrap, init_physics, &
-       init_physics_new, full_physics, write_physics
+  PUBLIC :: init_physics, full_physics, write_physics
 
 CONTAINS
 
-!-------------------------- New interface ----------------------
-
-  SUBROUTINE init_physics_new
+  SUBROUTINE init_physics
     USE physics_interface_mod
     IMPLICIT NONE
@@ -63,25 +60,4 @@
     CALL output_field("precl",f_precl)
   END SUBROUTINE write_physics
-
-!------------------------ Draft interface -----------------------
-
-  SUBROUTINE init_physics
-    USE physics_interface_mod
-    IMPLICIT NONE
-    testcase=1 ! OK for 4.2 (moist baroclinic instability)
-    CALL getin("dcmip_physics",testcase)
-    nb_extra_physics_2D=1 ! precl
-    nb_extra_physics_3D=0
-  END SUBROUTINE init_physics
-
-  SUBROUTINE compute_phys_wrap(args)
-    USE physics_interface_mod
-    TYPE(t_physics_inout) :: args
-    CALL compute_physics(args%ngrid, args%dt_phys, args%lat, &
-         args%p, args%Temp, args%ulon, args%ulat, args%q(:,:,1), &
-         args%dTemp, args%dulon, args%dulat, args%dq(:,:,1), args%extra_2D(:,1))
-  END SUBROUTINE compute_phys_wrap
-
-!------------------ Interface-independent wrapper ---------------------------
 
   SUBROUTINE compute_physics(ngrid,dt_phys,lat, p,Temp,u,v,q, dTemp,du,dv,dq, precl)
Index: codes/icosagcm/trunk/src/physics_interface.f90
===================================================================
--- codes/icosagcm/trunk/src/physics_interface.f90	(revision 213)
+++ codes/icosagcm/trunk/src/physics_interface.f90	(revision 214)
@@ -4,6 +4,4 @@
 
   PRIVATE
-
-  INTEGER :: nb_extra_physics_2D, nb_extra_physics_3D
 
   TYPE t_physics_inout
@@ -18,10 +16,6 @@
      REAL(rstd), DIMENSION(:,:), POINTER :: dTemp, dulon, dulat
      REAL(rstd), DIMENSION(:,:,:), POINTER :: dq
-     ! extra output arrays (physics diagnostics)
-     REAL(rstd), DIMENSION(:,:), POINTER :: extra_2D
-     REAL(rstd), DIMENSION(:,:,:), POINTER :: extra_3D
   END TYPE t_physics_inout
 
-!------------------------ (new interface) --------------------------
 ! physics_inout is used to exchange information with physics
 ! Field ngrid is initialized by physics.f90/init_physics. Its other fields
@@ -33,8 +27,8 @@
   TYPE(t_physics_inout), SAVE :: physics_inout
  
-!------------------------ (new interface) --------------------------
 ! pack_info contains indices used by pack/unpack routines
 ! to pack together the data of all the domains managed by the MPI process
 ! It is initialized by physics.f90/init_physics 
+
   TYPE t_pack_info
      INTEGER :: ngrid, & ! number of non-halo points in that domain
