Changeset 8544
- Timestamp:
- 2017-09-19T17:41:15+02:00 (7 years ago)
- Location:
- branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG
- Files:
-
- 1 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/CS15mini/EXP00/namelist_cfg
r8403 r8544 479 479 rn_wdmin1 = 0.20 ! Minimum wet depth on dried cells 480 480 rn_wdmin2 = 0.0001 ! Tolerance of min wet depth on dried cells 481 rn_ssh_ref = 0.0 ! reference level482 481 rn_wdld = 2.5 ! Land elevation below which wetting/drying is a 483 482 nn_wdit = 20 ! Max iterations for W/D limiter -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/CS15mini/MY_SRC/domvvl.F90
r8403 r8544 889 889 vn (:,:,:) = vb (:,:,:) 890 890 ELSEIF( ln_wd .or. ln_rwd ) THEN ! if not test case 891 ssh b(:,:) = 0.0_wp ! slwa892 ssh n(:,:) = 0.0_wp ! slwa891 sshn(:,:) = -rn_ssh_ref 892 sshb(:,:) = -rn_ssh_ref 893 893 894 894 DO jj = 1, jpj 895 895 DO ji = 1, jpi 896 IF( ht_ wd(ji,jj) <=rn_wdmin1 ) THEN ! if total depth is less than min depth897 898 sshb(ji,jj) = rn_wdmin1 - ht_wd(ji,jj)899 sshn(ji,jj) = rn_wdmin1 - ht_wd(ji,jj)900 ssha(ji,jj) = rn_wdmin1 - ht_wd(ji,jj)896 IF( ht_0(ji,jj)-rn_ssh_ref < rn_wdmin1 ) THEN ! if total depth is less than min depth 897 898 sshb(ji,jj) = rn_wdmin1 - (ht_0(ji,jj) ) 899 sshn(ji,jj) = rn_wdmin1 - (ht_0(ji,jj) ) 900 ssha(ji,jj) = rn_wdmin1 - (ht_0(ji,jj) ) 901 901 ENDIF 902 902 ENDDO -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/CS15mini/MY_SRC/domzgr.F90
r8403 r8544 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, ht_wd 32 USE wet_dry, ONLY: ln_wd, ln_rwd, ht_wd,rn_ssh_ref 33 33 ! 34 34 USE in_out_manager ! I/O manager … … 260 260 ! bathymetry with orography (wetting and drying only) 261 261 IF( ln_wd .OR. ln_rwd ) CALL iom_get( inum, jpdom_data, 'ht_wd' , ht_wd , lrowattr=ln_use_jattr ) 262 IF( ln_wd .OR. ln_rwd ) CALL iom_get( inum, 'rn_wd_ref_depth' , rn_ssh_ref ) 262 263 ! 263 264 CALL iom_close( inum ) -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/CS15mini/MY_SRC/dynhpg.F90
r8403 r8544 455 455 DO ji = 2, jpim1 456 456 ll_tmp1 = MIN( sshn(ji,jj) , sshn(ji+1,jj) ) > & 457 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji+1,jj) ) .AND. &458 & MAX( sshn(ji,jj) + ht_ wd(ji,jj), sshn(ji+1,jj) + ht_wd(ji+1,jj) ) &457 & MAX( -ht_0(ji,jj) , -ht_0(ji+1,jj) ) .AND. & 458 & MAX( sshn(ji,jj) + ht_0(ji,jj), sshn(ji+1,jj) + ht_0(ji+1,jj) ) & 459 459 & > rn_wdmin1 + rn_wdmin2 460 460 ll_tmp2 = ( ABS( sshn(ji,jj) - sshn(ji+1,jj) ) > 1.E-12 ) .AND. ( & 461 461 & MAX( sshn(ji,jj) , sshn(ji+1,jj) ) > & 462 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 )462 & MAX( -ht_0(ji,jj) , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 463 463 464 464 IF(ll_tmp1) THEN … … 466 466 ELSE IF(ll_tmp2) THEN 467 467 ! no worries about sshn(ji+1,jj) - sshn(ji ,jj) = 0, it won't happen ! here 468 zcpx(ji,jj) = ABS( (sshn(ji+1,jj) + ht_ wd(ji+1,jj) - sshn(ji,jj) - ht_wd(ji,jj)) &468 zcpx(ji,jj) = ABS( (sshn(ji+1,jj) + ht_0(ji+1,jj) - sshn(ji,jj) - ht_0(ji,jj)) & 469 469 & / (sshn(ji+1,jj) - sshn(ji ,jj)) ) 470 470 ELSE … … 473 473 474 474 ll_tmp1 = MIN( sshn(ji,jj) , sshn(ji,jj+1) ) > & 475 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji,jj+1) ) .AND. &476 & MAX( sshn(ji,jj) + ht_ wd(ji,jj), sshn(ji,jj+1) + ht_wd(ji,jj+1) ) &475 & MAX( -ht_0(ji,jj) , -ht_0(ji,jj+1) ) .AND. & 476 & MAX( sshn(ji,jj) + ht_0(ji,jj), sshn(ji,jj+1) + ht_0(ji,jj+1) ) & 477 477 & > rn_wdmin1 + rn_wdmin2 478 478 ll_tmp2 = ( ABS( sshn(ji,jj) - sshn(ji,jj+1) ) > 1.E-12 ) .AND. ( & 479 479 & MAX( sshn(ji,jj) , sshn(ji,jj+1) ) > & 480 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 )480 & MAX( -ht_0(ji,jj) , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 481 481 482 482 IF(ll_tmp1) THEN … … 484 484 ELSE IF(ll_tmp2) THEN 485 485 ! no worries about sshn(ji,jj+1) - sshn(ji,jj ) = 0, it won't happen ! here 486 zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_ wd(ji,jj+1) - sshn(ji,jj) - ht_wd(ji,jj)) &486 zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_0(ji,jj+1) - sshn(ji,jj) - ht_0(ji,jj)) & 487 487 & / (sshn(ji,jj+1) - sshn(ji,jj )) ) 488 488 ELSE … … 707 707 DO ji = 2, jpim1 708 708 ll_tmp1 = MIN( sshn(ji,jj) , sshn(ji+1,jj) ) > & 709 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji+1,jj) ) .AND. &710 & MAX( sshn(ji,jj) + ht_ wd(ji,jj), sshn(ji+1,jj) + ht_wd(ji+1,jj) ) &709 & MAX( -ht_0(ji,jj) , -ht_0(ji+1,jj) ) .AND. & 710 & MAX( sshn(ji,jj) + ht_0(ji,jj), sshn(ji+1,jj) + ht_0(ji+1,jj) ) & 711 711 & > rn_wdmin1 + rn_wdmin2 712 712 ll_tmp2 = ( ABS( sshn(ji,jj) - sshn(ji+1,jj) ) > 1.E-12 ) .AND. ( & 713 713 & MAX( sshn(ji,jj) , sshn(ji+1,jj) ) > & 714 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 )714 & MAX( -ht_0(ji,jj) , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 715 715 716 716 IF(ll_tmp1) THEN … … 718 718 ELSE IF(ll_tmp2) THEN 719 719 ! no worries about sshn(ji+1,jj) - sshn(ji ,jj) = 0, it won't happen ! here 720 zcpx(ji,jj) = ABS( (sshn(ji+1,jj) + ht_ wd(ji+1,jj) - sshn(ji,jj) - ht_wd(ji,jj)) &720 zcpx(ji,jj) = ABS( (sshn(ji+1,jj) + ht_0(ji+1,jj) - sshn(ji,jj) - ht_0(ji,jj)) & 721 721 & / (sshn(ji+1,jj) - sshn(ji ,jj)) ) 722 722 ELSE … … 725 725 726 726 ll_tmp1 = MIN( sshn(ji,jj) , sshn(ji,jj+1) ) > & 727 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji,jj+1) ) .AND. &728 & MAX( sshn(ji,jj) + ht_ wd(ji,jj), sshn(ji,jj+1) + ht_wd(ji,jj+1) ) &727 & MAX( -ht_0(ji,jj) , -ht_0(ji,jj+1) ) .AND. & 728 & MAX( sshn(ji,jj) + ht_0(ji,jj), sshn(ji,jj+1) + ht_0(ji,jj+1) ) & 729 729 & > rn_wdmin1 + rn_wdmin2 730 730 ll_tmp2 = ( ABS( sshn(ji,jj) - sshn(ji,jj+1) ) > 1.E-12 ) .AND. ( & 731 731 & MAX( sshn(ji,jj) , sshn(ji,jj+1) ) > & 732 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 )732 & MAX( -ht_0(ji,jj) , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 733 733 734 734 IF(ll_tmp1) THEN … … 736 736 ELSE IF(ll_tmp2) THEN 737 737 ! no worries about sshn(ji,jj+1) - sshn(ji,jj ) = 0, it won't happen ! here 738 zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_ wd(ji,jj+1) - sshn(ji,jj) - ht_wd(ji,jj)) &738 zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_0(ji,jj+1) - sshn(ji,jj) - ht_0(ji,jj)) & 739 739 & / (sshn(ji,jj+1) - sshn(ji,jj )) ) 740 740 ELSE … … 1006 1006 DO ji = 2, jpim1 1007 1007 ll_tmp1 = MIN( sshn(ji,jj) , sshn(ji+1,jj) ) > & 1008 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji+1,jj) ) .AND. &1009 & MAX( sshn(ji,jj) + ht_ wd(ji,jj), sshn(ji+1,jj) + ht_wd(ji+1,jj) ) &1008 & MAX( -ht_0(ji,jj) , -ht_0(ji+1,jj) ) .AND. & 1009 & MAX( sshn(ji,jj) + ht_0(ji,jj), sshn(ji+1,jj) + ht_0(ji+1,jj) ) & 1010 1010 & > rn_wdmin1 + rn_wdmin2 1011 1011 ll_tmp2 = ( ABS( sshn(ji,jj) - sshn(ji+1,jj) ) > 1.E-12 ) .AND. ( & 1012 1012 & MAX( sshn(ji,jj) , sshn(ji+1,jj) ) > & 1013 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 )1013 & MAX( -ht_0(ji,jj) , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 1014 1014 1015 1015 IF(ll_tmp1) THEN … … 1017 1017 ELSE IF(ll_tmp2) THEN 1018 1018 ! no worries about sshn(ji+1,jj) - sshn(ji ,jj) = 0, it won't happen ! here 1019 zcpx(ji,jj) = ABS( (sshn(ji+1,jj) + ht_ wd(ji+1,jj) - sshn(ji,jj) - ht_wd(ji,jj)) &1019 zcpx(ji,jj) = ABS( (sshn(ji+1,jj) + ht_0(ji+1,jj) - sshn(ji,jj) - ht_0(ji,jj)) & 1020 1020 & / (sshn(ji+1,jj) - sshn(ji ,jj)) ) 1021 1021 … … 1026 1026 1027 1027 ll_tmp1 = MIN( sshn(ji,jj) , sshn(ji,jj+1) ) > & 1028 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji,jj+1) ) .AND. &1029 & MAX( sshn(ji,jj) + ht_ wd(ji,jj), sshn(ji,jj+1) + ht_wd(ji,jj+1) ) &1028 & MAX( -ht_0(ji,jj) , -ht_0(ji,jj+1) ) .AND. & 1029 & MAX( sshn(ji,jj) + ht_0(ji,jj), sshn(ji,jj+1) + ht_0(ji,jj+1) ) & 1030 1030 & > rn_wdmin1 + rn_wdmin2 1031 1031 ll_tmp2 = ( ABS( sshn(ji,jj) - sshn(ji,jj+1) ) > 1.E-12 ) .AND. ( & 1032 1032 & MAX( sshn(ji,jj) , sshn(ji,jj+1) ) > & 1033 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 )1033 & MAX( -ht_0(ji,jj) , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 1034 1034 1035 1035 IF(ll_tmp1) THEN … … 1037 1037 ELSE IF(ll_tmp2) THEN 1038 1038 ! no worries about sshn(ji,jj+1) - sshn(ji,jj ) = 0, it won't happen ! here 1039 zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_ wd(ji,jj+1) - sshn(ji,jj) - ht_wd(ji,jj)) &1039 zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_0(ji,jj+1) - sshn(ji,jj) - ht_0(ji,jj)) & 1040 1040 & / (sshn(ji,jj+1) - sshn(ji,jj )) ) 1041 1041 zcpy(ji,jj) = max(min( zcpy(ji,jj) , 1.0_wp),0.0_wp) -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/CS15mini/MY_SRC/dynspg_ts.F90
r8403 r8544 421 421 DO ji = 2, jpim1 422 422 ll_tmp1 = MIN( sshn(ji,jj) , sshn(ji+1,jj) ) > & 423 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji+1,jj) ) .AND. &424 & MAX( sshn(ji,jj) + ht_ wd(ji,jj), sshn(ji+1,jj) + ht_wd(ji+1,jj) ) &423 & MAX( -ht_0(ji,jj) , -ht_0(ji+1,jj) ) .AND. & 424 & MAX( sshn(ji,jj) + ht_0(ji,jj), sshn(ji+1,jj) + ht_0(ji+1,jj) ) & 425 425 & > rn_wdmin1 + rn_wdmin2 426 426 ll_tmp2 = ( ABS( sshn(ji+1,jj) - sshn(ji ,jj)) > 1.E-12 ).AND.( & 427 427 & MAX( sshn(ji,jj) , sshn(ji+1,jj) ) > & 428 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 )428 & MAX( -ht_0(ji,jj) , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 429 429 430 430 IF(ll_tmp1) THEN … … 432 432 ELSE IF(ll_tmp2) THEN 433 433 ! no worries about sshn(ji+1,jj) - sshn(ji ,jj) = 0, it won't happen ! here 434 zcpx(ji,jj) = ABS( (sshn(ji+1,jj) + ht_ wd(ji+1,jj) - sshn(ji,jj) - ht_wd(ji,jj)) &434 zcpx(ji,jj) = ABS( (sshn(ji+1,jj) + ht_0(ji+1,jj) - sshn(ji,jj) - ht_0(ji,jj)) & 435 435 & / (sshn(ji+1,jj) - sshn(ji ,jj)) ) 436 436 zcpx(ji,jj) = max(min( zcpx(ji,jj) , 1.0_wp),0.0_wp) … … 441 441 442 442 ll_tmp1 = MIN( sshn(ji,jj) , sshn(ji,jj+1) ) > & 443 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji,jj+1) ) .AND. &444 & MAX( sshn(ji,jj) + ht_ wd(ji,jj), sshn(ji,jj+1) + ht_wd(ji,jj+1) ) &443 & MAX( -ht_0(ji,jj) , -ht_0(ji,jj+1) ) .AND. & 444 & MAX( sshn(ji,jj) + ht_0(ji,jj), sshn(ji,jj+1) + ht_0(ji,jj+1) ) & 445 445 & > rn_wdmin1 + rn_wdmin2 446 446 ll_tmp2 = ( ABS( sshn(ji,jj) - sshn(ji,jj+1)) > 1.E-12 ).AND.( & 447 447 & MAX( sshn(ji,jj) , sshn(ji,jj+1) ) > & 448 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 )448 & MAX( -ht_0(ji,jj) , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 449 449 450 450 IF(ll_tmp1) THEN … … 452 452 ELSE IF(ll_tmp2) THEN 453 453 ! no worries about sshn(ji,jj+1) - sshn(ji,jj ) = 0, it won't happen ! here 454 zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_ wd(ji,jj+1) - sshn(ji,jj) - ht_wd(ji,jj)) &454 zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_0(ji,jj+1) - sshn(ji,jj) - ht_0(ji,jj)) & 455 455 & / (sshn(ji,jj+1) - sshn(ji,jj )) ) 456 456 zcpy(ji,jj) = max(min( zcpy(ji,jj) , 1.0_wp),0.0_wp) … … 697 697 ztwdmask(ji,jj) = 1._wp 698 698 ELSE IF ( zsshp2_e(ji,jj) + ht_0(ji,jj) > rn_wdmin1 ) THEN 699 !CEODztwdmask(ji,jj) = ( zsshp2_e(ji,jj) + ht_0(ji,jj) - rn_wdmin1 ) * zwdramp 700 ztwdmask(ji,jj) = (tanh(5._wp*( ( zsshp2_e(ji,jj) + ht_0(ji,jj) - rn_wdmin1 )/rn_wdmin1)) ) 699 ztwdmask(ji,jj) = (tanh(50._wp*( ( zsshp2_e(ji,jj) + ht_0(ji,jj) - rn_wdmin1 )/rn_wdmin1)) ) 701 700 ELSE 702 701 ztwdmask(ji,jj) = 0._wp … … 889 888 DO ji = 2, jpim1 890 889 ll_tmp1 = MIN( zsshp2_e(ji,jj) , zsshp2_e(ji+1,jj) ) > & 891 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji+1,jj) ) .AND. &892 & MAX( zsshp2_e(ji,jj) + ht_ wd(ji,jj), zsshp2_e(ji+1,jj) + ht_wd(ji+1,jj) ) &890 & MAX( -ht_0(ji,jj) , -ht_0(ji+1,jj) ) .AND. & 891 & MAX( zsshp2_e(ji,jj) + ht_0(ji,jj), zsshp2_e(ji+1,jj) + ht_0(ji+1,jj) ) & 893 892 & > rn_wdmin1 + rn_wdmin2 894 893 ll_tmp2 = (ABS(zsshp2_e(ji,jj) - zsshp2_e(ji+1,jj)) > 1.E-12 ).AND.( & 895 894 & MAX( zsshp2_e(ji,jj) , zsshp2_e(ji+1,jj) ) > & 896 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 )895 & MAX( -ht_0(ji,jj) , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 897 896 898 897 IF(ll_tmp1) THEN … … 900 899 ELSE IF(ll_tmp2) THEN 901 900 ! no worries about zsshp2_e(ji+1,jj) - zsshp2_e(ji ,jj) = 0, it won't happen ! here 902 zcpx(ji,jj) = ABS( (zsshp2_e(ji+1,jj) + ht_ wd(ji+1,jj) - zsshp2_e(ji,jj) - ht_wd(ji,jj)) &901 zcpx(ji,jj) = ABS( (zsshp2_e(ji+1,jj) + ht_0(ji+1,jj) - zsshp2_e(ji,jj) - ht_0(ji,jj)) & 903 902 & / (zsshp2_e(ji+1,jj) - zsshp2_e(ji ,jj)) ) 904 903 ELSE … … 907 906 908 907 ll_tmp1 = MIN( zsshp2_e(ji,jj) , zsshp2_e(ji,jj+1) ) > & 909 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji,jj+1) ) .AND. &910 & MAX( zsshp2_e(ji,jj) + ht_ wd(ji,jj), zsshp2_e(ji,jj+1) + ht_wd(ji,jj+1) ) &908 & MAX( -ht_0(ji,jj) , -ht_0(ji,jj+1) ) .AND. & 909 & MAX( zsshp2_e(ji,jj) + ht_0(ji,jj), zsshp2_e(ji,jj+1) + ht_0(ji,jj+1) ) & 911 910 & > rn_wdmin1 + rn_wdmin2 912 911 ll_tmp2 = (ABS(zsshp2_e(ji,jj) - zsshp2_e(ji,jj+1)) > 1.E-12 ).AND.( & 913 912 & MAX( zsshp2_e(ji,jj) , zsshp2_e(ji,jj+1) ) > & 914 & MAX( -ht_ wd(ji,jj) , -ht_wd(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 )913 & MAX( -ht_0(ji,jj) , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 915 914 916 915 IF(ll_tmp1) THEN … … 918 917 ELSE IF(ll_tmp2) THEN 919 918 ! no worries about zsshp2_e(ji,jj+1) - zsshp2_e(ji,jj ) = 0, it won't happen ! here 920 zcpy(ji,jj) = ABS( (zsshp2_e(ji,jj+1) + ht_ wd(ji,jj+1) - zsshp2_e(ji,jj) - ht_wd(ji,jj)) &919 zcpy(ji,jj) = ABS( (zsshp2_e(ji,jj+1) + ht_0(ji,jj+1) - zsshp2_e(ji,jj) - ht_0(ji,jj)) & 921 920 & / (zsshp2_e(ji,jj+1) - zsshp2_e(ji,jj )) ) 922 921 ELSE … … 1066 1065 1067 1066 IF( ln_wd ) THEN 1068 !CEOD zhura = MAX(hu_0(ji,jj) + zsshu_a(ji,jj), rn_wdmin1)1069 !CEOD zhvra = MAX(hv_0(ji,jj) + zsshv_a(ji,jj), rn_wdmin1)1070 1067 zhura = hu_0(ji,jj) + zsshu_a(ji,jj) 1071 1068 zhvra = hv_0(ji,jj) + zsshv_a(ji,jj) … … 1108 1105 IF( .NOT.ln_linssh ) THEN !* Update ocean depth (variable volume case only) 1109 1106 IF( ln_wd ) THEN 1110 !CEOD hu_e (:,:) = MAX(hu_0(:,:) + zsshu_a(:,:), rn_wdmin1)1111 !CEOD hv_e (:,:) = MAX(hv_0(:,:) + zsshv_a(:,:), rn_wdmin1)1112 1107 hu_e (:,:) = hu_0(:,:) + zsshu_a(:,:) 1113 1108 hv_e (:,:) = hv_0(:,:) + zsshv_a(:,:) -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/CS15mini/MY_SRC/usrdef_istate.F90
r8403 r8544 14 14 !!---------------------------------------------------------------------- 15 15 USE par_oce ! ocean space and time domain 16 USE dom_oce ! ocean space and time domain 16 17 USE phycst ! physical constants 17 18 USE wet_dry ! Wetting and drying … … 85 86 86 87 ! subtract the height of z=0 above the geoid (this allows z = 0 to be higher than all points that may become wet) 87 pssh(:,:) = pssh(:,:) -rn_ssh_ref88 pssh(:,:) = -rn_ssh_ref 88 89 89 90 ! … … 92 93 do jj = 1,jpj 93 94 do ji = 1,jpi 94 IF( ht_ wd(ji,jj) + pssh(ji,jj)< rn_wdmin1 ) THEN95 pssh(ji,jj) = ptmask(ji,jj,1)*( rn_wdmin1 - ht_wd(ji,jj) )95 IF( ht_0(ji,jj) + pssh(ji,jj) < rn_wdmin1 ) THEN 96 pssh(ji,jj) = ptmask(ji,jj,1)*( rn_wdmin1 - (ht_0(ji,jj)) ) 96 97 ENDIF 97 98 end do -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/CS15mini/MY_SRC/wet_dry.F90
r8403 r8544 73 73 !!---------------------------------------------------------------------- 74 74 NAMELIST/namwad/ ln_wd, ln_rwd, rn_wdmin0, ln_rwd, rn_wdmin1, rn_wdmin2, rn_wdld, nn_wdit, ln_wd_diag, ln_rwd_bc, & 75 & rn_ssh_ref,rn_ht_0, jn_wd_i, jn_wd_j, jn_wd_k,ln_rwd_rmp75 & rn_ht_0, jn_wd_i, jn_wd_j, jn_wd_k,ln_rwd_rmp 76 76 77 77 INTEGER :: ios ! Local integer output status for namelist read … … 104 104 WRITE(numout,*) ' T => baroclinic u,v = 0 at dry pts: ln_rwd_bc = ', ln_rwd_bc 105 105 WRITE(numout,*) ' use a ramp for rwd limiter: ln_rwd_rmp = ', ln_rwd_rmp 106 WRITE(numout,*) ' height of z = 0 above the geoid: rn_ssh_ref = ', rn_ssh_ref107 106 WRITE(numout,*) ' the height (z) at which ht_0 = 0:rn_ht_0 = ', rn_ht_0 108 107 WRITE(numout,*) ' i-index for diagnostic point jn_wd_i = ', jn_wd_i … … 111 110 ENDIF 112 111 ! 113 ! CEOD .OR. ln_rwd added to prevent segmentation errors114 112 IF(ln_wd .OR. ln_rwd) THEN 115 113 ALLOCATE( wdmask(jpi,jpj), ht_wd(jpi,jpj), STAT=ierr ) … … 189 187 190 188 IF( tmask(ji, jj, 1) < 0.5_wp ) CYCLE ! we don't care about land cells 191 IF( ht_ wd(ji,jj)> zdepwd ) CYCLE ! and cells which are unlikely to dry189 IF( ht_0(ji,jj)-rn_ssh_ref > zdepwd ) CYCLE ! and cells which are unlikely to dry 192 190 193 191 zflxp(ji,jj) = max(zflxu(ji,jj), 0._wp) - min(zflxu(ji-1,jj), 0._wp) + & … … 196 194 & min(zflxv(ji,jj), 0._wp) - max(zflxv(ji, jj-1), 0._wp) 197 195 198 zdep2 = ht_ wd(ji,jj) + sshb1(ji,jj) - rn_wdmin1196 zdep2 = ht_0(ji,jj) + sshb1(ji,jj) - rn_wdmin1 199 197 IF(zdep2 .le. 0._wp) THEN !add more safty, but not necessary 200 sshb1(ji,jj) = rn_wdmin1 - ht_ wd(ji,jj)198 sshb1(ji,jj) = rn_wdmin1 - ht_0(ji,jj) 201 199 IF(zflxu(ji, jj) > 0._wp) zwdlmtu(ji ,jj) = 0._wp 202 200 IF(zflxu(ji-1,jj) < 0._wp) zwdlmtu(ji-1,jj) = 0._wp … … 211 209 ! slwa 212 210 ! HPG limiter from jholt 213 wdramp(:,:) = min((ht_ wd(:,:) + sshb1(:,:) - rn_wdmin1)/(rn_wdmin0 - rn_wdmin1),1.0_wp)211 wdramp(:,:) = min((ht_0(:,:) + sshb1(:,:) - rn_wdmin1)/(rn_wdmin0 - rn_wdmin1),1.0_wp) 214 212 ! write(6,*)'wdramp ',wdramp(10,10),wdramp(10,11) 215 213 !jth assume don't need a lbc_lnk here … … 238 236 239 237 IF( tmask(ji, jj, 1) < 0.5_wp ) CYCLE 240 IF( ht_ wd(ji,jj) > zdepwd ) CYCLE238 IF( ht_0(ji,jj) > zdepwd ) CYCLE 241 239 242 240 ztmp = e1e2t(ji,jj) … … 248 246 249 247 zdep1 = (zzflxp + zzflxn) * z2dt / ztmp 250 zdep2 = ht_ wd(ji,jj) + sshb1(ji,jj) - rn_wdmin1 - z2dt * sshemp(ji,jj)248 zdep2 = ht_0(ji,jj) + sshb1(ji,jj) - rn_wdmin1 - z2dt * sshemp(ji,jj) 251 249 252 250 IF( zdep1 > zdep2 ) THEN … … 362 360 363 361 IF( tmask(ji, jj, 1 ) < 0.5_wp) CYCLE ! we don't care about land cells 364 IF( ht_ wd(ji,jj) > zdepwd ) CYCLE ! and cells which are unlikely to dry362 IF( ht_0(ji,jj) > zdepwd ) CYCLE ! and cells which are unlikely to dry 365 363 366 364 zflxp(ji,jj) = max(zflxu(ji,jj), 0._wp) - min(zflxu(ji-1,jj), 0._wp) + & … … 369 367 & min(zflxv(ji,jj), 0._wp) - max(zflxv(ji, jj-1), 0._wp) 370 368 371 zdep2 = ht_ wd(ji,jj) + sshn_e(ji,jj) - rn_wdmin1369 zdep2 = ht_0(ji,jj) + sshn_e(ji,jj) - rn_wdmin1 372 370 IF(zdep2 .le. 0._wp) THEN !add more safety, but not necessary 373 sshn_e(ji,jj) = rn_wdmin1 - ht_ wd(ji,jj)371 sshn_e(ji,jj) = rn_wdmin1 - ht_0(ji,jj) 374 372 IF(zflxu(ji, jj) > 0._wp) zwdlmtu(ji ,jj) = 0._wp 375 373 IF(zflxu(ji-1,jj) < 0._wp) zwdlmtu(ji-1,jj) = 0._wp … … 393 391 394 392 IF( tmask(ji, jj, 1 ) < 0.5_wp) CYCLE 395 IF( ht_ wd(ji,jj) > zdepwd ) CYCLE393 IF( ht_0(ji,jj) > zdepwd ) CYCLE 396 394 397 395 ztmp = e1e2t(ji,jj) … … 403 401 404 402 zdep1 = (zzflxp + zzflxn) * z2dt / ztmp 405 zdep2 = ht_ wd(ji,jj) + sshn_e(ji,jj) - rn_wdmin1 - z2dt * zssh_frc(ji,jj)403 zdep2 = ht_0(ji,jj) + sshn_e(ji,jj) - rn_wdmin1 - z2dt * zssh_frc(ji,jj) 406 404 407 405 IF(zdep1 > zdep2) THEN -
branches/UKMO/ROMS_WAD_7832/NEMOGCM/CONFIG/TEST_CASES/cfg.txt
r7715 r8544 4 4 SAS_BIPER OPA_SRC SAS_SRC LIM_SRC_3 NST_SRC 5 5 ISOMIP OPA_SRC 6 WAD7_SCOORD 7 WAD7_SCOORD 8 WAD7SCOORD 9 WAD7SCOORD OPA_SRC 10 WAD7 OPA_SRC 11 WAD7LONG OPA_SRC
Note: See TracChangeset
for help on using the changeset viewer.