Changeset 4306 for branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2
- Timestamp:
- 2013-11-21T15:59:57+01:00 (10 years ago)
- Location:
- branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2/ice_2.F90
r4161 r4306 63 63 64 64 !!* Ice Rheology 65 66 LOGICAL , PUBLIC:: ltrcdm2dc_ice = .FALSE. !: In case of Diurnal Cycle short wave, compute a Daily Mean short waves flux 67 65 68 # if defined key_lim2_vp 66 69 ! !!* VP rheology * … … 108 111 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qdtcn !: energy from the ice to the ocean point (at a factor 2) 109 112 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: thcm !: part of the solar energy used in the lead heat budget 113 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fstric_daymean!: Solar flux transmitted trough the ice, for day mean of qsr ( PISCES, with dirunal cycle ) 110 114 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fstric !: Solar flux transmitted trough the ice 111 115 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ffltbif !: linked with the max heat contained in brine pockets (?) … … 167 171 & tbif (jpi,jpj,jplayersp1) , STAT=ierr(5)) 168 172 173 IF( ltrcdm2dc_ice ) ALLOCATE(fstric_daymean(jpi,jpj), STAT=ierr(6) ) 174 169 175 !* moment used in the advection scheme 170 176 ALLOCATE(sxice (jpi,jpj) , syice (jpi,jpj) , sxxice(jpi,jpj) , & … … 193 199 !! Default option Empty module NO LIM 2.0 sea-ice model 194 200 !!---------------------------------------------------------------------- 201 LOGICAL , PUBLIC:: ltrcdm2dc_ice = .FALSE. !: In case of Diurnal Cycle short wave, compute a Daily Mean short waves flux 195 202 #endif 196 203 !!----------------------------------------------------------------- -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2/iceini_2.F90
r4147 r4306 76 76 CALL ctl_opn( numnam_ice_cfg, 'namelist_ice_cfg', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp ) 77 77 CALL ctl_opn( numoni, 'output.namelist.ice', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp ) 78 ! When Diurnal cycle, core bulk and LIM2 are activated, 79 ! a daily mean qsr is computed for tracer/biogeochemistery model ! 80 IF( ltrcdm2dc ) ltrcdm2dc_ice = .TRUE. 81 82 ! ! Open the namelist file 78 83 ! 79 84 CALL ice_run_2 ! read in namelist some run parameters -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90
r4292 r4306 48 48 PUBLIC lim_sbc_flx_2 ! called by sbc_ice_lim_2 49 49 PUBLIC lim_sbc_tau_2 ! called by sbc_ice_lim_2 50 PUBLIC lim_bio_meanqsr_2 ! called by sbc_ice_lim_2 50 51 51 52 REAL(wp) :: r1_rdtice ! = 1. / rdt_ice … … 437 438 END SUBROUTINE lim_sbc_tau_2 438 439 440 SUBROUTINE lim_bio_meanqsr_2 441 !!--------------------------------------------------------------------- 442 !! *** ROUTINE lim_bio_meanqsr 443 !! 444 !! ** Purpose : provide daily qsr_mean for PISCES when 445 !! analytic diurnal cycle is applied in physic 446 !! 447 !! ** Method : add part under ice 448 !! 449 !!--------------------------------------------------------------------- 450 451 qsr_mean(:,:) = pfrld(:,:) * qsr_mean(:,:) + ( 1. - pfrld(:,:) ) * fstric_daymean(:,:) 452 453 END SUBROUTINE lim_bio_meanqsr_2 439 454 440 455 SUBROUTINE lim_sbc_init_2 -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2/limthd_2.F90
r4292 r4306 139 139 rdq_ice(:,:) = 0.e0 ! heat content associated with rdm_ice 140 140 zmsk (:,:,:) = 0.e0 141 IF( ltrcdm2dc_ice ) fstric_daymean (:,:) = 0.e0 ! part of solar radiation absorbing inside the ice 141 142 142 143 ! set to zero snow thickness smaller than epsi04 … … 286 287 CALL tab_2d_1d_2( nbpb, tbif_1d (1:nbpb , 3 ), tbif(:,:,3) , jpi, jpj, npb(1:nbpb) ) 287 288 CALL tab_2d_1d_2( nbpb, qsr_ice_1d (1:nbpb) , qsr_ice(:,:,1) , jpi, jpj, npb(1:nbpb) ) 289 IF( ltrcdm2dc_ice ) & 290 & CALL tab_2d_1d_2( nbpb, qsr_ice_mean_1d (1:nbpb), qsr_ice_mean(:,:,1), jpi, jpj, npb(1:nbpb) ) 288 291 CALL tab_2d_1d_2( nbpb, fr1_i0_1d (1:nbpb) , fr1_i0 , jpi, jpj, npb(1:nbpb) ) 289 292 CALL tab_2d_1d_2( nbpb, fr2_i0_1d (1:nbpb) , fr2_i0 , jpi, jpj, npb(1:nbpb) ) … … 335 338 CALL tab_1d_2d_2( nbpb, qsr_ice(:,:,1), npb, qsr_ice_1d(1:nbpb) , jpi, jpj ) 336 339 CALL tab_1d_2d_2( nbpb, qns_ice(:,:,1), npb, qns_ice_1d(1:nbpb) , jpi, jpj ) 337 IF( .NOT. lk_cpl ) CALL tab_1d_2d_2( nbpb, qla_ice(:,:,1), npb, qla_ice_1d(1:nbpb) , jpi, jpj ) 340 IF( ltrcdm2dc_ice )THEN 341 CALL tab_1d_2d_2( nbpb, fstric_daymean , npb, fstbif_daymean_1d (1:nbpb) , jpi, jpj ) 342 CALL tab_1d_2d_2( nbpb, qsr_ice_mean(:,:,1), npb, qsr_ice_mean_1d(1:nbpb) , jpi, jpj ) 343 ENDIF 344 IF( .NOT. lk_cpl ) CALL tab_1d_2d_2( nbpb, qla_ice(:,:,1), npb, qla_ice_1d(1:nbpb) , jpi, jpj ) 338 345 ! 339 346 ENDIF -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2/limthd_zdf_2.F90
r3625 r4306 273 273 END DO 274 274 275 IF( ltrcdm2dc_ice )THEN 276 277 DO ji = kideb , kiut 278 zihsn = MAX( zzero , SIGN (zone , -h_snow_1d(ji) ) ) 279 zihic = MAX( zzero , 1.0 - ( h_ice_1d(ji) / zhsu ) ) 280 zi0(ji) = zihsn * ( fr1_i0_1d(ji) + zihic * fr2_i0_1d(ji) ) 281 zexp = MIN( zone , EXP( -1.5 * ( h_ice_1d(ji) - zhsu ) ) ) 282 fstbif_daymean_1d(ji) = zi0(ji) * qsr_ice_mean_1d(ji) * zexp 283 END DO 284 285 ENDIF 286 275 287 !-------------------------------------------------------------------------------- 276 288 ! 4. Computation of the surface temperature : determined by considering the -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2/thd_ice_2.F90
r4147 r4306 13 13 !!---------------------------------------------------------------------- 14 14 USE par_ice_2 15 USE ice_2 15 16 16 17 IMPLICIT NONE … … 54 55 fstbif_1d , & !: " " fstric 55 56 fltbif_1d , & !: " " ffltbif 57 fstbif_daymean_1d, & !: " " fstric_daymean 56 58 fscbq_1d , & !: " " fscmcbq 57 59 qsr_ice_1d , & !: " " qsr_ice 60 qsr_ice_mean_1d , & !: " " qsr_ice_mean 58 61 fr1_i0_1d , & !: " " fr1_i0 59 62 fr2_i0_1d , & !: " " fr2_i0 … … 96 99 !!---------------------------------------------------------------------- 97 100 USE lib_mpp ! MPP library 98 INTEGER :: ierr( 4)101 INTEGER :: ierr(5) 99 102 !!---------------------------------------------------------------------- 100 103 ! … … 119 122 & tbif_1d(jpij, jplayersp1), Stat=ierr(4)) 120 123 ! 124 IF( ltrcdm2dc_ice )ALLOCATE(fstbif_daymean_1d(jpij),qsr_ice_mean_1d(jpij),Stat=ierr(5)) 125 ! 121 126 thd_ice_alloc_2 = MAXVAL(ierr) 122 127 IF( thd_ice_alloc_2 /= 0 ) CALL ctl_warn('thd_ice_alloc_2: failed to allocate arrays')
Note: See TracChangeset
for help on using the changeset viewer.