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 9304)
+++ branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/air_sea.F90	(revision 9309)
@@ -153,7 +153,4 @@
             IF (tmask(ji,jj,1) == 1) then
                IF (lk_oasis) THEN
-                  !! use 2D atm xCO2 from atm coupling
-                  f_xco2a(ji,jj) = PCO2a_in_cpl(ji,jj)
-                  !!! 
                   !!! Jpalm test on atm xCO2
                   IF ( (f_xco2a(ji,jj) > 1500.0 ).OR.(f_xco2a(ji,jj) < 100.0 ) ) THEN
@@ -162,5 +159,5 @@
                                        ' -- ji =', mig(ji),' jj = ', mjg(jj)
                     ENDIF
-                    CALL ctl_stop( 'MEDUSA - Air-Sea :', 'unrealistic atm xCO2 ' )
+                    CALL ctl_stop( 'MEDUSA - Air-Sea :', 'unrealistic coupled atm xCO2 ' )
                  ENDIF 
                ENDIF
Index: branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/carb_chem.F90
===================================================================
--- branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/carb_chem.F90	(revision 9304)
+++ branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/carb_chem.F90	(revision 9309)
@@ -103,8 +103,4 @@
                !! OPEN wet point IF..THEN loop
                IF (tmask(ji,jj,jk).eq.1) THEN
-                  IF (lk_oasis) THEN
-                     !! use 2D atm xCO2 from atm coupling
-                     f_xco2a(ji,jj) = PCO2a_in_cpl(ji,jj)
-                  ENDIF
                   !! Do carbonate chemistry
                   !!
Index: branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/sms_medusa.F90
===================================================================
--- branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/sms_medusa.F90	(revision 9304)
+++ branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/sms_medusa.F90	(revision 9309)
@@ -289,4 +289,14 @@
    INTEGER  :: co2_rec
    REAL(wp) :: co2_yinit, co2_yend
+#endif
+
+!!----------------------------------------------------------------------
+!! JPALM -- PI CO2 key
+!!----------------------------------------------------------------------
+!!
+#if defined key_axy_pi_co2
+   LOGICAL , PUBLIC ::   lk_pi_co2 = .TRUE.  !: OASIS used
+#else
+   LOGICAL , PUBLIC ::   lk_pi_co2 = .FALSE. !: OASIS unused
 #endif
 
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 9304)
+++ branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90	(revision 9309)
@@ -93,5 +93,5 @@
                                             mpp_min, mpp_minloc,            &
                                             ctl_stop, ctl_warn, lk_mpp  
-      USE oce,                        ONLY: tsb, tsn
+      USE oce,                        ONLY: tsb, tsn, PCO2a_in_cpl
       USE par_kind,                   ONLY: wp
       USE par_medusa,                 ONLY: jpalk, jpchd, jpchn, jpdet,     &
@@ -103,5 +103,6 @@
       !! JPALM (27-06-2016): add lk_oasis for CO2 and DMS coupling with atm
       USE sbc_oce,                    ONLY: lk_oasis
-      USE sms_medusa,                 ONLY: hist_pco2, co2_yinit, co2_yend
+      USE sms_medusa,                 ONLY: hist_pco2, co2_yinit, co2_yend, &
+                                            lk_pi_co2
       USE trc,                        ONLY: ln_rsttr, nittrc000, trn
       USE bio_medusa_init_mod,        ONLY: bio_medusa_init
@@ -295,49 +296,57 @@
       !!------------------------------------------------------------------
       !!
-      !! what's atmospheric pCO2 doing? (data start in 1859)
-      !! AXY - JPALM new interpolation scheme usinf nyear_len
-      this_y = real(nyear)
-      this_d = real(nday_year)
-      this_s = real(nsec_day)
-      !!
-      fyear = this_y + ((this_d - 1) + (this_s / (60. * 60. * 24.))) / real(nyear_len(1))
-      !!
-      IF ( ( kt == nittrc000 ) .AND. lwp ) THEN 
-         WRITE(numout,*) ' MEDUSA year      =', this_y
-         WRITE(numout,*) ' Year length      =', real(nyear_len(1))
-         WRITE(numout,*) ' MEDUSA nday_year =', this_d
-         WRITE(numout,*) ' MEDUSA nsec_day  =', this_s
-      ENDIF
-      !! 
-      !! different case test 
-      IF (fyear .LE. co2_yinit) THEN
-         !! before first record -- pre-industrial value
-         f_xco2a(:,:) = hist_pco2(1)  
-      ELSEIF (fyear .GE. co2_yend) THEN
-         !! after last record - continue to use the last value
-         f_xco2a(:,:) = hist_pco2(int(co2_yend - co2_yinit + 1.) )
-      ELSE
-         !! just right
-         iyr1 = int(fyear - co2_yinit) + 1
-         iyr2 = iyr1 + 1 
-         fq3 = fyear - real(iyr1) - co2_yinit + 1.
-         fq4 = ((1 - fq3) * hist_pco2(iyr1)) + (fq3 * hist_pco2(iyr2))
-         f_xco2a(:,:) = fq4
+      IF (lk_oasis) THEN 
+         !! xCO2 from coupled
+         IF ( ( kt == nittrc000 ) .AND. lwp )     &
+             WRITE(numout,*) '** MEDUSA Atm xCO2 given by the UM **'
+         f_xco2a(:,:) = PCO2a_in_cpl(:,:)
+      ELSEIF (lk_pi_co2) THEN
+         !! OCMIP pre-industrial xCO2
+         IF ( ( kt == nittrc000 ) .AND. lwp )     &
+             WRITE(numout,*) '** MEDUSA Atm xCO2 fixed to pre-industrial value **'
+         !! f_xco2a(:,:) = 284.725  !! CMIP5 pre-industrial pCO2
+         f_xco2a(:,:) = 284.317          !! CMIP6 pre-industrial pCO2 
+      ELSE      
+         !! xCO2 from file
+         !! AXY - JPALM new interpolation scheme usinf nyear_len
+         this_y = real(nyear)
+         this_d = real(nday_year)
+         this_s = real(nsec_day)
+         !!
+         fyear = this_y + ((this_d - 1) + (this_s / (60. * 60. * 24.))) / real(nyear_len(1))
          !!
          IF ( ( kt == nittrc000 ) .AND. lwp ) THEN 
