Changeset 285
- Timestamp:
- Sep 8, 2011, 1:59:47 AM (13 years ago)
- Location:
- trunk/LMDZ.MARS
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/README
r284 r285 924 924 tracer transport in the thermals, or "granulosity" in the outputs for wmax, lmax and hfmax. 925 925 926 == 08/09/11 == AS 927 LMDZ.MARS + MESOSCALE. 928 ---> Setting up a more realistic water ice source at the poles (notably outliers) 929 930 [[ surfini.F ]] 931 Main changes and bug fixes 932 * reference to comcstfi.h was wrong. big problem because e.g. pi was not known. 933 * commented about a problem to be fixed, due to surfini being called before initracer. 934 * MESOSCALE: put the mesoscale north cap definition into a precompiling flag #MESOSCALE 935 for the moment: if [alb_mean_TES > 0.26 and lat > 70] then outliers 936 (previously done in meso_inc_caps.F) 937 938 [[ inifis.F ]] 939 Just changed a comment with wrong formatting 940 941 --> below, only MESOSCALE 942 943 [[ soil.F ]] 944 if somewhere IT > IT_outliers, then makes it = IT_outliers 945 946 [[ physiq.F ]] 947 [[ meso_inc/meso_inc_caps.F ]] 948 [[ meso_inc/meso_inc_ini.F ]] 949 meso_inc_caps no longer called. keep for reference for the moment. 950 951 [[ meso_inc/meso_inc_var.F ]] 952 deleted lines with *_lim variables, now useless -
trunk/LMDZ.MARS/libf/phymars/inifis.F
r284 r285 430 430 431 431 write(*,*) "frost thickness threshold for albedo ?" 432 frost_albedo_threshold=0.005 ! 5.4 µm (i.e 0.005 kg/m²)432 frost_albedo_threshold=0.005 ! 5.4 mic (i.e 0.005 kg.m-2) 433 433 call getin("frost_albedo_threshold", 434 434 & frost_albedo_threshold) -
trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_caps.F
r283 r285 1 2 !!!! see meso_inc_ini3 ! alb_lim = 0.264 ! lat_lim = 70.5 ! inertie_lim = 800.6 7 1 !!! This has to go after initracer which change dryness and watercaptag 8 2 … … 23 17 !!!! 24 18 !IF ( caps .and. (igcm_h2o_ice .ne. 0) ) THEN 19 25 20 IF ( caps .and. water ) THEN 26 21 PRINT *, 'OVERWRITING watercaptag DEFINITION in INITRACER' … … 31 26 do ig=1,ngridmx 32 27 qsurf(ig,igcm_h2o_ice)=0. !! on jette les inputs GCM 33 if ( ( lati(ig)*180./pi .gt. lat_lim) .and.34 . ( albedodat(ig) .ge. alb_lim) ) then28 if ( ( lati(ig)*180./pi .gt. 70. ) .and. 29 . ( albedodat(ig) .ge. 0.26 ) ) then 35 30 watercaptag(ig) = .true. 36 31 dryness(ig) = 1. … … 44 39 print *,'caps=T avec water=F ????' 45 40 ENDIF ! (caps) 46 !!!!!! TEST TEST TEST TEST AS+JBM 28/02/1147 !!!!!! TEST TEST TEST TEST AS+JBM 28/02/1148 !!!!!! TEST TEST TEST TEST AS+JBM 28/02/11 -
trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_ini.F
r283 r285 69 69 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 70 70 71 !!! see meso_inc_caps72 !!! this is a test to change outliers' albedo and thermal inertia73 alb_lim = 0.2674 lat_lim = 70.75 inertie_lim = 800.76 PRINT *, 'lat_lim ',lat_lim77 PRINT *, 'alb_lim ',alb_lim78 PRINT *, 'inertie_lim ',inertie_lim79 !!! 80 !!! 81 IF ( caps .and. water ) THEN82 do ig=1,ngridmx83 if ( lati(ig)*180./pi .gt. lat_lim ) then84 if ( albedodat(ig) .ge. alb_lim ) then85 albedodat(ig) = alb_surfice86 inertiedat(ig,1) = inertie_lim87 endif88 if (inertiedat(ig,1) .ge. inertie_lim ) then89 inertiedat(ig,1) = inertie_lim90 endif91 endif ! (lati, albedodat)92 end do ! (ngridmx)93 ENDIF ! (caps)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) -
trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_var.F
r283 r285 18 18 INTEGER tracerset !!! this corresponds to config%mars 19 19 CHARACTER (len=20) :: wtnom(nqmx) ! tracer name 20 21 REAL alb_lim22 REAL lat_lim23 REAL inertie_lim -
trunk/LMDZ.MARS/libf/phymars/physiq.F
r284 r285 397 397 ENDIF ! end tracer 398 398 399 #ifdef MESOSCALE400 #include "meso_inc/meso_inc_caps.F"401 #endif399 !#ifdef MESOSCALE 400 !#include "meso_inc/meso_inc_caps.F" 401 !#endif 402 402 403 403 #ifndef MESOSCALE -
trunk/LMDZ.MARS/libf/phymars/soil.F
r283 r285 67 67 endif 68 68 enddo 69 70 #ifdef MESOSCALE 71 do ig=1,ngrid 72 if ( therm_i(ig,1) .ge. inert_h2o_ice ) then 73 print *, "limit max TI ", therm_i(ig,1), inert_h2o_ice 74 do ik=0,nsoil-1 75 mthermdiff(ig,ik)=inert_h2o_ice*inert_h2o_ice/volcapa 76 enddo 77 endif 78 enddo 79 #endif 69 80 70 81 ! 0.2 Build thermdiff(:), the "interlayer" thermal diffusivities -
trunk/LMDZ.MARS/libf/phymars/surfini.F
r283 r285 15 15 #include "tracer.h" 16 16 #include "comgeomfi.h" 17 #include "comconst.h" 18 17 #include "comcstfi.h" 19 18 c 20 19 INTEGER ngrid,ig,icap,iq,alternate … … 27 26 c======================================================================= 28 27 29 30 28 c water ice outliers 31 29 c ------------------------------------------ 32 30 33 31 IF ((water) .and. (caps)) THEN 34 32 35 33 c Perennial H20 north cap defined by watercaptag=true (allows surface to be 36 34 c hollowed by sublimation in vdifc). … … 48 46 49 47 alternate = 0 50 48 51 49 do ig=1,ngridmx 52 50 51 #ifdef MESOSCALE 52 do iq=1,nqmx 53 write(*,*) "all qsurf to zero. dirty." 54 qsurf(ig,iq)=0. !! on jette les inputs GCM 55 !! on regle juste watercaptag 56 !! il faudrait garder les inputs GCM 57 !! si elles sont consequentes 58 enddo 59 if ( ( lati(ig)*180./pi .gt. 70. ) .and. 60 . ( albedodat(ig) .ge. 0.26 ) ) then 61 write(*,*)"outlier ",ig 62 watercaptag(ig) = .true. 63 dryness(ig) = 1. 64 albedodat(ig) = albedo_h2o_ice !! pour output 65 else 66 watercaptag(ig) = .false. 67 dryness(ig) = 1. 68 endif 69 #else 70 53 71 dryness (ig) = 1 54 55 56 c Towards olympia planitia water caps ('relatively' low latitude ones) 57 c---------------- proposition par AS -------------------- 58 c-------------------------------------------------------- 59 c if ( ( lati(ig)*180./pi .ge. 75 ) .and. 60 c . ( lati(ig)*180./pi .le. 77 ) .and. 61 c . ( ( ( long(ig)*180./pi .ge. 000. ) .and. 62 c . ( long(ig)*180./pi .le. 120. ) ) 63 c . .or. 64 c . ( ( long(ig)*180./pi .ge. -130. ) .and. 65 c . ( long(ig)*180./pi .le. -115. ) ) ) ) then 66 c---------------- proposition par TN -------------------- 67 c---------------- HIGHLY EXPERIMENTAL ------------------- 68 c-------------------------------------------------------- 69 if ( ( ( lati(ig)*180./pi .ge. 73. ) .and. ! cap #1 70 . ( lati(ig)*180./pi .le. 75.1 ) .and. 71 . ( long(ig)*180./pi .ge. 95. ) .and. 72 . ( long(ig)*180./pi .le. 110. ) ) 73 . .or. 74 . ( ( lati(ig)*180./pi .ge. 77. ) .and. ! cap #2 75 . ( lati(ig)*180./pi .le. 80. ) .and. 76 . ( long(ig)*180./pi .ge. 110. ) .and. 77 . ( long(ig)*180./pi .le. 140. ) ) 78 . .or. 79 . ( ( lati(ig)*180./pi .ge. 74.9 ) .and. ! cap #3 80 . ( lati(ig)*180./pi .le. 78. ) .and. 81 . ( long(ig)*180./pi .ge. 155. ) .and. 82 . ( long(ig)*180./pi .le. 180. ) ) 83 c . .or. 84 c . ( ( lati(ig)*180./pi .ge. 71. ) .and. ! cap #4 (Korolev crater) 85 c . ( lati(ig)*180./pi .le. 72. ) .and. 86 c . ( long(ig)*180./pi .ge. 163. ) .and. 87 c . ( long(ig)*180./pi .le. 168. ) ) 88 . .or. 89 . ( ( lati(ig)*180./pi .ge. 74.9 ) .and. ! cap #5 90 . ( lati(ig)*180./pi .le. 78. ) .and. 91 . ( long(ig)*180./pi .ge. -160.) .and. 92 . ( long(ig)*180./pi .le. -120.) ) ) 93 . then 94 95 if (temptag) then 96 97 if ((alternate .eq. 0)) then !!! 1/2 en 64x48 sinon trop large en lat 98 if (ngridmx.ne.1) watercaptag(ig)=.true. 99 write(*,*) "outliers ", lati(ig)*180./pi, 100 . long(ig)*180./pi 101 !dryness(ig) = 1. 102 alternate = 1 103 else 104 alternate = 0 105 endif !end if alternate = 0 106 107 else 108 109 if (ngridmx.ne.1) watercaptag(ig)=.true. 110 write(*,*) "outliers ", lati(ig)*180./pi, 111 . long(ig)*180./pi 112 113 endif ! end if temptag 114 115 endif 116 117 118 c Opposite olympia planitia water cap 119 c---------------- proposition par AS -------------------- 72 73 !!c Towards olympia planitia water caps ('relatively' low latitude ones) 74 !!c---------------- proposition par AS -------------------- 75 !!c-------------------------------------------------------- 76 !!c if ( ( lati(ig)*180./pi .ge. 75 ) .and. 77 !!c . ( lati(ig)*180./pi .le. 77 ) .and. 78 !!c . ( ( ( long(ig)*180./pi .ge. 000. ) .and. 79 !!c . ( long(ig)*180./pi .le. 120. ) ) 80 !!c . .or. 81 !!c . ( ( long(ig)*180./pi .ge. -130. ) .and. 82 !!c . ( long(ig)*180./pi .le. -115. ) ) ) ) then 83 !!c---------------- proposition par TN -------------------- 84 !!c---------------- HIGHLY EXPERIMENTAL ------------------- 85 !!c-------------------------------------------------------- 86 !! if ( ( ( lati(ig)*180./pi .ge. 73. ) .and. ! cap #1 87 !! . ( lati(ig)*180./pi .le. 75.1 ) .and. 88 !! . ( long(ig)*180./pi .ge. 95. ) .and. 89 !! . ( long(ig)*180./pi .le. 110. ) ) 90 !! . .or. 91 !! . ( ( lati(ig)*180./pi .ge. 77. ) .and. ! cap #2 92 !! . ( lati(ig)*180./pi .le. 80. ) .and. 93 !! . ( long(ig)*180./pi .ge. 110. ) .and. 94 !! . ( long(ig)*180./pi .le. 140. ) ) 95 !! . .or. 96 !! . ( ( lati(ig)*180./pi .ge. 74.9 ) .and. ! cap #3 97 !! . ( lati(ig)*180./pi .le. 78. ) .and. 98 !! . ( long(ig)*180./pi .ge. 155. ) .and. 99 !! . ( long(ig)*180./pi .le. 180. ) ) 100 !!c . .or. 101 !!c . ( ( lati(ig)*180./pi .ge. 71. ) .and. ! cap #4 (Korolev crater) 102 !!c . ( lati(ig)*180./pi .le. 72. ) .and. 103 !!c . ( long(ig)*180./pi .ge. 163. ) .and. 104 !!c . ( long(ig)*180./pi .le. 168. ) ) 105 !! . .or. 106 !! . ( ( lati(ig)*180./pi .ge. 74.9 ) .and. ! cap #5 107 !! . ( lati(ig)*180./pi .le. 78. ) .and. 108 !! . ( long(ig)*180./pi .ge. -160.) .and. 109 !! . ( long(ig)*180./pi .le. -120.) ) ) 110 !! . then 111 !! 112 !! if (temptag) then 113 !! 114 !! if ((alternate .eq. 0)) then !!! 1/2 en 64x48 sinon trop large en lat 115 !! if (ngridmx.ne.1) watercaptag(ig)=.true. 116 !! write(*,*) "outliers ", lati(ig)*180./pi, 117 !! . long(ig)*180./pi 118 !! !dryness(ig) = 1. 119 !! alternate = 1 120 !! else 121 !! alternate = 0 122 !! endif !end if alternate = 0 123 !! 124 !! else 125 !! 126 !! if (ngridmx.ne.1) watercaptag(ig)=.true. 127 !! write(*,*) "outliers ", lati(ig)*180./pi, 128 !! . long(ig)*180./pi 129 !! 130 !! endif ! end if temptag 131 !! 132 !! endif 133 !! 134 !! 135 !!c Opposite olympia planitia water cap 136 !!c---------------- proposition par AS -------------------- 137 !!c-------------------------------------------------------- 138 !!c if ( ( lati(ig)*180./pi .ge. 82 ) .and. 139 !!c . ( lati(ig)*180./pi .le. 84 ) .and. 140 !!c . ( ( long(ig)*180./pi .gt. -030. ) .and. 141 !!c . ( long(ig)*180./pi .lt. 090. ) ) ) then 142 !!c---------------- proposition par TN -------------------- 143 !!c-------------------------------------------------------- 144 !! if ( ( lati(ig)*180./pi .ge. 80 ) .and. 145 !! . ( lati(ig)*180./pi .le. 84 ) .and. 146 !! . ( ( long(ig)*180./pi .gt. -030. ) .and. 147 !! . ( long(ig)*180./pi .lt. 090. ) ) ) then 148 !! if (ngridmx.ne.1) then 149 !! watercaptag(ig)=.true. 150 !! write(*,*) "central cap add ", lati(ig)*180./pi, 151 !! . long(ig)*180./pi 152 !! endif 153 !! !dryness(ig) = 1. 154 !! endif 155 156 c Central cap 157 c---------------- anciens reglages FF ------------------- 120 158 c-------------------------------------------------------- 121 c if ( ( lati(ig)*180./pi .ge. 82 ) .and. 122 c . ( lati(ig)*180./pi .le. 84 ) .and. 123 c . ( ( long(ig)*180./pi .gt. -030. ) .and. 124 c . ( long(ig)*180./pi .lt. 090. ) ) ) then 125 c---------------- proposition par TN -------------------- 126 c-------------------------------------------------------- 127 if ( ( lati(ig)*180./pi .ge. 80 ) .and. 128 . ( lati(ig)*180./pi .le. 84 ) .and. 129 . ( ( long(ig)*180./pi .gt. -030. ) .and. 130 . ( long(ig)*180./pi .lt. 090. ) ) ) then 131 if (ngridmx.ne.1) then 132 watercaptag(ig)=.true. 133 write(*,*) "central cap add ", lati(ig)*180./pi, 134 . long(ig)*180./pi 135 endif 136 !dryness(ig) = 1. 137 endif 138 139 c Central cap 140 c---------------- proposition par TN -------------------- 141 c-------------------------------------------------------- 159 142 160 if (lati(ig)*180./pi.gt.84) then 143 161 PRINT*,'central cap', lati(ig)*180./pi, … … 146 164 !dryness(ig) = 1. 147 165 c Use the following cap definition for high spatial resolution (latitudinal bin <= 5 deg) 148 c 149 c 166 c if (lati(ig)*180./pi.lt.85.and.long(ig).ge.0) then 167 c if (ngridmx.ne.1) watercaptag(ig)=.true. 150 168 c dryness(ig) = 1. 151 c 169 c endif 152 170 c if (lati(ig)*180./pi.ge.85) then 153 171 c if (ngridmx.ne.1) watercaptag(ig)=.true. 154 172 c dryness(ig) = 1. 155 c 156 endif ! (lati>8 4deg)157 173 c endif 174 endif ! (lati>80 deg) 175 #endif 158 176 end do ! (ngridmx) 159 177 ENDIF ! (caps & water) … … 214 232 do iq=1,nqmx 215 233 c if there is frost and surface albedo is set to albedo_h2o_ice 234 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 235 !!!! AS: problem initracer has not been called yet 236 !!!! noms(iq) has no information 237 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 216 238 if(noms(iq).eq."h2o_ice") then 217 239 do ig=1,ngrid
Note: See TracChangeset
for help on using the changeset viewer.