New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 10927 for NEMO – NEMO

Changeset 10927 for NEMO


Ignore:
Timestamp:
2019-05-03T17:13:09+02:00 (5 years ago)
Author:
acc
Message:

2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps : Tidy up the diurnal cycle code (DIU) to separate its stand-alone functionality from the cool skin and warm layer calculations. The latter can be called from step; the former needs to be kept out of step so that it can implement its own time-level indices.
The stand-alone functionality will need to be revisited once the new timestepping is finalised. SETTE tested (ORCA2_ICE and SAS).

Location:
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src
Files:
1 added
6 edited
1 moved

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/DIU/step_diu.F90

    r10922 r10927  
    66   !! History :  3.7  ! 2015-11  (J. While)  Original code 
    77 
    8    USE diurnal_bulk    ! diurnal SST bulk routines  (diurnal_sst_takaya routine)  
    9    USE cool_skin       ! diurnal cool skin correction (diurnal_sst_coolskin routine)    
     8   USE diu_layers      ! diurnal SST bulk and coolskin routines 
    109   USE iom 
    1110   USE sbc_oce 
     
    6463      ENDIF 
    6564      
    66       ! Cool skin 
    67       IF( .NOT.ln_diurnal )   CALL ctl_stop( "stp_diurnal: ln_diurnal not set" ) 
    68           
    69       IF( .NOT. ln_blk    )   CALL ctl_stop( "stp_diurnal: diurnal flux processing only implemented for bulk forcing" )  
    70  
    71       CALL diurnal_sst_coolskin_step( qns, taum, rhop(:,:,1), rdt) 
    72  
    73       CALL iom_put( "sst_wl"   , x_dsst               )    ! warm layer (write out before update below). 
    74       CALL iom_put( "sst_cs"   , x_csdsst             )    ! cool skin 
    75  
    76       ! Diurnal warm layer model        
    77       CALL diurnal_sst_takaya_step( kstp, &  
    78       &    qsr, qns, taum, rhop(:,:,1), rdt)  
     65      call diurnal_layers( kstp )                     ! coolskin and warm layer calculations 
    7966 
    8067      IF( ln_diurnal_only ) THEN 
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/SBC/sbcmod.F90

    r10922 r10927  
    231231      CASE DEFAULT                     !- not supported 
    232232      END SELECT 
     233      IF( ln_diurnal .AND. .NOT. ln_blk  )   CALL ctl_stop( "sbc_init: diurnal flux processing only implemented for bulk forcing" ) 
    233234      ! 
    234235      !                       !**  allocate and set required variables 
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/nemogcm.F90

    r10922 r10927  
    6868   USE stopar         ! Stochastic param.: ??? 
    6969   USE stopts         ! Stochastic param.: ??? 
    70    USE diurnal_bulk   ! diurnal bulk SST  
     70   USE diu_layers     ! diurnal bulk SST and coolskin 
    7171   USE step_diu       ! diurnal bulk SST timestepping (called from here if run offline) 
    7272   USE crsini         ! initialise grid coarsening utility 
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/step.F90

    r10922 r10927  
    213213      ! cool skin 
    214214      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<       
    215       IF ( ln_diurnal )  CALL stp_diurnal( kstp ) 
     215      IF ( ln_diurnal )  CALL diurnal_layers( kstp ) 
    216216       
    217217      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/step_oce.F90

    r10880 r10927  
    6666   USE zdfosm  , ONLY : osm_rst, dyn_osm, tra_osm      ! OSMOSIS routines used in step.F90 
    6767 
    68    USE step_diu        ! Time stepping for diurnal sst 
    69    USE diurnal_bulk    ! diurnal SST bulk routines  (diurnal_sst_takaya routine)  
    70    USE cool_skin       ! diurnal cool skin correction (diurnal_sst_coolskin routine)    
     68   USE diu_layers      ! diurnal SST bulk and coolskin routines 
    7169   USE sbc_oce         ! surface fluxes   
    7270    
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/SAS/nemogcm.F90

    r10922 r10927  
    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 
     
    5153 
    5254   CHARACTER(lc) ::   cform_aaa="( /, 'AAAAAAAA', / ) "     ! flag for output listing 
     55 
     56#if defined key_mpp_mpi 
     57   INCLUDE 'mpif.h' 
     58#endif 
    5359 
    5460   !!---------------------------------------------------------------------- 
     
    128134         ! 
    129135         DO WHILE( istp <= nitend .AND. nstop == 0 ) 
     136#if defined key_mpp_mpi 
     137            ncom_stp = istp 
     138            IF ( istp == ( nit000 + 1 ) ) elapsed_time = MPI_Wtime() 
     139            IF ( istp ==         nitend ) elapsed_time = MPI_Wtime() - elapsed_time 
     140#endif 
    130141            CALL stp        ( istp )  
    131142            istp = istp + 1 
     
    169180#endif 
    170181      ! 
     182      IF(lwm) THEN 
     183         IF( nstop == 0 ) THEN   ;   STOP 0 
     184         ELSE                    ;   STOP 999 
     185         ENDIF 
     186      ENDIF 
     187      ! 
    171188   END SUBROUTINE nemo_gcm 
    172189 
     
    180197      INTEGER  ::   ji                 ! dummy loop indices 
    181198      INTEGER  ::   ios, ilocal_comm   ! local integers 
    182       CHARACTER(len=120), DIMENSION(30) ::   cltxt, cltxt2, clnam 
     199      CHARACTER(len=120), DIMENSION(60) ::   cltxt, cltxt2, clnam 
    183200      CHARACTER(len=80)                 ::   clname 
    184201      !! 
Note: See TracChangeset for help on using the changeset viewer.