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 117 for trunk/NEMO/OPA_SRC/LDF – NEMO

Changeset 117 for trunk/NEMO/OPA_SRC/LDF


Ignore:
Timestamp:
2004-06-29T13:13:36+02:00 (20 years ago)
Author:
opalod
Message:

CT : UPDATE072 : ahtt is proportional to the cube of the maximum of the gridspacing in the to horizontal direction as in ldfdyn_c2d.h90

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/LDF/ldftra_c2d.h90

    r113 r117  
    5151      ENDIF 
    5252 
    53       zdx_max = MAXVAL( e1t(:,:) ) 
    54       IF( lk_mpp )   CALL mpp_max( zdx_max )   ! max over the global domain 
     53      ! harmonic operator : (U-, V-, W-points) 
     54      ! ================== 
     55      IF( ln_traldf_lap ) THEN 
     56 
     57         ahtu(:,:) = aht0                ! set ahtu = ahtv at u- and v-points, 
     58         ahtv(:,:) = aht0                ! and ahtw at w-point (idem T-point) 
     59         ahtw(:,:) = aht0                !  
     60 
     61         CALL lbc_lnk( ahtu, 'U', 1. )   ! Lateral boundary conditions 
     62         CALL lbc_lnk( ahtv, 'V', 1. )   ! (no change of sign) 
     63         CALL lbc_lnk( ahtw, 'W', 1. ) 
     64 
     65         ! Control print 
     66         IF( lwp .AND. ld_print ) THEN 
     67            WRITE(numout,*) 
     68            WRITE(numout,*) 'inildf: ahtu array' 
     69            CALL prihre( ahtu, jpi, jpj, 1, jpi, 1,   & 
     70               &                         1, jpj, 1, 1.e-3, numout ) 
     71            WRITE(numout,*) 
     72            WRITE(numout,*) 'inildf: ahtv array' 
     73            CALL prihre( ahtv, jpi, jpj, 1, jpi, 1,   & 
     74               &                         1, jpj, 1, 1.e-3, numout ) 
     75            WRITE(numout,*) 
     76            WRITE(numout,*) 'inildf: ahtw array' 
     77            CALL prihre( ahtw, jpi, jpj, 1, jpi, 1,   & 
     78               &                         1, jpj, 1, 1.e-3, numout ) 
     79         ENDIF 
     80      ENDIF 
    5581       
    5682      ! biharmonic operator : (T-point) 
    5783      ! ==================== 
    58       ! Here: ahtt is proportional to the cube of the maximum of the gridspacing 
    59       !       in the to horizontal direction 
    60        
    61       za00 = aht0 / ( zdx_max * zdx_max * zdx_max ) 
     84      IF( ln_traldf_bilap ) THEN 
     85         ! (USER: modify ahtt following your desiderata) 
     86         ! Here: ahm is proportional to the cube of the maximum of the gridspacing 
     87         !       in the to horizontal direction 
    6288 
    63       ahtt(:,:) = za00 * e1t(:,:) * e1t(:,:) *e1t(:,:)      ! set ahtt at T-point  
     89         zdx_max = MAXVAL( e1t(:,:) ) 
     90         IF( lk_mpp )   CALL mpp_max( zdx_max )   ! max over the global domain 
    6491 
    65       CALL lbc_lnk( ahtt, 'T', 1. )   ! Lateral boundary conditions on ( ahtt ) 
     92         za00 = aht0 / ( zdx_max * zdx_max * zdx_max ) 
     93         ahtt(:,:) = za00 * e1t(:,:) * e1t(:,:) *e1t(:,:)      ! set ahtt at T-point  
    6694 
    67       ! Control print 
    68       IF( lwp .AND. ld_print ) THEN 
    69          WRITE(numout,*) 
    70          WRITE(numout,*) 'inildf: 2D ahtt array' 
    71          CALL prihre( ahtt, jpi, jpj, 1, jpi, 1,   & 
    72             &                         1, jpj, 1, 1.e-3, numout ) 
    73       ENDIF 
     95         CALL lbc_lnk( ahtt, 'T', 1. )   ! Lateral boundary conditions on ( ahtt ) 
    7496 
    75  
    76       ! harmonic operator : (U-, V-, W-points) 
    77       ! ================== 
    78  
    79       za00 = aht0 / zdx_max 
    80  
    81       ahtu(:,:) = za00 * e1u(:,:)               ! set ahtu = ahtv at u- and v-points, 
    82       ahtv(:,:) = za00 * e1f(:,:)               ! and ahtw at w-point (idem T-point) 
    83       ahtw(:,:) = za00 * e1t(:,:)               !  
    84  
    85       CALL lbc_lnk( ahtu, 'U', 1. )   ! Lateral boundary conditions 
    86       CALL lbc_lnk( ahtv, 'V', 1. )   ! (no change of sign) 
    87       CALL lbc_lnk( ahtw, 'W', 1. ) 
    88  
    89       ! Control print 
    90       IF( lwp .AND. ld_print ) THEN 
    91          WRITE(numout,*) 
    92          WRITE(numout,*) 'inildf: ahtu array' 
    93          CALL prihre( ahtu, jpi, jpj, 1, jpi, 1,   & 
    94             &                         1, jpj, 1, 1.e-3, numout ) 
    95          WRITE(numout,*) 
    96          WRITE(numout,*) 'inildf: ahtv array' 
    97          CALL prihre( ahtv, jpi, jpj, 1, jpi, 1,   & 
    98             &                         1, jpj, 1, 1.e-3, numout ) 
    99          WRITE(numout,*) 
    100          WRITE(numout,*) 'inildf: ahtw array' 
    101          CALL prihre( ahtw, jpi, jpj, 1, jpi, 1,   & 
    102             &                         1, jpj, 1, 1.e-3, numout ) 
     97         ! Control print 
     98         IF( lwp .AND. ld_print ) THEN 
     99            WRITE(numout,*) 
     100            WRITE(numout,*) 'inildf: 2D ahtt array' 
     101            CALL prihre( ahtt, jpi, jpj, 1, jpi, 1,   & 
     102               &                         1, jpj, 1, 1.e-3, numout ) 
     103         ENDIF 
    103104      ENDIF 
    104105 
Note: See TracChangeset for help on using the changeset viewer.