Changeset 10535 for NEMO/trunk/src/ICE/icesbc.F90
- Timestamp:
- 2019-01-16T18:36:47+01:00 (5 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/ICE/icesbc.F90
r10534 r10535 1 MODULE ice forcing1 MODULE icesbc 2 2 !!====================================================================== 3 !! *** MODULE ice forcing***4 !! Sea-Ice : air-ice forcingfields3 !! *** MODULE icesbc *** 4 !! Sea-Ice : air-ice sbc fields 5 5 !!===================================================================== 6 6 !! History : 4.0 ! 2017-08 (C. Rousset) Original code … … 31 31 PRIVATE 32 32 33 PUBLIC ice_ forcing_tau ! called by icestp.F9034 PUBLIC ice_ forcing_flx ! called by icestp.F9035 PUBLIC ice_ forcing_init ! called by icestp.F9033 PUBLIC ice_sbc_tau ! called by icestp.F90 34 PUBLIC ice_sbc_flx ! called by icestp.F90 35 PUBLIC ice_sbc_init ! called by icestp.F90 36 36 37 37 !! * Substitutions … … 44 44 CONTAINS 45 45 46 SUBROUTINE ice_ forcing_tau( kt, ksbc, utau_ice, vtau_ice )47 !!------------------------------------------------------------------- 48 !! *** ROUTINE ice_ forcing_tau ***46 SUBROUTINE ice_sbc_tau( kt, ksbc, utau_ice, vtau_ice ) 47 !!------------------------------------------------------------------- 48 !! *** ROUTINE ice_sbc_tau *** 49 49 !! 50 50 !! ** Purpose : provide surface boundary condition for sea ice (momentum) … … 61 61 !!------------------------------------------------------------------- 62 62 ! 63 IF( ln_timing ) CALL timing_start('ice_ forcing')63 IF( ln_timing ) CALL timing_start('ice_sbc') 64 64 ! 65 65 IF( kt == nit000 .AND. lwp ) THEN 66 66 WRITE(numout,*) 67 WRITE(numout,*)'ice_ forcing_tau: Surface boundary condition for sea ice (momentum)'67 WRITE(numout,*)'ice_sbc_tau: Surface boundary condition for sea ice (momentum)' 68 68 WRITE(numout,*)'~~~~~~~~~~~~~~~' 69 69 ENDIF … … 83 83 END DO 84 84 END DO 85 CALL lbc_lnk_multi( 'ice forcing', utau_ice, 'U', -1., vtau_ice, 'V', -1. )86 ENDIF 87 ! 88 IF( ln_timing ) CALL timing_stop('ice_ forcing')89 ! 90 END SUBROUTINE ice_ forcing_tau85 CALL lbc_lnk_multi( 'icesbc', utau_ice, 'U', -1., vtau_ice, 'V', -1. ) 86 ENDIF 87 ! 88 IF( ln_timing ) CALL timing_stop('ice_sbc') 89 ! 90 END SUBROUTINE ice_sbc_tau 91 91 92 92 93 SUBROUTINE ice_ forcing_flx( kt, ksbc )94 !!------------------------------------------------------------------- 95 !! *** ROUTINE ice_ forcing_flx ***93 SUBROUTINE ice_sbc_flx( kt, ksbc ) 94 !!------------------------------------------------------------------- 95 !! *** ROUTINE ice_sbc_flx *** 96 96 !! 97 97 !! ** Purpose : provide surface boundary condition for sea ice (flux) … … 119 119 !!-------------------------------------------------------------------- 120 120 ! 121 IF( ln_timing ) CALL timing_start('ice_ forcing_flx')121 IF( ln_timing ) CALL timing_start('ice_sbc_flx') 122 122 123 123 IF( kt == nit000 .AND. lwp ) THEN 124 124 WRITE(numout,*) 125 WRITE(numout,*)'ice_ forcing_flx: Surface boundary condition for sea ice (flux)'125 WRITE(numout,*)'ice_sbc_flx: Surface boundary condition for sea ice (flux)' 126 126 WRITE(numout,*)'~~~~~~~~~~~~~~~' 127 127 ENDIF … … 163 163 ENDIF 164 164 ! 165 IF( ln_timing ) CALL timing_stop('ice_ forcing_flx')166 ! 167 END SUBROUTINE ice_ forcing_flx165 IF( ln_timing ) CALL timing_stop('ice_sbc_flx') 166 ! 167 END SUBROUTINE ice_sbc_flx 168 168 169 169 … … 254 254 255 255 256 SUBROUTINE ice_ forcing_init257 !!------------------------------------------------------------------- 258 !! *** ROUTINE ice_ forcing_init ***256 SUBROUTINE ice_sbc_init 257 !!------------------------------------------------------------------- 258 !! *** ROUTINE ice_sbc_init *** 259 259 !! 260 260 !! ** Purpose : Physical constants and parameters linked to the ice dynamics 261 261 !! 262 !! ** Method : Read the nam forcingnamelist and check the ice-dynamic262 !! ** Method : Read the namsbc namelist and check the ice-dynamic 263 263 !! parameter values called at the first timestep (nit000) 264 264 !! 265 !! ** input : Namelist nam forcing265 !! ** input : Namelist namsbc 266 266 !!------------------------------------------------------------------- 267 267 INTEGER :: ios, ioptio ! Local integer 268 268 !! 269 NAMELIST/nam forcing/ rn_cio, rn_blow_s, nn_flxdist, ln_cndflx, ln_cndemulate270 !!------------------------------------------------------------------- 271 ! 272 REWIND( numnam_ice_ref ) ! Namelist nam forcingin reference namelist : Ice dynamics273 READ ( numnam_ice_ref, nam forcing, IOSTAT = ios, ERR = 901)274 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam forcingin reference namelist', lwp )275 REWIND( numnam_ice_cfg ) ! Namelist nam forcingin configuration namelist : Ice dynamics276 READ ( numnam_ice_cfg, nam forcing, IOSTAT = ios, ERR = 902 )277 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nam forcingin configuration namelist', lwp )278 IF(lwm) WRITE( numoni, nam forcing)269 NAMELIST/namsbc/ rn_cio, rn_blow_s, nn_flxdist, ln_cndflx, ln_cndemulate 270 !!------------------------------------------------------------------- 271 ! 272 REWIND( numnam_ice_ref ) ! Namelist namsbc in reference namelist : Ice dynamics 273 READ ( numnam_ice_ref, namsbc, IOSTAT = ios, ERR = 901) 274 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc in reference namelist', lwp ) 275 REWIND( numnam_ice_cfg ) ! Namelist namsbc in configuration namelist : Ice dynamics 276 READ ( numnam_ice_cfg, namsbc, IOSTAT = ios, ERR = 902 ) 277 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namsbc in configuration namelist', lwp ) 278 IF(lwm) WRITE( numoni, namsbc ) 279 279 ! 280 280 IF(lwp) THEN ! control print 281 281 WRITE(numout,*) 282 WRITE(numout,*) 'ice_ forcing_init: ice parameters for ice dynamics '282 WRITE(numout,*) 'ice_sbc_init: ice parameters for ice dynamics ' 283 283 WRITE(numout,*) '~~~~~~~~~~~~~~~~' 284 WRITE(numout,*) ' Namelist nam forcing:'284 WRITE(numout,*) ' Namelist namsbc:' 285 285 WRITE(numout,*) ' drag coefficient for oceanic stress rn_cio = ', rn_cio 286 286 WRITE(numout,*) ' coefficient for ice-lead partition of snowfall rn_blow_s = ', rn_blow_s … … 306 306 END SELECT 307 307 ! 308 END SUBROUTINE ice_ forcing_init308 END SUBROUTINE ice_sbc_init 309 309 310 310 #else … … 315 315 316 316 !!====================================================================== 317 END MODULE ice forcing317 END MODULE icesbc
Note: See TracChangeset
for help on using the changeset viewer.