- Timestamp:
- 2013-11-21T15:59:57+01:00 (10 years ago)
- Location:
- branches/2013/dev_MERGE_2013/NEMOGCM
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_MERGE_2013/NEMOGCM/CONFIG/cfg.txt
r4292 r4306 4 4 ORCA2_LIM_CFC_C14b OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 5 5 GYRE OPA_SRC 6 ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC7 6 ORCA2_OFF_PISCES OPA_SRC OFF_SRC TOP_SRC 8 7 ORCA2_SAS_LIM OPA_SRC SAS_SRC LIM_SRC_2 NST_SRC … … 10 9 ORCA2_LIM OPA_SRC LIM_SRC_2 NST_SRC 11 10 C1D_PAPA OPA_SRC 11 ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC -
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') -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90
r3625 r4306 19 19 # if defined key_lim2 20 20 USE par_ice_2 ! LIM-2 parameters 21 USE ice_2 21 22 # endif 22 23 # if defined key_cice … … 55 56 56 57 #if defined key_lim3 || defined key_lim2 57 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qns_ice !: non solar heat flux over ice [W/m2] 58 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qsr_ice !: solar heat flux over ice [W/m2] 59 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qla_ice !: latent flux over ice [W/m2] 60 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: dqla_ice !: latent sensibility over ice [W/m2/K] 61 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: dqns_ice !: non solar heat flux over ice (LW+SEN+LA) [W/m2/K] 62 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tn_ice !: ice surface temperature [K] 63 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: alb_ice !: albedo of ice 58 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qns_ice !: non solar heat flux over ice [W/m2] 59 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qsr_ice !: solar heat flux over ice [W/m2] 60 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qsr_ice_mean !: dauly mean solar heat flux over ice [W/m2] 61 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qla_ice !: latent flux over ice [W/m2] 62 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: dqla_ice !: latent sensibility over ice [W/m2/K] 63 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: dqns_ice !: non solar heat flux over ice (LW+SEN+LA) [W/m2/K] 64 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tn_ice !: ice surface temperature [K] 65 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: alb_ice !: albedo of ice 64 66 65 67 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: utau_ice !: atmos-ice u-stress. VP: I-pt ; EVP: U,V-pts [N/m2] … … 109 111 !! *** FUNCTION sbc_ice_alloc *** 110 112 !!---------------------------------------------------------------------- 113 INTEGER :: ierr(2) 114 !!---------------------------------------------------------------------- 115 ierr(:) = 0 116 111 117 #if defined key_lim3 || defined key_lim2 112 118 ALLOCATE( qns_ice (jpi,jpj,jpl) , qsr_ice (jpi,jpj,jpl) , & … … 117 123 & fr1_i0 (jpi,jpj) , fr2_i0 (jpi,jpj) , & 118 124 #if defined key_lim3 119 & emp_ice(jpi,jpj) , tatm_ice(jpi,jpj) , STAT= sbc_ice_alloc)125 & emp_ice(jpi,jpj) , tatm_ice(jpi,jpj) , STAT= ierr(1) ) 120 126 #else 121 & emp_ice(jpi,jpj) , STAT= sbc_ice_alloc)127 & emp_ice(jpi,jpj) , STAT= ierr(1) ) 122 128 #endif 123 129 #elif defined key_cice … … 126 132 wndj_ice(jpi,jpj) , nfrzmlt(jpi,jpj) , ss_iou(jpi,jpj) , & 127 133 ss_iov(jpi,jpj) , fr_iu(jpi,jpj) , fr_iv(jpi,jpj) , & 128 a_i(jpi,jpj,ncat) , topmelt(jpi,jpj,ncat) , botmelt(jpi,jpj,ncat), STAT= sbc_ice_alloc)134 a_i(jpi,jpj,ncat) , topmelt(jpi,jpj,ncat) , botmelt(jpi,jpj,ncat), STAT= ierr(1) ) 129 135 #endif 130 136 ! 137 #if defined key_lim2 138 IF( ltrcdm2dc_ice )THEN 139 ALLOCATE( qsr_ice_mean (jpi,jpj,jpl), STAT=ierr(2) ) 140 ENDIF 141 #endif 142 ! 143 sbc_ice_alloc = MAXVAL( ierr ) 131 144 IF( lk_mpp ) CALL mpp_sum ( sbc_ice_alloc ) 132 145 IF( sbc_ice_alloc > 0 ) CALL ctl_warn('sbc_ice_alloc: allocation of arrays failed') -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r4292 r4306 64 64 !!---------------------------------------------------------------------- 65 65 LOGICAL , PUBLIC :: lhftau = .FALSE. !: HF tau used in TKE: mean(stress module) - module(mean stress) 66 LOGICAL , PUBLIC :: ltrcdm2dc !: In case of Diurnal Cycle short wave, compute a Daily Mean short waves flux 66 67 !! !! now ! before !! 67 68 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: utau , utau_b !: sea surface i-stress (ocean referential) [N/m2] … … 71 72 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wndm !: wind speed module at T-point (=|U10m-Uoce|) [m/s] 72 73 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qsr !: sea heat flux: solar [W/m2] 74 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qsr_mean !: daily mean sea heat flux: solar [W/m2] 73 75 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qns , qns_b !: sea heat flux: non solar [W/m2] 74 76 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qsr_tot !: total solar heat flux (over sea and ice) [W/m2] … … 141 143 #endif 142 144 ! 145 IF( ltrcdm2dc ) ALLOCATE( qsr_mean(jpi,jpj) , STAT=ierr(5) ) 146 ! 143 147 sbc_oce_alloc = MAXVAL( ierr ) 144 148 IF( lk_mpp ) CALL mpp_sum ( sbc_oce_alloc ) -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r4245 r4306 49 49 PUBLIC sbc_blk_core ! routine called in sbcmod module 50 50 PUBLIC blk_ice_core ! routine called in sbc_ice_lim module 51 PUBLIC blk_ice_meanqsr ! routine called in sbc_ice_lim module 51 52 PUBLIC turb_core_2z ! routine calles in sbcblk_mfs module 52 53 … … 189 190 ! ! compute the surface ocean fluxes using CORE bulk formulea 190 191 IF( MOD( kt - 1, nn_fsbc ) == 0 ) CALL blk_oce_core( kt, sf, sst_m, ssu_m, ssv_m ) 192 193 ! If diurnal cycle is activated, compute a daily mean short waves flux for biogeochemistery 194 IF( ltrcdm2dc ) CALL blk_bio_meanqsr 191 195 192 196 #if defined key_cice … … 438 442 ! 439 443 END SUBROUTINE blk_oce_core 440 444 445 SUBROUTINE blk_bio_meanqsr 446 !!--------------------------------------------------------------------- 447 !! *** ROUTINE blk_bio_meanqsr 448 !! 449 !! ** Purpose : provide daily qsr_mean for PISCES when 450 !! analytic diurnal cycle is applied in physic 451 !! 452 !! ** Method : add part where there is no ice 453 !! 454 !!--------------------------------------------------------------------- 455 IF( nn_timing == 1 ) CALL timing_start('blk_bio_meanqsr') 456 457 qsr_mean(:,:) = (1. - albo ) * sf(jp_qsr)%fnow(:,:,1) 458 459 IF( nn_timing == 1 ) CALL timing_stop('blk_bio_meanqsr') 460 461 END SUBROUTINE blk_bio_meanqsr 462 463 464 SUBROUTINE blk_ice_meanqsr(palb,p_qsr_mean,pdim) 465 !!--------------------------------------------------------------------- 466 !! 467 !! ** Purpose : provide the daily qsr_mean over sea_ice for PISCES when 468 !! analytic diurnal cycle is applied in physic 469 !! 470 !! ** Method : compute qsr 471 !! 472 !!--------------------------------------------------------------------- 473 REAL(wp), DIMENSION(:,:,:), INTENT(in ) :: palb ! ice albedo (clear sky) (alb_ice_cs) [%] 474 REAL(wp), DIMENSION(:,:,:), INTENT( out) :: p_qsr_mean ! solar heat flux over ice (T-point) [W/m2] 475 INTEGER , INTENT(in ) :: pdim ! number of ice categories 476 !! 477 INTEGER :: ijpl ! number of ice categories (size of 3rd dim of input arrays) 478 INTEGER :: ji, jj, jl ! dummy loop indices 479 REAL(wp) :: zztmp ! temporary variable 480 !!--------------------------------------------------------------------- 481 IF( nn_timing == 1 ) CALL timing_start('blk_ice_meanqsr') 482 ! 483 ijpl = pdim ! number of ice categories 484 zztmp = 1. / ( 1. - albo ) 485 ! ! ========================== ! 486 DO jl = 1, ijpl ! Loop over ice categories ! 487 ! ! ========================== ! 488 DO jj = 1 , jpj 489 DO ji = 1, jpi 490 p_qsr_mean(ji,jj,jl) = zztmp * ( 1. - palb(ji,jj,jl) ) * qsr_mean(ji,jj) 491 END DO 492 END DO 493 END DO 494 ! 495 IF( nn_timing == 1 ) CALL timing_stop('blk_ice_meanqsr') 496 ! 497 END SUBROUTINE blk_ice_meanqsr 498 441 499 442 500 SUBROUTINE blk_ice_core( pst , pui , pvi , palb , & -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim_2.F90
r3680 r4306 176 176 & tprecip , sprecip , & 177 177 & fr1_i0 , fr2_i0 , cp_ice_msh , jpl ) 178 IF( ltrcdm2dc_ice ) CALL blk_ice_meanqsr( zalb_ice_cs, qsr_ice_mean, jpl ) 179 178 180 CASE( 5 ) ! Coupled formulation : atmosphere-ice stress only (fluxes provided after ice dynamics) 179 181 CALL sbc_cpl_ice_tau( utau_ice , vtau_ice ) … … 216 218 CALL lim_thd_2 ( kt ) ! Ice thermodynamics 217 219 CALL lim_sbc_flx_2 ( kt ) ! update surface ocean mass, heat & salt fluxes 220 #if defined key_top 221 IF( ltrcdm2dc_ice )CALL lim_bio_meanqsr_2 222 #endif 218 223 219 224 IF( ( MOD( kt+nn_fsbc-1, ninfo ) == 0 .OR. ntmoy == 1 ) .AND. .NOT. lk_mpp ) & -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90
r4292 r4306 111 111 ! !* Photosynthetically Available Radiation (PAR) 112 112 ! ! -------------------------------------- 113 113 114 IF( ln_varpar ) THEN 114 115 ze1(:,:,1) = par_varsw(:,:) * qsr(:,:) * EXP( -0.5 * zekb(:,:,1) ) -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90
r4292 r4306 82 82 USE sbc_oce , ONLY : vtau => vtau !: j-surface stress component 83 83 USE sbc_oce , ONLY : wndm => wndm !: 10m wind speed 84 USE sbc_oce , ONLY : qsr => qsr !: penetrative solar radiation (w m-2) 84 USE sbc_oce , ONLY : qsr => qsr !: penetrative solar radiation (w m-2) 85 85 USE sbc_oce , ONLY : emp => emp !: freshwater budget: volume flux [Kg/m2/s] 86 86 USE sbc_oce , ONLY : emp_b => emp_b !: freshwater budget: volume flux [Kg/m2/s] -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r4230 r4306 28 28 USE zpshde ! partial step: hor. derivative (zps_hde routine) 29 29 USE prtctl_trc ! Print control passive tracers (prt_ctl_trc_init routine) 30 USE trcsub ! variables to substep passive tracers 31 30 USE trcsub ! variables to substep passive tracers 31 USE lib_mpp ! distribued memory computing library 32 USE sbc_oce 33 32 34 IMPLICIT NONE 33 35 PRIVATE … … 69 71 CALL top_alloc() ! allocate TOP arrays 70 72 71 IF( ln_dm2dc .AND. lk_pisces ) & 72 & CALL ctl_stop( ' The diurnal cycle is not compatible with PISCES ' ) 73 IF( ln_dm2dc .AND. ln_blk_core .AND. nn_ice==2 )THEN 74 ! When Diurnal cycle, core bulk and LIM2 are activated, 75 ! a daily mean qsr is computed for tracer/biogeochemistery model 76 CALL ctl_warn( ' Diurnal cycle on physics but not in PISCES or LOBSTER ' ) 77 ltrcdm2dc = .TRUE. 78 ENDIF 73 79 74 80 IF( nn_cla == 1 ) & -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/TOP_SRC/trcstp.F90
r4147 r4306 11 11 !!---------------------------------------------------------------------- 12 12 USE oce_trc ! ocean dynamics and active tracers variables 13 USE sbc_oce 13 14 USE trc 14 15 USE trctrp ! passive tracers transport … … 51 52 INTEGER :: jk, jn ! dummy loop indices 52 53 REAL(wp) :: ztrai 53 CHARACTER (len=25) :: charout 54 CHARACTER (len=25) :: charout 55 56 REAL(wp), DIMENSION(:,:), POINTER :: zqsr_tmp ! save qsr during TOP time-step 54 57 !!------------------------------------------------------------------- 55 58 ! … … 66 69 ENDIF 67 70 ! 68 IF( nn_dttrc /= 1 ) CALL trc_sub_stp( kt ) ! averaging physical variables for sub-stepping 69 70 IF( MOD( kt , nn_dttrc ) == 0 ) THEN ! only every nn_dttrc time step 71 IF( ltrcdm2dc ) THEN 72 ! When Diurnal cycle, core bulk and LIM2 are activated, put daily mean qsr in qsr for TOP/biogeochemistery time-step 73 ! and save qsr with diurnal cycle in qsr_tmp 74 CALL wrk_alloc( jpi,jpj, zqsr_tmp ) 75 zqsr_tmp(:,:) = qsr (:,:) 76 qsr (:,:) = qsr_mean(:,:) 77 ENDIF 78 ! 79 IF( nn_dttrc /= 1 ) CALL trc_sub_stp( kt ) ! averaging physical variables for sub-stepping 80 ! 81 IF( MOD( kt , nn_dttrc ) == 0 ) THEN ! only every nn_dttrc time step 71 82 ! 72 83 IF(ln_ctl) THEN … … 95 106 ENDIF 96 107 ! 108 IF( ltrcdm2dc ) THEN 109 ! put back qsr with diurnal cycle in qsr 110 qsr(:,:) = zqsr_tmp(:,:) 111 CALL wrk_dealloc( jpi,jpj, zqsr_tmp ) 112 ENDIF 113 ! 97 114 ztrai = 0._wp ! content of all tracers 98 115 DO jn = 1, jptra -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/TOP_SRC/trcsub.F90
r4292 r4306 27 27 USE divcur ! hor. divergence and curl (div & cur routines) 28 28 USE sbcrnf, ONLY: h_rnf, nk_rnf ! River runoff 29 USE sbc_oce ! surface boundary condition: ocean30 29 USE bdy_oce 31 30 #if defined key_obc
Note: See TracChangeset
for help on using the changeset viewer.