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) |
---|