Opened 5 years ago

Closed 5 years ago

#217 closed enhancement (fixed)

Add coszang (Cosine of the solar zenith angle) as input variable from LMDZ

Reported by: jgipsl Owned by: jgipsl
Priority: minor Milestone: IPSLCM6.v1
Component: Physical processes Version: trunc
Keywords: intersurf Cc:

Description (last modified by jgipsl)

The variable coszang is needed as input variable from LMDZ for using the option ok_bvoc and it is also needed for version ORCHIDEE-CAN. In LMDZ/pbl_surface_mod.F90 the corresponding variable is called yrmu0. Following has already been done in ORCHIDEE:

  • in rev [890]-[897](do not use rev 890-896) the variable was added in ORCHIDEE intersurf_main_gathered as optional intent(in) argument.
  • in rev [2961] in ORCHIDEE the variable sinang was renamed coszang, see ticket #193

In LMDZ there exists 2 interfaces towards ORCHIDEE:

  • An older version in file phylmd/surf_land_orchidee_noopenmp_mod.F90. This version is activated during compilation by adding the preprocessor key ORCHIDEE_NOOPENMP. This version should be used with ORCHIDEE/trunk older than [1078], before the OpenMP was included. This is the case for the CMIP5 version of ORCHIDEE.
  • A newer version in file phylmd/surf_land_orchidee_mod.F90. This is the default interface that will be compiled.

The variable coszang will be added only in the new interface. In surf_land_orchidee_mod.F90, the call to ORCHIDEE will look like following. Not that the variable is set in the end using coszang=yrmu0. It is needed to specify coszang because in ORCHIDEE there are other optional variables between t2m and coszang which are not send :

#ifdef CPP_VEGET
          CALL intersurf_main (itime+itau_phy-1, nbp_lon, nbp_lat, knon, ktindex, dtime, &
               lrestart_read, lrestart_write, lalo, &
               contfrac, neighbours, resolution, date0, &
               zlev,  u1_lay, v1_lay, spechum, temp_air, epot_air, ccanopy, &
               cdrag, petA_orc, peqA_orc, petB_orc, peqB_orc, &
               precip_rain, precip_snow, lwdown, swnet, swdown, ps, &
               evap, fluxsens, fluxlat, coastalflow, riverflow, &
               tsol_rad, tsurf_new, qsurf, albedo_out, emis_new, z0_new, &
               lon_scat, lat_scat, q2m, t2m, coszang=yrmu0)
#endif 


Backward compatibility

  • Old versions of LMDZ can continue to work with new versions of ORCHIDEE since the variable coszang is optional in ORCHIDEE. Note, it is not possible to activate ok_bvoc or orchidee-can for these versions.
  • Old versions of ORCHIDEE trunk with the new LMDZ5/trunk (after commit)
    • between the ORCHIDEE HEAD(3051) and back to revision [2961] : OK because coszang is optional in the intersurf_gathered in all these revisions
    • between the ORCHIDEE 2960 and back to revision [1078] : CAN NOT BE USED ANY MORE. The variable was already as optional in ORCHIDEE/intersurf_main BUT it was called sinang.
    • from 1077 and older, the old inferface in LMDZ is used where no modifications are done, it works as before.


Change History (2)

comment:1 Changed 5 years ago by jgipsl

  • Description modified (diff)

comment:2 Changed 5 years ago by jgipsl

  • Resolution set to fixed
  • Status changed from new to closed

Commit has been done in LMDZ5/trunk revision 2410. http://web.lmd.jussieu.fr/trac/changeset/2410

Summary:

  • LMDZ5/trunk rev 2410 and newer can now be used with ORCHIDEE trunk revisions from rev 2961 and newer.
  • For revision 1078-2960 on ORCHIDEE trunk, a small modification (change coszang into sinang) in surf_land_orchidee_mod.f90 is needed.
  • For older versions than ORCHIDEE trunk revision 1078, the interface in surf_land_orchidee_noopenmp_mod.f90 should be used (add cpp key ORCHIDEE_NOOPENMP while compiling LMDZ).
Note: See TracTickets for help on using tickets.