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 372 for trunk/NEMO/OPA_SRC/DYN/dynspg.F90 – NEMO

Ignore:
Timestamp:
2005-12-29T11:51:26+01:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_036 : CT : auto-tasking version of the time splitting & explicit surface pressure gradient

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/DYN/dynspg.F90

    r367 r372  
    1818   USE dynspg_flt     ! surface pressure gradient     (dyn_spg_flt routine) 
    1919   USE dynspg_rl      ! surface pressure gradient     (dyn_spg_rl  routine) 
    20    USE dynspg_flt_jki ! surface pressure gradient  (dyn_spgflt_jki routine) 
     20   USE dynspg_exp_jki ! surface pressure gradient (dyn_spg_exp_jki routine) 
     21   USE dynspg_ts_jki  ! surface pressure gradient (dyn_spg_ts_jki  routine) 
     22   USE dynspg_flt_jki ! surface pressure gradient (dyn_spg_flt_jki routine) 
    2123   USE trdmod         ! ocean dynamics trends 
    2224   USE trdmod_oce     ! ocean variables trends 
     
    8385         IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' spg2 - Ua: ', mask1=umask, & 
    8486               &                    tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
     87         CALL dyn_spg_exp_jki( kt ) 
     88         IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' spg10- Ua: ', mask1=umask, & 
     89               &                    tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
     90         CALL dyn_spg_ts_jki ( kt ) 
     91         IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' spg12- Ua: ', mask1=umask, & 
     92               &                    tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    8593         CALL dyn_spg_flt_jki( kt, kindic ) 
    86          IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' spg4 - Ua: ', mask1=umask, & 
    87                &                    tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    88       CASE ( 0 )                                       ! explicit 
     94         IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' spg13- Ua: ', mask1=umask, & 
     95               &                    tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
     96      CASE (  0 )                                       ! explicit 
    8997         CALL dyn_spg_exp    ( kt ) 
    90       CASE ( 1 )                                       ! time-splitting 
     98      CASE (  1 )                                       ! time-splitting 
    9199         CALL dyn_spg_ts     ( kt ) 
    92       CASE ( 2 )                                       ! filtered 
     100      CASE (  2 )                                       ! filtered 
    93101         CALL dyn_spg_flt    ( kt, kindic ) 
    94       CASE ( 3 )                                       ! rigid lid 
     102      CASE (  3 )                                       ! rigid lid 
    95103         CALL dyn_spg_rl     ( kt, kindic ) 
    96       CASE ( 4 )                                       ! filtered with j-k-i loop 
     104 
     105      CASE ( 10 )                                       ! explicit with j-k-i loop 
     106         CALL dyn_spg_exp_jki( kt ) 
     107      CASE ( 11 )                                       ! time-splitting with j-k-i loop 
     108         CALL dyn_spg_ts_jki ( kt ) 
     109      CASE ( 12 )                                       ! filtered with j-k-i loop 
    97110         CALL dyn_spg_flt_jki( kt, kindic ) 
    98111      END SELECT 
     
    101114      IF( l_trddyn )   THEN 
    102115         SELECT CASE ( nspg ) 
    103          CASE ( 0, 1, 3 ) 
     116         CASE ( 0, 1, 3, 10, 11 ) 
    104117            ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    105118            ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    106          CASE( 2 ) 
     119         CASE( 2, 12 ) 
    107120            z2dt = 2. * rdt 
    108121            IF( neuler == 0 .AND. kt == nit000 ) z2dt = rdt 
     
    166179      IF( lk_dynspg_flt)   nspg =  2 
    167180      IF( lk_dynspg_rl )   nspg =  3 
    168       IF( lk_dynspg_flt .AND. lk_jki )   nspg =  4 
     181      IF( lk_jki       )   nspg =  nspg + 10 
     182      IF( nspg == 13   )   nspg =  3 
     183 
     184      IF( lk_esopa     )   nspg = -1 
    169185 
    170186     IF(lwp) THEN 
    171187         WRITE(numout,*) 
    172          IF( nspg == -1 )   WRITE(numout,*) '              ESOPA test All scheme used except rigid-lid' 
    173          IF( nspg ==  0 )   WRITE(numout,*) '              explicit free surface' 
    174          IF( nspg ==  1 )   WRITE(numout,*) '              free surface with time splitting scheme' 
    175          IF( nspg ==  2 )   WRITE(numout,*) '              filtered free surface' 
    176          IF( nspg ==  3 )   WRITE(numout,*) '              rigid-lid' 
    177          IF( nspg ==  4 )   WRITE(numout,*) '              filtered free surface with j-k-i loop' 
     188         IF( nspg == -1 )   WRITE(numout,*) '     ESOPA test All scheme used except rigid-lid' 
     189         IF( nspg ==  0 )   WRITE(numout,*) '     explicit free surface' 
     190         IF( nspg ==  1 )   WRITE(numout,*) '     free surface with time splitting scheme' 
     191         IF( nspg ==  2 )   WRITE(numout,*) '     filtered free surface' 
     192         IF( nspg ==  3 )   WRITE(numout,*) '     rigid-lid' 
     193         IF( nspg == 10 )   WRITE(numout,*) '     explicit free surface with j-k-i loop' 
     194         IF( nspg == 11 )   WRITE(numout,*) '     time splitting free surface with j-k-i loop' 
     195         IF( nspg == 12 )   WRITE(numout,*) '     filtered free surface with j-k-i loop' 
    178196      ENDIF 
    179197 
Note: See TracChangeset for help on using the changeset viewer.