Changeset 4873
- Timestamp:
- 2014-11-18T18:53:04+01:00 (9 years ago)
- Location:
- trunk/NEMOGCM/NEMO/LIM_SRC_3
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/LIM_SRC_3/ice.F90
r4872 r4873 466 466 & e_s(jpi,jpj,nlay_s,jpl) , STAT=ierr(ii) ) 467 467 ii = ii + 1 468 ALLOCATE( t_i(jpi,jpj, jkmax,jpl) , e_i(jpi,jpj,jkmax,jpl) , s_i(jpi,jpj,jkmax,jpl) , STAT=ierr(ii) )468 ALLOCATE( t_i(jpi,jpj,nlay_i+1,jpl) , e_i(jpi,jpj,nlay_i+1,jpl) , s_i(jpi,jpj,nlay_i+1,jpl) , STAT=ierr(ii) ) 469 469 470 470 ! * Moments for advection … … 482 482 & STAT=ierr(ii) ) 483 483 ii = ii + 1 484 ALLOCATE( sxe (jpi,jpj, jkmax,jpl) , sye (jpi,jpj,jkmax,jpl) , sxxe(jpi,jpj,jkmax,jpl) , &485 & syye(jpi,jpj, jkmax,jpl) , sxye(jpi,jpj,jkmax,jpl) , STAT=ierr(ii) )484 ALLOCATE( sxe (jpi,jpj,nlay_i+1,jpl) , sye (jpi,jpj,nlay_i+1,jpl) , sxxe(jpi,jpj,nlay_i+1,jpl) , & 485 & syye(jpi,jpj,nlay_i+1,jpl) , sxye(jpi,jpj,nlay_i+1,jpl) , STAT=ierr(ii) ) 486 486 487 487 ! * Old values of global variables 488 488 ii = ii + 1 489 489 ALLOCATE( v_s_b (jpi,jpj,jpl) , v_i_b (jpi,jpj,jpl) , e_s_b(jpi,jpj,nlay_s,jpl) , & 490 & a_i_b (jpi,jpj,jpl) , smv_i_b(jpi,jpj,jpl) , e_i_b(jpi,jpj, jkmax,jpl) , &490 & a_i_b (jpi,jpj,jpl) , smv_i_b(jpi,jpj,jpl) , e_i_b(jpi,jpj,nlay_i+1 ,jpl) , & 491 491 & oa_i_b (jpi,jpj,jpl) , & 492 492 & u_ice_b(jpi,jpj) , v_ice_b(jpi,jpj) , STAT=ierr(ii) ) … … 500 500 & STAT=ierr(ii) ) 501 501 ii = ii + 1 502 ALLOCATE( d_e_s_thd(jpi,jpj,nlay_s,jpl) , d_e_i_thd(jpi,jpj, jkmax,jpl) , d_u_ice_dyn(jpi,jpj) , &503 & d_e_s_trp(jpi,jpj,nlay_s,jpl) , d_e_i_trp(jpi,jpj, jkmax,jpl) , d_v_ice_dyn(jpi,jpj) , STAT=ierr(ii) )502 ALLOCATE( d_e_s_thd(jpi,jpj,nlay_s,jpl) , d_e_i_thd(jpi,jpj,nlay_i+1,jpl) , d_u_ice_dyn(jpi,jpj) , & 503 & d_e_s_trp(jpi,jpj,nlay_s,jpl) , d_e_i_trp(jpi,jpj,nlay_i+1,jpl) , d_v_ice_dyn(jpi,jpj) , STAT=ierr(ii) ) 504 504 505 505 ! * Ice thickness distribution variables -
trunk/NEMOGCM/NEMO/LIM_SRC_3/iceini.F90
r4869 r4873 66 66 ! 67 67 ! ! adequation jpk versus ice/snow layers/categories 68 IF( jpl > jpk .OR. jkmax> jpk .OR. nlay_s > jpk ) &68 IF( jpl > jpk .OR. (nlay_i+1) > jpk .OR. nlay_s > jpk ) & 69 69 & CALL ctl_stop( 'STOP', & 70 70 & 'ice_init: the 3rd dimension of workspace arrays is too small.', & -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limcons.F90
r4765 r4873 73 73 !! ** Method : Arithmetics 74 74 !!--------------------------------------------------------------------- 75 INTEGER , INTENT(in ) :: ksum !: number of categories76 INTEGER , INTENT(in ) :: klay !: number of vertical layers77 REAL(wp), DIMENSION(jpi,jpj, jkmax,jpl), INTENT(in ) :: pin !: input field78 REAL(wp), DIMENSION(jpi,jpj) , INTENT( out) :: pout !: output field75 INTEGER , INTENT(in ) :: ksum !: number of categories 76 INTEGER , INTENT(in ) :: klay !: number of vertical layers 77 REAL(wp), DIMENSION(jpi,jpj,nlay_i+1,jpl), INTENT(in ) :: pin !: input field 78 REAL(wp), DIMENSION(jpi,jpj) , INTENT( out) :: pout !: output field 79 79 ! 80 80 INTEGER :: jk, jl ! dummy loop indices -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90
r4869 r4873 897 897 CALL wrk_alloc( jpi, jpj, afrft, arft1, arft2, virft, vsrft, esrft, smrft, oirft1, oirft2 ) 898 898 CALL wrk_alloc( jpi, jpj, jpl, aicen_init, vicen_init, vsnwn_init, esnwn_init, smv_i_init, oa_i_init ) 899 CALL wrk_alloc( jpi, jpj, jkmax, eirft, erdg1, erdg2, ersw )900 CALL wrk_alloc( jpi, jpj, jkmax, jpl, eicen_init )899 CALL wrk_alloc( jpi, jpj, nlay_i+1, eirft, erdg1, erdg2, ersw ) 900 CALL wrk_alloc( jpi, jpj, nlay_i+1, jpl, eicen_init ) 901 901 902 902 ! Conservation check … … 1302 1302 CALL wrk_dealloc( jpi, jpj, afrft, arft1, arft2, virft, vsrft, esrft, smrft, oirft1, oirft2 ) 1303 1303 CALL wrk_dealloc( jpi, jpj, jpl, aicen_init, vicen_init, vsnwn_init, esnwn_init, smv_i_init, oa_i_init ) 1304 CALL wrk_dealloc( jpi, jpj, jkmax, eirft, erdg1, erdg2, ersw )1305 CALL wrk_dealloc( jpi, jpj, jkmax, jpl, eicen_init )1304 CALL wrk_dealloc( jpi, jpj, nlay_i+1, eirft, erdg1, erdg2, ersw ) 1305 CALL wrk_dealloc( jpi, jpj, nlay_i+1, jpl, eicen_init ) 1306 1306 ! 1307 1307 END SUBROUTINE lim_itd_me_ridgeshift -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_dh.F90
r4872 r4873 130 130 CALL wrk_alloc( jpij, zdh_s_mel, zdh_s_pre, zdh_s_sub, zqh_i, zqh_s, zq_s ) 131 131 CALL wrk_alloc( jpij, zintermelt ) 132 CALL wrk_alloc( jpij, jkmax, zdeltah, zh_i )132 CALL wrk_alloc( jpij, nlay_i+1, zdeltah, zh_i ) 133 133 CALL wrk_alloc( jpij, icount ) 134 134 … … 728 728 CALL wrk_dealloc( jpij, zdh_s_mel, zdh_s_pre, zdh_s_sub, zqh_i, zqh_s, zq_s ) 729 729 CALL wrk_dealloc( jpij, zintermelt ) 730 CALL wrk_dealloc( jpij, jkmax, zdeltah, zh_i )730 CALL wrk_dealloc( jpij, nlay_i+1, zdeltah, zh_i ) 731 731 CALL wrk_dealloc( jpij, icount ) 732 732 ! -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_dif.F90
r4872 r4873 155 155 CALL wrk_alloc( jpij, nlay_i+1, ztcond_i, zradtr_i, zradab_i, zkappa_i, ztib, zeta_i, ztitemp, z_i, zspeche_i, kjstart=0) 156 156 CALL wrk_alloc( jpij, nlay_s+1, zradtr_s, zradab_s, zkappa_s, ztsb, zeta_s, ztstemp, z_s, kjstart=0) 157 CALL wrk_alloc( jpij, jkmax+2, zindterm, zindtbis, zdiagbis )158 CALL wrk_alloc( jpij, jkmax+2, 3, ztrid )157 CALL wrk_alloc( jpij, nlay_i+3, zindterm, zindtbis, zdiagbis ) 158 CALL wrk_alloc( jpij, nlay_i+3, 3, ztrid ) 159 159 160 160 CALL wrk_alloc( jpij, zdq, zq_ini ) … … 430 430 !!ice interior terms (top equation has the same form as the others) 431 431 432 DO numeq=1, jkmax+2432 DO numeq=1,nlay_i+3 433 433 DO ji = kideb , kiut 434 434 ztrid(ji,numeq,1) = 0. … … 621 621 622 622 maxnumeqmax = 0 623 minnumeqmin = jkmax+4623 minnumeqmin = nlay_i+5 624 624 625 625 DO ji = kideb , kiut … … 761 761 & ztib, zeta_i, ztitemp, z_i, zspeche_i, kjstart = 0 ) 762 762 CALL wrk_dealloc( jpij, nlay_s+1, zradtr_s, zradab_s, zkappa_s, ztsb, zeta_s, ztstemp, z_s, kjstart = 0 ) 763 CALL wrk_dealloc( jpij, jkmax+2, zindterm, zindtbis, zdiagbis )764 CALL wrk_dealloc( jpij, jkmax+2, 3, ztrid )763 CALL wrk_dealloc( jpij, nlay_i+3, zindterm, zindtbis, zdiagbis ) 764 CALL wrk_dealloc( jpij, nlay_i+3, 3, ztrid ) 765 765 CALL wrk_dealloc( jpij, zdq, zq_ini ) 766 766 -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_lac.F90
r4872 r4873 121 121 CALL wrk_alloc( jpij, zdv_res, zda_res, zat_i_1d, zv_frazb, zvrel_1d ) 122 122 CALL wrk_alloc( jpij,jpl, zv_b, za_b, za_i_1d, zv_i_1d, zoa_i_1d, zsmv_i_1d ) 123 CALL wrk_alloc( jpij, jkmax,jpl, ze_i_1d )123 CALL wrk_alloc( jpij,nlay_i+1,jpl, ze_i_1d ) 124 124 CALL wrk_alloc( jpi,jpj, zvrel ) 125 125 … … 542 542 CALL wrk_dealloc( jpij, zdv_res, zda_res, zat_i_1d, zv_frazb, zvrel_1d ) 543 543 CALL wrk_dealloc( jpij,jpl, zv_b, za_b, za_i_1d, zv_i_1d, zoa_i_1d, zsmv_i_1d ) 544 CALL wrk_dealloc( jpij, jkmax,jpl, ze_i_1d )544 CALL wrk_dealloc( jpij,nlay_i+1,jpl, ze_i_1d ) 545 545 CALL wrk_dealloc( jpi,jpj, zvrel ) 546 546 ! -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90
r4870 r4873 85 85 CALL wrk_alloc( jpi, jpj, zui_u, zvi_v, zsm, zs0at, zs0ow, zeiold, zesold ) 86 86 CALL wrk_alloc( jpi, jpj, jpl, zs0ice, zs0sn, zs0a, zs0c0 , zs0sm , zs0oi ) 87 CALL wrk_alloc( jpi, jpj, jkmax, jpl, zs0e )87 CALL wrk_alloc( jpi, jpj, nlay_i+1, jpl, zs0e ) 88 88 89 89 CALL wrk_alloc( jpi, jpj, jpl, zaiold, zhimax, zviold, zvsold ) ! clem … … 506 506 CALL wrk_dealloc( jpi, jpj, zui_u, zvi_v, zsm, zs0at, zs0ow, zeiold, zesold ) 507 507 CALL wrk_dealloc( jpi, jpj, jpl, zs0ice, zs0sn, zs0a, zs0c0 , zs0sm , zs0oi ) 508 CALL wrk_dealloc( jpi, jpj, jkmax, jpl, zs0e )508 CALL wrk_dealloc( jpi, jpj, nlay_i+1, jpl, zs0e ) 509 509 510 510 CALL wrk_dealloc( jpi, jpj, jpl, zviold, zvsold, zaiold, zhimax ) ! clem -
trunk/NEMOGCM/NEMO/LIM_SRC_3/par_ice.F90
r4869 r4873 12 12 13 13 ! !!! ice thermodynamics 14 INTEGER, PUBLIC, PARAMETER :: jkmax = 6 !: maximum number of ice layers15 14 INTEGER, PUBLIC, PARAMETER :: nlay_i = 5 !: number of ice layers 16 15 INTEGER, PUBLIC, PARAMETER :: nlay_s = 1 !: number of snow layers -
trunk/NEMOGCM/NEMO/LIM_SRC_3/thd_ice.F90
r4872 r4873 172 172 & dh_snowice(jpij) , sm_i_1d (jpij) , s_i_new (jpij) , & 173 173 & t_s_1d(jpij,nlay_s), & 174 & t_i_1d(jpij, jkmax), s_i_1d(jpij,jkmax) , &175 & q_i_1d(jpij, jkmax), q_s_1d(jpij,jkmax) , &176 & qh_i_old(jpij,0: jkmax), h_i_old(jpij,0:jkmax) , STAT=ierr(3))174 & t_i_1d(jpij,nlay_i+1), s_i_1d(jpij,nlay_i+1) , & 175 & q_i_1d(jpij,nlay_i+1), q_s_1d(jpij,nlay_i+1) , & 176 & qh_i_old(jpij,0:nlay_i+1), h_i_old(jpij,0:nlay_i+1) , STAT=ierr(3)) 177 177 ! 178 178 thd_ice_alloc = MAXVAL( ierr )
Note: See TracChangeset
for help on using the changeset viewer.