-            WRITE(numout,*) ' MEDUSA year1     =', iyr1
-            WRITE(numout,*) ' MEDUSA year2     =', iyr2
-            WRITE(numout,*) ' xCO2 year1       =', hist_pco2(iyr1)
-            WRITE(numout,*) ' xCO2 year2       =', hist_pco2(iyr2)
-            WRITE(numout,*) ' Year2 weight     =', fq3
+            WRITE(numout,*) '** MEDUSA Atm xCO2 from file **'
+            WRITE(numout,*) ' MEDUSA year      =', this_y
+            WRITE(numout,*) ' Year length      =', real(nyear_len(1))
+            WRITE(numout,*) ' MEDUSA nday_year =', this_d
+            WRITE(numout,*) ' MEDUSA nsec_day  =', this_s
+         ENDIF
+         !! 
+         !! different case test 
+         IF (fyear .LE. co2_yinit) THEN
+            !! before first record -- pre-industrial value
+            f_xco2a(:,:) = hist_pco2(1)  
+         ELSEIF (fyear .GE. co2_yend) THEN
+            !! after last record - continue to use the last value
+            f_xco2a(:,:) = hist_pco2(int(co2_yend - co2_yinit + 1.) )
+         ELSE
+            !! just right
+            iyr1 = int(fyear - co2_yinit) + 1
+            iyr2 = iyr1 + 1 
+            fq3 = fyear - real(iyr1) - co2_yinit + 1.
+            fq4 = ((1 - fq3) * hist_pco2(iyr1)) + (fq3 * hist_pco2(iyr2))
+            f_xco2a(:,:) = fq4
+            !!
+            IF ( ( kt == nittrc000 ) .AND. lwp ) THEN 
+               WRITE(numout,*) ' MEDUSA year1     =', iyr1
+               WRITE(numout,*) ' MEDUSA year2     =', iyr2
+               WRITE(numout,*) ' xCO2 year1       =', hist_pco2(iyr1)
+               WRITE(numout,*) ' xCO2 year2       =', hist_pco2(iyr2)
+               WRITE(numout,*) ' Year2 weight     =', fq3
+            ENDIF
          ENDIF
       ENDIF
-#  if defined key_axy_pi_co2
-      !! OCMIP pre-industrial pCO2
-      !! f_xco2a(:,:) = 284.725  !! CMIP5 pre-industrial pCO2
-      f_xco2a(:,:) = 284.317          !! CMIP6 pre-industrial pCO2 
-#  endif
-      !! AXY (29/01/14): remove surplus diagnostics
-       IF ( ( kt == nittrc000 ) .AND. lwp )   & 
+      IF ( ( kt == nittrc000 ) .AND. lwp )   & 
             WRITE(numout,*) ' final atm xCO2   =', f_xco2a(1,1)
 # endif
Index: branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcini_medusa.F90
===================================================================
--- branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcini_medusa.F90	(revision 9304)
+++ branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcini_medusa.F90	(revision 9309)
@@ -329,8 +329,9 @@
       !!                     initially done in trcsms_medusa
       !!----------------------------------------------------------------------
-      !!     
-      IF(lwp) WRITE(numout,*) ' trc_ini_medusa: initialisating atm CO2 record'
-      CALL trc_ini_medusa_co2atm
-
+      !! 
+      IF( ( .NOT.lk_oasis ) .AND. ( .NOT.lk_pi_co2 ) ) THEN
+         IF(lwp) WRITE(numout,*) ' trc_ini_medusa: initialisating atm CO2 record'
+         CALL trc_ini_medusa_co2atm
+      ENDIF
 
    END SUBROUTINE trc_ini_medusa
