Changeset 5889
- Timestamp:
- 2015-11-13T17:58:13+01:00 (9 years ago)
- Location:
- branches/UKMO/dev_r5518_flux_adjust/NEMOGCM/NEMO/OPA_SRC/SBC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_flux_adjust/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r5880 r5889 45 45 LOGICAL , PUBLIC :: ln_rnf !: runoffs / runoff mouths 46 46 LOGICAL , PUBLIC :: ln_ssr !: Sea Surface restoring on SST and/or SSS 47 LOGICAL , PUBLIC :: ln_flx_adj !: Sea Surface restoring on SST and/or SSS 47 48 LOGICAL , PUBLIC :: ln_apr_dyn !: Atmospheric pressure forcing used on dynamics (ocean & ice) 48 49 INTEGER , PUBLIC :: nn_ice !: flag for ice in the surface boundary condition (=0/1/2/3) -
branches/UKMO/dev_r5518_flux_adjust/NEMOGCM/NEMO/OPA_SRC/SBC/sbcflx_adj.F90
r5881 r5889 37 37 INTEGER, PUBLIC :: nn_flxadjht ! Heat/freshwater flux adjustment indicator 38 38 INTEGER, PUBLIC :: nn_flxadjfw ! Heat/freshwater flux adjustment indicator 39 REAL(wp) :: rn_dqdt ! restoring factor on SST and SSS40 REAL(wp) :: rn_deds ! restoring factor on SST and SSS41 39 LOGICAL :: ln_sssr_bnd ! flag to bound erp term 42 40 REAL(wp) :: rn_sssr_bnd ! ABS(Max./Min.) value of erp term [mm/day] … … 74 72 REAL(wp) :: zerp ! local scalar for evaporation damping 75 73 REAL(wp) :: zqrp ! local scalar for heat flux damping 76 REAL(wp) :: zsrp ! local scalar for unit conversion of rn_deds factor77 74 REAL(wp) :: zerp_bnd ! local scalar for unit conversion of rn_epr_max factor 78 75 INTEGER :: ierror ! return error code … … 104 101 ! 105 102 IF( nn_flxadjfw == 1 ) THEN !* Anomalous freshwater term !(salt flux only (sfx)) 106 zsrp = rn_deds / rday ! from [mm/day] to [kg/m2/s]107 103 !CDIR COLLAPSE 108 104 DO jj = 1, jpj … … 117 113 ! 118 114 ELSEIF( nn_flxadjfw == 2 ) THEN !* Salinity damping term (volume flux (emp) and associated heat flux (qns) 119 zsrp = rn_deds / rday ! from [mm/day] to [kg/m2/s]120 115 zerp_bnd = rn_sssr_bnd / rday ! - - 121 116 !CDIR COLLAPSE … … 152 147 REAL(wp) :: zerp ! local scalar for evaporation damping 153 148 REAL(wp) :: zqrp ! local scalar for heat flux damping 154 REAL(wp) :: zsrp ! local scalar for unit conversion of rn_deds factor155 149 REAL(wp) :: zerp_bnd ! local scalar for unit conversion of rn_epr_max factor 156 150 INTEGER :: ierror ! return error code … … 158 152 CHARACTER(len=100) :: cn_dir ! Root directory for location of ssr files 159 153 TYPE(FLD_N) :: sn_qrp, sn_erp ! informations about the fields to be read 160 NAMELIST/namsbc_flx_adj/ cn_dir, nn_flxadjht, nn_flxadjfw, rn_dqdt, rn_deds, sn_qrp, sn_erp, ln_sssr_bnd, rn_sssr_bnd 154 NAMELIST/namsbc_flx_adj/ cn_dir, nn_flxadjht, nn_flxadjfw, sn_qrp, sn_erp, & 155 & ln_sssr_bnd, rn_sssr_bnd 161 156 INTEGER :: ios 162 157 !!---------------------------------------------------------------------- … … 177 172 WRITE(numout,*) '~~~~~~~ ' 178 173 WRITE(numout,*) ' Namelist namsbc_flx_adj :' 179 WRITE(numout,*) ' Anom alousheat flux (qrp) term (Yes=1) nn_flxadjht = ', nn_flxadjht180 WRITE(numout,*) ' Anom alous freshwaterflux (erp) term (Yes=1, salt flux) nn_flxadjfw = ', nn_flxadjfw174 WRITE(numout,*) ' Anom. heat flux (qrp) term (Yes=1) nn_flxadjht = ', nn_flxadjht 175 WRITE(numout,*) ' Anom. fw flux (erp) term (Yes=1, salt flux) nn_flxadjfw = ', nn_flxadjfw 181 176 WRITE(numout,*) ' (Yes=2, volume flux) ' 182 WRITE(numout,*) ' dQ/dT (restoring magnitude on SST) rn_dqdt = ', rn_dqdt, ' W/m2/K'183 WRITE(numout,*) ' dE/dS (restoring magnitude on SST) rn_deds = ', rn_deds, ' mm/day'184 177 WRITE(numout,*) ' flag to bound erp term ln_sssr_bnd = ', ln_sssr_bnd 185 178 WRITE(numout,*) ' ABS(Max./Min.) erp threshold rn_sssr_bnd = ', rn_sssr_bnd, ' mm/day' … … 194 187 ALLOCATE( sf_qrp(1), STAT=ierror ) 195 188 IF( ierror > 0 ) CALL ctl_stop( 'STOP', 'sbc_flx_adj: unable to allocate sf_qrp structure' ) 196 ALLOCATE( sf_ sst(1)%fnow(jpi,jpj,1), STAT=ierror )189 ALLOCATE( sf_qrp(1)%fnow(jpi,jpj,1), STAT=ierror ) 197 190 IF( ierror > 0 ) CALL ctl_stop( 'STOP', 'sbc_flx_adj: unable to allocate sf_qrp now array' ) 198 191 ! -
branches/UKMO/dev_r5518_flux_adjust/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
r5881 r5889 90 90 & ln_blk_mfs, ln_apr_dyn, nn_ice, nn_ice_embd, ln_dm2dc , ln_rnf , & 91 91 & ln_ssr , nn_isf , nn_fwb, ln_cdgw , ln_wave , ln_sdw , & 92 & nn_lsm , nn_limflx , nn_components, ln_cpl 92 & nn_lsm , nn_limflx , nn_components, ln_cpl, ln_flx_adj 93 93 INTEGER :: ios 94 94 INTEGER :: ierr, ierr0, ierr1, ierr2, ierr3, jpm … … 144 144 WRITE(numout,*) ' iceshelf formulation nn_isf = ', nn_isf 145 145 WRITE(numout,*) ' Sea Surface Restoring on SST and/or SSS ln_ssr = ', ln_ssr 146 WRITE(numout,*) ' Sea Surface Flux adjustment on heat and/or freshwater ln_flx_adj = ', ln_flx_adj 146 147 WRITE(numout,*) ' FreshWater Budget control (=0/1/2) nn_fwb = ', nn_fwb 147 148 WRITE(numout,*) ' closed sea (=0/1) (set in namdom) nn_closea = ', nn_closea … … 299 300 ! 300 301 ! KY 12/11/2015 301 302 IF( ln_flx_adj ) CALL sbc_flx_adj_init ! Sea-Surface Flux adjustment 302 303 ! 303 304 IF( ln_ssr ) CALL sbc_ssr_init ! Sea-Surface Restoring initialisation … … 404 405 405 406 ! KY 12/11/2015 406 407 IF( ln_flx_adj ) CALL sbc_flx_adj( kt ) ! add flux adjustment term 407 408 408 409 IF( ln_ssr ) CALL sbc_ssr( kt ) ! add SST/SSS damping term
Note: See TracChangeset
for help on using the changeset viewer.