Changeset 8870
- Timestamp:
- 2017-12-01T10:48:12+01:00 (7 years ago)
- Location:
- branches/UKMO/ROMS_WAD_7832/NEMOGCM
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/SHARED/namelist_ref
r8841 r8870 108 108 / 109 109 !----------------------------------------------------------------------- 110 &namwad ! Wetting and drying (default F) 111 !----------------------------------------------------------------------- 112 ln_wd = .false. ! T/F activation of wetting and drying 113 rn_wdmin1 = 0.1 ! Minimum wet depth on dried cells 114 rn_wdmin2 = 0.01 ! Tolerance of min wet depth on dried cells 115 rn_wdld = 20.0 ! Land elevation below which wetting/drying is allowed 116 nn_wdit = 10 ! Max iterations for W/D limiter 110 &namwad ! Wetting and drying default it no WAD 111 !----------------------------------------------------------------------- 112 ln_wd_il = .false ! T/F activation of iterative limiter for wetting and drying scheme 113 ln_wd_dl = .false. ! T/F activation of directional llimiter for wetting drying scheme 114 ln_wd_dl_bc = .false. ! T/F Directional limiteer Baroclinic option 115 ln_wd_dl_rmp = .false. ! T/F Turn on directional limiter ramp 116 rn_wdmin0 = 0.30 ! dpoth at which wetting/drying starts 117 rn_wdmin1 = 0.2 ! Minimum wet depth on dried cells 118 rn_wdmin2 = 0.0001 ! Tolerance of min wet depth on dried cells 119 rn_wdld = 2.5 ! Land elevation below which wetting/drying is allowed 120 nn_wdit = 20 ! Max iterations for W/D limiter 117 121 / 118 122 !----------------------------------------------------------------------- -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/TEST_CASES/WAD/EXP00/namelist_cfg
r8865 r8870 444 444 &namwad ! Wetting and drying 445 445 !----------------------------------------------------------------------- 446 ln_wd = .false ! T/F activation of NOC wetting and drying scheme 447 ln_rwd = .true. ! T/F activation of ROMS wetting and drying scheme 448 ln_rwd_bc = .true. 449 ln_rwd_rmp = .true. ! Turn on the limiter 450 ln_wd_diag = .false. ! T/F activation of diagnostics for ROMS wd scheme 451 rn_wdmin0 = 0.30 ! Minimum wet depth on dried cells 446 ln_wd_il = .false ! T/F activation of iterative limiter for wetting and drying scheme 447 ln_wd_dl = .true. ! T/F activation of directional llimiter for wetting drying scheme 448 ln_wd_dl_bc = .true. ! T/F Directional limiteer Baroclinic option 449 ln_wd_dl_rmp = .true. ! T/F Turn on directional limiter ramp 450 rn_wdmin0 = 0.30 ! dpoth at which wetting/drying starts 452 451 rn_wdmin1 = 0.2 ! Minimum wet depth on dried cells 453 452 rn_wdmin2 = 0.0001 ! Tolerance of min wet depth on dried cells 454 453 rn_wdld = 2.5 ! Land elevation below which wetting/drying is allowed 455 454 nn_wdit = 20 ! Max iterations for W/D limiter 456 jn_wd_i = 22 ! i index of diagnostics 457 jn_wd_j = 3 ! j index of diagnostics 458 459 / 455 / -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/TEST_CASES/WAD/MY_SRC/domain.F90
r8865 r8870 674 674 ENDIF 675 675 ! 676 !IF( ln_wd .or. ln_rwd ) THEN ! wetting and drying domain 677 IF( ln_wd ) THEN ! wetting and drying domain 676 IF( ln_wd_il .or. ln_wd_dl ) THEN ! wetting and drying domain 678 677 CALL iom_rstput( 0, 0, inum, 'ht_0' , ht_0 , ktype = jp_r8 ) 679 678 ENDIF -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/TEST_CASES/WAD/MY_SRC/stpctl.F90
r8865 r8870 22 22 USE lib_mpp ! distributed memory computing 23 23 USE lib_fortran ! Fortran routines library 24 ! USE wet_dry, ONLY: ln_wd, ln_rwd , rn_ssh_ref ! reference depth for negative bathy25 24 26 25 IMPLICIT NONE … … 151 150 DO jj = 1, jpj 152 151 DO ji = 1, jpi 153 ! IF( (ln_wd .OR. ln_rwd)) THEN154 ! IF( tmask(ji,jj,1) == 1) zsshmax = MAX( zsshmax, ABS(sshn(ji,jj)+rn_ssh_ref) )155 ! ELSE156 152 IF( tmask(ji,jj,1) == 1) zsshmax = MAX( zsshmax, ABS(sshn(ji,jj)) ) 157 ! ENDIF158 153 END DO 159 154 END DO -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/TEST_CASES/WAD/MY_SRC/usrdef_istate.F90
r8865 r8870 178 178 do jj = 1,jpj 179 179 do ji = 1,jpi 180 IF( ht_ wd(ji,jj) + pssh(ji,jj) < rn_wdmin1 ) THEN181 pssh(ji,jj) = ptmask(ji,jj,1)*( rn_wdmin1 - ht_ wd(ji,jj) )180 IF( ht_0(ji,jj) + pssh(ji,jj) < rn_wdmin1 ) THEN 181 pssh(ji,jj) = ptmask(ji,jj,1)*( rn_wdmin1 - ht_0(ji,jj) ) 182 182 ENDIF 183 183 end do -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/TEST_CASES/cfg.txt
r8865 r8870 4 4 SAS_BIPER OPA_SRC SAS_SRC LIM_SRC_3 NST_SRC 5 5 ISOMIP OPA_SRC 6 WAD7_SCOORD7 WAD7_SCOORD8 WAD7SCOORD9 WAD7SCOORD OPA_SRC10 WAD7 OPA_SRC11 WAD7LONG OPA_SRC12 WAD2 OPA_SRC -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn2d.F90
r8865 r8870 170 170 ii = idx%nbi(jb,igrd) 171 171 ij = idx%nbj(jb,igrd) 172 IF( ln_wd .OR. ln_rwd) THEN172 IF( ln_wd_il .OR. ln_wd_dl ) THEN 173 173 spgu(ii, ij) = dta%ssh(jb) - rn_ssh_ref 174 174 ELSE -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r8865 r8870 154 154 CALL iom_put( "e3tdef" , ( ( e3t_n(:,:,:) - e3t_0(:,:,:) ) / e3t_0(:,:,:) * 100 * tmask(:,:,:) ) ** 2 ) 155 155 156 IF( (ln_wd .OR. ln_rwd)) THEN156 IF( (ln_wd_il .OR. ln_wd_dl )) THEN 157 157 CALL iom_put( "ssh" , sshn+rn_ssh_ref ) ! sea surface height !bring it back to the reference need wad if here 158 158 ELSE -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90
r8865 r8870 39 39 USE domc1d ! 1D configuration: column location 40 40 USE dyncor_c1d ! 1D configuration: Coriolis term (cor_c1d routine) 41 USE wet_dry ! wetting and drying41 USE wet_dry, ONLY : ln_wd_il, ln_wd_dl 42 42 ! 43 43 USE in_out_manager ! I/O manager … … 674 674 ENDIF 675 675 ! 676 IF( ln_wd .or. ln_rwd) THEN ! wetting and drying domain676 IF( ln_wd_il .or. ln_wd_dl ) THEN ! wetting and drying domain 677 677 CALL iom_rstput( 0, 0, inum, 'ht_0' , ht_0 , ktype = jp_r8 ) 678 678 ENDIF -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90
r8865 r8870 680 680 ! 681 681 INTEGER :: ji, jj, jk ! dummy loop indices 682 REAL(wp) :: zlnwd ! =1./0. when ln_wd = T/F682 REAL(wp) :: zlnwd ! =1./0. when ln_wd_il = T/F 683 683 !!---------------------------------------------------------------------- 684 684 ! 685 685 IF( nn_timing == 1 ) CALL timing_start('dom_vvl_interpol') 686 686 ! 687 IF(ln_wd ) THEN687 IF(ln_wd_il) THEN 688 688 zlnwd = 1.0_wp 689 689 ELSE … … 877 877 ! 878 878 879 ! MJB ln_ rwd edits start here - these are essential880 881 IF( (ln_wd .OR. ln_rwd)) THEN879 ! MJB ln_wd edits start here - these are essential 880 881 IF( (ln_wd_il .OR. ln_wd_dl)) THEN 882 882 883 883 ! Wetting and drying test case … … 888 888 un (:,:,:) = ub (:,:,:) 889 889 vn (:,:,:) = vb (:,:,:) 890 ELSEIF( ln_wd .or. ln_rwd) THEN ! if not test case890 ELSEIF( ln_wd_il .or. ln_wd_dl ) THEN ! if not test case 891 891 sshn(:,:) = -rn_ssh_ref 892 892 sshb(:,:) = -rn_ssh_ref … … 902 902 ENDDO 903 903 ENDDO 904 ENDIF !If wad elseif ln_wd or ln_rwd904 ENDIF !If wad elseif ln_wd_il or ln_wd_dl 905 905 906 906 ! Adjust vertical metrics for all wad -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DOM/domwri.F90
r8865 r8870 18 18 USE dom_oce ! ocean space and time domain 19 19 USE phycst , ONLY : rsmall 20 USE wet_dry, ONLY : ln_wd , ln_rwd20 USE wet_dry, ONLY : ln_wd_il, ln_wd_dl 21 21 ! 22 22 USE in_out_manager ! I/O manager … … 198 198 ENDIF 199 199 ! 200 IF( ln_wd .OR. ln_rwd) CALL iom_rstput( 0, 0, inum, 'ht_0' , ht_0 , ktype = jp_r8 )200 IF( ln_wd_il .OR. ln_wd_dl ) CALL iom_rstput( 0, 0, inum, 'ht_0' , ht_0 , ktype = jp_r8 ) 201 201 202 202 ! ! ============================ -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r8865 r8870 30 30 USE usrdef_zgr ! user defined vertical coordinate system 31 31 USE depth_e3 ! depth <=> e3 32 USE wet_dry, ONLY: ln_wd , ln_rwd, rn_ssh_ref32 USE wet_dry, ONLY: ln_wd_il, ln_wd_dl, rn_ssh_ref 33 33 ! 34 34 USE in_out_manager ! I/O manager … … 259 259 ! 260 260 ! reference depth for negative bathy (wetting and drying only) 261 IF( ln_wd .OR. ln_rwd) CALL iom_get( inum, 'rn_wd_ref_depth' , rn_ssh_ref )261 IF( ln_wd_il .OR. ln_wd_dl ) CALL iom_get( inum, 'rn_wd_ref_depth' , rn_ssh_ref ) 262 262 ! 263 263 CALL iom_close( inum ) -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90
r8865 r8870 438 438 ! 439 439 CALL wrk_alloc( jpi,jpj,jpk, zhpi, zhpj ) 440 IF( ln_wd ) CALL wrk_alloc( jpi,jpj, zcpx, zcpy )440 IF( ln_wd_il ) CALL wrk_alloc( jpi,jpj, zcpx, zcpy ) 441 441 ! 442 442 IF( kt == nit000 ) THEN … … 451 451 ENDIF 452 452 ! 453 IF( ln_wd ) THEN453 IF( ln_wd_il ) THEN 454 454 DO jj = 2, jpjm1 455 455 DO ji = 2, jpim1 … … 509 509 510 510 511 IF( ln_wd ) THEN511 IF( ln_wd_il ) THEN 512 512 513 513 zhpi(ji,jj,1) = zhpi(ji,jj,1) * zcpx(ji,jj) … … 540 540 & * ( gde3w_n(ji ,jj+1,jk) - gde3w_n(ji,jj,jk) ) * r1_e2v(ji,jj) 541 541 542 IF( ln_wd ) THEN542 IF( ln_wd_il ) THEN 543 543 zhpi(ji,jj,jk) = zhpi(ji,jj,jk) * zcpx(ji,jj) 544 544 zhpj(ji,jj,jk) = zhpj(ji,jj,jk) * zcpy(ji,jj) … … 555 555 ! 556 556 CALL wrk_dealloc( jpi,jpj,jpk, zhpi, zhpj ) 557 IF( ln_wd ) CALL wrk_dealloc( jpi,jpj, zcpx, zcpy )557 IF( ln_wd_il ) CALL wrk_dealloc( jpi,jpj, zcpx, zcpy ) 558 558 ! 559 559 END SUBROUTINE hpg_sco … … 700 700 CALL wrk_alloc( jpi, jpj, jpk, drhox, drhoy, drhoz, drhou, drhov, drhow ) 701 701 CALL wrk_alloc( jpi, jpj, jpk, rho_i, rho_j, rho_k, zhpi, zhpj ) 702 IF( ln_wd ) CALL wrk_alloc( jpi,jpj, zcpx, zcpy )703 ! 704 ! 705 IF( ln_wd ) THEN702 IF( ln_wd_il ) CALL wrk_alloc( jpi,jpj, zcpx, zcpy ) 703 ! 704 ! 705 IF( ln_wd_il ) THEN 706 706 DO jj = 2, jpjm1 707 707 DO ji = 2, jpim1 … … 915 915 zhpi(ji,jj,1) = ( rho_k(ji+1,jj ,1) - rho_k(ji,jj,1) - rho_i(ji,jj,1) ) * r1_e1u(ji,jj) 916 916 zhpj(ji,jj,1) = ( rho_k(ji ,jj+1,1) - rho_k(ji,jj,1) - rho_j(ji,jj,1) ) * r1_e2v(ji,jj) 917 IF( ln_wd ) THEN917 IF( ln_wd_il ) THEN 918 918 zhpi(ji,jj,1) = zhpi(ji,jj,1) * zcpx(ji,jj) 919 919 zhpj(ji,jj,1) = zhpj(ji,jj,1) * zcpy(ji,jj) … … 938 938 & + ( ( rho_k(ji,jj+1,jk) - rho_k(ji,jj,jk ) ) & 939 939 & -( rho_j(ji,jj ,jk) - rho_j(ji,jj,jk-1) ) ) * r1_e2v(ji,jj) 940 IF( ln_wd ) THEN940 IF( ln_wd_il ) THEN 941 941 zhpi(ji,jj,jk) = zhpi(ji,jj,jk) * zcpx(ji,jj) 942 942 zhpj(ji,jj,jk) = zhpj(ji,jj,jk) * zcpy(ji,jj) … … 952 952 CALL wrk_dealloc( jpi, jpj, jpk, drhox, drhoy, drhoz, drhou, drhov, drhow ) 953 953 CALL wrk_dealloc( jpi, jpj, jpk, rho_i, rho_j, rho_k, zhpi, zhpj ) 954 IF( ln_wd ) CALL wrk_dealloc( jpi,jpj, zcpx, zcpy )954 IF( ln_wd_il ) CALL wrk_dealloc( jpi,jpj, zcpx, zcpy ) 955 955 ! 956 956 END SUBROUTINE hpg_djc … … 989 989 CALL wrk_alloc( jpi,jpj,jpk, zdept, zrhh ) 990 990 CALL wrk_alloc( jpi,jpj, zsshu_n, zsshv_n ) 991 IF( ln_wd ) CALL wrk_alloc( jpi,jpj, zcpx, zcpy )991 IF( ln_wd_il ) CALL wrk_alloc( jpi,jpj, zcpx, zcpy ) 992 992 ! 993 993 IF( kt == nit000 ) THEN … … 1002 1002 IF( ln_linssh ) znad = 0._wp 1003 1003 1004 IF( ln_wd ) THEN1004 IF( ln_wd_il ) THEN 1005 1005 DO jj = 2, jpjm1 1006 1006 DO ji = 2, jpim1 … … 1231 1231 zdpdx2 = zcoef0 * r1_e1u(ji,jj) * REAL(jis-jid, wp) * (zpwes + zpwed) 1232 1232 ENDIF 1233 IF( ln_wd ) THEN1233 IF( ln_wd_il ) THEN 1234 1234 zdpdx1 = zdpdx1 * zcpx(ji,jj) * wdrampu(ji,jj) 1235 1235 zdpdx2 = zdpdx2 * zcpx(ji,jj) * wdrampu(ji,jj) … … 1290 1290 zdpdy2 = zcoef0 * r1_e2v(ji,jj) * REAL(jjs-jjd, wp) * (zpnss + zpnsd ) 1291 1291 ENDIF 1292 IF( ln_wd ) THEN1292 IF( ln_wd_il ) THEN 1293 1293 zdpdy1 = zdpdy1 * zcpy(ji,jj) * wdrampv(ji,jj) 1294 1294 zdpdy2 = zdpdy2 * zcpy(ji,jj) * wdrampv(ji,jj) … … 1305 1305 CALL wrk_dealloc( jpi,jpj,jpk, zdept, zrhh ) 1306 1306 CALL wrk_dealloc( jpi,jpj, zsshu_n, zsshv_n ) 1307 IF( ln_wd ) CALL wrk_dealloc( jpi,jpj, zcpx, zcpy )1307 IF( ln_wd_il ) CALL wrk_dealloc( jpi,jpj, zcpx, zcpy ) 1308 1308 ! 1309 1309 END SUBROUTINE hpg_prj -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r8865 r8870 153 153 REAL(wp) :: zhura, zhvra ! - - 154 154 REAL(wp) :: za0, za1, za2, za3 ! - - 155 REAL(wp) :: zwdramp ! local scalar - only used if ln_ rwd= .True.155 REAL(wp) :: zwdramp ! local scalar - only used if ln_wd_dl = .True. 156 156 157 157 INTEGER :: iwdg, jwdg, kwdg ! short-hand values for the indices of the output point … … 178 178 CALL wrk_alloc( jpi,jpj, zsshu_a, zsshv_a ) 179 179 CALL wrk_alloc( jpi,jpj, zhf ) 180 IF( ln_wd ) CALL wrk_alloc( jpi, jpj, zcpx, zcpy ) 181 IF( ln_rwd ) CALL wrk_alloc( jpi, jpj, ztwdmask, zuwdmask, zvwdmask, zuwdav2, zvwdav2) 182 183 IF ( ln_wd_diag ) THEN 184 iwdg = jn_wd_i ; jwdg = jn_wd_j ; kwdg = jn_wd_k 185 WRITE(numout,*) 'kt, iwdg, jwdg, kwdg = ', kt, iwdg, jwdg, kwdg 186 END IF 180 IF( ln_wd_il ) CALL wrk_alloc( jpi, jpj, zcpx, zcpy ) 181 IF( ln_wd_dl ) CALL wrk_alloc( jpi, jpj, ztwdmask, zuwdmask, zvwdmask, zuwdav2, zvwdav2) 182 187 183 188 184 ! … … 417 413 ! ! ---------------------------------------------------- 418 414 IF( .NOT.ln_linssh ) THEN ! Variable volume : remove surface pressure gradient 419 IF( ln_wd ) THEN ! Calculating and applying W/D gravity filters415 IF( ln_wd_il ) THEN ! Calculating and applying W/D gravity filters 420 416 DO jj = 2, jpjm1 421 417 DO ji = 2, jpim1 … … 513 509 ! 514 510 ! Note that the "unclipped" bottom friction parameter is used even with explicit drag 515 IF( ln_wd ) THEN511 IF( ln_wd_il ) THEN 516 512 zu_frc(:,:) = zu_frc(:,:) + MAX(r1_hu_n(:,:) * bfrua(:,:),-1._wp / rdtbt) * zwx(:,:) * wdrampu(ji,jj) 517 513 zv_frc(:,:) = zv_frc(:,:) + MAX(r1_hv_n(:,:) * bfrva(:,:),-1._wp / rdtbt) * zwy(:,:) * wdrampv(ji,jj) … … 651 647 ! ! ==================== ! 652 648 653 IF (ln_ rwd) THEN649 IF (ln_wd_dl) THEN 654 650 zuwdmask(:,:) = 0._wp ! set to zero for definiteness (not sure this is necessary) 655 651 zvwdmask(:,:) = 0._wp ! … … 688 684 689 685 ! set wetting & drying mask at tracer points for this barotropic sub-step 690 IF ( ln_ rwd) THEN691 692 IF ( ln_ rwd_rmp ) THEN686 IF ( ln_wd_dl ) THEN 687 688 IF ( ln_wd_dl_rmp ) THEN 693 689 DO jj = 1, jpj 694 690 DO ji = 1, jpi ! vector opt. … … 715 711 END IF 716 712 717 IF ( ln_wd_diag ) WRITE(numout,*) 'kt, jn = ', kt, jn718 IF ( ln_wd_diag ) WRITE(numout, *) 'zsshp2_e: (i,j), (i+1,j), (i,j+1) = ', zsshp2_e(iwdg,jwdg), zsshp2_e(iwdg+1,jwdg), zsshp2_e(iwdg,jwdg+1)719 IF ( ln_wd_diag ) WRITE(numout, *) 'ht_0: (i,j), (i+1,j), (i,j+1) = ', ht_0(iwdg,jwdg), ht_0(iwdg+1,jwdg), (iwdg,jwdg+1)720 IF ( ln_wd_diag ) WRITE(numout, *) 'ztwdmask: (i,j), (i+1,j), (i,j+1) = ', ztwdmask(iwdg,jwdg), ztwdmask(iwdg+1,jwdg), ztwdmask(iwdg,jwdg+1)721 713 END IF 722 714 … … 773 765 ENDIF 774 766 #endif 775 IF( ln_wd ) CALL wad_lmt_bt(zwx, zwy, sshn_e, zssh_frc, rdtbt) 776 777 IF ( ln_rwd ) THEN 778 779 IF ( ln_wd_diag ) THEN 780 WRITE(numout, *) 'zwx: (i,j), (i+1,j) = ', zwx(iwdg,jwdg), zwx(iwdg+1,jwdg) 781 WRITE(numout, *) 'zwy: (i,j), (i,j+1) = ', zwy(iwdg,jwdg), zwx(iwdg,jwdg+1) 782 END IF 767 IF( ln_wd_il ) CALL wad_lmt_bt(zwx, zwy, sshn_e, zssh_frc, rdtbt) 768 769 IF ( ln_wd_dl ) THEN 770 783 771 784 772 ! un_e and vn_e are set to zero at faces where the direction of the flow is from dry cells … … 804 792 END DO 805 793 806 IF ( ln_wd_diag ) THEN807 WRITE(numout, *) 'zuwdmask: (i,j) = ', zuwdmask(iwdg,jwdg)808 WRITE(numout, *) 'zwx: (i,j) = ', zwx(iwdg,jwdg)809 WRITE(numout, *) 'e2u: (i,j) = ', e2u(iwdg,jwdg)810 WRITE(numout, *) 'ua_e: (i,j) = ', ua_e(iwdg,jwdg)811 WRITE(numout, *) 'un_e: (i,j) = ', un_e(iwdg,jwdg)812 WRITE(numout, *) 'zhup2_e: (i,j) = ', zhup2_e(iwdg,jwdg)813 WRITE(numout, *) 'zvwdmask: (i,j) = ', zvwdmask(iwdg,jwdg)814 WRITE(numout, *) 'zwy: (i,j) = ', zwy(iwdg,jwdg)815 END IF816 794 817 795 END IF … … 822 800 vn_adv(:,:) = vn_adv(:,:) + za2 * zwy(:,:) * r1_e1v(:,:) 823 801 824 ! sum over sub-time-steps to decide which baroclinic velocities to set to zero (zuwdav2 is only used when ln_ rwd_bc = True)825 IF ( ln_ rwd_bc ) THEN802 ! sum over sub-time-steps to decide which baroclinic velocities to set to zero (zuwdav2 is only used when ln_wd_dl_bc = True) 803 IF ( ln_wd_dl_bc ) THEN 826 804 zuwdav2(:,:) = zuwdav2(:,:) + za2 * zuwdmask(:,:) 827 805 zvwdav2(:,:) = zvwdav2(:,:) + za2 * zvwdmask(:,:) 828 829 IF ( ln_wd_diag ) THEN830 WRITE(numout, *) 'za2, r1_e2u(i,j) = ', za2, r1_e2u(iwdg,jwdg)831 WRITE(numout, *) 'un_adv: (i,j) = ', un_adv(iwdg,jwdg)832 WRITE(numout, *) 'zuwdav2: (i,j) = ', zuwdav2(iwdg,jwdg)833 WRITE(numout, *) 'zvwdav2: (i,j) = ', zvwdav2(iwdg,jwdg)834 END IF835 836 806 END IF 837 807 … … 889 859 zsshp2_e(:,:) = za0 * ssha_e(:,:) + za1 * sshn_e (:,:) & 890 860 & + za2 * sshb_e(:,:) + za3 * sshbb_e(:,:) 891 IF( ln_wd ) THEN ! Calculating and applying W/D gravity filters861 IF( ln_wd_il ) THEN ! Calculating and applying W/D gravity filters 892 862 DO jj = 2, jpjm1 893 863 DO ji = 2, jpim1 … … 1019 989 ! Surface pressure trend: 1020 990 1021 IF( ln_wd ) THEN991 IF( ln_wd_il ) THEN 1022 992 DO jj = 2, jpjm1 1023 993 DO ji = 2, jpim1 … … 1069 1039 DO ji = fs_2, fs_jpim1 ! vector opt. 1070 1040 1071 IF( ln_wd ) THEN 1072 zhura = hu_0(ji,jj) + zsshu_a(ji,jj) 1073 zhvra = hv_0(ji,jj) + zsshv_a(ji,jj) 1074 ELSE 1075 zhura = hu_0(ji,jj) + zsshu_a(ji,jj) 1076 zhvra = hv_0(ji,jj) + zsshv_a(ji,jj) 1077 END IF 1041 zhura = hu_0(ji,jj) + zsshu_a(ji,jj) 1042 zhvra = hv_0(ji,jj) + zsshv_a(ji,jj) 1043 1078 1044 zhura = ssumask(ji,jj)/(zhura + 1._wp - ssumask(ji,jj)) 1079 1045 zhvra = ssvmask(ji,jj)/(zhvra + 1._wp - ssvmask(ji,jj)) … … 1094 1060 ENDIF 1095 1061 1096 ! if ln_rwd: ua_e and va_e should not be masked ; they are used to determine the direction of flow into all cells1097 1098 ! IF ( ln_rwd) THEN1099 ! IF ( ln_wd_diag ) THEN1100 ! WRITE(numout, *) 'ua_e: (i,j) = ', ua_e(iwdg,jwdg)1101 ! WRITE(numout, *) 'va_e: (i,j) = ', va_e(iwdg,jwdg)1102 ! END IF1103 ! ua_e(:,:) = ua_e(:,:) * zuwdmask(:,:)1104 ! va_e(:,:) = va_e(:,:) * zvwdmask(:,:)1105 ! IF ( ln_wd_diag ) THEN1106 ! WRITE(numout, *) 'ua_e: (i,j) = ', ua_e(iwdg,jwdg)1107 ! WRITE(numout, *) 'va_e: (i,j) = ', va_e(iwdg,jwdg)1108 ! END IF1109 ! END IF1110 1111 1062 1112 1063 IF( .NOT.ln_linssh ) THEN !* Update ocean depth (variable volume case only) 1113 IF( ln_wd ) THEN 1114 hu_e (:,:) = hu_0(:,:) + zsshu_a(:,:) 1115 hv_e (:,:) = hv_0(:,:) + zsshv_a(:,:) 1116 ELSE 1117 hu_e (:,:) = hu_0(:,:) + zsshu_a(:,:) 1118 hv_e (:,:) = hv_0(:,:) + zsshv_a(:,:) 1119 END IF 1064 hu_e (:,:) = hu_0(:,:) + zsshu_a(:,:) 1065 hv_e (:,:) = hv_0(:,:) + zsshv_a(:,:) 1120 1066 hur_e(:,:) = ssumask(:,:) / ( hu_e(:,:) + 1._wp - ssumask(:,:) ) 1121 1067 hvr_e(:,:) = ssvmask(:,:) / ( hv_e(:,:) + 1._wp - ssvmask(:,:) ) … … 1151 1097 va_b (:,:) = va_b (:,:) + za1 * va_e (:,:) 1152 1098 ELSE ! Sum transports 1153 IF (.NOT.ln_ rwd) THEN1099 IF (.NOT.ln_wd_dl) THEN 1154 1100 ua_b (:,:) = ua_b (:,:) + za1 * ua_e (:,:) * hu_e (:,:) 1155 1101 va_b (:,:) = va_b (:,:) + za1 * va_e (:,:) * hv_e (:,:) … … 1185 1131 ENDIF 1186 1132 1187 IF ( ln_wd_diag ) THEN1188 WRITE(numout, *) 'ub2_b: (i,j) = ', ub2_b(iwdg,jwdg)1189 WRITE(numout, *) 'r1_hu_n: (i,j) = ', r1_hu_n(iwdg,jwdg)1190 WRITE(numout, *) 'zwx: (i,j) = ', zwx(iwdg,jwdg)1191 WRITE(numout, *) 'un_adv: (i,j) = ', un_adv(iwdg,jwdg)1192 END IF1193 1133 1194 1134 ! … … 1222 1162 ENDIF 1223 1163 1224 IF ( ln_wd_diag ) THEN1225 WRITE(numout, *) 'ua_b: (i,j) A = ', ua_b(iwdg,jwdg)1226 WRITE(numout, *) 'va_b: (i,j) B = ', va_b(iwdg,jwdg)1227 END IF1228 1229 ! temporary debugging code1230 IF ( ln_wd_diag ) THEN1231 WRITE(numout, *) 'ua: (i,j,k) B = ', ua(iwdg,jwdg,kwdg)1232 WRITE(numout, *) 'ua_b: (i,j) B = ', ua_b(iwdg,jwdg)1233 WRITE(numout, *) 'un: (i,j,k) = ', un(iwdg,jwdg,kwdg)1234 WRITE(numout, *) 'un_b: (i,j) = ', un_b(iwdg,jwdg)1235 WRITE(numout, *) 'un_adv: (i,j) = ', un_adv(iwdg,jwdg)1236 WRITE(numout, *) 'va: (i,j,k) = ', va(iwdg,jwdg,kwdg)1237 WRITE(numout, *) 'va_b: (i,j,k) = ', va_b(iwdg,jwdg)1238 WRITE(numout, *) 'vn: (i,j,k) = ', vn(iwdg,jwdg,kwdg)1239 WRITE(numout, *) 'vn_b: (i,j) = ', vn_b(iwdg,jwdg)1240 WRITE(numout, *) 'vn_adv: (i,j) = ', vn_adv(iwdg,jwdg)1241 END IF1242 1164 1243 1165 ! Correct velocities so that the barotropic velocity equals (un_adv, vn_adv) (in all cases) … … 1247 1169 END DO 1248 1170 1249 IF ( ln_ rwd .and. ln_rwd_bc) THEN1171 IF ( ln_wd_dl .and. ln_wd_dl_bc) THEN 1250 1172 DO jk = 1, jpkm1 1251 1173 un(:,:,jk) = ( un_adv(:,:) + zuwdav2(:,:)*(un(:,:,jk) - un_adv(:,:)) ) * umask(:,:,jk) … … 1254 1176 END IF 1255 1177 1256 IF ( ln_wd_diag ) THEN1257 WRITE(numout, *) 'ua: (i,j,k) = ', ua(iwdg,jwdg,kwdg)1258 WRITE(numout, *) 'ua_b: (i,j,k) = ', ua_b(iwdg,jwdg)1259 WRITE(numout, *) 'un: (i,j,k) = ', un(iwdg,jwdg,kwdg)1260 WRITE(numout, *) 'va: (i,j,k) = ', va(iwdg,jwdg,kwdg)1261 WRITE(numout, *) 'va_b: (i,j,k) = ', va_b(iwdg,jwdg)1262 WRITE(numout, *) 'vn: (i,j,k) = ', vn(iwdg,jwdg,kwdg)1263 END IF1264 1178 1265 1179 CALL iom_put( "ubar", un_adv(:,:) ) ! barotropic i-current … … 1290 1204 CALL wrk_dealloc( jpi,jpj, zsshu_a, zsshv_a ) 1291 1205 CALL wrk_dealloc( jpi,jpj, zhf ) 1292 IF( ln_wd ) CALL wrk_dealloc( jpi, jpj, zcpx, zcpy )1293 IF( ln_ rwd) CALL wrk_dealloc( jpi, jpj, ztwdmask, zuwdmask, zvwdmask, zuwdav2, zvwdav2 )1206 IF( ln_wd_il ) CALL wrk_dealloc( jpi, jpj, zcpx, zcpy ) 1207 IF( ln_wd_dl ) CALL wrk_dealloc( jpi, jpj, ztwdmask, zuwdmask, zvwdmask, zuwdav2, zvwdav2 ) 1294 1208 ! 1295 1209 IF ( ln_diatmb ) THEN -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90
r7753 r8870 94 94 ! ! After Sea Surface Height ! 95 95 ! !------------------------------! 96 IF(ln_wd ) THEN96 IF(ln_wd_il) THEN 97 97 CALL wad_lmt(sshb, zcoef * (emp_b(:,:) + emp(:,:)), z2dt) 98 98 ENDIF -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/DYN/wet_dry.F90
r8865 r8870 7 7 !! Wetting and drying includes initialisation routine and routines to 8 8 !! compute and apply flux limiters and preserve water depth positivity 9 !! only effects if wetting/drying is on (ln_wd == .true.)9 !! only effects if wetting/drying is on (ln_wd_il == .true. or ln_wd_dl==.true. ) 10 10 !!============================================================================== 11 11 !! History : 3.6 ! 2014-09 ((H.Liu) Original code … … 38 38 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: wdramp, wdrampu, wdrampv ! for hpg limiting 39 39 40 LOGICAL, PUBLIC :: ln_wd !: Wetting/drying activation switch (T:on,F:off) 40 LOGICAL, PUBLIC :: ln_wd_il !: Wetting/drying il activation switch (T:on,F:off) 41 LOGICAL, PUBLIC :: ln_wd_dl !: Wetting/drying dl activation switch (T:on,F:off) 41 42 REAL(wp), PUBLIC :: rn_wdmin0 !: depth at which wetting/drying starts 42 LOGICAL, PUBLIC :: ln_rwd !: ROMS Wetting/drying activation switch (T:on,F:off)43 43 REAL(wp), PUBLIC :: rn_wdmin1 !: minimum water depth on dried cells 44 44 REAL(wp), PUBLIC :: rn_wdmin2 !: tolerance of minimum water depth on dried cells … … 46 46 !: will be considered 47 47 INTEGER , PUBLIC :: nn_wdit !: maximum number of iteration for W/D limiter 48 LOGICAL, PUBLIC :: ln_ rwd_bc !: ROMSscheme: True implies 3D velocities are set to the barotropic values at points48 LOGICAL, PUBLIC :: ln_wd_dl_bc !: DL scheme: True implies 3D velocities are set to the barotropic values at points 49 49 !: where the flow is from wet points on less than half the barotropic sub-steps 50 LOGICAL, PUBLIC :: ln_ rwd_rmp !: use a ramp for the rwdflux limiter between 2 rn_wdmin1 and rn_wdmin1 (rather than a cut-off at rn_wdmin1)50 LOGICAL, PUBLIC :: ln_wd_dl_rmp !: use a ramp for the dl flux limiter between 2 rn_wdmin1 and rn_wdmin1 (rather than a cut-off at rn_wdmin1) 51 51 REAL(wp), PUBLIC :: rn_ssh_ref !: height of z=0 with respect to the geoid; 52 52 REAL(wp), PUBLIC :: rn_ht_0 !: the height at which ht_0 = 0 53 53 54 LOGICAL, PUBLIC :: ln_wd_diag ! True implies wad diagnostic at chosen point are printed out55 INTEGER , PUBLIC :: jn_wd_i, jn_wd_j, jn_wd_k ! indices at which diagnostic outputs are generated56 54 57 55 PUBLIC wad_init ! initialisation routine called by step.F90 … … 71 69 !! ** input : - namwad namelist 72 70 !!---------------------------------------------------------------------- 73 NAMELIST/namwad/ ln_wd , ln_rwd, rn_wdmin0, ln_rwd, rn_wdmin1, rn_wdmin2, rn_wdld, nn_wdit, ln_wd_diag, ln_rwd_bc, &74 & rn_ht_0, jn_wd_i, jn_wd_j, jn_wd_k,ln_rwd_rmp71 NAMELIST/namwad/ ln_wd_il, ln_wd_dl, rn_wdmin0, ln_wd_dl, rn_wdmin1, rn_wdmin2, rn_wdld, nn_wdit, ln_wd_dl_bc, & 72 & rn_ht_0,ln_wd_dl_rmp 75 73 76 74 INTEGER :: ios ! Local integer output status for namelist read … … 93 91 WRITE(numout,*) '~~~~~~~~' 94 92 WRITE(numout,*) ' Namelist namwad' 95 WRITE(numout,*) ' Logical for NOC wd scheme ln_wd = ', ln_wd96 WRITE(numout,*) ' Logical for ROMS wd scheme ln_rwd = ', ln_rwd93 WRITE(numout,*) ' Logical for Iter Lim wd option ln_wd_il = ', ln_wd_il 94 WRITE(numout,*) ' Logical for Dir. Lim wd option ln_wd_dl = ', ln_wd_dl 97 95 WRITE(numout,*) ' Depth at which wet/drying starts rn_wdmin0 = ', rn_wdmin0 98 96 WRITE(numout,*) ' Minimum wet depth on dried cells rn_wdmin1 = ', rn_wdmin1 … … 100 98 WRITE(numout,*) ' land elevation threshold rn_wdld = ', rn_wdld 101 99 WRITE(numout,*) ' Max iteration for W/D limiter nn_wdit = ', nn_wdit 102 WRITE(numout,*) ' Logical for WAD diagnostics ln_wd_diag = ', ln_wd_diag 103 WRITE(numout,*) ' T => baroclinic u,v = 0 at dry pts: ln_rwd_bc = ', ln_rwd_bc 104 WRITE(numout,*) ' use a ramp for rwd limiter: ln_rwd_rmp = ', ln_rwd_rmp 100 WRITE(numout,*) ' T => baroclinic u,v = 0 at dry pts: ln_wd_dl_bc = ', ln_wd_dl_bc 101 WRITE(numout,*) ' use a ramp for rwd limiter: ln_wd_dl_rwd_rmp = ', ln_wd_dl_rmp 105 102 WRITE(numout,*) ' the height (z) at which ht_0 = 0:rn_ht_0 = ', rn_ht_0 106 WRITE(numout,*) ' i-index for diagnostic point jn_wd_i = ', jn_wd_i107 WRITE(numout,*) ' j-index for diagnostic point jn_wd_j = ', jn_wd_j108 WRITE(numout,*) ' k-index for diagnostic point jn_wd_k = ', jn_wd_k109 103 ENDIF 110 104 ! 111 IF(ln_wd .OR. ln_rwd) THEN105 IF(ln_wd_il .OR. ln_wd_dl) THEN 112 106 ALLOCATE( wdmask(jpi,jpj), STAT=ierr ) 113 107 ALLOCATE( wdramp(jpi,jpj), wdrampu(jpi,jpj), wdrampv(jpi,jpj), STAT=ierr ) … … 147 141 IF( nn_timing == 1 ) CALL timing_start('wad_lmt') 148 142 149 IF(ln_wd ) THEN143 IF(ln_wd_il) THEN 150 144 151 145 CALL wrk_alloc( jpi, jpj, zflxp, zflxn, zflxu, zflxv, zflxu1, zflxv1 ) … … 333 327 IF( nn_timing == 1 ) CALL timing_start('wad_lmt_bt') 334 328 335 IF(ln_wd ) THEN329 IF(ln_wd_il) THEN 336 330 337 331 CALL wrk_alloc( jpi, jpj, zflxp, zflxn, zflxu1, zflxv1 ) -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90
r8865 r8870 34 34 USE wrk_nemo ! Memory Allocation 35 35 USE timing ! Timing 36 USE wet_dry 36 USE wet_dry, ONLY : ln_wd_il, ln_wd_dl, rn_wdmin1 37 37 38 38 IMPLICIT NONE … … 123 123 DO jj = 2, jpj 124 124 DO ji = fs_2, fs_jpim1 ! vector opt. 125 IF ( ln_ rwd_rmp ) THEN ! If near WAD point limitethe flux for now125 IF ( ln_wd_il .or. ln_wd_dl ) THEN ! If near WAD point limit the flux for now 126 126 IF ( sshn(ji,jj) + ht_0(ji,jj) > 2._wp * rn_wdmin1 ) THEN 127 127 sbc_tsc(ji,jj,jp_tem) = r1_rau0_rcp * qns(ji,jj) ! non solar heat flux -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/NEMO/OPA_SRC/stpctl.F90
r8865 r8870 22 22 USE lib_mpp ! distributed memory computing 23 23 USE lib_fortran ! Fortran routines library 24 USE wet_dry, ONLY: ln_wd , ln_rwd, rn_ssh_ref ! reference depth for negative bathy24 USE wet_dry, ONLY: ln_wd_il, ln_wd_dl, rn_ssh_ref ! reference depth for negative bathy 25 25 26 26 IMPLICIT NONE … … 151 151 DO jj = 1, jpj 152 152 DO ji = 1, jpi 153 IF( (ln_wd .OR. ln_rwd)) THEN153 IF( (ln_wd_il .OR. ln_wd_dl)) THEN 154 154 IF( tmask(ji,jj,1) == 1) zsshmax = MAX( zsshmax, ABS(sshn(ji,jj)+rn_ssh_ref) ) 155 155 ELSE -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/TOOLS/DOMAINcfg/namelist_cfg
r7200 r8870 58 58 ppkth2 = 999999. ! 59 59 ppacr2 = 999999. ! 60 rn_wd_ref_depth = 0.0 ! Reference Depth for WAD cases (0 all other cases) 60 61 / 61 62 !----------------------------------------------------------------------- -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/TOOLS/DOMAINcfg/namelist_ref
r7200 r8870 170 170 ppkth2 = 48.029893720000 ! 171 171 ppacr2 = 13.000000000000 ! 172 / 173 !----------------------------------------------------------------------- 174 &namwad ! Wetting and drying (default F) 175 !----------------------------------------------------------------------- 176 ln_wd = .false. ! T/F activation of wetting and drying 177 rn_wdmin1 = 0.1 ! Minimum wet depth on dried cells 178 rn_wdmin2 = 0.01 ! Tolerance of min wet depth on dried cells 179 rn_wdld = 20.0 ! Land elevation below which wetting/drying is allowed 180 nn_wdit = 10 ! Max iterations for W/D limiter 172 ln_wd = .false. ! T/F activation of wetting and drying 173 rn_wd_ref_depth = 0.0 ! Reference Depth for WAD cases (0 all other cases) 181 174 / 182 175 !----------------------------------------------------------------------- -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/TOOLS/DOMAINcfg/src/dom_oce.f90
r6973 r8870 31 31 ! !!* Namelist namdom : time & space domain * 32 32 INTEGER , PUBLIC :: nn_bathy !: = 0/1 ,compute/read the bathymetry file 33 LOGICAL PUBLIC :: ln_wd !: Is it a WAD domain? T/F Default T 34 REAL(wp), PUBLIC :: rn_wd_ref_depth !: Reference depth for Wet and Dry 33 35 REAL(wp), PUBLIC :: rn_bathy !: depth of flat bottom (active if nn_bathy=0; if =0 depth=jpkm1) 34 36 REAL(wp), PUBLIC :: rn_hmin !: minimum ocean depth (>0) or minimum number of ocean levels (<0) -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/TOOLS/DOMAINcfg/src/domain.f90
r7200 r8870 160 160 & ppglam0, ppgphi0, ppe1_deg, ppe2_deg, ppe1_m, ppe2_m, & 161 161 & ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & 162 & ppa2, ppkth2, ppacr2 162 & ppa2, ppkth2, ppacr2, rn_wd_ref_depth, ln_wd 163 163 164 164 … … 272 272 WRITE(numout,*) ' flag read/compute bathymetry nn_bathy = ', nn_bathy 273 273 WRITE(numout,*) ' Depth (if =0 bathy=jpkm1) rn_bathy = ', rn_bathy 274 WRITE(numout,*) ' WAD Domain? ln_wd = ', ln_wd 275 WRITE(numout,*) ' WAD Reference depth) rn_wd_ref_depth = ', rn_wd_ref_depth 274 276 WRITE(numout,*) ' min depth of the ocean (>0) or rn_hmin = ', rn_hmin 275 277 WRITE(numout,*) ' min number of ocean level (<0) ' … … 431 433 IF( ln_isfcav ) THEN ; icav = 1 ; ELSE ; icav = 0 ; ENDIF 432 434 CALL iom_rstput( 0, 0, inum, 'ln_isfcav', REAL( icav, wp), ktype = jp_i4 ) 435 z2d(:,:) = hbatt(:,:) ! add back on reference height to get appox dep 436 !this is later corrected for with specified min depth bg user for above greoid 437 ! WAD points 438 !where (z2d (:,:).lte.1e-5) z2d(:,:) = -10.0 439 where (tmask (:,:,1).eq.0) z2d(:,:) = 0.0 440 IF( ln_wd ) THEN 441 CALL iom_rstput( 0, 0, inum, 'rn_wd_ref_depth' , rn_wd_ref_depth ) ! replace this later with variable 442 CALL iom_rstput( 0, 0, inum, 'ht_wd', z2d ) ! ht_wd 443 ENDIF 444 433 445 ! 434 446 ! !== horizontal mesh ! -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/TOOLS/DOMAINcfg/src/domzgr.f90
r8841 r8870 1957 1957 WRITE(numout,*) ' Bottom cell (Zb) (m) = H*rn_zb_a + rn_zb_b' 1958 1958 ENDIF 1959 1959 ! CEOD 1960 ! Add on some reference level to make nagative bathy positive to create 1961 ! sensible e3t_0's 1962 ! Can used commented code here to force bathy near open bdy not to have any WAD 1963 ! points 1964 1965 !CEOD MAKE points on the perimeter assuming a bondary is here on shallower than 1966 !10m so that tide can be specified here. 1967 ! DO jj = 1, jpj 1968 ! DO ji = 1, jpi 1969 ! !CEODIF( mig(ji) <= 2 .or. mjg(jj) <= 2 .or. mig(ji) >= jpiglo-2 .or. mjg(jj) >=jpjglo-2) then 1970 ! IF( mig(ji) <= 10 .or. mjg(jj) <=10 .or. mjg(ji) >=jpiglo-10+1 .or. mjg(jj) >=jpjglo-10+1 ) then 1971 ! IF( bathy(ji,jj) + rn_wd_ref_depth > 0.0) then 1972 ! bathy(ji,jj) = max(5.0,bathy(ji,jj)) ! 1973 ! ENDIF 1974 ! IF( bathy(ji,jj) + rn_wd_ref_depth <= 0.0) then 1975 ! bathy(ji,jj) = -rn_wd_ref_depth*2._wp ! Make sure it is land 1976 ! ENDIF 1977 ! ENDIF 1978 ! END DO 1979 ! END DO 1980 1981 IF( ln_wd) THEN 1982 bathy(:,:) = bathy(:,:) + rn_wd_ref_depth ! Arbitrary reference level for WAD, This needs 1983 ELSE 1984 bathy(:,:) = bathy(:,:) ! Arbitrary reference level for WAD, This needs 1985 ENDIF 1986 ! to be accounted for in istate in the actual model and bdys etc. 1960 1987 hift(:,:) = rn_sbot_min ! set the minimum depth for the s-coordinate 1961 1988 hifu(:,:) = rn_sbot_min
Note: See TracChangeset
for help on using the changeset viewer.