Changeset 283
- Timestamp:
- Sep 7, 2011, 12:57:29 PM (13 years ago)
- Location:
- trunk/LMDZ.MARS
- Files:
-
- 1 added
- 1 deleted
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/README
r268 r283 863 863 - Changed the definition for HFX computation in the LES in meso_inc/meso_inc_les.F. New definition yields 864 864 very similar results to old one and follows a strict definition of what HFX should be. 865 866 == 24/08/11 == TN 867 Attempts to tune the water cycle by adding outliers 868 + A few structural changes !! 869 * watercap.h is now obsolete and removed -- all is in surfdat.h 870 * watercaptag initialized in surfini.F (up to 7 areas defined) instead of initracer.F 871 - settings proposed by AS commented 872 - experiments by TN decommented. use with caution. 873 * water ice albedo and thermal inertia in callphys.def and inifis.F 874 * water ice albedo in surfini.F 875 * water ice albedo computation in albedocaps.F90 876 * alb_surfice is now obsolete in physiq.F, albedo_h2o_ice is used instead 877 * frost_albedo_threshold defined in surfdat.h 878 * water ice thermal inertia in soil.F 879 TODO: * calibrate thermal inertia and ice albedo 880 * have a look at subgrid-scale ice with dryness ? -
trunk/LMDZ.MARS/libf/phymars/albedocaps.F90
r38 r283 12 12 #include"dimphys.h" 13 13 #include"surfdat.h" 14 #include"callkeys.h" 14 15 15 16 ! arguments: … … 70 71 psolaralb(ig,2)=albedice(icap) 71 72 endif 73 else if (watercaptag(ig) .and. water) then 74 ! there is a water ice cap: set the surface albedo to the water ice one 75 ! to do : emissivity 76 !write(*,*) "watercaptag in albedocaps:",ig 77 emisref(ig) = 1 78 psolaralb(ig,1)=albedo_h2o_ice 79 psolaralb(ig,2)=albedo_h2o_ice 72 80 else 73 81 ! set emissivity of surface to be bare ground emissivity … … 78 86 endif ! of if (piceco2(ig).gt.0) 79 87 enddo ! of ig=1,ngrid 80 81 88 end subroutine albedocaps 82 89 -
trunk/LMDZ.MARS/libf/phymars/inifis.F
r234 r283 412 412 call getin("caps",caps) 413 413 write(*,*) " caps = ",caps 414 415 416 write(*,*) "water ice albedo ?" 417 albedo_h2o_ice=0.45 418 call getin("albedo_h2o_ice",albedo_h2o_ice) 419 write(*,*) " albedo_h2o_ice = ",albedo_h2o_ice 420 421 write(*,*) "water ice thermal inertia ?" 422 inert_h2o_ice=2400 ! (J.m^-2.K^-1.s^-1/2) 423 call getin("inert_h2o_ice",inert_h2o_ice) 424 write(*,*) " inert_h2o_ice = ",inert_h2o_ice 425 426 write(*,*) "frost thickness threshold for albedo ?" 427 frost_albedo_threshold=0.005 ! 5.4 µm (i.e 0.005 kg/m²) 428 call getin("frost_albedo_threshold", 429 & frost_albedo_threshold) 430 write(*,*) " frost_albedo_threshold = ", 431 & frost_albedo_threshold 432 433 !!!!!!!!!!!!!!!! TEMP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 434 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 435 write(*,*) "temp tag for water caps ?" 436 temptag=.false. 437 call getin("temptag",temptag) 438 write(*,*) " temptag = ",temptag 439 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 440 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 414 441 415 442 write(*,*) "photochemistry: include chemical species" -
trunk/LMDZ.MARS/libf/phymars/initracer.F
r171 r283 43 43 #include "advtrac.h" 44 44 #include "comgeomfi.h" 45 #include "watercap.h"46 45 #include "chimiedata.h" 47 46 … … 50 49 real qsurf(ngridmx,nqmx) ! tracer on surface (e.g. kg.m-2) 51 50 real co2ice(ngridmx) ! co2 ice mass on surface (e.g. kg.m-2) 52 integer iq,ig,count , yeyey51 integer iq,ig,count 53 52 real r0_lift , reff_lift, nueff_lift 54 53 c Ratio of small over large dust particles (used when both … … 436 435 437 436 438 439 437 enddo ! of do iq=1,nqmx 440 438 ! count=count+nbqchem … … 587 585 alpha_lift(igcm_h2o_vap) =0. 588 586 alpha_devil(igcm_h2o_vap)=0. 589 590 c "Dryness coefficient" controlling the evaporation and591 c sublimation from the ground water ice (close to 1)592 c HERE, the goal is to correct for the fact593 c that the simulated permanent water ice polar caps594 c is larger than the actual cap and the atmospheric595 c opacity not always realistic.596 597 do ig=1,ngridmx598 if (ngridmx.ne.1) watercaptag(ig)=.false.599 dryness(ig) = 1.600 enddo601 602 IF (caps) THEN603 c Perennial H20 north cap defined by watercaptag=true (allows surface to be604 c hollowed by sublimation in vdifc).605 yeyey = 0606 do ig=1,ngridmx607 ! !!! TESTS TESTS outliers608 ! !!! TESTS TESTS outliers609 ! if ( ( lati(ig)*180./pi .ge. 75 ) .and.610 ! . ( lati(ig)*180./pi .le. 77 ) .and.611 ! . ( ( ( long(ig)*180./pi .ge. 000. ) .and.612 ! . ( long(ig)*180./pi .le. 120. ) )613 ! . .or.614 ! . ( ( long(ig)*180./pi .ge. -130. ) .and.615 ! . ( long(ig)*180./pi .le. -115. ) ) ) ) then616 ! if (yeyey .eq. 0) then !!! 1/2 en 64x48 sinon trop large en lat617 ! write(*,*) "outliers ", lati(ig)*180./pi, long(ig)*180./pi618 ! if (ngridmx.ne.1) watercaptag(ig)=.true.619 ! dryness(ig) = 1.620 ! albedodat(ig) = 0.45 !! comme alb_surfice621 ! yeyey = 1622 ! else623 ! yeyey = 0624 ! endif625 ! endif626 ! !!! TESTS TESTS outliers627 ! !!! TESTS TESTS outliers628 !629 ! !!! TESTS TESTS addcap630 ! !!! TESTS TESTS addcap631 ! if ( ( lati(ig)*180./pi .ge. 82 ) .and.632 ! . ( lati(ig)*180./pi .le. 84 ) .and.633 ! . ( ( long(ig)*180./pi .gt. -030. ) .and.634 ! . ( long(ig)*180./pi .lt. 090. ) ) ) then635 ! write(*,*) "capadd ", lati(ig)*180./pi, long(ig)*180./pi636 ! if (ngridmx.ne.1) watercaptag(ig)=.true.637 ! albedodat(ig) = 0.45 !! comme alb_surfice638 ! dryness(ig) = 1.639 ! endif640 ! !!! TESTS TESTS addcap641 ! !!! TESTS TESTS addcap642 643 if (lati(ig)*180./pi.gt.84) then644 if (ngridmx.ne.1) watercaptag(ig)=.true.645 dryness(ig) = 1.646 c Use the following cap definition for high spatial resolution (latitudinal bin <= 5 deg)647 c if (lati(ig)*180./pi.lt.85.and.long(ig).ge.0) then648 c if (ngridmx.ne.1) watercaptag(ig)=.true.649 c dryness(ig) = 1.650 c endif651 c if (lati(ig)*180./pi.ge.85) then652 c if (ngridmx.ne.1) watercaptag(ig)=.true.653 c dryness(ig) = 1.654 c endif655 endif ! (lati>80 deg)656 end do ! (ngridmx)657 ENDIF ! (caps)658 659 587 if(water.and.(nqmx.ge.2)) then 660 588 radius(igcm_h2o_ice)=3.e-6 -
trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_caps.F
r226 r283 1 2 !!!! see meso_inc_ini 3 ! alb_lim = 0.26 4 ! lat_lim = 70. 5 ! inertie_lim = 800. 6 7 !!! This has to go after initracer which change dryness and watercaptag 8 1 9 !!!!!! MARS MESOSCALE MODELING 2 10 !!!!!! TEST TEST TEST TEST AS+JBM 28/02/11 … … 14 22 !!!! du GCM lorsqu'ils sont consequents 15 23 !!!! 16 IF ( caps .and. (igcm_h2o_ice .ne. 0) ) THEN 24 !IF ( caps .and. (igcm_h2o_ice .ne. 0) ) THEN 25 IF ( caps .and. water ) THEN 17 26 PRINT *, 'OVERWRITING watercaptag DEFINITION in INITRACER' 18 PRINT *, 'lat>70 et alb>0.26 => watercaptag=T' 27 PRINT *, 'lat > lat_lim et alb > alb_lim => watercaptag=T' 28 PRINT *, 'ind for water ice: ', igcm_h2o_ice 19 29 !! Perennial H20 north cap defined by watercaptag=true (allows surface to be 20 30 !! hollowed by sublimation in vdifc). 21 31 do ig=1,ngridmx 22 32 qsurf(ig,igcm_h2o_ice)=0. !! on jette les inputs GCM 23 if ( ( lati(ig)*180./pi.gt.70.) .and.24 . ( albedodat(ig).ge.0.26) ) then25 watercaptag(ig) =.true.26 dryness(ig) = 1.33 if ( ( lati(ig)*180./pi .gt. lat_lim ) .and. 34 . ( albedodat(ig) .ge. alb_lim ) ) then 35 watercaptag(ig) = .true. 36 dryness(ig) = 1. 27 37 else 28 watercaptag(ig) =.false.29 dryness(ig) = 1.38 watercaptag(ig) = .false. 39 dryness(ig) = 1. 30 40 endif ! (lati, albedodat) 31 41 end do ! (ngridmx) -
trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_ini.F
r226 r283 68 68 c 69 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) -
trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_var.F
r234 r283 18 18 INTEGER tracerset !!! this corresponds to config%mars 19 19 CHARACTER (len=20) :: wtnom(nqmx) ! tracer name 20 21 REAL alb_lim 22 REAL lat_lim 23 REAL inertie_lim -
trunk/LMDZ.MARS/libf/phymars/physiq.F
r277 r283 128 128 129 129 #include "chimiedata.h" 130 #include "watercap.h"131 130 #include "param.h" 132 131 #include "param_v3.h" … … 191 190 REAL fluxgrd(ngridmx) ! surface conduction flux (W.m-2) 192 191 REAL qsurf(ngridmx,nqmx) ! tracer on surface (e.g. kg.m-2) 193 REAL q2(ngridmx,nlayermx+1) ! Turbulent Kinetic Energy 192 REAL q2(ngridmx,nlayermx+1) ! Turbulent Kinetic Energy 193 194 REAL watercapflag(ngridmx) ! water cap flag 194 195 195 196 c Variables used by the water ice microphysical scheme: … … 197 198 REAL nuice(ngridmx,nlayermx) ! Estimated effective variance 198 199 ! of the size distribution 199 c Albedo of deposited surface ice200 !!REAL, PARAMETER :: alb_surfice = 0.4 ! 0.45201 REAL, PARAMETER :: alb_surfice = 0.45 !!TESTS_JB202 200 203 201 c Variables used by the slope model … … 422 420 423 421 IF (tracer.AND.water.AND.(ngridmx.NE.1)) THEN 424 write(*,*)"physiq: water_param Surface ice alb:",alb_surfice 422 write(*,*)"physiq: water_param Surface water ice albedo:", 423 . albedo_h2o_ice 425 424 ENDIF 426 425 … … 1095 1094 #endif 1096 1095 c ------------------------------------------------------------- 1097 c Change of surface albedo (set to 0.4)in case of ground frost1096 c Change of surface albedo in case of ground frost 1098 1097 c everywhere except on the north permanent cap and in regions 1099 1098 c covered by dry ice. … … 1102 1101 do ig=1,ngrid 1103 1102 if ((co2ice(ig).eq.0).and. 1104 & (qsurf(ig,igcm_h2o_ice).gt.0.005)) then 1105 albedo(ig,1) = alb_surfice 1106 albedo(ig,2) = alb_surfice 1103 & (qsurf(ig,igcm_h2o_ice).gt.frost_albedo_threshold)) then 1104 albedo(ig,1) = albedo_h2o_ice 1105 albedo(ig,2) = albedo_h2o_ice 1106 c write(*,*) "frost thickness", qsurf(ig,igcm_h2o_ice) 1107 c write(*,*) "physiq.F frost :" 1108 c & ,lati(ig)*180./pi, long(ig)*180./pi 1107 1109 endif 1108 1110 enddo ! of do ig=1,ngrid … … 1512 1514 & 'surface h2o_ice', 1513 1515 & 'kg.m-2',2,qsurf(1,igcm_h2o_ice)) 1516 1517 if (caps) then 1518 do ig=1,ngridmx 1519 if (watercaptag(ig)) watercapflag(ig) = 1 1520 enddo 1521 CALL WRITEDIAGFI(ngridmx,'watercaptag', 1522 & 'Ice water caps', 1523 & '',2,watercapflag) 1524 endif 1525 CALL WRITEDIAGFI(ngridmx,'albedo', 1526 & 'albedo', 1527 & '',2,albedo(1:ngridmx,1)) 1514 1528 endif !(water) 1515 1529 -
trunk/LMDZ.MARS/libf/phymars/soil.F
r38 r283 18 18 19 19 #include"comsoil.h" 20 21 #include"surfdat.h" 22 #include"callkeys.h" 20 23 21 24 c----------------------------------------------------------------------- … … 53 56 ! 0.1 Build mthermdiff(:), the mid-layer thermal diffusivities 54 57 do ig=1,ngrid 55 do ik=0,nsoil-1 56 mthermdiff(ig,ik)=therm_i(ig,ik+1)*therm_i(ig,ik+1)/volcapa 57 ! write(*,*),'soil: ik: ',ik,' mthermdiff:',mthermdiff(ig,ik) 58 enddo 58 if (watercaptag(ig)) then 59 do ik=0,nsoil-1 60 ! If we have permanent ice, we use the water ice thermal inertia from ground to last layer. 61 mthermdiff(ig,ik)=inert_h2o_ice*inert_h2o_ice/volcapa 62 enddo 63 else 64 do ik=0,nsoil-1 65 mthermdiff(ig,ik)=therm_i(ig,ik+1)*therm_i(ig,ik+1)/volcapa 66 enddo 67 endif 59 68 enddo 60 69 -
trunk/LMDZ.MARS/libf/phymars/surfdat.h
r226 r283 5 5 & zmea(ngridmx),zstd(ngridmx), & 6 6 & zsig(ngridmx),zgam(ngridmx),zthe(ngridmx), & 7 & z0(ngridmx),z0_default 7 & z0(ngridmx),z0_default, albedo_h2o_ice, inert_h2o_ice, & 8 & frost_albedo_threshold 8 9 9 COMMON/surfdatl/TESicealbedo 10 COMMON/surfdatl/TESicealbedo,watercaptag,temptag 11 10 12 11 13 real albedodat ! albedo of bare ground … … 15 17 real emissiv ! emissivity of bare ground 16 18 logical TESicealbedo ! use TES ice cap albedoes (if set to .true.) 19 logical watercaptag(ngridmx) ! flag for water ice surface 20 21 logical temptag !temp tag for water caps 22 23 real albedo_h2o_ice ! water ice albedo 24 real inert_h2o_ice ! water ice thermal inertia 25 real frost_albedo_threshold ! water frost thickness on the ground (kg.m^-2, ie mm) 17 26 real TESice_Ncoef ! coefficient for TES ice albedo in Northern hemisphere 18 27 real TESice_Scoef ! coefficient for TES ice albedo in Southern hemisphere -
trunk/LMDZ.MARS/libf/phymars/surfini.F
r38 r283 14 14 #include "callkeys.h" 15 15 #include "tracer.h" 16 c 17 INTEGER ngrid,ig,icap 16 #include "comgeomfi.h" 17 #include "comconst.h" 18 19 c 20 INTEGER ngrid,ig,icap,iq,alternate 18 21 REAL piceco2(ngrid),psolaralb(ngrid,2) 19 22 REAL qsurf(ngrid,nqmx) !tracer on surface (kg/m2) … … 24 27 c======================================================================= 25 28 26 c 27 c calcul de piceco2 (kg/m2) a l'etat initial29 30 c water ice outliers 28 31 c ------------------------------------------ 29 32 30 DO 100 ig=1,ngrid 31 psolaralb(ig,1)=albedodat(ig) 32 psolaralb(ig,2)=albedodat(ig) 33 100 CONTINUE 34 35 PRINT*,'minimum des donnees albedo', 33 IF ((water) .and. (caps)) THEN 34 35 c Perennial H20 north cap defined by watercaptag=true (allows surface to be 36 c hollowed by sublimation in vdifc). 37 38 c We might not want albedodat to be modified because it is used to write 39 c restart files. Instead, albedo is directly modified when needed (i.e. 40 c if we have watercaptag and no co2 ice), below and in albedocaps.F90 41 42 c "Dryness coefficient" controlling the evaporation and 43 c sublimation from the ground water ice (close to 1) 44 c HERE, the goal is to correct for the fact 45 c that the simulated permanent water ice polar caps 46 c is larger than the actual cap and the atmospheric 47 c opacity not always realistic. 48 49 alternate = 0 50 51 do ig=1,ngridmx 52 53 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 -------------------- 120 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-------------------------------------------------------- 142 if (lati(ig)*180./pi.gt.84) then 143 PRINT*,'central cap', lati(ig)*180./pi, 144 . long(ig)*180./pi 145 if (ngridmx.ne.1) watercaptag(ig)=.true. 146 !dryness(ig) = 1. 147 c Use the following cap definition for high spatial resolution (latitudinal bin <= 5 deg) 148 c if (lati(ig)*180./pi.lt.85.and.long(ig).ge.0) then 149 c if (ngridmx.ne.1) watercaptag(ig)=.true. 150 c dryness(ig) = 1. 151 c endif 152 c if (lati(ig)*180./pi.ge.85) then 153 c if (ngridmx.ne.1) watercaptag(ig)=.true. 154 c dryness(ig) = 1. 155 c endif 156 endif ! (lati>84 deg) 157 158 end do ! (ngridmx) 159 ENDIF ! (caps & water) 160 161 c =============================================================== 162 c INITIAL ALBEDO 163 c =============================================================== 164 165 write(*,*)"surfini: water frost thickness", 166 s frost_albedo_threshold 167 write(*,*)"surfini: water ice albedo:", albedo_h2o_ice 168 write(*,*)"surfini: water ice TI:", inert_h2o_ice 169 170 c To start with : Initial albedo = observed dataset 171 c ------------------------------------------------- 172 DO ig=1,ngrid 173 psolaralb(ig,1)=albedodat(ig) 174 psolaralb(ig,2)=albedodat(ig) 175 END DO 176 PRINT*,'minimum albedo sans water caps', 36 177 s albedodat(ISMIN(ngrid,albedodat,1)) 37 PRINT*,'maximum des donnees albedo',178 PRINT*,'maximum albedo sans water caps', 38 179 s albedodat(ISMAX(ngrid,albedodat,1)) 39 c calcul de psolaralb 40 c ------------------- 41 DO 115 ig=1,ngrid 42 43 c IF (water) THEN 44 c if (qsurf(ig,nqmx).gt.0.005) then 45 c psolaralb(ig,1) = 0.4 46 c psolaralb(ig,2) = 0.4 47 c endif 48 c ENDIF 49 c IF there is more than 5 pr. um of h2o ice but no C02 ice, surface albedo is set to 0.4. 180 181 c initial albedo if permanent H2O ice is present 182 c ------------------------------------------------ 183 IF ((water) .and. (caps)) THEN 184 DO ig=1,ngrid 185 IF (watercaptag(ig)) THEN 186 psolaralb(ig,1) = albedo_h2o_ice 187 psolaralb(ig,2) = albedo_h2o_ice 188 ENDIF 189 END DO 190 PRINT*,'minimum albedo avec water caps', 191 s psolaralb(ISMIN(ngrid,psolaralb,1),1) 192 PRINT*,'maximum albedo avec water caps', 193 s psolaralb(ISMAX(ngrid,psolaralb,1),1) 194 ENDIF 195 196 c changing initial albedo if CO2 ice is present 197 c ------------------------------------------- 198 199 DO ig=1,ngrid 50 200 IF (piceco2(ig) .GT. 0.) THEN 51 201 IF(ig.GT.ngrid/2+1) THEN … … 55 205 ENDIF 56 206 psolaralb(ig,1) = albedice(icap) 57 psolaralb(ig,2) = albedice(icap)207 psolaralb(ig,2) = albedice(icap) 58 208 END IF 59 115 CONTINUE 60 61 PRINT*,'minimum des donnees albedo', 209 END DO 210 211 c changing initial albedo if water ice frost is present 212 c ------------------------------------------- 213 IF (water) THEN 214 do iq=1,nqmx 215 c if there is frost and surface albedo is set to albedo_h2o_ice 216 if(noms(iq).eq."h2o_ice") then 217 do ig=1,ngrid 218 if ((piceco2(ig) .eq. 0.).and. 219 & (qsurf(ig,iq).gt.frost_albedo_threshold)) then 220 psolaralb(ig,1) = albedo_h2o_ice 221 psolaralb(ig,2) = albedo_h2o_ice 222 c PRINT*,'surfini.F frost', 223 c & lati(ig)*180./pi, long(ig)*180./pi 224 endif 225 enddo 226 endif 227 end do 228 PRINT*,'minimum albedo avec givre et co2', 62 229 s psolaralb(ISMIN(ngrid,psolaralb,1),1) 63 PRINT*,'maximum des donnees albedo',230 PRINT*,'maximum albedo avec givre et co2', 64 231 s psolaralb(ISMAX(ngrid,psolaralb,1),1) 232 END IF 233 65 234 66 235 RETURN -
trunk/LMDZ.MARS/libf/phymars/testphys1d.F
r246 r283 40 40 #include "netcdf.inc" 41 41 #include "comg1d.h" 42 #include "watercap.h"43 42 #include "logic.h" 44 43 #include "advtrac.h" … … 572 571 573 572 call physdem1("startfi.nc",long,lati,nsoilmx,nqmx, 574 . dtphys,float(day0), 575 . t ime,tsurf,tsoil,co2ice,emis,q2,qsurf,576 . area,albedodat,inertiedat,zmea,zstd,zsig,zgam,zthe)573 . dtphys,float(day0),time,tsurf, 574 . tsoil,co2ice,emis,q2,qsurf,area,albedodat, 575 . inertiedat,zmea,zstd,zsig,zgam,zthe) 577 576 c======================================================================= 578 577 c BOUCLE TEMPORELLE DU MODELE 1D -
trunk/LMDZ.MARS/libf/phymars/vdifc.F
r268 r283 36 36 #include "tracer.h" 37 37 38 #include "watercap.h"39 38 c 40 39 c arguments:
Note: See TracChangeset
for help on using the changeset viewer.