- Timestamp:
- Apr 17, 2016, 10:23:21 PM (9 years ago)
- Location:
- trunk/LMDZ.MARS
- Files:
-
- 1 deleted
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/README
r1540 r1541 2256 2256 "dynphy_lonlat". 2257 2257 - "iniprint.h" moved from "dyn3d" to "misc". 2258 2259 == 17/04/2016 == EM 2260 - fix for 1D in writediagfi to enable writing at 2261 "ecritphy" rate. 2262 - removed iniprint.h from phymars/dyn1d since it is in "misc" 2263 - Some code cleanup in anticipation of future updates: 2264 - changed variable names in comgeomphy.F90: give them more 2265 explicit names: rlond => longitude , 2266 rlatd => latitude, airephy => cell_area, 2267 cuphy => dx , cvphy => dy 2268 - removed long(), lati() and area() from comgeomfi_h.F90, 2269 use longitude(), latitude() and cell_are() from 2270 comgeomphy.F90 instead 2271 -
trunk/LMDZ.MARS/libf/aeronomars/moldiff_red.F90
r1528 r1541 3 3 4 4 use tracer_mod, only: noms, mmol 5 use comgeom fi_h, only:area5 use comgeomphy, only: cell_area 6 6 7 7 implicit none … … 591 591 ! the trend only at the end 592 592 593 PhiEscH=PhiEscH+wi(i_h)*Nrafk(nlraf,i_h)* area(ig) ! in s-1594 PhiEscH2=PhiEscH2+wi(i_h2)*Nrafk(nlraf,i_h2)* area(ig) ! in s-1 (U in m/s, aire in m2, Nrafk in m-3)595 ! print*,'test',ig,wi(i_h),Nrafk(nlraf,i_h),wi(i_h2),Nrafk(nlraf,i_h2), area(ig),PhiEscH,PhiEscH2,i_h,i_h2593 PhiEscH=PhiEscH+wi(i_h)*Nrafk(nlraf,i_h)*cell_area(ig) ! in s-1 594 PhiEscH2=PhiEscH2+wi(i_h2)*Nrafk(nlraf,i_h2)*cell_area(ig) ! in s-1 (U in m/s, aire in m2, Nrafk in m-3) 595 ! print*,'test',ig,wi(i_h),Nrafk(nlraf,i_h),wi(i_h2),Nrafk(nlraf,i_h2),cell_area(ig),PhiEscH,PhiEscH2,i_h,i_h2 596 596 ! stop 597 597 -
trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/iniphysiq_mod.F90
r1524 r1541 16 16 17 17 use comgeomphy, only : initcomgeomphy, & 18 airephy, & ! physics grid area (m2)19 cuphy, & ! cu coeff. (u_covariant = cu * u)20 cvphy, & ! cv coeff. (v_covariant = cv * v)21 rlond, & ! longitudes22 rlatd ! latitudes18 cell_area, & ! physics grid area (m2) 19 dx, & ! cu coeff. (u_covariant = cu * u) 20 dy, & ! cv coeff. (v_covariant = cv * v) 21 longitude, & ! longitudes (rad) 22 latitude ! latitudes (rad) 23 23 use infotrac, only : nqtot ! number of advected tracers 24 24 use comgeomfi_h, only: ini_fillgeom … … 164 164 165 165 offset=klon_mpi_begin-1 166 airephy(1:klon_omp)=airefi(offset+klon_omp_begin:offset+klon_omp_end)167 cuphy(1:klon_omp)=cufi(offset+klon_omp_begin:offset+klon_omp_end)168 cvphy(1:klon_omp)=cvfi(offset+klon_omp_begin:offset+klon_omp_end)169 rlond(1:klon_omp)=lonfi(offset+klon_omp_begin:offset+klon_omp_end)170 rlatd(1:klon_omp)=latfi(offset+klon_omp_begin:offset+klon_omp_end)166 cell_area(1:klon_omp)=airefi(offset+klon_omp_begin:offset+klon_omp_end) 167 dx(1:klon_omp)=cufi(offset+klon_omp_begin:offset+klon_omp_end) 168 dy(1:klon_omp)=cvfi(offset+klon_omp_begin:offset+klon_omp_end) 169 longitude(1:klon_omp)=lonfi(offset+klon_omp_begin:offset+klon_omp_end) 170 latitude(1:klon_omp)=latfi(offset+klon_omp_begin:offset+klon_omp_end) 171 171 172 172 ! copy some fundamental parameters to physics … … 175 175 day_ini,hour_ini,punjours,ptimestep, & 176 176 prad,pg,pr,pcpp) 177 call ini_fillgeom(klon_omp, rlatd,rlond,airephy)177 call ini_fillgeom(klon_omp,latitude,longitude,cell_area) 178 178 call conf_phys(klon_omp,nlayer,nqtot) 179 179 -
trunk/LMDZ.MARS/libf/phymars/aeropacity.F
r1502 r1541 8 8 & igcm_dust_submicron, rho_dust, rho_ice, 9 9 & nqdust 10 use comgeomfi_h, only: lati, sinlat ! grid point latitudes (rad) 10 use comgeomphy, only: latitude ! grid point latitudes (rad) 11 use comgeomfi_h, only: sinlat ! sines of grid point latitudes 11 12 #ifdef DUSTSTORM 12 use comgeom fi_h, only: long13 use comgeomphy, only: longitude 13 14 use tracer_mod, only: r3n_q, ref_r0, igcm_dust_number 14 15 #endif … … 240 241 c endif 241 242 do ig=1,ngrid 242 if (lati (ig).ge.0) then243 if (latitude(ig).ge.0) then 243 244 ! Northern hemisphere 244 245 tauref(ig)= tauN + 245 & (taueq-tauN)*0.5*(1+tanh((45-lati (ig)*180./pi)*6/60))246 & (taueq-tauN)*0.5*(1+tanh((45-latitude(ig)*180./pi)*6/60)) 246 247 else 247 248 ! Southern hemisphere 248 249 tauref(ig)= tauS + 249 & (taueq-tauS)*0.5*(1+tanh((45+lati (ig)*180./pi)*6/60))250 & (taueq-tauS)*0.5*(1+tanh((45+latitude(ig)*180./pi)*6/60)) 250 251 endif 251 252 enddo ! of do ig=1,ngrid … … 305 306 do ig=1,ngrid 306 307 topdust(ig)=60.+18.*zlsconst 307 & -(32+18*zlsconst)*sin(lati (ig))**4308 & - 8*zlsconst*(sin(lati (ig)))**5308 & -(32+18*zlsconst)*sin(latitude(ig))**4 309 & - 8*zlsconst*(sin(latitude(ig)))**5 309 310 end do 310 311 endif … … 520 521 521 522 !! distance to the center: 522 ray(ig)=SQRT((lati (ig)*180./pi-latloc)**2 +523 & (long (ig)*180./pi -lonloc)**2)523 ray(ig)=SQRT((latitude(ig)*180./pi-latloc)**2 + 524 & (longitude(ig)*180./pi -lonloc)**2) 524 525 525 526 !! transition factor for storm -
trunk/LMDZ.MARS/libf/phymars/albedocaps.F90
r1528 r1541 6 6 ! to use the 'getin' routine 7 7 use ioipsl_getincom, only: getin 8 use comgeom fi_h, only: lati! grid point latitudes (rad)8 use comgeomphy, only: latitude ! grid point latitudes (rad) 9 9 use surfdat_h, only: TESicealbedo, TESice_Ncoef, TESice_Scoef, & 10 10 emisice, albedice, watercaptag, albedo_h2o_ice, & … … 51 51 52 52 do ig=1,ngrid 53 if (lati (ig).lt.0.) then53 if (latitude(ig).lt.0.) then 54 54 icap=2 ! Southern hemisphere 55 55 else … … 87 87 subroutine TES_icecap_albedo(zls,ig,alb,icap) 88 88 89 use comgeom fi_h, only: lati, long89 use comgeomphy, only: latitude, longitude ! in radians 90 90 use surfdat_h, only: albedice, TESice_Ncoef, TESice_Scoef 91 91 use netcdf, only: nf90_open, NF90_NOWRITE, NF90_NOERR, & … … 281 281 ! Check that latitude is such that there is TES data to use 282 282 ! (ie: latitude 45 deg and poleward) otherwise use 'default' albedoes 283 latd=lati (ig)*radeg ! latitude, in degrees283 latd=latitude(ig)*radeg ! latitude, in degrees 284 284 if (icap.eq.1) then 285 285 ! North hemisphere … … 360 360 361 361 ! 3. Identify encompassing longitudes 362 lond=long (ig)*radeg ! east longitude, in degrees362 lond=longitude(ig)*radeg ! east longitude, in degrees 363 363 if (lond.lt.TESlon(1)) then 364 364 loninf=TESlonsize -
trunk/LMDZ.MARS/libf/phymars/co2snow.F
r1524 r1541 3 3 4 4 use surfdat_h, only: iceradius, dtemisice 5 use comgeom fi_h, only: lati! grid point latitudes (rad)5 use comgeomphy, only: latitude ! grid point latitudes (rad) 6 6 use time_phylmdz_mod, only: daysec 7 7 IMPLICIT NONE … … 105 105 c dtemis: Time scale for increasing the ice emissivity 106 106 107 IF(lati (ig).LT. 0.) THEN107 IF(latitude(ig).LT. 0.) THEN 108 108 icap=2 ! Southern hemisphere 109 109 ELSE -
trunk/LMDZ.MARS/libf/phymars/comgeomfi_h.F90
r1233 r1541 5 5 6 6 ! These arrays are allocated in phys_state_var_init 7 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: long ! longitudes (rad)8 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: lati ! latitudes (rad)9 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: area ! mesh area (m2)10 REAL,SAVE :: totarea7 ! REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: long ! longitudes (rad) 8 ! REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: lati ! latitudes (rad) 9 ! REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: area ! mesh area (m2) 10 ! REAL,SAVE :: totarea 11 11 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: sinlon 12 12 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: coslon … … 21 21 integer,intent(in) :: ngrid ! number of atmospheric columns 22 22 23 24 allocate(long(ngrid))25 allocate(area(ngrid))23 ! allocate(lati(ngrid)) 24 ! allocate(long(ngrid)) 25 ! allocate(area(ngrid)) 26 26 allocate(sinlat(ngrid)) 27 27 allocate(coslat(ngrid)) … … 41 41 42 42 ! fill "comgeomfi_h" data 43 call SCOPY(ngrid,plon,1,long,1)44 call SCOPY(ngrid,plat,1,lati,1)45 call SCOPY(ngrid,parea,1,area,1)46 totarea=SSUM(ngrid,area,1)43 ! call SCOPY(ngrid,plon,1,long,1) 44 ! call SCOPY(ngrid,plat,1,lati,1) 45 ! call SCOPY(ngrid,parea,1,area,1) 46 ! totarea=SSUM(ngrid,area,1) 47 47 DO ig=1,ngrid 48 sinlat(ig)=sin( lati(ig))49 coslat(ig)=cos( lati(ig))50 sinlon(ig)=sin( long(ig))51 coslon(ig)=cos( long(ig))48 sinlat(ig)=sin(plat(ig)) 49 coslat(ig)=cos(plat(ig)) 50 sinlon(ig)=sin(plon(ig)) 51 coslon(ig)=cos(plon(ig)) 52 52 ENDDO 53 53 -
trunk/LMDZ.MARS/libf/phymars/comgeomphy.F90
r1130 r1541 1 1 module comgeomphy 2 real,save,allocatable :: airephy(:)3 real,save,allocatable :: cuphy(:)4 real,save,allocatable :: cvphy(:)5 real,save,allocatable :: rlatd(:)6 real,save,allocatable :: rlond(:)7 !$OMP THREADPRIVATE( airephy,cuphy,cvphy,rlatd,rlond)2 real,save,allocatable :: cell_area(:) ! airephy(:) 3 real,save,allocatable :: dx(:) !cuphy(:) 4 real,save,allocatable :: dy(:) !cvphy(:) 5 real,save,allocatable :: latitude(:) !rlatd(:) 6 real,save,allocatable :: longitude(:) !rlond(:) 7 !$OMP THREADPRIVATE(cell_area,dx,dy,latitude,longitude) 8 8 contains 9 9 … … 13 13 14 14 15 allocate( airephy(klon_omp))16 allocate( cuphy(klon_omp))17 allocate( cvphy(klon_omp))18 allocate( rlatd(klon_omp))19 allocate( rlond(klon_omp))15 allocate(cell_area(klon_omp)) 16 allocate(dx(klon_omp)) 17 allocate(dy(klon_omp)) 18 allocate(latitude(klon_omp)) 19 allocate(longitude(klon_omp)) 20 20 21 21 end subroutine initcomgeomphy -
trunk/LMDZ.MARS/libf/phymars/dyn1d/testphys1d.F
r1535 r1541 5 5 use infotrac, only: nqtot, tname 6 6 use comsoil_h, only: volcapa, layer, mlayer, inertiedat, nsoilmx 7 use comgeomfi_h, only: lati, long, area,sinlat, ini_fillgeom7 use comgeomfi_h, only: sinlat, ini_fillgeom 8 8 use surfdat_h, only: albedodat, z0_default, emissiv, emisice, 9 9 & albedice, iceradius, dtemisice, z0, … … 12 12 use slope_mod, only: theta_sl, psi_sl 13 13 use phyredem, only: physdem0,physdem1 14 use comgeomphy, only: initcomgeomphy, airephy, cuphy, cvphy, 15 & rlond, rlatd 14 use comgeomphy, only: initcomgeomphy, cell_area 16 15 use planete_h, only: year_day, periheli, aphelie, peri_day, 17 16 & obliquit, emin_turb, lmixmin … … 534 533 c ------------------------------------- 535 534 c mesh surface (not a very usefull quantity in 1D) 536 area(1)=1.E+0 537 airephy(1)=area(1) 535 cell_area(1)=1.E+0 538 536 539 537 c surface geopotential is not used (or useful) since in 1D … … 560 558 u(ilayer)=gru 561 559 v(ilayer)=grv 560 w(ilayer)=0 ! default: no vertical wind 562 561 ENDDO 563 562 … … 580 579 IF (co2ice(1).eq.1.E+0) THEN 581 580 emis=emisice(1) ! northern hemisphere 582 IF(lati (1).LT.0) emis=emisice(2) ! southern hemisphere581 IF(latitude(1).LT.0) emis=emisice(2) ! southern hemisphere 583 582 ENDIF 584 583 … … 654 653 ! thermo=0: initialize over all atmospheric layers 655 654 thermo=0 656 call inichim_newstart(q,psurf,sig,nq,lati ,long,area,657 $ thermo,qsurf)655 call inichim_newstart(q,psurf,sig,nq,latitude,longitude, 656 $ cell_area,thermo,qsurf) 658 657 endif 659 658 … … 683 682 c It is needed to transfert physics variables to "physiq"... 684 683 685 call physdem0("startfi.nc",long ,lati,nsoilmx,ngrid,llm,nq,686 . dtphys,float(day0),time,area,687 .albedodat,inertiedat,zmea,zstd,zsig,zgam,zthe)684 call physdem0("startfi.nc",longitude,latitude,nsoilmx,ngrid,llm, 685 & nq,dtphys,float(day0),time,cell_area, 686 & albedodat,inertiedat,zmea,zstd,zsig,zgam,zthe) 688 687 call physdem1("startfi.nc",nsoilmx,ngrid,llm,nq, 689 688 . dtphys,time, … … 703 702 call solarlong(day*1.0,zls) 704 703 write(103,*) 'Ls=',zls*180./pi 705 write(103,*) 'Lat=', lati (1)*180./pi704 write(103,*) 'Lat=', latitude(1)*180./pi 706 705 write(103,*) 'Tau=', tauvis/odpref*psurf 707 706 write(103,*) 'RunEnd - Atmos. Temp. File' 708 707 write(103,*) 'RunEnd - Atmos. Temp. File' 709 708 write(104,*) 'Ls=',zls*180./pi 710 write(104,*) 'Lat=', lati (1)709 write(104,*) 'Lat=', latitude(1) 711 710 write(104,*) 'Tau=', tauvis/odpref*psurf 712 711 write(104,*) 'RunEnd - Atmos. Temp. File' … … 753 752 754 753 c For some tests : No coriolis force at equator 755 c if(lati (1).eq.0.) then754 c if(latitude(1).eq.0.) then 756 755 DO ilayer=1,nlayer 757 756 du(ilayer)=du(ilayer)+ (gru-u(ilayer))/1.e4 -
trunk/LMDZ.MARS/libf/phymars/eofdump_mod.F90
r1528 r1541 80 80 subroutine ineofdump(ngrid,nlayer) 81 81 82 use comgeom fi_h, only: long, lati82 use comgeomphy, only: longitude, latitude 83 83 use comcstfi_h, only: pi 84 84 use time_phylmdz_mod, only: daysec, dtphys … … 121 121 if(j.eq.nbp_lat) stop 'Problem in ineofdump.F' 122 122 #ifdef NC_DOUBLE 123 write(uehead,*) real(long (ig)*180./pi),real(lati(ig)*180./pi)123 write(uehead,*) real(longitude(ig)*180./pi),real(latitude(ig)*180./pi) 124 124 #else 125 write(uehead,*) long (ig)*180./pi, lati(ig)*180./pi125 write(uehead,*) longitude(ig)*180./pi, latitude(ig)*180./pi 126 126 #endif 127 ! write(*,*) 'eof grid j=',j,' lat= ', lati (ig)*180./pi127 ! write(*,*) 'eof grid j=',j,' lat= ', latitude(ig)*180./pi 128 128 enddo 129 129 enddo -
trunk/LMDZ.MARS/libf/phymars/getslopes.F90
r1528 r1541 1 1 subroutine getslopes(ngrid,geopot) 2 2 3 use comgeom fi_h, only: long, lati3 use comgeomphy, only: longitude, latitude ! in radians 4 4 use slope_mod, only: theta_sl, psi_sl 5 5 use comcstfi_h, only: g, rad, pi … … 40 40 do i=1,nbp_lon 41 41 topogrid(i,j)=geopot(ig0+i)/g 42 latigrid(i,j)=lati (ig0+i)43 longgrid(i,j)=long (ig0+i)42 latigrid(i,j)=latitude(ig0+i) 43 longgrid(i,j)=longitude(ig0+i) 44 44 enddo 45 45 enddo 46 46 !poles : 47 47 topogrid(:,1) = geopot(1)/g 48 latigrid(:,1) = lati (1)49 longgrid(:,1) = long (1)48 latigrid(:,1) = latitude(1) 49 longgrid(:,1) = longitude(1) 50 50 topogrid(:,nbp_lat) = geopot(ngrid)/g 51 latigrid(:,nbp_lat) = lati (ngrid)52 longgrid(:,nbp_lat) = long (ngrid)51 latigrid(:,nbp_lat) = latitude(ngrid) 52 longgrid(:,nbp_lat) = longitude(ngrid) 53 53 54 54 -
trunk/LMDZ.MARS/libf/phymars/newcondens.F
r1528 r1541 8 8 use tracer_mod, only: noms 9 9 use surfdat_h, only: emissiv, phisfi 10 use comgeom fi_h, only: lati! grid point latitudes (rad)10 use comgeomphy, only: latitude ! grid point latitudes (rad) 11 11 use planete_h 12 12 USE comcstfi_h … … 347 347 c 348 348 DO ig=1,ngrid 349 IF(lati (ig).lt.0) THEN349 IF(latitude(ig).lt.0) THEN 350 350 ! Southern hemisphere 351 351 icap=2 … … 785 785 if (caps.and.(obliquit.lt.27.)) then 786 786 ! check if last grid point is the south pole 787 if (abs(lati (ngrid)-(-pi/2.)).lt.1.e-5) then787 if (abs(latitude(ngrid)-(-pi/2.)).lt.1.e-5) then 788 788 ! NB: Updated surface pressure, at grid point 'ngrid', is 789 789 ! ps(ngrid)=pplev(ngrid,1)+pdpsrf(ngrid)*ptimestep 790 ! write(*,*) "newcondens: South pole: lati (ngrid)=",791 ! & lati (ngrid)790 ! write(*,*) "newcondens: South pole: latitude(ngrid)=", 791 ! & latitude(ngrid) 792 792 ztcondsol(ngrid)= 793 793 & 1./(bcond-acond*log(.01*vmr_co2(ngrid,1)* -
trunk/LMDZ.MARS/libf/phymars/phyredem.F90
r1524 r1541 14 14 use infotrac, only: nqtot, tname 15 15 use comsoil_h, only: inertiedat, volcapa, mlayer 16 use comgeom fi_h, only:area16 use comgeomphy, only: cell_area 17 17 use surfdat_h, only: zmea, zstd, zsig, zgam, zthe, & 18 18 z0_default, albedice, emisice, emissiv, & … … 118 118 119 119 ! Write mesh areas 120 call put_field("area","Mesh area", area)120 call put_field("area","Mesh area",cell_area) 121 121 122 122 ! Write surface geopotential -
trunk/LMDZ.MARS/libf/phymars/physiq.F
r1528 r1541 15 15 use comsoil_h, only: inertiedat, ! soil thermal inertia 16 16 & tsoil, nsoilmx ! number of subsurface layers 17 use comgeom fi_h, only: long, lati, area,18 &sinlon, coslon, sinlat, coslat17 use comgeomphy, only: longitude, latitude, cell_area 18 use comgeomfi_h, only: sinlon, coslon, sinlat, coslat 19 19 use surfdat_h, only: phisfi, albedodat, zmea, zstd, zsig, zgam, 20 20 & zthe, z0, albedo_h2o_ice, … … 497 497 498 498 if (ngrid.ne.1) then ! no need to create a restart file in 1d 499 call physdem0("restartfi.nc",long,lati,nsoilmx,ngrid,nlayer,nq, 500 . ptimestep,pday,time_phys,area, 501 . albedodat,inertiedat,zmea,zstd,zsig,zgam,zthe) 499 call physdem0("restartfi.nc",longitude,latitude, 500 & nsoilmx,ngrid,nlayer,nq, 501 & ptimestep,pday,time_phys,cell_area, 502 & albedodat,inertiedat,zmea,zstd,zsig,zgam,zthe) 502 503 endif 503 504 #endif … … 597 598 do l=1,nlayer 598 599 pw(1:ngrid,l)=(pw(1:ngrid,l)*r*pt(1:ngrid,l)) / 599 & (pplay(1:ngrid,l)* area(1:ngrid))600 & (pplay(1:ngrid,l)*cell_area(1:ngrid)) 600 601 ! NB: here we use r and not rnew since this diagnostic comes 601 602 ! from the dynamics … … 623 624 624 625 ELSE 625 CALL mucorr(ngrid,declin, lati, mu0,fract,10000.,rad)626 CALL mucorr(ngrid,declin,latitude,mu0,fract,10000.,rad) 626 627 ENDIF 627 628 … … 709 710 write(*,'("Ls =",f11.6," check lat =",f10.6, 710 711 & " lon =",f11.6)') 711 & zls*180./pi,lati(igout)*180/pi,long(igout)*180/pi 712 & zls*180./pi,latitude(igout)*180/pi, 713 & longitude(igout)*180/pi 712 714 write(*,'(" tauref(",f4.0," Pa) =",f9.6, 713 715 & " tau(",f4.0," Pa) =",f9.6)') … … 724 726 ztim1=fluxsurf_sw(ig,1)+fluxsurf_sw(ig,2) 725 727 DO l=1,2 726 sl_lct = ptime*24. + 180.*long (ig)/pi/15.728 sl_lct = ptime*24. + 180.*longitude(ig)/pi/15. 727 729 sl_ra = pi*(1.0-sl_lct/12.) 728 sl_lat = 180.*lati (ig)/pi730 sl_lat = 180.*latitude(ig)/pi 729 731 sl_tau = tau(ig,1) !il faudrait iaerdust(iaer) 730 732 sl_alb = albedo(ig,l) … … 1328 1330 !!! get the actual co2 seasonal cap from Titus observations 1329 1331 CALL geticecover( ngrid, 180.*zls/pi, 1330 . 180.*long /pi, 180.*lati/pi, co2ice )1332 . 180.*longitude/pi, 180.*latitude/pi, co2ice ) 1331 1333 co2ice = co2ice * 10000. 1332 1334 ENDIF … … 1432 1434 c write(*,*) "frost thickness", qsurf(ig,igcm_h2o_ice) 1433 1435 c write(*,*) "physiq.F frost :" 1434 c & ,lati (ig)*180./pi, long(ig)*180./pi1436 c & ,latitude(ig)*180./pi, longitude(ig)*180./pi 1435 1437 endif 1436 1438 enddo ! of do ig=1,ngrid … … 1958 1960 1959 1961 call planetwide_sumval(colden(:,iq)/6.022e23 1960 $ *mmol(iq)*1.e4* area(:),mass(iq))1962 $ *mmol(iq)*1.e4*cell_area(:),mass(iq)) 1961 1963 1962 1964 call writediagfi(ngrid,"mass_"//trim(noms(iq)), -
trunk/LMDZ.MARS/libf/phymars/read_dust_scenario.F90
r1500 r1541 4 4 5 5 use netcdf 6 use comgeom fi_h, only: lati, long6 use comgeomphy, only: latitude, longitude ! in radians 7 7 implicit none 8 8 … … 179 179 ! 3 4 180 180 181 latdeg=lati (ig)*radeg ! latitude, in degrees182 londeg=long (ig)*radeg ! longitude, in degrees east181 latdeg=latitude(ig)*radeg ! latitude, in degrees 182 londeg=longitude(ig)*radeg ! longitude, in degrees east 183 183 colat=90-latdeg ! colatitude, in degrees 184 184 -
trunk/LMDZ.MARS/libf/phymars/surfini.F
r1528 r1541 4 4 use netcdf 5 5 use tracer_mod, only: nqmx, noms 6 use comgeom fi_h, only: long, lati6 use comgeomphy, only: longitude, latitude ! in radians 7 7 use surfdat_h, only: watercaptag, frost_albedo_threshold, 8 8 & albedo_h2o_ice, inert_h2o_ice, albedodat, … … 77 77 !! si elles sont consequentes 78 78 enddo 79 if ( ( lati (ig)*180./pi .gt. 70. ) .and.79 if ( ( latitude(ig)*180./pi .gt. 70. ) .and. 80 80 . ( albedodat(ig) .ge. 0.26 ) ) then 81 81 write(*,*)"outlier ",ig … … 151 151 ! start by geting latitudes and logitudes on full grid 152 152 ! (in serial mode, this is just a copy) 153 call gather(lati ,lati_glo)154 call gather(long ,long_glo)153 call gather(latitude,lati_glo) 154 call gather(longitude,long_glo) 155 155 156 156 if (is_master) then … … 503 503 DO ig=1,ngrid 504 504 IF (piceco2(ig) .GT. 0.) THEN 505 IF(lati (ig).LT. 0.) THEN505 IF(latitude(ig).LT. 0.) THEN 506 506 icap=2 ! Southern hemisphere 507 507 ELSE … … 547 547 psolaralb(ig,2) = albedo_h2o_ice 548 548 c PRINT*,'surfini.F frost', 549 c & lati (ig)*180./pi, long(ig)*180./pi549 c & latitude(ig)*180./pi, longitude(ig)*180./pi 550 550 endif 551 551 enddo -
trunk/LMDZ.MARS/libf/phymars/writediagfi.F
r1532 r1541 40 40 !================================================================= 41 41 use surfdat_h, only: phisfi 42 use comgeomphy, only: airephy42 use comgeomphy, only: cell_area 43 43 use time_phylmdz_mod, only: ecritphy, day_step, iphysiq, day_ini 44 44 USE mod_phys_lmdz_para, only : is_parallel, is_mpi_root, … … 118 118 !Sortie des variables au rythme voulu 119 119 120 irythme = int(ecritphy) ! sortie au rythme de ecritphy 121 ! irythme = iconser ! sortie au rythme des variables de controle 122 ! irythme = iphysiq ! sortie a tous les pas physique 123 ! irythme = iecri*day_step ! sortie au rythme des fichiers histoires 124 ! irythme = periodav*day_step ! sortie au rythme des fichiers histmoy 120 irythme = int(ecritphy) ! output rate set by ecritphy 125 121 126 122 !*************************************************************** … … 189 185 ! Gather phisfi() geopotential on physics grid 190 186 call Gather(phisfi,phisfi_glo) 191 ! Gather airephy() mesh area on physics grid192 call Gather( airephy,areafi_glo)187 ! Gather cell_area() mesh area on physics grid 188 call Gather(cell_area,areafi_glo) 193 189 #else 194 190 phisfi_glo(:)=phisfi(:) 195 areafi_glo(:)= airephy(:)191 areafi_glo(:)=cell_area(:) 196 192 #endif 197 193 … … 260 256 261 257 endif ! if (firstnom.eq.'1234567890') 262 263 if (klon_glo.eq.1) then264 ! in testphys1d, for the 1d version of the GCM, iphysiq and irythme265 ! are undefined; so set them to 1266 iphysiq=1267 irythme=1268 endif269 258 270 259 ! Increment time index 'zitau' if it is the "fist call" (at given time level) -
trunk/LMDZ.MARS/libf/phymars/writediagsoil.F90
r1532 r1541 13 13 14 14 use comsoil_h, only: nsoilmx, inertiedat 15 use comgeomphy, only: airephy15 use comgeomphy, only: cell_area 16 16 use time_phylmdz_mod, only: ecritphy, day_step, iphysiq 17 17 use mod_phys_lmdz_para, only : is_mpi_root, is_master, gather … … 102 102 ! Gather inertiedat() soil thermal inertia on physics grid 103 103 call Gather(inertiedat,inertiafi_glo) 104 ! Gather airephy() mesh area on physics grid105 call Gather( airephy,areafi_glo)104 ! Gather cell_area() mesh area on physics grid 105 call Gather(cell_area,areafi_glo) 106 106 #else 107 107 inertiafi_glo(:,:)=inertiedat(:,:) 108 areafi_glo(:)= airephy(:)108 areafi_glo(:)=cell_area(:) 109 109 #endif 110 110
Note: See TracChangeset
for help on using the changeset viewer.