Ignore:
Timestamp:
2019-11-22T15:29:17+01:00 (2 years ago)
Author:
acc
Message:

Merge in changes from 2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps. This just creates a fresh copy of this branch to use as the merge base. See ticket #2341

Location:
NEMO/branches/2019/dev_r11943_MERGE_2019/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src

    • Property svn:mergeinfo deleted
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/SAS/diawri.F90

    r11536 r11949  
    7878 
    7979    
    80    SUBROUTINE dia_wri( kt ) 
     80   SUBROUTINE dia_wri( kt, Kmm ) 
    8181      !!--------------------------------------------------------------------- 
    8282      !!                  ***  ROUTINE dia_wri  *** 
     
    9090      !! 
    9191      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
     92      INTEGER, INTENT( in ) ::   Kmm     ! ocean time levelindex 
    9293      !!---------------------------------------------------------------------- 
    9394      !  
    9495      ! Output the initial state and forcings 
    9596      IF( ninist == 1 ) THEN 
    96          CALL dia_wri_state( 'output.init' ) 
     97         CALL dia_wri_state( 'output.init', Kmm ) 
    9798         ninist = 0 
    9899      ENDIF 
     
    332333#endif 
    333334 
    334    SUBROUTINE dia_wri_state( cdfile_name ) 
     335   SUBROUTINE dia_wri_state( cdfile_name, Kmm ) 
    335336      !!--------------------------------------------------------------------- 
    336337      !!                 ***  ROUTINE dia_wri_state  *** 
     
    346347      !!---------------------------------------------------------------------- 
    347348      CHARACTER (len=* ), INTENT( in ) ::   cdfile_name      ! name of the file created 
     349      INTEGER           , INTENT( in ) ::   Kmm              ! ocean time levelindex 
    348350      !! 
    349351      INTEGER :: inum 
     
    361363#endif 
    362364 
    363       CALL iom_rstput( 0, 0, inum, 'votemper', tsn(:,:,:,jp_tem) )    ! now temperature 
    364       CALL iom_rstput( 0, 0, inum, 'vosaline', tsn(:,:,:,jp_sal) )    ! now salinity 
    365       CALL iom_rstput( 0, 0, inum, 'sossheig', sshn              )    ! sea surface height 
    366       CALL iom_rstput( 0, 0, inum, 'vozocrtx', un                )    ! now i-velocity 
    367       CALL iom_rstput( 0, 0, inum, 'vomecrty', vn                )    ! now j-velocity 
    368       CALL iom_rstput( 0, 0, inum, 'vovecrtz', wn                )    ! now k-velocity 
    369       CALL iom_rstput( 0, 0, inum, 'sowaflup', emp - rnf         )    ! freshwater budget 
    370       CALL iom_rstput( 0, 0, inum, 'sohefldo', qsr + qns         )    ! total heat flux 
    371       CALL iom_rstput( 0, 0, inum, 'soshfldo', qsr               )    ! solar heat flux 
    372       CALL iom_rstput( 0, 0, inum, 'soicecov', fr_i              )    ! ice fraction 
    373       CALL iom_rstput( 0, 0, inum, 'sozotaux', utau              )    ! i-wind stress 
    374       CALL iom_rstput( 0, 0, inum, 'sometauy', vtau              )    ! j-wind stress 
     365      CALL iom_rstput( 0, 0, inum, 'votemper', ts (:,:,:,jp_tem,Kmm) )    ! now temperature 
     366      CALL iom_rstput( 0, 0, inum, 'vosaline', ts (:,:,:,jp_sal,Kmm) )    ! now salinity 
     367      CALL iom_rstput( 0, 0, inum, 'sossheig', ssh(:,:,         Kmm) )    ! sea surface height 
     368      CALL iom_rstput( 0, 0, inum, 'vozocrtx', uu (:,:,:,       Kmm) )    ! now i-velocity 
     369      CALL iom_rstput( 0, 0, inum, 'vomecrty', vv (:,:,:,       Kmm) )    ! now j-velocity 
     370      CALL iom_rstput( 0, 0, inum, 'vovecrtz', ww                    )    ! now k-velocity 
     371      CALL iom_rstput( 0, 0, inum, 'sowaflup', emp - rnf             )    ! freshwater budget 
     372      CALL iom_rstput( 0, 0, inum, 'sohefldo', qsr + qns             )    ! total heat flux 
     373      CALL iom_rstput( 0, 0, inum, 'soshfldo', qsr                   )    ! solar heat flux 
     374      CALL iom_rstput( 0, 0, inum, 'soicecov', fr_i                  )    ! ice fraction 
     375      CALL iom_rstput( 0, 0, inum, 'sozotaux', utau                  )    ! i-wind stress 
     376      CALL iom_rstput( 0, 0, inum, 'sometauy', vtau                  )    ! j-wind stress 
    375377  
    376378#if defined key_si3 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/SAS/nemogcm.F90

    r11536 r11949  
    3232   USE bdyini         ! open boundary cond. setting       (bdy_init routine). mandatory for sea-ice 
    3333   USE bdydta         ! open boundary cond. setting   (bdy_dta_init routine). mandatory for sea-ice 
     34   USE diu_layers     ! diurnal bulk SST and coolskin 
     35   USE step_diu       ! diurnal bulk SST timestepping (called from here if run offline) 
    3436   ! 
    3537   USE lib_mpp        ! distributed memory computing 
     
    5254   CHARACTER(lc) ::   cform_aaa="( /, 'AAAAAAAA', / ) "     ! flag for output listing 
    5355 
     56#if defined key_mpp_mpi 
     57   INCLUDE 'mpif.h' 
     58#endif 
     59 
    5460   !!---------------------------------------------------------------------- 
    5561   !! NEMO/SAS 4.0 , NEMO Consortium (2018) 
     
    8389      !                            !-----------------------! 
    8490#if defined key_agrif 
     91      Kbb_a = Nbb; Kmm_a = Nnn; Krhs_a = Nrhs   ! agrif_oce module copies of time level indices 
    8592      CALL Agrif_Declare_Var_dom   ! AGRIF: set the meshes for DOM 
    8693      CALL Agrif_Declare_Var       !  "      "   "   "      "  DYN/TRA  
     
    109116#if defined key_si3 
    110117      ! Recursive update from highest nested level to lowest: 
     118      Kbb_a = Nbb; Kmm_a = Nnn; Krhs_a = Nrhs   ! agrif_oce module copies of time level indices 
    111119      CALL Agrif_step_child_adj(Agrif_update_ice) 
    112120#endif 
     
    128136         ! 
    129137         DO WHILE( istp <= nitend .AND. nstop == 0 ) 
     138#if defined key_mpp_mpi 
     139            ncom_stp = istp 
     140            IF ( istp == ( nit000 + 1 ) ) elapsed_time = MPI_Wtime() 
     141            IF ( istp ==         nitend ) elapsed_time = MPI_Wtime() - elapsed_time 
     142#endif 
    130143            CALL stp        ( istp )  
    131144            istp = istp + 1 
     
    334347      CALL nemo_alloc() 
    335348 
     349      ! Initialise time level indices 
     350      Nbb = 1; Nnn = 2; Naa = 3; Nrhs = Naa 
     351 
    336352      !                             !-------------------------------! 
    337353      !                             !  NEMO general initialization  ! 
     
    346362                           CALL phy_cst         ! Physical constants 
    347363                           CALL eos_init        ! Equation of seawater 
    348                            CALL dom_init('SAS') ! Domain 
     364                           CALL dom_init( Nbb, Nnn, Naa, 'SAS') ! Domain 
    349365      IF( ln_ctl      )    CALL prt_ctl_init    ! Print control 
    350366       
     
    353369 
    354370      !                                      ! external forcing  
    355                            CALL sbc_init        ! Forcings : surface module  
     371                           CALL sbc_init( Nbb, Nnn, Naa )  ! Forcings : surface module  
    356372 
    357373      ! ==> clem: open boundaries init. is mandatory for sea-ice because ice BDY is not decoupled from   
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/SAS/sbcssm.F90

    r11536 r11949  
    6262CONTAINS 
    6363 
    64    SUBROUTINE sbc_ssm( kt ) 
     64   SUBROUTINE sbc_ssm( kt, Kbb, Kmm ) 
    6565      !!---------------------------------------------------------------------- 
    6666      !!                  ***  ROUTINE sbc_ssm  *** 
     
    7373      !!---------------------------------------------------------------------- 
    7474      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
     75      INTEGER, INTENT(in) ::   Kbb, Kmm   ! ocean time level indices 
     76                          ! (not needed for SAS but needed to keep a consistent interface in sbcmod.F90) 
    7577      ! 
    7678      INTEGER  ::   ji, jj     ! dummy loop indices 
     
    119121         IF( .NOT. ln_linssh ) e3t_m(:,:) = e3t_0(:,:,1) !clem: necessary at least for sas2D 
    120122         frq_m(:,:) = 1._wp                              !              - - 
    121          sshn (:,:) = 0._wp                              !              - - 
     123         ssh  (:,:,Kmm) = 0._wp                              !              - - 
    122124      ENDIF 
    123125       
    124126      IF ( nn_ice == 1 ) THEN 
    125          tsn(:,:,1,jp_tem) = sst_m(:,:) 
    126          tsn(:,:,1,jp_sal) = sss_m(:,:) 
    127          tsb(:,:,1,jp_tem) = sst_m(:,:) 
    128          tsb(:,:,1,jp_sal) = sss_m(:,:) 
    129       ENDIF 
    130       ub (:,:,1) = ssu_m(:,:) 
    131       vb (:,:,1) = ssv_m(:,:) 
     127         ts(:,:,1,jp_tem,Kmm) = sst_m(:,:) 
     128         ts(:,:,1,jp_sal,Kmm) = sss_m(:,:) 
     129         ts(:,:,1,jp_tem,Kbb) = sst_m(:,:) 
     130         ts(:,:,1,jp_sal,Kbb) = sss_m(:,:) 
     131      ENDIF 
     132      uu (:,:,1,Kbb) = ssu_m(:,:) 
     133      vv (:,:,1,Kbb) = ssv_m(:,:) 
    132134  
    133135      IF(ln_ctl) THEN                  ! print control 
     
    156158 
    157159 
    158    SUBROUTINE sbc_ssm_init 
     160   SUBROUTINE sbc_ssm_init( Kbb, Kmm ) 
    159161      !!---------------------------------------------------------------------- 
    160162      !!                  ***  ROUTINE sbc_ssm_init  *** 
     
    162164      !! ** Purpose :   Initialisation of sea surface mean data      
    163165      !!---------------------------------------------------------------------- 
     166      INTEGER, INTENT(in) ::   Kbb, Kmm   ! ocean time level indices  
     167                          ! (not needed for SAS but needed to keep a consistent interface in sbcmod.F90) 
    164168      INTEGER  :: ierr, ierr0, ierr1, ierr2, ierr3   ! return error code 
    165169      INTEGER  :: ifpr                               ! dummy loop indice 
     
    311315      ENDIF 
    312316      ! 
    313       CALL sbc_ssm( nit000 )   ! need to define ss?_m arrays used in iceistate 
     317      CALL sbc_ssm( nit000, Kbb, Kmm )   ! need to define ss?_m arrays used in iceistate 
    314318      l_initdone = .TRUE. 
    315319      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/SAS/step.F90

    r11536 r11949  
    4949 
    5050   !!---------------------------------------------------------------------- 
     51   !! time level indices 
     52   !!---------------------------------------------------------------------- 
     53   INTEGER, PUBLIC :: Nbb, Nnn, Naa, Nrhs          !! used by nemo_init 
     54   !!---------------------------------------------------------------------- 
    5155   !! NEMO/SAS 4.0 , NEMO Consortium (2018) 
    5256   !! $Id$ 
     
    7579#if defined key_agrif 
    7680      kstp = nit000 + Agrif_Nb_Step() 
     81      Kbb_a = Nbb; Kmm_a = Nnn; Krhs_a = Nrhs   ! agrif_oce module copies of time level indices 
    7782      IF ( lk_agrif_debug ) THEN 
    7883         IF ( Agrif_Root() .and. lwp) Write(*,*) '---' 
     
    96101      !           From SAS: ocean bdy data are wrong  (but we do not care) and ice bdy data are OK.   
    97102      !           This is not clean and should be changed in the future.  
    98       IF( ln_bdy     )       CALL bdy_dta ( kstp, kt_offset=+1 )   ! update dynamic & tracer data at open boundaries 
    99103      ! ==> 
    100                              CALL sbc    ( kstp )         ! Sea Boundary Condition (including sea-ice) 
     104      IF( ln_bdy     )       CALL bdy_dta( kstp,      Nnn, kt_offset=+1 )     ! update dynamic & tracer data at open boundaries 
     105                             CALL sbc    ( kstp, Nbb, Nnn )                   ! Sea Boundary Condition (including sea-ice) 
    101106 
    102                              CALL dia_wri( kstp )         ! ocean model: outputs 
     107                             CALL dia_wri( kstp,      Nnn )                   ! ocean model: outputs 
    103108 
    104109#if defined key_agrif 
     
    121126      IF( indic < 0  )  THEN 
    122127                             CALL ctl_stop( 'step: indic < 0' ) 
    123                              CALL dia_wri_state( 'output.abort' ) 
     128                             CALL dia_wri_state( 'output.abort', Nnn ) 
    124129      ENDIF 
    125       IF( kstp == nit000   ) CALL iom_close( numror )     ! close input  ocean restart file 
     130      IF( kstp == nit000   ) CALL iom_close( numror )           ! close input  ocean restart file 
    126131       
    127132      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    128133      ! Coupled mode 
    129134      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    130       IF( lk_oasis    )  CALL sbc_cpl_snd( kstp )     ! coupled mode : field exchanges if OASIS-coupled ice 
     135      IF( lk_oasis    )  CALL sbc_cpl_snd( kstp, Nbb, Nnn )     ! coupled mode : field exchanges if OASIS-coupled ice 
    131136 
    132137#if defined key_iomput 
Note: See TracChangeset for help on using the changeset viewer.