| 1 | ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc |
|---|
| 2 | c MESOSCALE MODEL |
|---|
| 3 | c |
|---|
| 4 | c No need to use startfi.nc |
|---|
| 5 | c > part of the job of phyetat0 is done in inifis |
|---|
| 6 | c > remaining initializations are passed here from the WRF variables |
|---|
| 7 | c > beware, some operations were done by phyetat0 (ex: tracers) |
|---|
| 8 | c > if any problems, look in phyetat0 |
|---|
| 9 | c |
|---|
| 10 | c LMD_MM_MARS |
|---|
| 11 | c day_ini,tsurf,tsoil,emis,q2,qsurf,co2ice are inputs |
|---|
| 12 | c and locally saved variables |
|---|
| 13 | c (no need to call phyetat0) |
|---|
| 14 | c |
|---|
| 15 | tsurf(:)=wtsurf(:) |
|---|
| 16 | PRINT*,'check: tsurf ',tsurf(1),tsurf(ngridmx) |
|---|
| 17 | tsoil(:,:)=wtsoil(:,:) |
|---|
| 18 | PRINT*,'check: tsoil ',tsoil(1,1),tsoil(ngridmx,nsoilmx) |
|---|
| 19 | c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|---|
| 20 | c !!!new physics |
|---|
| 21 | c PRINT*,'no variable z0 field for the moment. use z0_default.' |
|---|
| 22 | c z0(:) = z0_default |
|---|
| 23 | c PRINT*, 'check z0 ', z0(1) |
|---|
| 24 | inertiedat(:,:)=wisoil(:,:) |
|---|
| 25 | PRINT*,'check: inert ',inertiedat(1,1),inertiedat(ngridmx,nsoilmx) |
|---|
| 26 | mlayer(0:nsoilmx-1)=wdsoil(1,:) |
|---|
| 27 | PRINT*,'check: midlayer ', mlayer(:) |
|---|
| 28 | !!!!!!!!!!!!!!!!! DONE in soil_setting.F |
|---|
| 29 | ! 1.5 Build layer(); following the same law as mlayer() |
|---|
| 30 | ! Assuming layer distribution follows mid-layer law: |
|---|
| 31 | ! layer(k)=lay1*alpha**(k-1) |
|---|
| 32 | lay1=sqrt(mlayer(0)*mlayer(1)) |
|---|
| 33 | alpha=mlayer(1)/mlayer(0) |
|---|
| 34 | do iloop=1,nsoilmx |
|---|
| 35 | layer(iloop)=lay1*(alpha**(iloop-1)) |
|---|
| 36 | enddo |
|---|
| 37 | |
|---|
| 38 | PRINT*,'check: layer ', layer(:) |
|---|
| 39 | |
|---|
| 40 | !!!!!!!!!!!!!!!!! DONE in soil_setting.F |
|---|
| 41 | tnom(:)=wtnom(:) !! est rempli dans advtrac.h |
|---|
| 42 | PRINT*,'check: tracernames ', tnom |
|---|
| 43 | !!!new physics |
|---|
| 44 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|---|
| 45 | emis(:)=wemis(:) |
|---|
| 46 | PRINT*,'check: emis ',emis(1),emis(ngridmx) |
|---|
| 47 | q2(:,:)=wq2(:,:) |
|---|
| 48 | PRINT*,'check: q2 ',q2(1,1),q2(ngridmx,nlayermx+1) |
|---|
| 49 | qsurf(:,:)=wqsurf(:,:) |
|---|
| 50 | PRINT*,'check: qsurf ',qsurf(1,1),qsurf(ngridmx,nqmx) |
|---|
| 51 | co2ice(:)=wco2ice(:) |
|---|
| 52 | PRINT*,'check: co2 ',co2ice(1),co2ice(ngridmx) |
|---|
| 53 | day_ini=wday_ini |
|---|
| 54 | |
|---|
| 55 | c artificially filling dyn3d/control.h is also required |
|---|
| 56 | c > iphysiq is put in WRF to be set easily (cf ptimestep) |
|---|
| 57 | c > day_step is simply deduced: |
|---|
| 58 | c |
|---|
| 59 | day_step=daysec/ptimestep |
|---|
| 60 | PRINT*,'Call to LMD physics:',day_step,' per Martian day' |
|---|
| 61 | c |
|---|
| 62 | iphysiq=ptimestep |
|---|
| 63 | c |
|---|
| 64 | !DO iq=1, nq |
|---|
| 65 | ! PRINT*, tnom(iq), pq(:,:,iq) |
|---|
| 66 | !ENDDO |
|---|
| 67 | |
|---|
| 68 | c |
|---|
| 69 | ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc |
|---|
| 70 | |
|---|
| 71 | !!!! see meso_inc_caps |
|---|
| 72 | !!!! this is a test to change outliers' albedo and thermal inertia |
|---|
| 73 | !alb_lim = 0.26 |
|---|
| 74 | !lat_lim = 70. |
|---|
| 75 | !inertie_lim = 800. |
|---|
| 76 | !PRINT *, 'lat_lim ',lat_lim |
|---|
| 77 | !PRINT *, 'alb_lim ',alb_lim |
|---|
| 78 | !PRINT *, 'inertie_lim ',inertie_lim |
|---|
| 79 | !!!! |
|---|
| 80 | !!!! |
|---|
| 81 | !IF ( caps .and. water ) THEN |
|---|
| 82 | ! do ig=1,ngridmx |
|---|
| 83 | ! if ( lati(ig)*180./pi .gt. lat_lim ) then |
|---|
| 84 | ! if ( albedodat(ig) .ge. alb_lim ) then |
|---|
| 85 | ! albedodat(ig) = alb_surfice |
|---|
| 86 | ! inertiedat(ig,1) = inertie_lim |
|---|
| 87 | ! endif |
|---|
| 88 | ! if (inertiedat(ig,1) .ge. inertie_lim ) then |
|---|
| 89 | ! inertiedat(ig,1) = inertie_lim |
|---|
| 90 | ! endif |
|---|
| 91 | ! endif ! (lati, albedodat) |
|---|
| 92 | ! end do ! (ngridmx) |
|---|
| 93 | !ENDIF ! (caps) |
|---|