Changeset 11495
- Timestamp:
- 2019-09-03T17:45:00+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/ENHANCE-02_ISF_nemo
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/ENHANCE-02_ISF_nemo/cfgs/WED025/EXPREF/file_def_nemo-oce.xml
r11487 r11495 42 42 43 43 <!-- ice shelf exchange coef --> 44 <field field_ref="isfgammat" name="sogammat " />45 <field field_ref="isfgammas" name="sogammas " />44 <field field_ref="isfgammat" name="sogammat_cav" /> 45 <field field_ref="isfgammas" name="sogammas_cav" /> 46 46 47 <!-- ice shelf debug --> 48 <field field_ref="isfthermald_cav" name="thermald" /> 49 <field field_ref="ttbl_cav" name="ttbl" /> 47 <!-- ice shelf tbl properties --> 48 <field field_ref="isfthermald_cav" name="thermald_cav" /> 49 <field field_ref="ttbl_cav" name="ttbl_cav" /> 50 <field field_ref="stbl" name="stbl_cav" /> 51 <field field_ref="utbl" name="utbl_cav" /> 52 <field field_ref="vtbl" name="vtbl_cav" /> 50 53 51 54 <!-- ice shelf fluxes --> 52 <field field_ref="fwfisf_cav" name="sowflisf"/>55 <field field_ref="fwfisf_cav" name="sowflisf_cav" /> 53 56 <field field_ref="qoceisf_cav" name="qoceisf_cav" /> 54 57 <field field_ref="qlatisf_cav" name="qlatisf_cav" /> 55 <field field_ref="qhcisf_cav" name="qhcisf_cav" /> 58 <field field_ref="qhcisf_cav" name="qhcisf_cav" /> 59 60 <field field_ref="fwfisf_par" name="sowflisf_par" /> 61 <field field_ref="qoceisf_par" name="qoceisf_par" /> 62 <field field_ref="qlatisf_par" name="qlatisf_par" /> 63 <field field_ref="qhcisf_par" name="qhcisf_par" /> 56 64 57 65 </file> -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfcav.F90
r11423 r11495 70 70 ! 71 71 ! compute misfkb_par, rhisf_tbl 72 rhisf_tbl_cav(:,:) = rn_htbl 72 rhisf_tbl_cav(:,:) = rn_htbl * mskisf_cav(:,:) 73 73 CALL isf_tbl_lvl( ht_n, e3t_n, misfkt_cav, misfkb_cav, rhisf_tbl_cav, rfrac_tbl_cav ) 74 74 ! 75 75 ! compute T/S/U/V for the top boundary layer 76 CALL isf_tbl(tsn(:,:,:,jp_tem), zttbl(:,:),'T', misfkt_cav, misfkb_cav, rhisf_tbl_cav, rfrac_tbl_cav )77 CALL isf_tbl(tsn(:,:,:,jp_sal), zstbl(:,:),'T', misfkt_cav, misfkb_cav, rhisf_tbl_cav, rfrac_tbl_cav )76 CALL isf_tbl(tsn(:,:,:,jp_tem), zttbl(:,:),'T', misfkt_cav, rhisf_tbl_cav, misfkb_cav, rfrac_tbl_cav ) 77 CALL isf_tbl(tsn(:,:,:,jp_sal), zstbl(:,:),'T', misfkt_cav, rhisf_tbl_cav, misfkb_cav, rfrac_tbl_cav ) 78 78 ! 79 79 ! output T/S/U/V for the top boundary layer … … 157 157 ! 158 158 ! cav 159 misfkt_cav(:,:) = mikt(:,:) ; misfkb_cav(:,:)= 1160 rhisf_tbl_cav(:,:) = 0.0_wp ; rfrac_tbl_cav(:,:)= 0.0_wp159 misfkt_cav(:,:) = mikt(:,:) ; misfkb_cav(:,:) = 1 160 rhisf_tbl_cav(:,:) = 0.0_wp ; rfrac_tbl_cav(:,:) = 0.0_wp 161 161 ! 162 162 SELECT CASE ( TRIM(cn_isfcav_mlt) ) -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfcavgam.F90
r11488 r11495 59 59 ! nothing to do 60 60 CASE ('ad15', 'hj99') 61 CALL isf_tbl(un(:,:,:) ,zutbl(:,:),'U') 62 CALL isf_tbl(vn(:,:,:) ,zvtbl(:,:),'V') 61 ! compute velocity in tbl 62 CALL isf_tbl(un(:,:,:) ,zutbl(:,:),'U', miku, rhisf_tbl_cav) 63 CALL isf_tbl(vn(:,:,:) ,zvtbl(:,:),'V', mikv, rhisf_tbl_cav) 64 ! 65 ! mask velocity in tbl with ice shelf mask 66 !zutbl(:,:) = zutbl(:,:) * mskisf_cav(:,:) 67 !zvtbl(:,:) = zvtbl(:,:) * mskisf_cav(:,:) 68 ! 69 ! output 63 70 CALL iom_put('utbl',zutbl(:,:)) 64 71 CALL iom_put('vtbl',zvtbl(:,:)) -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfcavmlt.F90
r11494 r11495 13 13 USE oce ! ocean dynamics and tracers 14 14 USE isf ! ice shelf public variables 15 USE isfutils 15 16 USE dom_oce ! ocean space and time domain 16 17 USE phycst ! physical constants -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfparmlt.F90
r11494 r11495 98 98 CALL eos_fzp(tsn(:,:,jk,jp_sal), ztfrz3d(:,:,jk), gdept_n(:,:,jk)) 99 99 END DO 100 CALL isf_tbl(ztfrz3d, ztfrz, 'T', misfkt_par, misfkb_par, rhisf_tbl_par, rfrac_tbl_par )100 CALL isf_tbl(ztfrz3d, ztfrz, 'T', misfkt_par, rhisf_tbl_par, misfkb_par, rfrac_tbl_par ) 101 101 ! 102 102 pqfwf(:,:) = - sf_isfpar_fwf(1)%fnow(:,:,1) ! fresh water flux from the isf (fwfisf <0 mean melting) … … 136 136 CALL eos_fzp(tsn(:,:,jk,jp_sal), ztfrz3d(:,:,jk), gdept_n(:,:,jk)) 137 137 END DO 138 CALL isf_tbl(ztfrz3d, ztfrz, 'T', misfkt_par, misfkb_par, rhisf_tbl_par, rfrac_tbl_par )138 CALL isf_tbl(ztfrz3d, ztfrz, 'T', misfkt_par, rhisf_tbl_par, misfkb_par, rfrac_tbl_par ) 139 139 ! 140 140 ! 1. ------------Mean temperature 141 CALL isf_tbl(tsn(:,:,jk,jp_tem), ztavg, 'T', misfkt_par, misfkb_par, rhisf_tbl_par, rfrac_tbl_par )141 CALL isf_tbl(tsn(:,:,jk,jp_tem), ztavg, 'T', misfkt_par, rhisf_tbl_par, misfkb_par, rfrac_tbl_par ) 142 142 ! 143 143 ! 2. ------------Net heat flux and fresh water flux due to the ice shelf … … 187 187 CALL eos_fzp(tsn(:,:,jk,jp_sal), ztfrz3d(:,:,jk), gdept_n(:,:,jk)) 188 188 END DO 189 CALL isf_tbl(ztfrz3d, ztfrz, 'T', misfkt_par, misfkb_par, rhisf_tbl_par, rfrac_tbl_par )189 CALL isf_tbl(ztfrz3d, ztfrz, 'T', misfkt_par, rhisf_tbl_par, misfkb_par, rfrac_tbl_par ) 190 190 ! 191 191 ! ice shelf 2d map -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isftbl.F90
r11494 r11495 25 25 CONTAINS 26 26 27 SUBROUTINE isf_tbl( pvarin, pvarout, cd_ptin, ktop, kbot, phtbl, pfrac )27 SUBROUTINE isf_tbl( pvarin, pvarout, cd_ptin, ktop, phtbl, kbot, pfrac ) 28 28 !!-------------------------------------------------------------------- 29 29 !! *** SUBROUTINE isf_tbl *** … … 37 37 CHARACTER(len=1) , INTENT(in ) :: cd_ptin ! point of variable in/out 38 38 REAL(wp), DIMENSION(jpi,jpj,jpk) , INTENT(in ) :: pvarin ! 3d variable to average over the tbl 39 INTEGER, DIMENSION(jpi,jpj) , INTENT(in ) :: ktop ! top level 40 REAL(wp), DIMENSION(jpi,jpj) , INTENT(in ) :: phtbl ! tbl thickness 39 41 !!-------------------------- IN OPTIONAL ----------------------------- 40 INTEGER, DIMENSION(jpi,jpj), OPTIONAL, INTENT(in ) :: k top , kbot ! top andbottom level41 REAL(wp), DIMENSION(jpi,jpj), OPTIONAL, INTENT(in ) :: p htbl, pfrac ! tbl thickness and fraction of bottom cell affected42 INTEGER, DIMENSION(jpi,jpj), OPTIONAL, INTENT(in ) :: kbot ! bottom level 43 REAL(wp), DIMENSION(jpi,jpj), OPTIONAL, INTENT(in ) :: pfrac ! fraction of bottom cell affected by tbl 42 44 !!-------------------------------------------------------------------- 43 45 INTEGER :: ji, jj ! loop index 44 INTEGER , DIMENSION(jpi,jpj) :: ik tbl! bottom level of the tbl46 INTEGER , DIMENSION(jpi,jpj) :: ikbot ! bottom level of the tbl 45 47 REAL(wp), DIMENSION(jpi,jpj) :: zhtbl ! thickness of the tbl 46 48 REAL(wp), DIMENSION(jpi,jpj) :: zfrac ! thickness of the tbl … … 50 52 CASE ( 'U' ) 51 53 ! 52 ! compute tbl lvl/h 53 CALL isf_tbl_lvl( hu_n, e3u_n, miku, iktbl, zhtbl, zfrac ) 54 ! copy phtbl (phtbl is INTENT in as we don't want to change it) 55 zhtbl = phtbl 56 ! 57 ! compute tbl lvl and thickness 58 CALL isf_tbl_lvl( hu_n, e3u_n, ktop, ikbot, zhtbl, zfrac ) 54 59 ! 55 60 ! compute tbl property at U point 56 CALL isf_tbl_avg( miku, ik tbl, zhtbl, zfrac, e3u_n, pvarin, pvarout )61 CALL isf_tbl_avg( miku, ikbot, zhtbl, zfrac, e3u_n, pvarin, pvarout ) 57 62 ! 58 63 ! compute tbl property at T point … … 68 73 CASE ( 'V' ) 69 74 ! 70 ! compute tbl lvl/h 71 CALL isf_tbl_lvl( hv_n, e3v_n, mikv, iktbl, zhtbl, zfrac ) 75 ! copy phtbl (phtbl is INTENT in as we don't want to change it) 76 zhtbl = phtbl 77 ! 78 ! compute tbl lvl and thickness 79 CALL isf_tbl_lvl( hv_n, e3v_n, ktop, ikbot, zhtbl, zfrac ) 72 80 ! 73 81 ! compute tbl property at V point 74 CALL isf_tbl_avg( mikv, ik tbl, zhtbl, zfrac, e3v_n, pvarin, pvarout )82 CALL isf_tbl_avg( mikv, ikbot, zhtbl, zfrac, e3v_n, pvarin, pvarout ) 75 83 ! 76 84 ! pvarout is an averaging of wet point … … 143 151 !! - thickness of the top boundary layer 144 152 !! 145 !!-------------------------------------------------------------------- 146 !!-------------------------- OUT ------------------------------------- 153 !!--------------------------------------------------------------------- 154 !!-------------------------- OUT -------------------------------------- 147 155 INTEGER, DIMENSION(jpi,jpj) , INTENT( out) :: kbot ! bottom level of the top boundary layer 148 REAL(wp), DIMENSION(jpi,jpj) , INTENT( out) :: phtbl ! top boundary layer thickness 149 REAL(wp), DIMENSION(jpi,jpj) , INTENT( out) :: pfrac ! top boundary layer thickness 150 !!-------------------------- IN ------------------------------------- 156 REAL(wp), DIMENSION(jpi,jpj) , INTENT( out) :: pfrac ! fraction of bottom level in the tbl 157 !!-------------------------- IN -------------------------------------- 151 158 INTEGER, DIMENSION(jpi,jpj) , INTENT(in ) :: ktop ! top level of the top boundary layer 152 159 REAL(wp), DIMENSION(jpi,jpj) , INTENT(in ) :: phw ! water column thickness 153 160 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in ) :: pe3 ! vertical scale factor 161 !!-------------------------- INOUT ------------------------------------ 162 REAL(wp), DIMENSION(jpi,jpj) , INTENT(inout) :: phtbl ! top boundary layer thickness 154 163 !!--------------------------------------------------------------------- 155 164 INTEGER :: ji,jj,jk
Note: See TracChangeset
for help on using the changeset viewer.