Ignore:
Timestamp:
Apr 18, 2016, 8:45:35 AM (9 years ago)
Author:
emillour
Message:

Generic GCM:

  • fix for 1D in writediagfi to enable writing at "ecritphy" rate.
  • move iniprint.h to "misc"
  • Some code cleanup in anticipation of future updates:
    • changed variable names in comgeomphy.F90: give them more explicit names: rlond => longitude , rlatd => latitude, airephy => cell_area, cuphy => dx , cvphy => dy
    • removed long(), lati() and area() from comgeomfi_h.F90, use longitude(), latitude() and cell_are() from comgeomphy.F90 instead

EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/libf/phystd/dyn1d/rcm1d.F

    r1539 r1542  
    1111!      use comsaison_h
    1212      use comsoil_h, only: nsoilmx, layer, mlayer, inertiedat, volcapa
    13       USE comgeomfi_h, only: lati, long, area
    1413      use phyredem, only: physdem0,physdem1
    15       use comgeomphy, only: initcomgeomphy, airephy
     14      use comgeomphy, only: initcomgeomphy, cell_area
    1615      use slab_ice_h, only: noceanmx
    1716      use planete_mod, only: apoastr,periastr,year_day,peri_day,
     
    159158      IF (.not.ALLOCATED(sinlon)) ALLOCATE(sinlon(1))
    160159      IF (.not.ALLOCATED(coslon)) ALLOCATE(coslon(1))
    161       !! those are defined in comgeomfi_h
    162       IF (.not. ALLOCATED(lati)) ALLOCATE(lati(1))
    163       IF (.not. ALLOCATED(long)) ALLOCATE(long(1))
    164       IF (.not. ALLOCATED(area)) ALLOCATE(area(1))
    165 
    166160
    167161      saveprofile=.false.
     
    326320!!! GEOGRAPHICAL INITIALIZATIONS
    327321     !!! AREA. useless in 1D
    328       area(1)=1.E+0
    329       airephy(1)=area(1) !JL+EM to have access to the area in the diagfi.nc files. area in comgeomfi.h and aire in comgeom.h
     322      cell_area(1)=1.E+0 !JL+EM to have access to the area in the diagfi.nc files.
    330323     !!! GEOPOTENTIAL. useless in 1D because control by surface pressure
    331324      phisfi(1)=0.E+0
     
    511504      cpp=1.d-7 !JL because we divide by cpp in inifis, there may be a more elegant solution
    512505      CALL inifis(1,llm,nq,day0,daysec,nday,dtphys,
    513      .            latitude,longitude,area,rad,g,r,cpp)
     506     .            latitude,longitude,cell_area,rad,g,r,cpp)
    514507
    515508      nsoil=nsoilmx
     
    673666         IF (qsurf(i_co2_ice).ge.1.E+0) THEN
    674667            ! if we have some CO2 ice on the surface, change emissivity
    675             if (lati(1).ge.0) then ! northern hemisphere
     668            if (latitude(1).ge.0) then ! northern hemisphere
    676669              emis(1)=emisice(1)
    677670            else ! southern hemisphere
     
    834827c  It is needed to transfert physics variables to "physiq"...
    835828
    836       call physdem0("startfi.nc",long,lati,nsoilmx,1,llm,nq,
    837      &              dtphys,real(day0),time,area,
     829      call physdem0("startfi.nc",longitude,latitude,nsoilmx,1,llm,nq,
     830     &              dtphys,real(day0),time,cell_area,
    838831     &              albedodat,inertiedat,zmea,zstd,zsig,zgam,zthe)
    839832      call physdem1("startfi.nc",nsoilmx,1,llm,nq,
     
    843836     &                rnat,pctsrf_sic,tslab,tsea_ice,sea_ice)
    844837
    845 !      call physdem1(1,"startfi.nc",long,lati,nsoilmx,nq,
    846 !     &              dtphys,float(day0),
    847 !     &              time,tsurf,tsoil,emis,q2,qsurf,
    848 !     &              area,albedodat,inertiedat,zmea,zstd,zsig,zgam,zthe,
    849 !     &              cloudfrac,totcloudfrac,hice,nametrac)
    850 
    851838c=======================================================================
    852839c  BOUCLE TEMPORELLE DU MODELE 1D
     
    861848         call stellarlong(day*1.0,zls)
    862849!         write(103,*) 'Ls=',zls*180./pi
    863 !         write(103,*) 'Lat=', lati(1)*180./pi
     850!         write(103,*) 'Lat=', latitude(1)*180./pi
    864851!         write(103,*) 'RunEnd - Atmos. Temp. File'
    865852!         write(103,*) 'RunEnd - Atmos. Temp. File'
    866853!         write(104,*) 'Ls=',zls*180./pi
    867 !         write(104,*) 'Lat=', lati(1)
     854!         write(104,*) 'Lat=', latitude(1)
    868855!         write(104,*) 'RunEnd - Atmos. Temp. File'
    869856        ENDIF
     
    923910
    924911c       Pour certain test : pas de coriolis a l'equateur
    925 c       if(lati(1).eq.0.) then
     912c       if(latitude(1).eq.0.) then
    926913          DO ilayer=1,nlayer
    927914             du(ilayer)=du(ilayer)+ (gru-u(ilayer))/1.e4
Note: See TracChangeset for help on using the changeset viewer.