Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90	(revision 9434)
@@ -177,7 +177,7 @@
      !open output file
      IF( lwm ) THEN
-        CALL ctl_opn( numdct_vol,  'volume_transport', 'NEW', 'FORMATTED', 'SEQUENTIAL', -1, numout,  .FALSE. )
-        CALL ctl_opn( numdct_heat, 'heat_transport'  , 'NEW', 'FORMATTED', 'SEQUENTIAL', -1, numout,  .FALSE. )
-        CALL ctl_opn( numdct_salt, 'salt_transport'  , 'NEW', 'FORMATTED', 'SEQUENTIAL', -1, numout,  .FALSE. )
+        CALL ctl_opn( numdct_vol,  'volume_transport', 'NEW', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout,  .FALSE. )
+        CALL ctl_opn( numdct_heat, 'heat_transport'  , 'NEW', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout,  .FALSE. )
+        CALL ctl_opn( numdct_salt, 'salt_transport'  , 'NEW', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout,  .FALSE. )
      ENDIF
 
@@ -336,5 +336,5 @@
      !open input file
      !---------------
-     CALL ctl_opn( numdct_in, 'section_ijglobal.diadct', 'OLD', 'UNFORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
+     CALL ctl_opn( numdct_in, 'section_ijglobal.diadct', 'OLD', 'UNFORMATTED', 'SEQUENTIAL', 'READ', -1, numout, .FALSE. )
  
      !---------------
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diadimg.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diadimg.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diadimg.F90	(revision 9434)
@@ -133,5 +133,5 @@
      irecl4 = MAX(jpi*jpj*sp , 84+(18+jpk)*sp + 8*jpnij*sp  )
        WRITE(clname,'(a,a,i3.3)') TRIM(cd_name),'.',narea
-       CALL ctl_opn(inum, clname,'UNKNOWN','UNFORMATTED','DIRECT',irecl4,numout,lwp)
+       CALL ctl_opn(inum, clname,'UNKNOWN','UNFORMATTED','DIRECT', 'WRITE', irecl4,numout,lwp)
        WRITE(inum,REC=1 ) clver, cd_text, irecl4, &
             &     jpi,jpj, klev, 1 , 1 ,            &
@@ -168,5 +168,5 @@
        !! Standard dimgproc (1 file per variable, all procs. write to this file )
        !! * Open file
-       CALL ctl_opn(inum, cd_name,'UNKNOWN','UNFORMATTED','DIRECT',irecl4,numout,lwp)
+       CALL ctl_opn(inum, cd_name,'UNKNOWN','UNFORMATTED','DIRECT', 'WRITE', irecl4,numout,lwp)
 
        !! * Write header on record #1
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diafwb.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diafwb.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diafwb.F90	(revision 9434)
@@ -401,5 +401,5 @@
       IF ( kt == nitend .AND. cp_cfg == "orca" .AND. lwp ) THEN
 
-         CALL ctl_opn( inum, 'STRAIT.dat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
+         CALL ctl_opn( inum, 'STRAIT.dat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout, lwp, narea )
          WRITE(inum,*)
          WRITE(inum,*)    'Net freshwater budget '
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90	(revision 9434)
@@ -530,5 +530,5 @@
          IF(lwp) THEN
             CALL dia_nam( clhstnam, nwrite,' ' )
-            CALL ctl_opn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
+            CALL ctl_opn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout, lwp, narea )
             WRITE(inum,*) clhstnam
             CLOSE(inum)
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/FLO/flodom.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/FLO/flodom.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/FLO/flodom.F90	(revision 9434)
@@ -75,5 +75,5 @@
          ! open the restart file 
          !----------------------
-         CALL ctl_opn( inum, 'restart_float', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp )
+         CALL ctl_opn( inum, 'restart_float', 'OLD', 'FORMATTED', 'SEQUENTIAL', 'READ', -1, numout, lwp )
 
          ! read of the restart file
@@ -145,5 +145,5 @@
       ! we get the init values 
       !-----------------------
-      CALL ctl_opn( inum , clname1, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp )
+      CALL ctl_opn( inum , clname1, 'OLD', 'FORMATTED', 'SEQUENTIAL', 'READ', -1, numout, lwp )
       DO jfl = kfl_start,kfl_end
          READ(inum,*) flxx(jfl),flyy(jfl),flzz(jfl), nisobfl(jfl),ngrpfl(jfl),itrash
@@ -322,5 +322,5 @@
          jfl1=0
          ierr=0
-         CALL ctl_opn( inum, clname2, 'OLD', 'FORMATTED', 'SEQUENTIAL',  1, numout, .TRUE., 1 )
+         CALL ctl_opn( inum, clname2, 'OLD', 'FORMATTED', 'SEQUENTIAL', 'READ',  1, numout, .TRUE., 1 )
          DO WHILE (ierr .EQ. 0)
             jfl1=jfl1+1
@@ -337,5 +337,5 @@
             
       ! we get the init values 
-      CALL ctl_opn( inum, clname2, 'OLD', 'FORMATTED', 'SEQUENTIAL', 1, numout, .TRUE., 1 )
+      CALL ctl_opn( inum, clname2, 'OLD', 'FORMATTED', 'SEQUENTIAL', 'READ', 1, numout, .TRUE., 1 )
       DO jfl = kfl_start, kfl_end
           READ(inum,*) tpifl(jfl),tpjfl(jfl),tpkfl(jfl),itrash, itrash
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/FLO/florst.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/FLO/florst.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/FLO/florst.F90	(revision 9434)
@@ -96,5 +96,5 @@
          inum=0
          IF( lwp )THEN
-            CALL ctl_opn( inum, clname, 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
+            CALL ctl_opn( inum, clname, 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout, .FALSE. )
             REWIND inum
          ENDIF
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/FLO/flowri.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/FLO/flowri.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/FLO/flowri.F90	(revision 9434)
@@ -189,5 +189,5 @@
             !----------------------
             IF( kt == nn_it000 ) THEN
-               CALL ctl_opn( numflo, 'trajec_float', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
+               CALL ctl_opn( numflo, 'trajec_float', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout, .FALSE. )
                irecflo = NINT( (nitend-nn_it000) / FLOAT(nn_writefl) )
                WRITE(numflo,*)cexper,no,irecflo,jpnfl,nn_writefl
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/ICB/icbini.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/ICB/icbini.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/ICB/icbini.F90	(revision 9434)
@@ -78,5 +78,5 @@
       !                          ! note that we choose to do this on all processors since we cannot
       !                          ! predict where icebergs will be ahead of time
-      CALL ctl_opn( numicb, 'icebergs.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
+      CALL ctl_opn( numicb, 'icebergs.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout, lwp, narea )
 
       ! set parameters (mostly from namelist)
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90	(revision 9434)
@@ -332,5 +332,5 @@
       DO jn = sind, eind
          WRITE(clfile_out,FMT=clb_name) jn-1
-         CALL ctl_opn( numid(jn -narea + 1), clfile_out, 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 1, numout, .FALSE. )
+         CALL ctl_opn( numid(jn -narea + 1), clfile_out, 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', 1, numout, .FALSE. )
          j_id = numid(jn -narea + 1)
          WRITE(j_id,*)
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90	(revision 9434)
@@ -320,5 +320,5 @@
 
       IF( mynode == 0 ) THEN
-         CALL ctl_opn( kumond, TRIM(ldname), 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. , 1 )
+         CALL ctl_opn( kumond, TRIM(ldname), 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, 6, .FALSE. , 1 )
          WRITE(kumond, nammpp)      
       ENDIF
@@ -3716,5 +3716,5 @@
       function_value = 0
       IF( .FALSE. )   ldtxt(:) = 'never done'
-      CALL ctl_opn( kumond, TRIM(ldname), 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. , 1 )
+      CALL ctl_opn( kumond, TRIM(ldname), 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, 6, .FALSE. , 1 )
    END FUNCTION mynode
 
@@ -3946,5 +3946,5 @@
 
 
-   SUBROUTINE ctl_opn( knum, cdfile, cdstat, cdform, cdacce, klengh, kout, ldwp, karea )
+   SUBROUTINE ctl_opn( knum, cdfile, cdstat, cdform, cdacce, cdact, klengh, kout, ldwp, karea )
       !!----------------------------------------------------------------------
       !!                  ***  ROUTINE ctl_opn  ***
@@ -3963,4 +3963,5 @@
       LOGICAL          , INTENT(in   ) ::   ldwp      ! boolean term for print
       INTEGER, OPTIONAL, INTENT(in   ) ::   karea     ! proc number
+      CHARACTER(len=*) , INTENT(in   ) ::   cdact     ! action READ/WRITE/READWRITE default READWRITE
       !!
       CHARACTER(len=80) ::   clfile
@@ -3983,7 +3984,9 @@
       iost=0
       IF( cdacce(1:6) == 'DIRECT' )  THEN
-         OPEN( UNIT=knum, FILE=clfile, FORM=cdform, ACCESS=cdacce, STATUS=cdstat, RECL=klengh, ERR=100, IOSTAT=iost )
+         OPEN( UNIT=knum, FILE=clfile, FORM=cdform, ACCESS=cdacce, STATUS=cdstat, ACTION=TRIM(cdact), &
+     &                                                              RECL=klengh, ERR=100, IOSTAT=iost )
       ELSE
-         OPEN( UNIT=knum, FILE=clfile, FORM=cdform, ACCESS=cdacce, STATUS=cdstat             , ERR=100, IOSTAT=iost )
+         OPEN( UNIT=knum, FILE=clfile, FORM=cdform, ACCESS=cdacce, STATUS=cdstat, ACTION=TRIM(cdact), &
+     &                                                                           ERR=100, IOSTAT=iost )
       ENDIF
       IF( iost == 0 ) THEN
@@ -3994,4 +3997,5 @@
             WRITE(kout,*) '     form   = ', cdform
             WRITE(kout,*) '     access = ', cdacce
+            WRITE(kout,*) '     action = ', cdact
             WRITE(kout,*)
          ENDIF
@@ -4007,4 +4011,5 @@
             WRITE(kout,*) '           form   = ', cdform
             WRITE(kout,*) '           access = ', cdacce
+            WRITE(kout,*) '           action = ', cdact
             WRITE(kout,*) '           iostat = ', iost
             WRITE(kout,*) '           we stop. verify the file '
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/LBC/mppini.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/LBC/mppini.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/LBC/mppini.F90	(revision 9434)
@@ -365,5 +365,5 @@
      ! Save processor layout in layout.dat file 
        IF (lwp) THEN
-        CALL ctl_opn( inum, 'layout.dat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE., narea )
+        CALL ctl_opn( inum, 'layout.dat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout, .FALSE., narea )
         WRITE(inum,'(a)') '   jpnij     jpi     jpj     jpk  jpiglo  jpjglo'
         WRITE(inum,'(6i8)') jpnij,jpi,jpj,jpk,jpiglo,jpjglo
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/LBC/mppini_2.h90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/LBC/mppini_2.h90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/LBC/mppini_2.h90	(revision 9434)
@@ -523,5 +523,5 @@
       ! Save processor layout in ascii file
       IF (lwp) THEN
-         CALL ctl_opn( inum, 'layout.dat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE., narea )
+         CALL ctl_opn( inum, 'layout.dat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout, .FALSE., narea )
          WRITE(inum,'(a)') '   jpnij     jpi     jpj     jpk  jpiglo  jpjglo'
          WRITE(inum,'(6i8)') jpnij,jpi,jpj,jpk,jpiglo,jpjglo
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90	(revision 9434)
@@ -118,5 +118,5 @@
          IF( kt == nit000 ) THEN                      ! initialisation
             !                                         ! Read the corrective factor on precipitations (fwfold)
-            CALL ctl_opn( inum, 'EMPave_old.dat', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
+            CALL ctl_opn( inum, 'EMPave_old.dat', 'OLD', 'FORMATTED', 'SEQUENTIAL', 'READ', -1, numout, .FALSE. )
             READ ( inum, "(24X,I8,2ES24.16)" ) iyear, a_fwb_b, a_fwb
             CLOSE( inum )
@@ -147,5 +147,5 @@
          !
          IF( kt == nitend .AND. lwp ) THEN            ! save fwfold value in a file
-            CALL ctl_opn( inum, 'EMPave.dat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE., narea )
+            CALL ctl_opn( inum, 'EMPave.dat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout, .FALSE., narea )
             WRITE( inum, "(24X,I8,2ES24.16)" ) nyear, a_fwb_b, a_fwb
             CLOSE( inum )
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90	(revision 9434)
@@ -268,7 +268,7 @@
       !
                                        ! Open the reference and configuration namelist files and namelist output file 
-      CALL ctl_opn( numnam_ice_ref, 'namelist_ice_ref',    'OLD',     'FORMATTED', 'SEQUENTIAL', -1, numout, lwp ) 
-      CALL ctl_opn( numnam_ice_cfg, 'namelist_ice_cfg',    'OLD',     'FORMATTED', 'SEQUENTIAL', -1, numout, lwp )
-      IF(lwm) CALL ctl_opn( numoni, 'output.namelist.ice', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, 1 )
+      CALL ctl_opn( numnam_ice_ref, 'namelist_ice_ref',    'OLD',     'FORMATTED', 'SEQUENTIAL', 'READ', -1, numout, lwp ) 
+      CALL ctl_opn( numnam_ice_cfg, 'namelist_ice_cfg',    'OLD',     'FORMATTED', 'SEQUENTIAL', 'READ', -1, numout, lwp )
+      IF(lwm) CALL ctl_opn( numoni, 'output.namelist.ice', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout, lwp, 1 )
 
       CALL ice_run                     ! set some ice run parameters
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/SOL/solver.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/SOL/solver.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/SOL/solver.F90	(revision 9434)
@@ -60,5 +60,5 @@
 
       IF(lwp) THEN                  !* open elliptic solver statistics file (only on the printing processors)
-         CALL ctl_opn( numsol, 'solver.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
+         CALL ctl_opn( numsol, 'solver.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout, lwp, narea )
       ENDIF
 
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/TRD/trdmxl.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/TRD/trdmxl.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/TRD/trdmxl.F90	(revision 9434)
@@ -850,5 +850,5 @@
  
       IF( nn_ctls == 1 ) THEN
-         CALL ctl_opn( inum, 'ctlsurf_idx', 'OLD', 'UNFORMATTED', 'SEQUENTIAL', -1, numout, lwp )
+         CALL ctl_opn( inum, 'ctlsurf_idx', 'OLD', 'UNFORMATTED', 'SEQUENTIAL', 'READ', -1, numout, lwp )
          READ ( inum, * ) nbol
          CLOSE( inum )
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90	(revision 9434)
@@ -255,6 +255,6 @@
       !
       !                             ! Open reference namelist and configuration namelist files
-      CALL ctl_opn( numnam_ref, 'namelist_ref', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. )
-      CALL ctl_opn( numnam_cfg, 'namelist_cfg', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. )
+      CALL ctl_opn( numnam_ref, 'namelist_ref', 'OLD', 'FORMATTED', 'SEQUENTIAL', 'READ', -1, 6, .FALSE. )
+      CALL ctl_opn( numnam_cfg, 'namelist_cfg', 'OLD', 'FORMATTED', 'SEQUENTIAL', 'READ', -1, 6, .FALSE. )
       !
       REWIND( numnam_ref )              ! Namelist namctl in reference namelist : Control prints & Benchmark
@@ -374,5 +374,5 @@
       IF(lwp) THEN                            ! open listing units
          !
-         CALL ctl_opn( numout, 'ocean.output', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE., narea )
+         CALL ctl_opn( numout, 'ocean.output', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, 6, .FALSE., narea )
          !
          WRITE(numout,*)
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/stpctl.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/stpctl.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/stpctl.F90	(revision 9434)
@@ -74,5 +74,5 @@
             clfname = 'time.step'
          ENDIF
-         CALL ctl_opn( numstp, TRIM(clfname), 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
+         CALL ctl_opn( numstp, TRIM(clfname), 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout, lwp, narea )
       ENDIF
 
@@ -227,5 +227,5 @@
       ELSE                                   !* ssh statistics (and others...)
          IF( kt == nit000 .AND. lwp ) THEN   ! open ssh statistics file (put in solver.stat file)
-            CALL ctl_opn( numsol, 'solver.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
+            CALL ctl_opn( numsol, 'solver.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout, lwp, narea )
          ENDIF
          !
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/timing.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/timing.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/timing.F90	(revision 9434)
@@ -199,8 +199,8 @@
              
       IF( ln_onefile ) THEN
-         IF( lwp) CALL ctl_opn( numtime, 'timing.output', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout,.TRUE., narea )
+         IF( lwp) CALL ctl_opn( numtime, 'timing.output', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout,.TRUE., narea )
          lwriter = lwp
       ELSE
-         CALL ctl_opn( numtime, 'timing.output', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout,.FALSE., narea )
+         CALL ctl_opn( numtime, 'timing.output', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 'WRITE', -1, numout,.FALSE., narea )
          lwriter = .TRUE.
       ENDIF
Index: branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/trc_oce.F90
===================================================================
--- branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/trc_oce.F90	(revision 9433)
+++ branches/UKMO/dev_r5518_GO6_namelist_read/NEMOGCM/NEMO/OPA_SRC/trc_oce.F90	(revision 9434)
@@ -224,5 +224,5 @@
       ENDIF
       !
-      CALL ctl_opn( numlight, 'kRGB61.txt', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp )
+      CALL ctl_opn( numlight, 'kRGB61.txt', 'OLD', 'FORMATTED', 'SEQUENTIAL', 'READ', -1, numout, lwp )
       DO jc = 1, 61
          READ(numlight,*) zchl, ( prgb(jb,jc), jb = 1, 3 )
