Subroutine transpmodel_init

317 : 
318 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
319 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
320 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
321 : 
322 :       subroutine transpmodel_init (vom_invar, vom_npar, vom_command)
323 :       use vom_vegwat_mod
324 :   !$ USE omp_lib
325 :       implicit none
326 : 
327 :       INTEGER, INTENT(in)    :: vom_npar
328 :       INTEGER, INTENT(in)    :: vom_command
329 :       REAL*8, DIMENSION(vom_npar), INTENT(in) :: vom_invar
330 : 
331 :       if( .not. allocated(pcap_) ) then
332 : 
333 :           allocate(pcap_(s_maxlayer))
334 :           allocate(su__(s_maxlayer))
335 :           allocate(ruptkt__(s_maxlayer))
336 :           allocate(sunew(s_maxlayer))
337 :           allocate(kunsat_(s_maxlayer))
338 : 
339 :           allocate(rsurft_(s_maxlayer))
340 :           allocate(rsurftnew(s_maxlayer))
341 :           allocate(qbl(s_maxlayer))
342 :           allocate(dsu(s_maxlayer))
343 :           allocate(prootm(s_maxlayer))
344 : 
345 :           allocate(pcapnew(s_maxlayer))
346 :           allocate(ruptkt_d(s_maxlayer))
347 :           allocate(ruptkt_h(s_maxlayer))
348 :           allocate(ruptkg_h(s_maxlayer))
349 :           allocate(ruptkg_d(s_maxlayer))
350 :           allocate(refft(s_maxlayer))
351 :           allocate(reffg(s_maxlayer))
352 :           allocate(ruptkg__(s_maxlayer))
353 :           allocate(rsurfg_(s_maxlayer))
354 :           allocate(rsurfgnew(s_maxlayer))
355 :           allocate(rsoil(s_maxlayer))
356 :           allocate(kunsatnew(s_maxlayer))
357 :           allocate(sueq(s_maxlayer))
358 :           allocate(cH2Ol_s(s_maxlayer))
359 :           allocate(iovec(s_maxlayer))
360 : 
361 :           allocate( output_mat (21, c_testday ) )
362 : 
363 :       end if
364 : 
365 :       if (vom_command .eq. 2) then
366 :         optmode = 0
367 :       elseif (vom_command .eq. 5) then
368 :         optmode = 0
369 :       elseif (vom_command .eq. 3) then
370 :         optmode = 2
371 :       else
372 :         optmode = 1
373 :       endif
374 : 
375 : !*----------------------------------------------------------------------
376 : !*     Optimised parameters reading from vom_invar
377 : !*----------------------------------------------------------------------
378 : 
379 : 
380 :       if (vom_npar .ge. 1) o_lambdagf = vom_invar(1)
381 :       if (vom_npar .ge. 2) o_wsgexp   = vom_invar(2)
382 :       if (vom_npar .ge. 3) o_lambdatf = vom_invar(3)
383 :       if (vom_npar .ge. 4) o_wstexp   = vom_invar(4)
384 :       if (vom_npar .ge. 5) o_cai      = vom_invar(5)
385 :       if (vom_npar .ge. 6) o_rtdepth  = vom_invar(6)
386 :       if (vom_npar .ge. 7) o_mdstore  = vom_invar(7)
387 :       if (vom_npar .ge. 8) o_rgdepth  = vom_invar(8)
388 :       if (vom_npar .ge. 9)  i_cgs     = vom_invar(9)
389 :       if (vom_npar .ge. 10) i_zr      = vom_invar(10)
390 :       if (vom_npar .ge. 11) i_go      = vom_invar(11)
391 :       if (vom_npar .ge. 12) i_ksat    = vom_invar(12)
392 :       if (vom_npar .ge. 13) i_thetar  = vom_invar(13)
393 :       if (vom_npar .ge. 14) i_thetas  = vom_invar(14)
394 :       if (vom_npar .ge. 15) i_nvg     = vom_invar(15)
395 :       if (vom_npar .ge. 16) i_avg     = vom_invar(16)
396 : 
397 :       !set vegetation parameters to 0 if no vegetation
398 :       if (i_no_veg .eq. 1) then
399 :          o_lambdagf = 0.0
400 :          o_wsgexp   = 0.0
401 :          o_lambdatf = 0.0 
402 :          o_wstexp   = 0.0
403 :          o_cai      = 0.0
404 :          o_rtdepth  = 0.0
405 :          o_mdstore  = 0.0
406 :          o_rgdepth  = 0.0
407 :          i_rsurfmin = 0.0
408 :          i_rsurf_   = 0.0
409 :          i_rootrad  = 0.0
410 :          i_incrcovg = 0.0
411 :        end if
412 : 
413 : !***********************************************************************
414 : !*  Calculation of vegetation parameters
415 : !*
416 : !*----------------------------------------------------------------------
417 : !*  Equations in equations.pdf
418 : !*  (numeration in the commented parentheses)
419 : !***********************************************************************
420 : 
421 : !*-----Initial values---------------------------------------------------
422 : 
423 :       call vom_init_vegpar()
424 : 
425 :       nday = 0
426 :       c_testday = i_testyear * 365
427 :       if (optmode .eq. 0 .or. optmode .eq. 2) c_testday = c_maxday
428 :       finish = 0
429 : 
430 :       return
431 :       end subroutine transpmodel_init