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 7514 for branches/2016/dev_merge_2016/NEMOGCM/CONFIG/WAD_TEST_CASES/MY_SRC/usrdef_zgr.F90 – NEMO

Ignore:
Timestamp:
2016-12-20T15:40:04+01:00 (8 years ago)
Author:
acc
Message:

Branch dev_merge_2016. Tidying up wetting and drying test cases. Only usrdef routines are now required in the MY_SRC directory and all test cases will run. Still some robustness issues to resolve with test case 6

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_merge_2016/NEMOGCM/CONFIG/WAD_TEST_CASES/MY_SRC/usrdef_zgr.F90

    r7467 r7514  
    106106                 zi = MIN((glamt(ji,1) - 10.0)/40.0, 1.0 ) 
    107107                 zht(ji,:) = MAX(zbathy*zi, 1.5)  
    108                  IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zht(ji,1) 
    109108               END DO 
    110109               zht(mi0(1):mi1(1),:) = -4._wp 
     
    122121               DO ji = 1, jpi 
    123122                 zi = MAX(1.0-((glamt(ji,1)-25.0)**2)/484.0, 0.0 ) 
    124                  zi = MAX(1.0-((glamt(ji,1)-25.0)**2)/484.0, -2.0 ) 
    125                  zht(ji,:) = MAX(zbathy*zi, -20.0) 
    126                  IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zht(ji,1) 
    127                END DO 
    128                zht(mi0(1):mi1(2),:) = -4._wp 
    129                zht(mi0(jpiglo-1):mi1(jpiglo),:) = -4._wp 
     123                 zht(ji,:) = MAX(zbathy*zi, 1.5) 
     124               END DO 
     125               zht(mi0(1):mi1(1),:) = -4._wp 
     126               zht(mi0(jpiglo):mi1(jpiglo),:) = -4._wp 
    130127               zht(:,mj0(1):mj1(1)) = -4._wp 
    131128               zht(:,mj0(jpjglo):mj1(jpjglo)) = -4._wp 
     
    142139               DO jj = 1, jpj 
    143140                 zj = MAX(1.0-((gphit(1,jj)-17.0)**2)/196.0, -2.0 ) 
    144                  zht(ji,jj) = MAX(zbathy*zi*zj, -2.0) 
    145                END DO 
    146                  IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zht(ji,1) 
     141                 zht(ji,jj) = MAX(zbathy*zi*zj, 1.5) 
     142               END DO 
    147143               END DO 
    148144               zht(mi0(1):mi1(1),:) = -4._wp 
    149                zht(mi0(jpiglo-1):mi1(jpiglo),:) = -4._wp 
     145               zht(mi0(jpiglo):mi1(jpiglo),:) = -4._wp 
    150146               zht(:,mj0(1):mj1(1)) = -4._wp 
    151147               zht(:,mj0(jpjglo):mj1(jpjglo)) = -4._wp 
     
    160156               DO ji = 1, jpi 
    161157                 zi = MIN(glamt(ji,1)/45.0, 1.0 ) 
    162                  zht(ji,:) = MAX(zbathy*zi, 0.5) 
     158                 zht(ji,:) = MAX(zbathy*zi, 1.5) 
    163159                 IF( glamt(ji,1) >= 46.0 ) THEN 
    164160                   zht(ji,:) = 10.0 
     
    170166                 ELSE IF( glamt(ji,1) >= 4.0 .AND. glamt(ji,1) < 15.0 ) THEN 
    171167                   zi = 2.0/11.0 
    172                    zht(ji,:) = MAX(2.5 - zi*(16.0-glamt(ji,1)), 0.5) 
     168                   zht(ji,:) = MAX(2.5 - zi*(16.0-glamt(ji,1)), 1.5) 
    173169                 ELSE IF( glamt(ji,1) >= 1.0 .AND. glamt(ji,1) < 4.0 ) THEN 
    174                    zht(ji,:) = 0.5 
     170                   zht(ji,:) = 1.5 
    175171                 ENDIF 
    176                  IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zht(ji,1) 
    177172               END DO 
    178173               !                                    ! =========================== 
     
    192187                 zi = MAX(1.0-((glamt(ji,1)-25.0)**2)/484.0, -2.0 ) 
    193188                 zj = 0.95*MAX(EXP(-1.0*((glamt(ji,1)-25.0)**2)/32.0) , 0.0 ) 
    194                  zht(ji,:) = MAX(zbathy*(zi-zj), -2.0) 
    195                  IF(lwp)write(numout,*) 'ZDTA ',ji,zi,zht(ji,1) 
     189                 zht(ji,:) = MAX(zbathy*(zi-zj), 1.0) 
    196190               END DO 
    197191               zht(mi0(1):mi1(1),:) = -4._wp 
     
    214208         zhu(ji,:) = 0.5_wp * ( zht(ji,:) + zht(ji+1,:) ) 
    215209      END DO 
    216       IF(lwp) write(numout,*) 'E3a zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:)) 
    217210      CALL lbc_lnk( zhu, 'U', 1. )     ! boundary condition: this mask the surrounding grid-points 
    218211      !                                ! ==>>>  set by hand non-zero value on first/last columns & rows  
    219       IF(lwp) write(numout,*) 'E3b zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:)) 
    220212      DO ji = mi0(1), mi1(1)              ! first row of global domain only 
    221213         zhu(ji,:) = zht(1,:) 
     
    224216         zhu(ji,:) = zht(jpi,:) 
    225217      END DO 
    226       IF(lwp) write(numout,*) 'E3c zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:)) 
    227218      ! at v-point: averaging zht 
    228219      zhv = 0._wp 
     
    231222      END DO 
    232223      CALL lbc_lnk( zhv, 'V', 1. )     ! boundary condition: this mask the surrounding grid-points 
    233       IF(lwp) write(numout,*) 'E3d zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:)) 
    234224      !avoid the zero depth on T- (U-,V-,F-) points 
    235225        DO jj = 1, jpj 
     
    243233          END DO 
    244234        END DO 
    245       IF(lwp) write(numout,*) 'E3e zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:)) 
    246235      !      
    247236      CALL zgr_z1d( pdept_1d, pdepw_1d, pe3t_1d , pe3w_1d )   ! Reference z-coordinate system 
     
    274263            DO ji = 1, jpi 
    275264              IF( zht(ji,jj) <= -(rn_wdld - rn_wdmin2)) THEN 
    276                 !WRITE(numout,*) 'KBOT ',ji,jj,zht(ji,jj),rn_wdld,rn_wdmin2 
    277265                k_bot(ji,jj) = 0 
    278266                zht(ji,jj) = rn_wdmin1 * REAL( jpkm1 , wp) * 0.5_wp 
     
    280268                k_bot(ji,jj) = 2 
    281269                zht(ji,jj) = rn_wdmin1 * REAL( jpkm1 , wp) * 0.5_wp 
    282                 !WRITE(numout,*) 'KBOT1 ',ji,jj,zht(ji,jj),rn_wdmin1 
    283270              ENDIF 
    284271           END DO 
     
    287274         zhu(ji,:) = 0.5_wp * ( zht(ji,:) + zht(ji+1,:) ) 
    288275      END DO 
    289       IF(lwp) write(numout,*) 'E3f zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:)) 
    290276      !                                ! ==>>>  set by hand non-zero value on 
    291277      !                                first/last columns & rows  
    292       IF(lwp) write(numout,*) 'E3f Zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:)) 
    293278      CALL lbc_lnk( zhu, 'U', 1. )     ! boundary condition: this mask the surrounding grid-points 
    294       IF(lwp) write(numout,*) 'E3F zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:)) 
    295279      DO ji = mi0(1), mi1(1)              ! first row of global domain only 
    296280         zhu(ji,:) = zht(ji,:) 
     
    300284      END DO 
    301285      ! at v-point: averaging zht 
    302       IF(lwp) write(numout,*) 'E3g zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:)) 
    303286      zhv = 0._wp 
    304287      DO jj = 1, jpjm1 
    305288         zhv(:,jj) = 0.5_wp * ( zht(:,jj) + zht(:,jj+1) ) 
    306289      END DO 
    307       IF(lwp) write(numout,*) 'E3h zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:)) 
    308290      CALL lbc_lnk( zhv, 'V', 1. ) 
    309       IF(lwp) write(numout,*) 'E3H zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:)) 
    310291      DO jj = mj0(1), mj1(1)   ! first  row of global domain only 
    311292         zhv(:,jj) = zht(:,jj) 
     
    359340         CALL lbc_lnk( pe3vw, 'V', 1. ) 
    360341         CALL lbc_lnk( pe3f , 'F', 1. ) 
    361       WHERE( pe3t (:,:,:) == 0._wp )   pe3t (:,:,:) = 1._wp 
    362       WHERE( pe3u (:,:,:) == 0._wp )   pe3u (:,:,:) = 1._wp 
    363       WHERE( pe3v (:,:,:) == 0._wp )   pe3v (:,:,:) = 1._wp 
    364       WHERE( pe3f (:,:,:) == 0._wp )   pe3f (:,:,:) = 1._wp 
    365       WHERE( pe3w (:,:,:) == 0._wp )   pe3w (:,:,:) = 1._wp 
    366       WHERE( pe3uw(:,:,:) == 0._wp )   pe3uw(:,:,:) = 1._wp 
    367       WHERE( pe3vw(:,:,:) == 0._wp )   pe3vw(:,:,:) = 1._wp 
    368       IF(lwp) write(numout,*) 'E3 TU ',SUM(0._wp/pe3t(:,:,:)), MINVAL(pe3t(:,:,:)), rn_wdmin1 ; CALL FLUSH(numout) 
    369       IF(lwp) write(numout,*) 'E3 tu ',SUM(0._wp/pe3u(:,:,:)), MINVAL(pe3u(:,:,:)) 
    370       IF(lwp) write(numout,*) 'E3 tv ',SUM(0._wp/pe3v(:,:,:)), MINVAL(pe3v(:,:,:)) 
    371       IF(lwp) write(numout,*) 'E3 tf ',SUM(0._wp/pe3f(:,:,:)), MINVAL(pe3f(:,:,:)) 
    372       IF(lwp) write(numout,*) 'E3 zu ', MINVAL(zht(:,:)), MINVAL(zhu(:,:)), MINVAL(zhv(:,:)) 
     342         WHERE( pe3t (:,:,:) == 0._wp )   pe3t (:,:,:) = 1._wp 
     343         WHERE( pe3u (:,:,:) == 0._wp )   pe3u (:,:,:) = 1._wp 
     344         WHERE( pe3v (:,:,:) == 0._wp )   pe3v (:,:,:) = 1._wp 
     345         WHERE( pe3f (:,:,:) == 0._wp )   pe3f (:,:,:) = 1._wp 
     346         WHERE( pe3w (:,:,:) == 0._wp )   pe3w (:,:,:) = 1._wp 
     347         WHERE( pe3uw(:,:,:) == 0._wp )   pe3uw(:,:,:) = 1._wp 
     348         WHERE( pe3vw(:,:,:) == 0._wp )   pe3vw(:,:,:) = 1._wp 
    373349      ENDIF 
    374350      ! 
Note: See TracChangeset for help on using the changeset viewer.