Changeset 12377 for NEMO/trunk/src/OCE/SBC/sbcice_if.F90
- Timestamp:
- 2020-02-12T15:39:06+01:00 (4 years ago)
- Location:
- NEMO/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEAD ext/AGRIF5 ^/vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif@HEAD ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL
-
- Property svn:externals
-
NEMO/trunk/src/OCE/SBC/sbcice_if.F90
r11536 r12377 35 35 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_ice ! structure of input ice-cover (file informations, fields read) 36 36 37 !! * Substitutions 38 # include "do_loop_substitute.h90" 37 39 !!---------------------------------------------------------------------- 38 40 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 42 44 CONTAINS 43 45 44 SUBROUTINE sbc_ice_if( kt )46 SUBROUTINE sbc_ice_if( kt, Kbb, Kmm ) 45 47 !!--------------------------------------------------------------------- 46 48 !! *** ROUTINE sbc_ice_if *** … … 59 61 !!--------------------------------------------------------------------- 60 62 INTEGER, INTENT(in) :: kt ! ocean time step 63 INTEGER, INTENT(in) :: Kbb, Kmm ! ocean time level indices 61 64 ! 62 65 INTEGER :: ji, jj ! dummy loop indices … … 74 77 ! ! ====================== ! 75 78 ! set file information 76 REWIND( numnam_ref ) ! Namelist namsbc_iif in reference namelist : Ice if file77 79 READ ( numnam_ref, namsbc_iif, IOSTAT = ios, ERR = 901) 78 80 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_iif in reference namelist' ) 79 81 80 REWIND( numnam_cfg ) ! Namelist Namelist namsbc_iif in configuration namelist : Ice if file81 82 READ ( numnam_cfg, namsbc_iif, IOSTAT = ios, ERR = 902 ) 82 83 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namsbc_iif in configuration namelist' ) … … 108 109 109 110 ! Flux and ice fraction computation 110 DO jj = 1, jpj 111 DO ji = 1, jpi 112 ! 113 zt_fzp = fr_i(ji,jj) ! freezing point temperature 114 zfr_obs = sf_ice(1)%fnow(ji,jj,1) ! observed ice cover 115 ! ! ocean ice fraction (0/1) from the freezing point temperature 116 IF( sst_m(ji,jj) <= zt_fzp ) THEN ; fr_i(ji,jj) = 1.e0 117 ELSE ; fr_i(ji,jj) = 0.e0 118 ENDIF 111 DO_2D_11_11 112 ! 113 zt_fzp = fr_i(ji,jj) ! freezing point temperature 114 zfr_obs = sf_ice(1)%fnow(ji,jj,1) ! observed ice cover 115 ! ! ocean ice fraction (0/1) from the freezing point temperature 116 IF( sst_m(ji,jj) <= zt_fzp ) THEN ; fr_i(ji,jj) = 1.e0 117 ELSE ; fr_i(ji,jj) = 0.e0 118 ENDIF 119 119 120 tsn(ji,jj,1,jp_tem) = MAX( tsn(ji,jj,1,jp_tem), zt_fzp ) ! avoid over-freezing point temperature120 ts(ji,jj,1,jp_tem,Kmm) = MAX( ts(ji,jj,1,jp_tem,Kmm), zt_fzp ) ! avoid over-freezing point temperature 121 121 122 122 qsr(ji,jj) = ( 1. - zfr_obs ) * qsr(ji,jj) ! solar heat flux : zero below observed ice cover 123 123 124 125 126 127 zqri = ztrp * ( tsb(ji,jj,1,jp_tem) - ( zt_fzp - 1.) )128 zqrj = ztrp * MIN( 0., tsb(ji,jj,1,jp_tem) - zt_fzp )129 130 124 ! ! non solar heat flux : add a damping term 125 ! # ztrp*(t-(tgel-1.)) if observed ice and no opa ice (zfr_obs=1 fr_i=0) 126 ! # ztrp*min(0,t-tgel) if observed ice and opa ice (zfr_obs=1 fr_i=1) 127 zqri = ztrp * ( ts(ji,jj,1,jp_tem,Kbb) - ( zt_fzp - 1.) ) 128 zqrj = ztrp * MIN( 0., ts(ji,jj,1,jp_tem,Kbb) - zt_fzp ) 129 zqrp = ( zfr_obs * ( (1. - fr_i(ji,jj) ) * zqri & 130 & + fr_i(ji,jj) * zqrj ) ) * tmask(ji,jj,1) 131 131 132 ! ! non-solar heat flux 133 ! # qns unchanged if no climatological ice (zfr_obs=0) 134 ! # qns = zqrp if climatological ice and no opa ice (zfr_obs=1, fr_i=0) 135 ! # qns = zqrp -2(-4) watt/m2 if climatological ice and opa ice (zfr_obs=1, fr_i=1) 136 ! (-2=arctic, -4=antarctic) 137 zqi = -3. + SIGN( 1._wp, ff_f(ji,jj) ) 138 qns(ji,jj) = ( ( 1.- zfr_obs ) * qns(ji,jj) & 139 & + zfr_obs * fr_i(ji,jj) * zqi ) * tmask(ji,jj,1) & 140 & + zqrp 141 END DO 142 END DO 132 ! ! non-solar heat flux 133 ! # qns unchanged if no climatological ice (zfr_obs=0) 134 ! # qns = zqrp if climatological ice and no opa ice (zfr_obs=1, fr_i=0) 135 ! # qns = zqrp -2(-4) watt/m2 if climatological ice and opa ice (zfr_obs=1, fr_i=1) 136 ! (-2=arctic, -4=antarctic) 137 zqi = -3. + SIGN( 1._wp, ff_f(ji,jj) ) 138 qns(ji,jj) = ( ( 1.- zfr_obs ) * qns(ji,jj) & 139 & + zfr_obs * fr_i(ji,jj) * zqi ) * tmask(ji,jj,1) & 140 & + zqrp 141 END_2D 143 142 ! 144 143 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.