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 – 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

Location:
branches/2016/dev_merge_2016/NEMOGCM/CONFIG/WAD_TEST_CASES
Files:
8 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_merge_2016/NEMOGCM/CONFIG/WAD_TEST_CASES/EXP00/README.py

    r7412 r7514  
    1 ncks -d y,17,17,1 WAD_1ts_00010101_00010101_grid_T.nc sshtime.nc 
    2 ncks -4 -A -v gdepw_0,bathy -d y,17,17,1 -d z,9,9,1 -C mesh_mask_wad1.nc sshtime.nc 
     1ncks -O -d y,17,17,1 WAD_1ts_00010101_00010101_grid_T.nc sshtime.nc 
     2ncks -4 -A -v gdepw_0,ht_wd -d y,17,17,1 -d z,10,10,1 -C mesh_mask.nc sshtime.nc 
     3 
     4python2.7 matpoly2.py sshtime.nc 
     5animate wadfr*.png 
  • branches/2016/dev_merge_2016/NEMOGCM/CONFIG/WAD_TEST_CASES/EXP00/matpoly2.py

    r7412 r7514  
    2121fw = Dataset(pathin) 
    2222ssh = fw.variables['sossheig'][:,:,:] 
    23 #bat = fw.variables['gdepw_0'][0,0,:,:] 
    24 bat = fw.variables['bathy'][0,:,:] 
     23bat = fw.variables['gdepw_0'][0,0,:,:] 
     24#bat = fw.variables['ht_wd'][0,:,:] 
    2525#vot = fw.variables['votemper'][:,0,:,:] 
    2626vot = fw.variables['sosaline'][:,:,:] 
     
    4949 dy   = np.int(t/24.0) 
    5050 
    51  tfac = 12.0/3600.0 
     51 tfac = 18.0/3600.0 
    5252 t24  = np.int(np.mod(t*tfac,24)) 
    5353 dy   = np.int(t*tfac/24.0) 
     
    112112 p.set_array(np.array(colors)) 
    113113 
     114 ax.set_ylim([-10., 4.0]) 
     115 ax.set_xlim([0., 50.0]) 
    114116 ax.add_collection(p) 
    115117 ax.plot(xs,ys, '--', color='black', ms=10) 
  • branches/2016/dev_merge_2016/NEMOGCM/CONFIG/WAD_TEST_CASES/MY_SRC/usrdef_istate.F90

    r7467 r7514  
    1414   !!---------------------------------------------------------------------- 
    1515   USE par_oce        ! ocean space and time domain 
    16    USE dom_oce , ONLY : mi0, mig, mjg, glamt, ht_0 
     16   USE dom_oce , ONLY : mi0, mig, mjg, glamt, gphit, ht_0 
    1717   USE phycst         ! physical constants 
    1818   USE wet_dry        ! Wetting and drying 
     
    7474      !!---------------------------------------------------------------------- 
    7575      ! 
    76       ! Uniform T & S in all test cases 
     76      ! Uniform T & S in most test cases 
    7777      pts(:,:,:,jp_tem) = 10._wp 
    78       !tsb(:,:,:,jp_tem) = 10._wp 
    7978      pts(:,:,:,jp_sal) = 35._wp 
    80       !tsb(:,:,:,jp_sal) = 35._wp 
    8179      SELECT CASE ( nn_cfg )  
    8280         !                                        ! ==================== 
     
    9088            do ji = 1,jpi 
    9189             pssh(ji,:) = ( -5.5_wp + 5.5_wp*glamt(ji,1)/50._wp)*ptmask(ji,:,1) 
    92              !write(*,*) 'SSH ',jpk,mig(ji),pssh(ji,1),ht_0(ji,1),-5.5_wp+5.5_wp*glamt(ji,1)/50._wp,ptmask(ji,1,1) 
    9390            end do 
    9491            !                                     ! ==================== 
     
    10198            ! 
    10299            do ji = 1,jpi 
    103              pssh(ji,:) = ( -5.5_wp + 3.9_wp*FLOAT(jpiglo - mig(ji))/FLOAT(jpiglo-1))*ptmask(ji,:,1) 
     100             pssh(ji,:) = ( -5.5_wp + 6.5_wp*glamt(ji,1)/50._wp)*ptmask(ji,:,1) 
    104101            end do 
    105102            !                                     ! ==================== 
     
    112109            ! 
    113110            do ji = 1,jpi 
    114              pssh(ji,:) = ( -7.5_wp + 6.9_wp*FLOAT(jpiglo - mig(ji))/FLOAT(jpiglo-1))*ptmask(ji,:,1) 
     111             pssh(ji,:) = ( -5.5_wp + 5.5_wp*glamt(ji,1)/50._wp)*ptmask(ji,:,1) 
    115112            end do 
    116113 
     
    125122            ! 
    126123            DO ji = 1, jpi 
    127                zi = MAX(1.0-FLOAT((mig(ji)-25)**2)/400.0, 0.0 ) 
     124               zi = MAX(1.0-((glamt(ji,1)-25._wp)**2)/400.0, 0.0 ) 
    128125               DO jj = 1, jpj 
    129                   zj = MAX(1.0-FLOAT((mjg(jj)-17)**2)/144.0, 0.0 ) 
     126                  zj = MAX(1.0-((gphit(1,jj)-17._wp)**2)/144.0, 0.0 ) 
    130127                  pssh(ji,jj) = -8.5_wp + 8.5_wp*zi*zj 
    131128               END DO 
     
    141138            IF(lwp) WRITE(numout,*) '~~~~~~~~~~' 
    142139            ! 
    143             ! Needed rn_wdmin2 increased to 0.01 for this case? 
    144140            do ji = 1,jpi 
    145              pssh(ji,:) = ( -5.5_wp + 9.0_wp*FLOAT(mig(ji))/FLOAT(jpiglo-1))*ptmask(ji,:,1) 
     141             pssh(ji,:) = ( -5.5_wp + 5.5_wp*glamt(ji,1)/50._wp)*ptmask(ji,:,1) 
    146142            end do 
    147143 
     
    166162             !pssh(ji,:) = ( -4.5_wp + 8.0_wp*FLOAT(jpiglo - mig(ji))/FLOAT(jpiglo-1))*ptmask(ji,:,1) 
    167163             !6e 
    168              pssh(ji,:) = ( -3.5_wp + 7.0_wp*FLOAT(jpiglo - mig(ji))/FLOAT(jpiglo-1))*ptmask(ji,:,1) 
     164             pssh(ji,:) = ( -3.5_wp + 5.5_wp*(50._wp-glamt(ji,1))/50._wp)*ptmask(ji,:,1) 
    169165             !6f 
    170166             !pssh(ji,:) = ( 0.5_wp + 3.75_wp*FLOAT(jpiglo - mig(ji))/FLOAT(jpiglo-1))*ptmask(ji,:,1) 
     
    173169            do ji = mi0(jpiglo/2), mi0(jpiglo) 
    174170             pts(ji,:,:,jp_sal) = 30._wp 
    175              !tsb(ji,:,:,jp_sal) = 30._wp 
    176171            end do 
    177172            ! 
     
    191186            IF( ht_wd(ji,jj) + pssh(ji,jj) < rn_wdmin1 ) THEN 
    192187               pssh(ji,jj) = ptmask(ji,jj,1)*( rn_wdmin1 - ht_wd(ji,jj) ) 
    193                !IF (jj.eq.4) write(*,*) 'SSH2 ',mig(ji),pssh(ji,4),ht_0(ji,4),-5.5_wp+5.5_wp*glamt(ji,4)/50._wp,ptmask(ji,4,1) 
    194188            ENDIF 
    195189         end do 
    196190      end do 
    197       !sshb = sshn 
    198       !ssha = sshn 
    199191      ! 
    200       !     CALL wad_istate                      ! WAD test configuration : start from pre-defined T-S fields and initial ssh slope 
    201       !    
    202192   END SUBROUTINE usr_def_istate 
    203193 
  • 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.