- Timestamp:
- 2015-02-06T19:12:57+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5044_CNRS_LIM3CLEAN/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90
r5064 r5067 35 35 36 36 ! !!** init namelist (namiceini) ** 37 REAL(wp) :: thres_sst ! threshold water temperature for initial sea ice38 REAL(wp) :: hts_ini_n ! initial snow thickness in the north39 REAL(wp) :: hts_ini_s ! initial snow thickness in the south40 REAL(wp) :: hti_ini_n ! initial ice thickness in the north41 REAL(wp) :: hti_ini_s ! initial ice thickness in the south42 REAL(wp) :: ati_ini_n ! initial leads area in the north43 REAL(wp) :: ati_ini_s ! initial leads area in the south44 REAL(wp) :: smi_ini_n ! initial salinity45 REAL(wp) :: smi_ini_s ! initial salinity46 REAL(wp) :: tmi_ini_n ! initial temperature47 REAL(wp) :: tmi_ini_s ! initial temperature48 49 LOGICAL :: ln_ limini ! initialization or not37 REAL(wp) :: rn_thres_sst ! threshold water temperature for initial sea ice 38 REAL(wp) :: rn_hts_ini_n ! initial snow thickness in the north 39 REAL(wp) :: rn_hts_ini_s ! initial snow thickness in the south 40 REAL(wp) :: rn_hti_ini_n ! initial ice thickness in the north 41 REAL(wp) :: rn_hti_ini_s ! initial ice thickness in the south 42 REAL(wp) :: rn_ati_ini_n ! initial leads area in the north 43 REAL(wp) :: rn_ati_ini_s ! initial leads area in the south 44 REAL(wp) :: rn_smi_ini_n ! initial salinity 45 REAL(wp) :: rn_smi_ini_s ! initial salinity 46 REAL(wp) :: rn_tmi_ini_n ! initial temperature 47 REAL(wp) :: rn_tmi_ini_s ! initial temperature 48 49 LOGICAL :: ln_iceini ! initialization or not 50 50 !!---------------------------------------------------------------------- 51 51 !! LIM 3.0, UCL-LOCEAN-IPSL (2008) … … 112 112 ! surface temperature 113 113 DO jl = 1, jpl ! loop over categories 114 t_su (:,:,jl) = rtt * tm s(:,:)115 tn_ice(:,:,jl) = rtt * tm s(:,:)114 t_su (:,:,jl) = rtt * tmask(:,:,1) 115 tn_ice(:,:,jl) = rtt * tmask(:,:,1) 116 116 END DO 117 117 118 118 ! basal temperature (considered at freezing point) 119 t_bo(:,:) = ( eos_fzp( tsn(:,:,1,jp_sal) ) + rt0 ) * tm s(:,:)120 121 IF( ln_ limini ) THEN119 t_bo(:,:) = ( eos_fzp( tsn(:,:,1,jp_sal) ) + rt0 ) * tmask(:,:,1) 120 121 IF( ln_iceini ) THEN 122 122 123 123 !-------------------------------------------------------------------- … … 127 127 DO jj = 1, jpj ! ice if sst <= t-freez + ttest 128 128 DO ji = 1, jpi 129 IF( ( tsn(ji,jj,1,jp_tem) - ( t_bo(ji,jj) - rt0 ) ) * tm s(ji,jj) >=thres_sst ) THEN130 zswitch(ji,jj) = 0._wp * tm s(ji,jj) ! no ice129 IF( ( tsn(ji,jj,1,jp_tem) - ( t_bo(ji,jj) - rt0 ) ) * tmask(ji,jj,1) >= rn_thres_sst ) THEN 130 zswitch(ji,jj) = 0._wp * tmask(ji,jj,1) ! no ice 131 131 ELSE 132 zswitch(ji,jj) = 1._wp * tm s(ji,jj) ! ice132 zswitch(ji,jj) = 1._wp * tmask(ji,jj,1) ! ice 133 133 ENDIF 134 134 END DO … … 155 155 !----------------------------- 156 156 ! assign initial thickness, concentration, snow depth and salinity to an hemisphere-dependent array 157 zht_i_ini(1) = hti_ini_n ; zht_i_ini(2) =hti_ini_s ! ice thickness158 zht_s_ini(1) = hts_ini_n ; zht_s_ini(2) =hts_ini_s ! snow depth159 zat_i_ini(1) = ati_ini_n ; zat_i_ini(2) =ati_ini_s ! ice concentration160 zsm_i_ini(1) = smi_ini_n ; zsm_i_ini(2) =smi_ini_s ! bulk ice salinity161 ztm_i_ini(1) = tmi_ini_n ; ztm_i_ini(2) =tmi_ini_s ! temperature (ice and snow)157 zht_i_ini(1) = rn_hti_ini_n ; zht_i_ini(2) = rn_hti_ini_s ! ice thickness 158 zht_s_ini(1) = rn_hts_ini_n ; zht_s_ini(2) = rn_hts_ini_s ! snow depth 159 zat_i_ini(1) = rn_ati_ini_n ; zat_i_ini(2) = rn_ati_ini_s ! ice concentration 160 zsm_i_ini(1) = rn_smi_ini_n ; zsm_i_ini(2) = rn_smi_ini_s ! bulk ice salinity 161 ztm_i_ini(1) = rn_tmi_ini_n ; ztm_i_ini(2) = rn_tmi_ini_s ! temperature (ice and snow) 162 162 163 163 zvt_i_ini(:) = zht_i_ini(:) * zat_i_ini(:) ! ice volume … … 316 316 ht_i(ji,jj,jl) = zswitch(ji,jj) * zh_i_ini(jl,zhemis(ji,jj)) ! ice thickness 317 317 ht_s(ji,jj,jl) = ht_i(ji,jj,jl) * ( zht_s_ini( zhemis(ji,jj) ) / zht_i_ini( zhemis(ji,jj) ) ) ! snow depth 318 sm_i(ji,jj,jl) = zswitch(ji,jj) * zsm_i_ini(zhemis(ji,jj)) !+ ( 1._wp - zswitch(ji,jj) ) * s_i_min ! salinity318 sm_i(ji,jj,jl) = zswitch(ji,jj) * zsm_i_ini(zhemis(ji,jj)) !+ ( 1._wp - zswitch(ji,jj) ) * rn_simin ! salinity 319 319 o_i(ji,jj,jl) = zswitch(ji,jj) * 1._wp + ( 1._wp - zswitch(ji,jj) ) ! age 320 320 t_su(ji,jj,jl) = zswitch(ji,jj) * ztm_i_ini(zhemis(ji,jj)) + ( 1._wp - zswitch(ji,jj) ) * rtt ! surf temp … … 359 359 DO ji = 1, jpi 360 360 t_i(ji,jj,jk,jl) = zswitch(ji,jj) * ztm_i_ini(zhemis(ji,jj)) + ( 1._wp - zswitch(ji,jj) ) * rtt 361 s_i(ji,jj,jk,jl) = zswitch(ji,jj) * zsm_i_ini(zhemis(ji,jj)) !+ ( 1._wp - zswitch(ji,jj) ) * s_i_min361 s_i(ji,jj,jk,jl) = zswitch(ji,jj) * zsm_i_ini(zhemis(ji,jj)) !+ ( 1._wp - zswitch(ji,jj) ) * rn_simin 362 362 ztmelts = - tmut * s_i(ji,jj,jk,jl) + rtt !Melting temperature in K 363 363 … … 377 377 378 378 ELSE 379 ! if ln_ limini=false379 ! if ln_iceini=false 380 380 a_i (:,:,:) = 0._wp 381 381 v_i (:,:,:) = 0._wp … … 393 393 DO jl = 1, jpl 394 394 DO jk = 1, nlay_i 395 t_i(:,:,jk,jl) = rtt * tm s(:,:)395 t_i(:,:,jk,jl) = rtt * tmask(:,:,1) 396 396 END DO 397 397 DO jk = 1, nlay_s 398 t_s(:,:,jk,jl) = rtt * tm s(:,:)398 t_s(:,:,jk,jl) = rtt * tmask(:,:,1) 399 399 END DO 400 400 END DO 401 401 402 ENDIF ! ln_ limini402 ENDIF ! ln_iceini 403 403 404 404 at_i (:,:) = 0.0_wp … … 474 474 !! 8.5 ! 07-11 (M. Vancoppenolle) rewritten initialization 475 475 !!----------------------------------------------------------------------------- 476 NAMELIST/namiceini/ ln_ limini, thres_sst, hts_ini_n, hts_ini_s, hti_ini_n,hti_ini_s, &477 & ati_ini_n, ati_ini_s, smi_ini_n, smi_ini_s, tmi_ini_n,tmi_ini_s476 NAMELIST/namiceini/ ln_iceini, rn_thres_sst, rn_hts_ini_n, rn_hts_ini_s, rn_hti_ini_n, rn_hti_ini_s, & 477 & rn_ati_ini_n, rn_ati_ini_s, rn_smi_ini_n, rn_smi_ini_s, rn_tmi_ini_n, rn_tmi_ini_s 478 478 INTEGER :: ios ! Local integer output status for namelist read 479 479 !!----------------------------------------------------------------------------- … … 495 495 WRITE(numout,*) 'lim_istate_init : ice parameters inititialisation ' 496 496 WRITE(numout,*) '~~~~~~~~~~~~~~~' 497 WRITE(numout,*) ' initialization with ice (T) or not (F) ln_ limini = ', ln_limini498 WRITE(numout,*) ' threshold water temp. for initial sea-ice thres_sst = ',thres_sst499 WRITE(numout,*) ' initial snow thickness in the north hts_ini_n = ',hts_ini_n500 WRITE(numout,*) ' initial snow thickness in the south hts_ini_s = ',hts_ini_s501 WRITE(numout,*) ' initial ice thickness in the north hti_ini_n = ',hti_ini_n502 WRITE(numout,*) ' initial ice thickness in the south hti_ini_s = ',hti_ini_s503 WRITE(numout,*) ' initial ice concentr. in the north ati_ini_n = ',ati_ini_n504 WRITE(numout,*) ' initial ice concentr. in the north ati_ini_s = ',ati_ini_s505 WRITE(numout,*) ' initial ice salinity in the north smi_ini_n = ',smi_ini_n506 WRITE(numout,*) ' initial ice salinity in the south smi_ini_s = ',smi_ini_s507 WRITE(numout,*) ' initial ice/snw temp in the north tmi_ini_n = ',tmi_ini_n508 WRITE(numout,*) ' initial ice/snw temp in the south tmi_ini_s = ',tmi_ini_s497 WRITE(numout,*) ' initialization with ice (T) or not (F) ln_iceini = ', ln_iceini 498 WRITE(numout,*) ' threshold water temp. for initial sea-ice rn_thres_sst = ', rn_thres_sst 499 WRITE(numout,*) ' initial snow thickness in the north rn_hts_ini_n = ', rn_hts_ini_n 500 WRITE(numout,*) ' initial snow thickness in the south rn_hts_ini_s = ', rn_hts_ini_s 501 WRITE(numout,*) ' initial ice thickness in the north rn_hti_ini_n = ', rn_hti_ini_n 502 WRITE(numout,*) ' initial ice thickness in the south rn_hti_ini_s = ', rn_hti_ini_s 503 WRITE(numout,*) ' initial ice concentr. in the north rn_ati_ini_n = ', rn_ati_ini_n 504 WRITE(numout,*) ' initial ice concentr. in the north rn_ati_ini_s = ', rn_ati_ini_s 505 WRITE(numout,*) ' initial ice salinity in the north rn_smi_ini_n = ', rn_smi_ini_n 506 WRITE(numout,*) ' initial ice salinity in the south rn_smi_ini_s = ', rn_smi_ini_s 507 WRITE(numout,*) ' initial ice/snw temp in the north rn_tmi_ini_n = ', rn_tmi_ini_n 508 WRITE(numout,*) ' initial ice/snw temp in the south rn_tmi_ini_s = ', rn_tmi_ini_s 509 509 ENDIF 510 510
Note: See TracChangeset
for help on using the changeset viewer.