Changeset 1960
- Timestamp:
- Feb 7, 2014, 5:20:25 PM (11 years ago)
- Location:
- LMDZ5/trunk/libf/phy1d
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phy1d/1DUTILS.h
r1953 r1960 4 4 c 5 5 c 6 SUBROUTINE conf_unicol ( tapedef )6 SUBROUTINE conf_unicol 7 7 c 8 8 #ifdef CPP_IOIPSL … … 15 15 c----------------------------------------------------------------------- 16 16 c Auteurs : A. Lahellec . 17 c18 c Arguments :19 c20 c tapedef :21 22 INTEGER tapedef23 17 c 24 18 c Declarations : … … 367 361 c Variables locales pour NetCDF: 368 362 c ------------------------------ 369 INTEGER nid, nvarid370 INTEGER idim_s371 INTEGER ierr, ierr_file372 363 INTEGER iq 373 364 INTEGER length … … 378 369 character*80 abort_message 379 370 LOGICAL found 380 c381 INTEGER nb382 371 383 372 modname = 'dyn1deta0 : ' … … 508 497 c ---------- 509 498 CHARACTER*(*) fichnom 510 REAL time511 499 cAl1 plev tronque pour .nc mais plev(klev+1):=0 512 500 real :: plev(klon,klev),play (klon,klev),phi(klon,klev) … … 520 508 c Variables locales pour NetCDF: 521 509 c ------------------------------ 522 INTEGER nid, nvarid 523 INTEGER idim_s 524 INTEGER ierr, ierr_file 510 INTEGER nid 511 INTEGER ierr 525 512 INTEGER iq,l 526 513 INTEGER length … … 535 522 DATA nb / 0 / 536 523 537 REAL zan0,zjulian,hours538 INTEGER yyears0,jjour0, mmois0539 character*30 unites540 541 cDbg542 524 CALL open_restartphy(fichnom) 543 525 print*,'redm1 ',fichnom,klon,klev,nqtot … … 550 532 ierr = NF_OPEN(fichnom, NF_WRITE, nid) 551 533 IF (ierr .NE. NF_NOERR) THEN 552 PRINT*,"Pb. d ouverture "//fichnom553 CALL abort 534 abort_message="Pb. d ouverture "//fichnom 535 CALL abort_gcm('Modele 1D',abort_message,1) 554 536 ENDIF 555 537 … … 661 643 ! traitement des point normaux 662 644 DO j=2,jm-1 663 645 ig=2+(j-2)*(im-1) 664 646 CALL SCOPY(im-1,pfi(ig,ifield),1,pdyn(1,j,ifield),1) 665 647 pdyn(im,j,ifield)=pdyn(1,j,ifield) 666 648 ENDDO 667 649 ENDDO … … 992 974 DO ifield=1,nfield 993 975 DO j=2,jm-1 994 976 ig=2+(j-2)*(im-1) 995 977 CALL SCOPY(im-1,pdyn(1,j,ifield),1,pfi(ig,ifield),1) 996 978 ENDDO … … 1151 1133 1152 1134 !====================================================================== 1153 SUBROUTINE read_tsurf1d(knon, knindex,sst_out)1135 SUBROUTINE read_tsurf1d(knon,sst_out) 1154 1136 1155 1137 ! This subroutine specifies the surface temperature to be used in 1D simulations … … 1158 1140 1159 1141 INTEGER, INTENT(IN) :: knon ! nomber of points on compressed grid 1160 INTEGER, DIMENSION(klon), INTENT(IN) :: knindex ! grid point number for compressed grid1161 1142 REAL, DIMENSION(klon), INTENT(OUT) :: sst_out ! tsurf used to force the single-column model 1162 1143 … … 1220 1201 1221 1202 SUBROUTINE advect_va(llm,omega,d_t_va,d_q_va,d_u_va,d_v_va, 1222 ! q,temp,u,v, 1223 ! play,plev) 1203 s q,temp,u,v,play) 1224 1204 !itlmd 1225 1205 !---------------------------------------------------------------------- … … 1237 1217 real q(llm,3),temp(llm) 1238 1218 real u(llm),v(llm) 1239 real play(llm) ,plev(llm+1)1219 real play(llm) 1240 1220 ! interne 1241 1221 integer l … … 1323 1303 real dph(llm),dqdp(llm),dtdp(llm) 1324 1304 ! interne 1325 integer l,k1326 real alpha,omdn,omup1305 integer k 1306 real omdn,omup 1327 1307 1328 1308 ! dudp=0. … … 1403 1383 character*80 fich_toga 1404 1384 1405 integer no,l,k,ip1406 real riy,rim,rid,rih,bid1385 integer k,ip 1386 real bid 1407 1387 1408 1388 integer iy,im,id,ih … … 1422 1402 1423 1403 do k = 1, nlev_toga 1424 read(21,230) plev_toga(k,ip), t_toga(k,ip), q_toga(k,ip) 1404 read(21,230) plev_toga(k,ip), t_toga(k,ip), q_toga(k,ip) 1425 1405 : ,u_toga(k,ip), v_toga(k,ip), w_toga(k,ip) 1426 1406 : ,ht_toga(k,ip), vt_toga(k,ip), hq_toga(k,ip), vq_toga(k,ip) … … 1443 1423 1444 1424 223 format(4i3,6f8.2) 1445 226 format(f7.1,1x,10f8.2)1446 227 format(f7.1,1x,1p,4e11.3)1447 1425 230 format(6f9.3,4e11.3) 1448 1426 … … 1462 1440 character*80 fich_sandu 1463 1441 1464 integer no,l,k,ip 1465 real riy,rim,rid,rih,bid 1466 1442 integer ip 1467 1443 integer iy,im,id,ih 1468 1444 1469 real plev_min 1470 1471 plev_min = 55000. ! pas de tendance de vap. d eau au-dessus de 55 hPa 1445 real plev_min 1446 1447 print*,'nlev_sandu',nlev_sandu 1448 plev_min = 55000. ! pas de tendance de vap. d eau au-dessus de 55 hPa 1472 1449 1473 1450 open(21,file=trim(fich_sandu),form='formatted') … … 1482 1459 1483 1460 223 format(4i3,f8.2) 1484 226 format(f7.1,1x,10f8.2)1485 227 format(f7.1,1x,1p,4e11.3)1486 230 format(6f9.3,4e11.3)1487 1461 1488 1462 return … … 1504 1478 character*80 fich_astex 1505 1479 1506 integer no,l,k,ip 1507 real riy,rim,rid,rih,bid 1508 1480 integer ip 1509 1481 integer iy,im,id,ih 1510 1482 1511 1483 real plev_min 1512 1484 1485 print*,'nlev_astex',nlev_astex 1513 1486 plev_min = 55000. ! pas de tendance de vap. d eau au-dessus de 55 hPa 1514 1487 … … 1528 1501 1529 1502 223 format(4i3,e13.2,f7.2,f7.3,f7.2,f7.3,f7.2) 1530 226 format(f7.1,1x,10f8.2)1531 227 format(f7.1,1x,1p,4e11.3)1532 230 format(6f9.3,4e11.3)1533 1503 1534 1504 return … … 1551 1521 character*80 :: fich_twpice 1552 1522 real*8 time(ntime) 1553 real*8 lat, lon, alt, phis 1523 real*8 lat, lon, alt, phis 1554 1524 real*8 lev(nlevel) 1555 1525 real*8 plev(nlevel,ntime) … … 1561 1531 real*8 T_adv_h(nlevel,ntime) 1562 1532 real*8 T_adv_v(nlevel,ntime), q_adv_h(nlevel,ntime) 1563 real*8 q_adv_v(nlevel,ntime) 1533 real*8 q_adv_v(nlevel,ntime) 1564 1534 real*8 s(nlevel,ntime), s_adv_h(nlevel,ntime) 1565 1535 real*8 s_adv_v(nlevel,ntime) … … 1976 1946 integer ierr 1977 1947 1978 integer i1979 1948 integer timevar,levvar 1980 1949 integer timelen,levlen … … 2050 2019 real omega_mod(llm),o3mmr_mod(llm) 2051 2020 2052 integer l,k,k1,k2 ,kp2053 real aa,frac,frac1,frac2,fact2021 integer l,k,k1,k2 2022 real frac,frac1,frac2,fact 2054 2023 2055 2024 do l = 1, llm … … 2168 2137 real o3mmr_mod(llm),ql_mod(llm),qt_mod(llm) 2169 2138 2170 integer l,k,k1,k2 ,kp2171 real aa,frac,frac1,frac2,fact2139 integer l,k,k1,k2 2140 real frac,frac1,frac2,fact 2172 2141 2173 2142 do l = 1, llm … … 2444 2413 real ts_prof 2445 2414 ! local: 2446 integer it_sandu1, it_sandu2 ,k2415 integer it_sandu1, it_sandu2 2447 2416 real timeit,time_sandu1,time_sandu2,frac 2448 2417 ! Check that initial day of the simulation consistent with SANDU period: … … 2511 2480 character*80 fich_armcu 2512 2481 2513 integer no,l,k,ip 2514 real riy,rim,rid,rih,bid 2482 integer ip 2515 2483 2516 2484 integer iy,im,id,ih,in 2485 2486 print*,'nlev_armcu',nlev_armcu 2517 2487 2518 2488 open(21,file=trim(fich_armcu),form='formatted') … … 2529 2499 2530 2500 223 format(5i3,5f8.3) 2531 226 format(f7.1,1x,10f8.2)2532 227 format(f7.1,1x,1p,4e11.3)2533 230 format(6f9.3,4e11.3)2534 2501 2535 2502 return … … 2571 2538 real hq_mod(llm),vq_mod(llm) 2572 2539 2573 integer l,k,k1,k2 ,kp2574 real aa,frac,frac1,frac2,fact2540 integer l,k,k1,k2 2541 real frac,frac1,frac2,fact 2575 2542 2576 2543 do l = 1, llm … … 2684 2651 real div_prof,ts_prof,ug_prof,vg_prof,ufa_prof,vfa_prof 2685 2652 ! local: 2686 integer it_astex1, it_astex2 ,k2653 integer it_astex1, it_astex2 2687 2654 real timeit,time_astex1,time_astex2,frac 2688 2655 … … 2985 2952 2986 2953 integer, parameter :: ilesfile=1 2987 integer :: ierr,irad,imax,jtot,k,itrac,nt1,nt2 2988 logical :: lmoist,lcoriol,ltimedep 2989 real :: xsize,ysize 2990 real :: ustin,wsvsurf,timerad 2991 character(80) :: chmess 2954 integer :: ierr,k,itrac,nt1,nt2 2992 2955 2993 2956 if(.not.(llesread)) return … … 3043 3006 implicit none 3044 3007 3045 integer nlev_max,kmax ,kmax23008 integer nlev_max,kmax 3046 3009 logical :: llesread = .true. 3047 3010 … … 3052 3015 3053 3016 integer, parameter :: ilesfile=1 3054 integer :: ierr,irad,imax,jtot,k 3055 logical :: lmoist,lcoriol,ltimedep 3056 real :: xsize,ysize 3057 real :: ustin,wsvsurf,timerad 3058 character(80) :: chmess 3017 integer :: k,ierr 3059 3018 3060 3019 if(.not.(llesread)) return … … 3079 3038 implicit none 3080 3039 3081 integer nlev_max,kmax ,kmax23040 integer nlev_max,kmax 3082 3041 logical :: llesread = .true. 3083 3042 … … 3088 3047 3089 3048 integer, parameter :: ilesfile=1 3090 integer :: ierr,irad,imax,jtot,k 3091 logical :: lmoist,lcoriol,ltimedep 3092 real :: xsize,ysize 3093 real :: ustin,wsvsurf,timerad 3094 character(80) :: chmess 3049 integer :: ierr,k 3095 3050 3096 3051 if(.not.(llesread)) return … … 3117 3072 implicit none 3118 3073 3119 integer nlev_max,kmax ,kmax23074 integer nlev_max,kmax 3120 3075 logical :: llesread = .true. 3121 3076 … … 3127 3082 integer, parameter :: ilesfile=1 3128 3083 integer, parameter :: ifile=2 3129 integer :: ierr,irad,imax,jtot,k 3130 logical :: lmoist,lcoriol,ltimedep 3131 real :: xsize,ysize 3132 real :: ustin,wsvsurf,timerad 3133 character(80) :: chmess 3084 integer :: ierr,jtot,k 3134 3085 3135 3086 if(.not.(llesread)) return … … 3182 3133 3183 3134 integer ntime,nlevel 3184 integer l,k3185 3135 character*80 :: fich_amma 3186 real*8 time(ntime) 3187 real*8 zz(nlevel) 3136 real*8 zz(nlevel) 3188 3137 3189 3138 real*8 temp(nlevel),pp(nlevel) … … 3192 3141 real*8 dw(nlevel,ntime) 3193 3142 real*8 dt(nlevel,ntime) 3194 real*8 dq(nlevel,ntime) 3143 real*8 dq(nlevel,ntime) 3195 3144 real*8 flat(ntime),sens(ntime) 3196 3145 … … 3522 3471 3523 3472 integer ntime,nlevel 3524 integer l,k3525 3473 character*80 :: fich_fire 3526 real*8 time(ntime) 3527 real*8 zz(nlevel) 3474 real*8 zz(nlevel) 3528 3475 3529 3476 real*8 thl(nlevel) … … 3532 3479 real*8 ug(nlevel,ntime),vg(nlevel,ntime),wls(nlevel,ntime) 3533 3480 real*8 dqtdx(nlevel,ntime),dqtdy(nlevel,ntime) 3534 real*8 dqtdt(nlevel,ntime),thl_rad(nlevel,ntime) 3481 real*8 dqtdt(nlevel,ntime),thl_rad(nlevel,ntime) 3535 3482 3536 3483 integer nid, ierr -
LMDZ5/trunk/libf/phy1d/1D_decl_cases.h
r1907 r1960 16 16 real sec_print 17 17 !! 18 integer nn19 integer it_toga1, it_toga220 real time_toga1,time_toga221 22 18 real ts_toga(nt_toga) 23 19 real plev_toga(nlev_toga,nt_toga),w_toga(nlev_toga,nt_toga) … … 34 30 real hq_prof(nlev_toga),vq_prof(nlev_toga) 35 31 36 real plev_mod(llm),w_mod(llm), t_mod(llm),q_mod(llm)32 real w_mod(llm), t_mod(llm),q_mod(llm) 37 33 real u_mod(llm),v_mod(llm), ht_mod(llm),vt_mod(llm) 38 34 real hq_mod(llm),vq_mod(llm),qv_mod(llm),ql_mod(llm),qt_mod(llm) … … 87 83 character*80 :: fich_amma 88 84 ! Option du cas AMMA ou on impose la discretisation verticale (Ap,Bp) 89 logical :: fixe_disvert=.true.90 85 integer nlev_amma, nt_amma 91 86 ! parameter (nlev_amma=29, nt_amma=48) ! Fleur, juillet 2012 … … 104 99 !profils initiaux: 105 100 real plev_amma(nlev_amma) 106 real tv_amma(nlev_amma),rho_amma(nlev_amma)107 real thv_amma(nlev_amma)108 101 109 102 real z_amma(nlev_amma) … … 111 104 real u_amma(nlev_amma) 112 105 real v_amma(nlev_amma) 113 114 real thvsurf_amma,tvsurf_amma,rhosurf_amma,thsurf115 106 116 107 real th_ammai(nlev_amma),q_ammai(nlev_amma) … … 130 121 131 122 !champs interpoles 132 real plev_profamma(nlev_amma),vitw_profamma(nlev_amma)123 real vitw_profamma(nlev_amma) 133 124 real ht_profamma(nlev_amma) 134 125 real hq_profamma(nlev_amma) … … 148 139 integer year_ini_fire, day_ini_fire, mth_ini_fire 149 140 real heure_ini_fire 150 real day_ju_ini_fire ! Julian day of fire first day151 141 parameter (year_ini_fire=1987) 152 142 parameter (mth_ini_fire=7) … … 154 144 parameter (heure_ini_fire=0.) !0h en secondes 155 145 156 !profils initiaux:157 real z_fire(nlev_fire)158 real thl_fire(nlev_fire),qt_fire(nlev_fire)159 real u_fire(nlev_fire), v_fire(nlev_fire)160 real tke_fire(nlev_fire)161 162 !forcings163 real ugeo_fire(nlev_fire),vgeo_fire(nlev_fire)164 real wls_fire(nlev_fire),dqtdx_fire(nlev_fire)165 real dqtdy_fire(nlev_fire)166 real dqtdt_fire(nlev_fire),thl_rad_fire(nlev_fire)167 168 real ugeo_mod(llm),vgeo_mod(llm),wls_mod(llm)169 real dqtdx_mod(llm),dqtdy_mod(llm),dqtdt_mod(llm)170 real thl_rad_mod(llm)171 146 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 172 147 ! Declarations specifiques au cas GCSSold … … 180 155 real Ts_gcssold 181 156 real dtime_frcg 182 cAl1 logical :: imp_fcg_gcssold183 c logical :: ts_fcg_gcssold184 c logical :: Tp_fcg_gcssold185 157 logical :: Turb_fcg_gcssold 186 common /turb_forcing/ dtime_frcg, 187 $ Turb_fcg_gcssold, hthturb_gcssold, hqturb_gcssold 158 159 common /turb_forcing/ 160 s dtime_frcg,hthturb_gcssold, hqturb_gcssold,Turb_fcg_gcssold 188 161 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 189 162 ! Declarations specifiques au cas Arm_cu … … 206 179 real adv_qt_armcu(nt_armcu) 207 180 real theta_mod(llm),rv_mod(llm),play_mod(llm) 208 real d_t_dyn_ls(llm),d_q_dyn_ls(llm)209 181 ! profc comme "profil armcu" 210 real h_profc,play_profc,t_profc,th_profc,plev_profc211 real u_profc,v_profc,qv_profc,rv_profc212 182 213 183 ! forcages interpoles dans le temps … … 226 196 parameter (mth_ini_sandu=7) 227 197 parameter (day_ini_sandu=15) ! 196 = 15 juillet 2006 228 real dt_sandu , tau_sandu198 real dt_sandu 229 199 logical :: trouve_700=.true. 230 200 parameter (dt_sandu=6.*3600.) ! forcages donnes ttes les 6 heures par ifa_sandu.txt 231 201 ! parameter (tau_sandu=3600.) ! temps de relaxation u,v,thetal,qt vers profil init et au dessus 700hPa 232 202 !! 233 integer it_sandu1, it_sandu2234 real time_sandu1,time_sandu2235 236 203 real ts_sandu(nt_sandu) 237 204 ! profs comme "profil sandu" … … 243 210 244 211 real thl_mod(llm),omega_mod(llm),o3mmr_mod(llm),tke_mod(llm) 245 ! pour relaxer u,v,thl et qt vers les profils initiaux au dessus de 700hPa246 real relax_u(llm),relax_v(llm),relax_thl(llm),relax_q(llm,2)247 212 !vertical advection computation 248 213 real d_t_z(llm), d_q_z(llm) … … 260 225 parameter (mth_ini_astex=6) 261 226 parameter (day_ini_astex=13) ! 165 = 13 juin 1992 262 real dt_astex , tau_astex227 real dt_astex 263 228 parameter (dt_astex=3600.) ! forcages donnes ttes les heures par ifa_astex.txt 264 integer it_astex1, it_astex2265 real time_astex1,time_astex2266 229 real ts_astex(nt_astex),div_astex(nt_astex),ug_astex(nt_astex) 267 230 real vg_astex(nt_astex),ufa_astex(nt_astex),vfa_astex(nt_astex) -
LMDZ5/trunk/libf/phy1d/1Dconv.h
r1907 r1960 22 22 REAL hplaym(100) !pression en hPa milieux des couches Meso-NH 23 23 24 integer i,j,k,ii,ll,in 25 REAL tsol,qsol 24 integer i,j,k,ll,in 26 25 27 26 CHARACTER*80 file_forctl,file_fordat 28 27 29 COMMON/com1_phys_gcss/ klev,play,JM,coef1,coef230 COMMON/com2_phys_gcss/ nblvlm,playm,hplaym28 COMMON/com1_phys_gcss/play,coef1,coef2,JM,klev 29 COMMON/com2_phys_gcss/playm,hplaym,nblvlm 31 30 32 31 c====================================================================== … … 170 169 hqTurbbef(i)=hqTurbaft(i) 171 170 enddo 172 171 tsbef = tsaft 173 172 timebef=pasprev*dt 174 173 timeaft=timebef+dt … … 213 212 print*,'hqTurb_mes ',(hqTurb_mes(i),i=1,nblvlm) 214 213 endif 215 214 IF (ts_fcg) print*,'ts_subr', ts_subr 216 215 c*** on interpole les champs meso_NH sur les niveaux de pression*** 217 216 c*** gcm . on obtient le nouveau champ after *** … … 263 262 hqTurb(ll)=hqTurbaft(ll) 264 263 enddo 265 264 ts_subr = tsaft 266 265 else ! temps.ge.pasmax 267 266 c*** on interpole sur les pas de temps de 10mn du gcm a partir *** … … 282 281 endif ! Turb_fcg 283 282 enddo 284 283 ts_subr = ((timeaft-time)*tsbef + (time-timebef)*tsaft)/dt 285 284 endif ! temps.ge.pasmax 286 285 c … … 440 439 endif ! Turb_fcg 441 440 enddo 442 441 ts_subr = tsaft 443 442 close(99) 444 443 close(98) … … 505 504 REAL hplaym(100)!pression en hecto-Pa des milieux de couche Meso-NH 506 505 507 COMMON/com1_phys_gcss/ klev,play,JM,coef1,coef2508 COMMON/com2_phys_gcss/ nblvlm,playm,hplaym509 510 integer i,k,klevgcm506 COMMON/com1_phys_gcss/play,coef1,coef2,JM,klev 507 COMMON/com2_phys_gcss/playm,hplaym,nblvlm 508 509 integer k,klevgcm 511 510 real playgcm(klevgcm) ! pression en milieu de couche du gcm 512 511 real psolgcm … … 577 576 REAL playm(100) !pression en Pa milieu de chaque couche Meso-NH 578 577 REAL hplaym(100) !pression en hPa des milieux de couche Meso-NH 579 COMMON/com2_phys_gcss/ nblvlm,playm,hplaym580 581 INTEGER i,lu, k,mlz,mlzh,j578 COMMON/com2_phys_gcss/playm,hplaym,nblvlm 579 580 INTEGER i,lu,mlz,mlzh 582 581 583 582 character*80 file_forctl … … 644 643 real ts 645 644 c 646 INTEGER i,k645 INTEGER k 647 646 c 648 647 LOGICAL imp_fcg,ts_fcg,Turb_fcg … … 725 724 REAL hplaym(100)!pression en hPa des milieux de couche Meso-NH 726 725 727 COMMON/com1_phys_gcss/ klev,play,JM,coef1,coef2728 COMMON/com2_phys_gcss/ nblvlm,playm,hplaym726 COMMON/com1_phys_gcss/play,coef1,coef2,JM,klev 727 COMMON/com2_phys_gcss/playm,hplaym,nblvlm 729 728 730 729 REAL psol 731 730 REAL val 732 INTEGER k, mlz , mlzh731 INTEGER k, mlz 733 732 734 733 -
LMDZ5/trunk/libf/phy1d/add_pbl_tend.F
r1907 r1960 19 19 real dtime_frcg 20 20 logical Turb_fcg_gcssold 21 common /turb_forcing/ dtime_frcg, 22 $ Turb_fcg_gcssold, hthturb_gcssold, hqturb_gcssold 21 common /turb_forcing/ 22 s dtime_frcg,hthturb_gcssold, hqturb_gcssold,Turb_fcg_gcssold 23 23 24 ! Arguments : 24 25 !------------ -
LMDZ5/trunk/libf/phy1d/compar1d.h
r1907 r1960 27 27 logical :: ok_old_disvert 28 28 29 common/com_par1d/forcing_type,nat_surf,tsurf,rugos, & 29 common/com_par1d/ 30 & nat_surf,tsurf,rugos, & 30 31 & qsol,qsurf,psurf,zsurf,albedo,time,time_ini,xlat,xlon,airefi, & 31 32 & wtsurf,wqsurf,restart_runoff,xagesno,qsolinp,zpicinp, & 33 & forcing_type, 32 34 & restart,ok_old_disvert 33 35 -
LMDZ5/trunk/libf/phy1d/lmdz1d.F
r1948 r1960 81 81 integer :: an 82 82 83 !84 real :: paire = 1. ! aire de la maille85 !** common /flux_arp/fsens,flat,ok_flux_surf86 87 83 !--------------------------------------------------------------------- 88 84 ! Declarations related to forcing and initial profiles … … 92 88 integer llm700,nq1,nq2 93 89 INTEGER, PARAMETER :: nlev_max=1000, nqmx=1000 94 real timestep, frac , timeit90 real timestep, frac 95 91 real height(nlev_max),tttprof(nlev_max),qtprof(nlev_max), 96 92 . uprof(nlev_max),vprof(nlev_max),e12prof(nlev_max), … … 100 96 . qprof(nlev_max,nqmx) 101 97 102 real :: fff103 98 c integer :: forcing_type 104 99 logical :: forcing_les = .false. … … 138 133 real :: pzero=1.e5 139 134 real :: play (llm),zlay (llm),sig_s(llm),plev(llm+1) 140 real :: playd(llm),zlayd(llm),ap_amma(llm+1),bp_amma(llm+1),poub141 135 142 136 !--------------------------------------------------------------------- … … 144 138 !--------------------------------------------------------------------- 145 139 146 integer :: iq147 140 real :: phi(llm) 148 141 real :: teta(llm),tetal(llm),temp(llm),u(llm),v(llm),w(llm) … … 152 145 real :: sfdt, cfdt 153 146 real :: du_phys(llm),dv_phys(llm),dt_phys(llm) 154 real :: du_dyn(llm),dv_dyn(llm),dt_dyn(llm) 155 real :: dt_cooling(llm),d_t_cool(llm),d_th_adv(llm) 156 real :: dq_cooling(llm),d_q_cool(llm) 157 real :: tmpvar(llm) 147 real :: dt_dyn(llm) 148 real :: dt_cooling(llm),d_th_adv(llm) 158 149 real :: alpha 150 real :: ttt 159 151 160 152 REAL, ALLOCATABLE, DIMENSION(:,:):: q … … 205 197 ! Fichiers et d'autres variables 206 198 !--------------------------------------------------------------------- 207 real ttt,bow,q1 208 integer :: ierr,k,l,i,it=1,mxcalc 199 integer :: k,l,i,it=1,mxcalc 209 200 integer jjmp1 210 201 parameter (jjmp1=jjm+1-1/jjm) … … 231 222 !--------------------------------------------------------------------- 232 223 cAl1 233 call conf_unicol (99)224 call conf_unicol 234 225 cAl1 moves this gcssold var from common fcg_gcssold to 235 226 Turb_fcg_gcssold = xTurb_fcg_gcssold … … 375 366 itau_phy = 0 376 367 call ymds2ju(annee_ref,mois,day_ref,heure,day) 377 day_ini = day368 day_ini = int(day) 378 369 day_end = day_ini + fnday 379 370 … … 859 850 ! 860 851 du_age(1:mxcalc)= -2.*sfdt/timestep* 861 :(sfdt*(u(1:mxcalc)-ug(1:mxcalc)) -862 :cfdt*(v(1:mxcalc)-vg(1:mxcalc)) )852 s (sfdt*(u(1:mxcalc)-ug(1:mxcalc)) - 853 s cfdt*(v(1:mxcalc)-vg(1:mxcalc)) ) 863 854 !! : fcoriolis*(v(1:mxcalc)-vg(1:mxcalc)) 864 855 ! 865 856 dv_age(1:mxcalc)= -2.*sfdt/timestep* 866 :(cfdt*(u(1:mxcalc)-ug(1:mxcalc)) +867 :sfdt*(v(1:mxcalc)-vg(1:mxcalc)) )857 s (cfdt*(u(1:mxcalc)-ug(1:mxcalc)) + 858 s sfdt*(v(1:mxcalc)-vg(1:mxcalc)) ) 868 859 !! : -fcoriolis*(u(1:mxcalc)-ug(1:mxcalc)) 869 860 ! … … 879 870 !!!!!!!!!!!!!!!!!!!!!!!!!!!!! 880 871 u(1:mxcalc)=u(1:mxcalc) + timestep*( 881 :du_phys(1:mxcalc)882 :+du_age(1:mxcalc) )872 s du_phys(1:mxcalc) 873 s +du_age(1:mxcalc) ) 883 874 v(1:mxcalc)=v(1:mxcalc) + timestep*( 884 :dv_phys(1:mxcalc)885 :+dv_age(1:mxcalc) )875 s dv_phys(1:mxcalc) 876 s +dv_age(1:mxcalc) ) 886 877 q(1:mxcalc,:)=q(1:mxcalc,:)+timestep*( 887 :dq(1:mxcalc,:)888 :+d_q_adv(1:mxcalc,:) )878 s dq(1:mxcalc,:) 879 s +d_q_adv(1:mxcalc,:) ) 889 880 890 881 if (prt_level.ge.1) then
Note: See TracChangeset
for help on using the changeset viewer.