Index: branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/CFC/trcini_cfc.F90
===================================================================
--- branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/CFC/trcini_cfc.F90	(revision 9369)
+++ branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/CFC/trcini_cfc.F90	(revision 9374)
@@ -44,5 +44,5 @@
       !! ** Method  : - Read the namcfc namelist and check the parameter values
       !!----------------------------------------------------------------------
-      INTEGER  ::  ji, jj, jn, jl, jm, js, io, ierr
+      INTEGER  ::  ji, jj, jn, jl, jm, js, io, iostatus, ierr
       INTEGER  ::  iskip = 7   ! number of 1st descriptor lines
       REAL(wp) ::  zyy, zyd
@@ -57,13 +57,19 @@
       
       CALL ctl_opn( inum, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
-      REWIND(inum)
       
       ! compute the number of year in the file
       ! file starts in 1931 do jn represent the year in the century
+      iostatus = 0
       jn = 31 
-      DO 
-        READ(inum,'(1x)',END=100) 
+      DO WHILE ( iostatus == 0 )
+        READ(inum,'(1x)', IOSTAT=iostatus, END=100)
         jn = jn + 1
-      END DO
+      ENDDO
+      IF( iostatus .NE. 0 ) THEN
+        !! Error while reading CFC input file 
+        CALL ctl_stop('trc_ini_cfc:  &
+                      & Error on the 1st reading of cfc1112sf6.atm')
+        RETURN
+      ENDIF
  100  jpyear = jn - 1 - iskip
       IF ( lwp) WRITE(numout,*) '    ', jpyear ,' years read'
@@ -72,5 +78,6 @@
       ALLOCATE( p_cfc(jpyear,jphem,3), STAT=ierr )
       IF( ierr > 0 ) THEN
-         CALL ctl_stop( 'trc_ini_cfc: unable to allocate p_cfc array' )   ;   RETURN
+         CALL ctl_stop( 'trc_ini_cfc: unable to allocate p_cfc array' )   
+         RETURN
       ENDIF
       IF( trc_sms_cfc_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'trc_ini_cfc: unable to allocate CFC arrays' )
@@ -101,11 +108,14 @@
       ! file starts in 1931 do jn represent the year in the century.jhh
       ! Read file till the end
-      jn = 31
-      DO 
-        READ(inum,*, IOSTAT=io) zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), &
+      DO jn = 31, jpyear 
+        READ(inum, '( F6.1, 6F7.2)', IOSTAT=io) zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), &
              & p_cfc(jn,1,3), p_cfc(jn,2,1),  &
              & p_cfc(jn,2,2), p_cfc(jn,2,3)
-        IF( io < 0 ) exit
-        jn = jn + 1
+        IF( io .NE.0 )  THEN
+          !! Error while reading CFC input file 
+          CALL ctl_stop('trc_ini_cfc:   &
+                        & Error on the 2nd reading of cfc1112sf6.atm')
+          RETURN
+        ENDIF
       END DO
 
Index: branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/air_sea.F90
===================================================================
--- branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/air_sea.F90	(revision 9369)
+++ branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/air_sea.F90	(revision 9374)
@@ -67,8 +67,7 @@
 # endif
       USE in_out_manager,    ONLY: lwp, numout
-      USE oce,               ONLY: PCO2a_in_cpl
       USE par_kind,          ONLY: wp
       USE par_oce,           ONLY: jpi, jpim1, jpj, jpjm1
-      USE sbc_oce,           ONLY: fr_i, lk_oasis, qsr, wndm
+      USE sbc_oce,           ONLY: fr_i, qsr, wndm
       USE sms_medusa,        ONLY: jdms, jdms_input, jdms_model,          &
                                    jriver_alk, jriver_c,                  &
@@ -152,14 +151,4 @@
             !! OPEN wet point IF..THEN loop
             IF (tmask(ji,jj,1) == 1) then
-               IF (lk_oasis) THEN
-                  !!! Jpalm test on atm xCO2
-                  IF ( (f_xco2a(ji,jj) .GT. 10000.0 ).OR.(f_xco2a(ji,jj) .LE. 0.0 ) ) THEN
-                    IF(lwp) THEN 
-                       WRITE(numout,*) ' atm xCO2 = ',f_xco2a(ji,jj),          &
-                                       ' -- ji =', mig(ji),' jj = ', mjg(jj)
-                    ENDIF
-                    CALL ctl_stop( 'MEDUSA - Air-Sea :', 'unrealistic coupled atm xCO2 ' )
-                 ENDIF 
-               ENDIF
                !!
                !! AXY (23/06/15): as part of an effort to update the 
@@ -264,5 +253,7 @@
                !!       Enormous dpco2 - even if all carb chem caract are OK.
                !!       and this check stops the model.
-               !!       ==> let's run the model without it and see how it goes.
+               !!       --Input checks are already more than enough to stop the
+               !!       model if carb chem goes crazy. 
+               !!       we remove the mocsy output checks
                !!===================
                !!IF ( (f_pco2w(ji,jj) > 1.E4 ).OR.(f_pco2w(ji,jj) < 0.0 ) .OR.     &
Index: branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90
===================================================================
--- branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90	(revision 9369)
+++ branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90	(revision 9374)
@@ -303,4 +303,25 @@
              WRITE(numout,*) '** MEDUSA Atm xCO2 given by the UM **'
          f_xco2a(:,:) = PCO2a_in_cpl(:,:)
+         !! Check the xCO2 from the UM is OK
+         !! piece of code moved from air-sea.F90
+         !!---
+         DO jj = 2,jpjm1
+            DO ji = 2,jpim1
+               !! OPEN wet point IF..THEN loop
+               IF (tmask(ji,jj,1) == 1) then
+                  !!! Jpalm test on atm xCO2
+                  IF ( (f_xco2a(ji,jj) .GT. 10000.0 ).OR.     &
+                       (f_xco2a(ji,jj) .LE. 0.0 ) ) THEN
+                     IF(lwp) THEN
+                        WRITE(numout,*) ' atm xCO2 = ',f_xco2a(ji,jj),       &
+                                        ' -- ji =', mig(ji),' jj = ', mjg(jj)
+                     ENDIF
+                     CALL ctl_stop( 'MEDUSA - Air-Sea :',     &
+                                    'unrealistic coupled atm xCO2 ' )
+                  ENDIF
+               ENDIF
+            ENDDO
+         ENDDO
+         !!--- 
       ELSEIF (lk_pi_co2) THEN
          !! OCMIP pre-industrial xCO2
