Changeset 6 in lmdz_wrf for WRFV3/phys
- Timestamp:
- Jul 18, 2014, 11:20:11 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WRFV3/phys/module_lmdz_phys.F
r1 r6 91 91 & wi_start,wi_end,wj_start,wj_end 92 92 INTEGER, INTENT(IN) :: wparfirstscal, wnum3dm 93 INTEGER, INTENT(IN):: wjulday93 REAL, INTENT(IN) :: wjulday 94 94 REAL, INTENT(IN) :: wtime_step 95 95 INTEGER, INTENT(IN) :: wrf_qvid, wrf_qcid, & … … 235 235 ! wnum_tiles: number of tiles 236 236 ! wjulday: WRF julian day 237 ! wgmt: WRF gmt hour 237 ! wgmt: WRF gmt hour (0, 1) 238 238 ! wtime_step: WRF time-step (in seconds) 239 239 ! wrf_dbg: level of debug from WRF … … 375 375 ' wrf_xtime: ',wrf_xtime,' wrf_rst: ', wrf_isrestart,' wrf_lwbdy: ', & 376 376 wrf_islowbdyin 377 PRINT *,' '//TRIM(Spt)//': k p ph ___________'378 DO iz=1,dimz379 PRINT *,iz,wrf_perP(ip,iz,jp),wrf_perGeopot(ip,iz,jp)380 END DO381 PRINT *,'dimx: ',dimx,' dimy: ',dimy,' dimz: ',dimz,' ddimx: ',ddimx,' ddimy: ',ddimy382 377 383 378 phykeys=0. … … 390 385 lmdz_lafin = .FALSE. 391 386 392 ! PRINT *,'Lluis: i j ij lon lat lonvals latvals_______'393 387 DO iy=1,ddimy 394 388 DO ix=1,ddimx … … 400 394 LatValues(ddimx*(iy-1)+ix) = wrf_Lat(ix,iy)*Pi/180. 401 395 PsfctendValues(ddimx*(iy-1)+ix) = wrf_psfctend(ix,iy) 402 ! PRINT *,ix,iy,(ddimx)*(iy-1)+ix,wrf_Lon(ix,iy),LonValues(ddimx*(iy-1)+ix), &403 ! wrf_Lat(ix,iy),LatValues(ddimx*(iy-1)+ix)404 396 END DO 405 397 END DO … … 533 525 wrf_grid%loce,wrf_grid%lsic) 534 526 535 PRINT *,' Lluis ltksoil. '// Spt //' ter: ',wrf_grid%lter(ip,jp),' lic: ',&536 wrf_grid%llic(ip,jp),' loce: ', wrf_grid%loce(ip,jp),' sic: ', &537 wrf_grid%lsic(ip,jp)538 539 527 ! LANDMASK in LMDZ as fractions 540 528 wrf_grid%lmsk = wrf_grid%lter + wrf_grid%llic … … 565 553 ! Value is given at the first time-step, not any more, since it will be continuously 566 554 ! used by LMDZ 567 PRINT *,' Lluis before '//TRIM(Spt)//' SMOIS: ',wrf_grid%smois(ip,:,jp), &568 ' dzs: ',wrf_grid%dzs,' lwsol: ',wrf_grid%lwsol(ip,jp)569 555 ! l. Fita, LMD. January 2014 570 556 ! This should be in this way, but, because we can not use any scheme DZS=0., so … … 574 560 ! wrf_grid%soil_layers(:,iz,:)/100. 575 561 ! END DO 576 PRINT *,' Lluis after: '//TRIM(Spt)//' SMOIS: ',wrf_grid%smois(ip,:,jp), &577 ' lwsol: ',wrf_grid%lwsol(ip,jp)578 562 DO iz=1,4 579 563 wrf_grid%ltksoil(:,iz,:)=wrf_grid%st(:,1,:) … … 626 610 ORCHIDEElevels = (/ 0.098, 0.1955, 0.5865, 1.3685, 2.9326, 6.0606, 12.3167, & 627 611 24.8289, 49.8534, 99.9022, 200. /) 628 PRINT *,' Lluis interpolating:',SIZE(wrf_grid%soil_layers(ip,:,jp)),' : ', &629 ' soil: ', &630 wrf_grid%soil_layers(ip,SIZE(wrf_grid%soil_layers(ip,:,jp)):1:-1,jp), &631 ' st: ',wrf_grid%st(ip,:,jp), 11, ' | ', ORCHIDEElevels,' soiltop: ', &632 wrf_grid%soilctop(ip,:,jp),' soilbot: ',wrf_grid%soilcbot(ip,:,jp)633 612 634 613 datasetname = soilcat … … 671 650 !L. Fita, LMD. January 2014 Soil layers are in cm! 672 651 673 IF ( (ix == ip) .AND. (iy == jp)) PRINT *,' Lluis '//TRIM(Spt)// &674 ' soiltop: ', wrf_grid%soilctop(ix,:,iy),' soilbot: ', &675 wrf_grid%soilcbot(ix,:,iy),' layers: ', &676 wrf_grid%soil_layers(ix,Nsoillayers:1:-1,iy)/100.,' sm: ', &677 wrf_grid%sm(ix,:,iy)678 652 679 653 ! NOTE: wrf_dx, wrf_dy should be matrix !!! … … 684 658 soilTmass, wrf_grid%lwsol(ix,iy)) 685 659 686 IF ( (ix == ip) .AND. (iy == jp)) PRINT *,'TOTAL soil mass at '// &687 TRIM(Spt)//': ', soilTmass,' [kg] water content: ', &688 wrf_grid%lwsol(ix,iy), ' [kg] equiv. water depth: ', &689 wrf_grid%lwsol(ix,iy)/(wrf_dx*wrf_dy*1000.)690 691 660 wrf_grid%lwsol(ix,iy) = wrf_grid%lwsol(ix,iy)/(wrf_dx*wrf_dy*1000.) 692 661 … … 694 663 wrf_grid%soil_layers(ix,SIZE(wrf_grid%soil_layers(ix,:,iy)):1:-1,iy), & 695 664 wrf_grid%st(ix,:,iy),11, ORCHIDEElevels,wrf_grid%lotter(ix,:,iy)) 696 IF ( (ix == ip) .AND. (iy == jp)) PRINT *,' Lluis orchidee temperature'//&697 ' at '// TRIM(Spt)//': ',wrf_grid%lotter(ix,:,iy)698 ! IF ( (ix == ip) .AND. (iy == jp)) STOP699 665 END DO 700 666 END DO … … 852 818 wrf_grid%lzrugsrel = wrf_grid%lrugKsoil(:,1,:) 853 819 854 PRINT *,'Lluis Topography values at',ip, jp, ' zmea: ', &855 wrf_grid%lzmea(ip,jp),' zstd: ',wrf_grid%lzstd(ip,jp),' zsig: ', &856 wrf_grid%lzsig(ip,jp),' zgam: ',wrf_grid%lzgam(ip,jp),' zthe: ', &857 wrf_grid%lzthe(ip,jp),' zpic: ',wrf_grid%lzpic(ip,jp),' zval: ', &858 wrf_grid%lzval(ip,jp),' rugoro: ',wrf_grid%lzrugsrel(ip,jp)859 860 820 ! R = 8.3144621 ([J mol/K] http://en.wikipedia.org/wiki/Gas_constant) 861 821 ! mu = 28.97 (Molecular Mass of Air [kg/kmol] from http://www.engineeringtoolbox.com/molecular-mass-air-d_679.html) … … 867 827 868 828 ! Grids do not start/end at the same index 869 !! PRINT *,' Lluis: Creating area/cu/cv...'870 829 wrf_area = 0. 871 830 wrf_cu = 0. … … 899 858 CALL lmdz_vars_init(ddimxy) 900 859 901 ! PRINT *,' Lluis before loading 5 11 ltksoil: ',wrf_grid%ltksoil(5,:,11), &902 ! ' ftsol: ',ftsol(315,:)903 ! PRINT *,' Lluis before loading 5 11 qsurf: ',qsurf(315,:),' qsurf_rst: ', &904 ! qsurf_rst(315,:),' smois :',wrf_grid%smois(5,:,11),' lqksoil: ', &905 ! wrf_grid%lqksoil(5,:,11)906 907 860 CALL load_lmdz(wrf_grid,ddimx,ddimy,dimz,wbdyw,ddimxy,4,11,rlon,rlat,zmasq, & 908 861 pctsrf,ftsol,ftsoil_rst,qsurf_rst,qsol_rst,falb1,falb2,evap_rst,snow_rst, & … … 916 869 rugos_rst, agesno_rst, ftsoil_rst) 917 870 CALL fonte_neige_init(restart_runoff) 918 919 PRINT *,' Lluis on module restart_runoff: ',UBOUND(restart_runoff)920 PRINT *,' ffonte_global: ',ALLOCATED(ffonte_global)921 PRINT *,' fqfonte_global: ',ALLOCATED(fqfonte_global)922 PRINT *,' fqcalving_global: ',ALLOCATED(fqcalving_global)923 924 PRINT *,' Lluis after loading '//TRIM(Spt)//': qsurf_rst: ', qsurf_rst(lp,:),&925 ' smois :',wrf_grid%smois(ip,:,jp),' lqksoil: ', wrf_grid%lqksoil(ip,:,jp)926 927 PRINT *,' Lluis after loading '//TRIM(Spt)//' ltksoil: ', &928 wrf_grid%ltksoil(ip,:,jp),' ftsol: ',ftsol(lp,:)929 930 PRINT *,' Lluis after loading '//TRIM(Spt)//' lwsol: ',wrf_grid%lwsol(ip,jp), &931 ' qsol_rst: ',qsol_rst(lp)932 933 PRINT *,' Lluis lmdz pt= ',lp,' k qsurf_rst qsol_rst evap_rst snow_rst ' // &934 'fder_rst agesno_rst rugos_rst'935 DO iz=1,4936 PRINT *,' * ',iz,qsurf_rst(lp,iz),qsol_rst(lp), evap_rst(lp,iz), &937 snow_rst(lp,iz),fder_rst(lp), agesno_rst(lp,iz),rugos_rst(lp,iz)938 PRINT *,' ftsoil: ',ftsoil_rst(lp,:,iz)939 END DO940 871 941 872 DO ix=1,ddimx … … 959 890 CALL NOread_limit_init(ddimxy, klon_glo) 960 891 961 PRINT *,' Lluis klon_glo,', klon_glo,' klon: ',klon,'lp= ',lp,' sst: ',sst(lp)962 892 sst_glo = sst(1:ddimxy) 963 893 ! In ocean_forced_mod is used as tsurf_limit = sst(knindex(1:knon)) 964 894 tsurf_limit = ftsol(:,3) 965 PRINT *,' Lluis pt tsurf_limit_check_____'966 DO ix=-10,10967 PRINT *,lp+ix,tsurf_limit(lp+ix),sst(lp+ix)968 END DO969 895 970 896 ! In surf_land_bucket_mod is used as z0_new=rugos(knindex(1:knon),1) [z0_new == z0_limit] 971 897 z0_limit = rugos_rst(:,1) 972 898 alb_limit = albedo 973 PRINT *,' Lluis pre-limit_values ftsol: ',ftsol(lp,:),' pctsrf: ',pctsrf(lp,:)974 PRINT *,' Lluis limit_values lp= ',lp,' tsurf_limit: ',tsurf_limit(lp), &975 ' z0_limit: ', z0_limit(lp),' alb_limit: ',alb_limit(lp)976 899 977 900 rug_glo = rugos_rst(:,is_ter) … … 981 904 ! temps=wjulday 982 905 983 !! PRINT *,' Lluis: calling iniphysiq'984 906 CALL iniphysiq(ddimx*ddimy, dimz, 86400., wjulday, wtime_step, & 985 907 & LatValues, LonValues, wrf_area, CUValues, CVValues, 1./reradius, g, r_d, cp, & … … 999 921 PRINT *,' Lluis: END of firststep !!!!!' 1000 922 END IF firststep 1001 1002 ip = 121003 jp = 71004 PRINT *,' ',wrf_grid%itimestep,' Lluis at 12 7: ',wrf_grid%lter(ip,jp), wrf_grid%llic(ip,jp), &1005 wrf_grid%loce(ip,jp), wrf_grid%lsic(ip,jp), ' rugksoil: ', &1006 wrf_grid%lrugksoil(ip,1,jp), wrf_grid%lrugksoil(ip,2,jp), &1007 wrf_grid%lrugksoil(ip,3,jp), wrf_grid%lrugksoil(ip,4,jp),' rug: ', &1008 wrf_grid%lrug(ip,jp)1009 ip = 61010 jp = 91011 PRINT *,' ',wrf_grid%itimestep,' Lluis at 6 9: ',wrf_grid%lter(ip,jp), wrf_grid%llic(ip,jp), &1012 wrf_grid%loce(ip,jp), wrf_grid%lsic(ip,jp), ' rugksoil: ', &1013 wrf_grid%lrugksoil(ip,1,jp), wrf_grid%lrugksoil(ip,2,jp), &1014 wrf_grid%lrugksoil(ip,3,jp), wrf_grid%lrugksoil(ip,4,jp),' rug: ', &1015 wrf_grid%lrug(ip,jp)1016 923 1017 924 ip=icheck_p … … 1067 974 PRINT *,' ' // subname // ': Problem allocating WRF moisture array!', ierr 1068 975 END IF 1069 1070 !! PRINT *,' Lluis wrf MOIST:',LBOUND(wrf_MOIST),' x ',UBOUND(wrf_MOIST)1071 !! PRINT *,'Mix ratio: ',LBOUND(MixingRatioValues),' x ', UBOUND(MixingRatioValues)1072 976 1073 977 IF (ALLOCATED(MixingRatiotendValues)) DEALLOCATE(MixingRatiotendValues) … … 1230 1134 END IF 1231 1135 1232 PRINT *,' Lluis before physiq '//TRIM(Spt)//' ltksoil: ', &1233 wrf_grid%ltksoil(ip,:,jp), ' ftsol: ',ftsol(lp,:)1234 1235 PRINT *,' Lluis beofre physiq '//TRIM(Spt)//' qsurf: ',zxqsurf(lp), &1236 ' qsurf_rst: ',qsurf_rst(lp,:),' smois :',wrf_grid%smois(ip,:,jp), &1237 ' lqksoil: ', wrf_grid%lqksoil(ip,:,jp)1238 1239 PRINT *,' Lluis before physiq: '//TRIM(Spt)//' FullPressValues HalfPressValues '&1240 // 'GeopotValues UValues VValues TValues: '1241 DO iz=1,dimz1242 PRINT *,FullPressValues(lp,iz), HalfPressValues(lp,iz), GeopotValues(lp,iz), &1243 UValues(lp,iz), VValues(lp,iz), TValues(lp,iz)1244 END DO1245 1246 ip = 231247 jp = 181248 PRINT *,' ',wrf_grid%itimestep,' Lluis before physiq at ',ip,', ', jp,' sst: ', &1249 wrf_grid%sst(ip,jp), sst((jp-1)*ddimx+ip),' ftsol 3: ',ftsol((jp-1)*ddimx+ip,is_oce)1250 1251 1136 ip=icheck_p 1252 1137 jp=jcheck_p … … 1281 1166 & lmdz_dudyn, lmdz_PVtheta) 1282 1167 1283 PRINT *,' Lluis after physiq '//TRIM(Spt)//' ltksoil: ', &1284 wrf_grid%ltksoil(ip,:,jp), ' ftsol: ',ftsol(315,:)1285 PRINT *,' Lluis after physiq '//TRIM(Spt)//' qsurf: ',zxqsurf(lp), &1286 ' qsurf_rst: ', qsurf_rst(lp,:),' smois :',wrf_grid%smois(ip,:,jp), &1287 ' lqksoil: ', wrf_grid%lqksoil(ip,:,jp)1288 PRINT *,' Lluis after physiq: '//TRIM(Spt)//' FullPressValues HalfPressValues ' &1289 // 'GeopotValuesUValues VValues TValues: '1290 DO iz=1,dimz1291 PRINT *,FullPressValues(lp,iz), HalfPressValues(lp,iz), GeopotValues(lp,iz), &1292 UValues(lp,iz), VValues(lp,iz), TValues(lp,iz)1293 END DO1294 1295 ip = 231296 jp = 181297 PRINT *,' ',wrf_grid%itimestep,' Lluis after physiq at ',ip,', ', jp,' sst: ', &1298 wrf_grid%sst(ip,jp), sst((jp-1)*ddimx+ip),' ftsol 3: ',ftsol((jp-1)*ddimx+ip,is_oce)1299 1300 1168 ip=icheck_p 1301 1169 jp=jcheck_p … … 1370 1238 wrf_Vtend(wime,:,wjme) = wrfVtenddestagg(wime-1,:,wjme-1) 1371 1239 1372 PRINT *,' Lluis ' // TRIM(Spt) // ' wrf_Utend: ',wrf_Utend(ip,1,jp), &1373 ' wrfUtenddestagg a: ', wrfUtenddestagg(ip-1,1,jp),' wrfUtenddestagg b: ', &1374 wrfUtenddestagg(ip,1,jp), ' wrfUtenddestagg c: ',wrfUtenddestagg(ip+1,1,jp), &1375 ' UtendValues: ', UtendValues(lp,1),' lp: ',lp1376 PRINT *,'dim UtendValues: ',1-wbdyw,':',dimx-1-wbdyw+1,', ',dimz+1,', ',1-wbdyw,':',dimy-1-wbdyw+11377 1240 !! wrf_Ttend = wrf_Temptend 1378 1241 … … 1467 1330 LMDZvarmethod = 'prod' 1468 1331 1469 PRINT *,' AFTER physic and before recomputing!!!!!'1470 ip = 121471 jp = 71472 PRINT *,' ',wrf_grid%itimestep,' Lluis at 12 7: ',wrf_grid%lter(ip,jp), wrf_grid%llic(ip,jp), &1473 wrf_grid%loce(ip,jp), wrf_grid%lsic(ip,jp), ' rugksoil: ', &1474 wrf_grid%lrugksoil(ip,1,jp), wrf_grid%lrugksoil(ip,2,jp), &1475 wrf_grid%lrugksoil(ip,3,jp), wrf_grid%lrugksoil(ip,4,jp),' rug: ', &1476 wrf_grid%lrug(ip,jp)1477 ip = 61478 jp = 91479 PRINT *,' ',wrf_grid%itimestep,' Lluis at 6 9: ',wrf_grid%lter(ip,jp), wrf_grid%llic(ip,jp), &1480 wrf_grid%loce(ip,jp), wrf_grid%lsic(ip,jp), ' rugksoil: ', &1481 wrf_grid%lrugksoil(ip,1,jp), wrf_grid%lrugksoil(ip,2,jp), &1482 wrf_grid%lrugksoil(ip,3,jp), wrf_grid%lrugksoil(ip,4,jp),' rug: ', &1483 wrf_grid%lrug(ip,jp)1484 1485 1332 CALL wrf_varKsoil(wims,wime,wjms,wjme,dimx,dimy,wbdyw,LMDZvarmethod, & 1486 1333 wrf_grid%lter,wrf_grid%llic,wrf_grid%loce,wrf_grid%lsic, & … … 1488 1335 wrf_grid%lrugksoil(:,4,:),wrf_grid%lrug) 1489 1336 1490 PRINT *,' AFTER physic and recomputing!!!!!'1491 ip = 121492 jp = 71493 PRINT *,' ',wrf_grid%itimestep,' Lluis at 12 7: ',wrf_grid%lter(ip,jp), wrf_grid%llic(ip,jp), &1494 wrf_grid%loce(ip,jp), wrf_grid%lsic(ip,jp), ' rugksoil: ', &1495 wrf_grid%lrugksoil(ip,1,jp), wrf_grid%lrugksoil(ip,2,jp), &1496 wrf_grid%lrugksoil(ip,3,jp), wrf_grid%lrugksoil(ip,4,jp),' rug: ', &1497 wrf_grid%lrug(ip,jp)1498 ip = 61499 jp = 91500 PRINT *,' ',wrf_grid%itimestep,' Lluis at 6 9: ',wrf_grid%lter(ip,jp), wrf_grid%llic(ip,jp), &1501 wrf_grid%loce(ip,jp), wrf_grid%lsic(ip,jp), ' rugksoil: ', &1502 wrf_grid%lrugksoil(ip,1,jp), wrf_grid%lrugksoil(ip,2,jp), &1503 wrf_grid%lrugksoil(ip,3,jp), wrf_grid%lrugksoil(ip,4,jp),' rug: ', &1504 wrf_grid%lrug(ip,jp)1505 1506 ip = 231507 jp = 181508 PRINT *,' ',wrf_grid%itimestep,' Lluis at ',ip,', ', jp,' sst : ', &1509 wrf_grid%sst(ip,jp), sst((jp-1)*ddimx+ip),' ftsol 3: ',ftsol((jp-1)*ddimx+ip,is_oce)1510 1511 1337 CALL wrf_varKsoil(wims,wime,wjms,wjme,dimx,dimy,wbdyw,LMDZvarmethod, & 1512 1338 wrf_grid%lter,wrf_grid%llic,wrf_grid%loce,wrf_grid%lsic, & … … 1553 1379 ! & wrf_grid%seed2) 1554 1380 1555 ip = 231556 jp = 181557 PRINT *,' ',wrf_grid%itimestep,' Lluis after put at ',ip,', ', jp,' sst: ', &1558 wrf_grid%sst(ip,jp), sst((jp-1)*ddimx+ip),' ftsol 3: ',ftsol((jp-1)*ddimx+ip,is_oce)1559 1560 1381 ip=icheck_p 1561 1382 jp=jcheck_p … … 1654 1475 ! & wrf_grid%lweakinv, wrf_grid%lwind10m, wrf_grid%lwind10max, wrf_grid%lzmax_th) 1655 1476 1656 PRINT *, ' Lluis: wrf_grid%la_th', UBOUND(wrf_grid%la_th),' fraca: ',UBOUND(fraca)1657 1477 ! DO iz=wkms, wkme-2 1658 1478 ! CALL get_lmdz_out3D_z_i(wims, wime, wjms, wjme, iz, ddimx, ddimy, dimz, wbdyw, & … … 1820 1640 ! END DO 1821 1641 1822 PRINT *,' Lluis Loading done! iz ldtlwr _______________'1823 DO iz=1,dimz1824 PRINT *,iz,wrf_grid%ldtlwr(ip,iz,jp)1825 END DO1826 1827 1642 ! CALL get_lmdz_out3D_ii(wims, wime, wjms, wjme, wkms, wkme, ddimx, ddimy, dimz, & 1828 1643 ! & wbdyw, ddimxy, nbsrf, nsoilmx, lmdzmixingratios, 1, 2, wrf_l_thermals, &
Note: See TracChangeset
for help on using the changeset viewer.