Commit 55e3f7948f02f552ef21a3bf39a211bf9d061a24

Authored by dumoda01
1 parent d42e636c
Exists in master and in 1 other branch snow

Incorporation d'un nouveau modele biologique (bio_ismer). La routine principale …

…ainsi que la namelist associee seront deposees dans la prochaine revision.
nml/bio.nml
... ... @@ -8,6 +8,8 @@
8 8 ! 2: IOW-ERGOM (9 variables)
9 9 ! 3: Suspended matter only (1 variable)
10 10 ! 4: Fasham et al. 1990 (7 variables)
  11 +! 5: IOW-ERGOM MaBenE version (9 variables)
  12 +! 6: ISMER model (9 variables)
11 13 !
12 14 ! bio_eulerian -> state variables are Eulerian (.true./.false.)
13 15 !
... ...
src/extras/bio/Makefile
... ... @@ -9,7 +9,7 @@ LIB = $(LIBDIR)/libbio$(buildtype).a
9 9  
10 10 DOCSRC = bio.F90 \
11 11 bio_var.F90 bio_template.F90 bio_npzd.F90 bio_iow.F90 \
12   - bio_sed.F90 bio_fasham.F90 \
  12 + bio_sed.F90 bio_fasham.F90 bio_ismer.F90\
13 13 bio_save.F90
14 14  
15 15 OBJ = \
... ... @@ -19,6 +19,7 @@ ${LIB}(bio_template.o) \
19 19 ${LIB}(bio_npzd.o) \
20 20 ${LIB}(bio_iow.o) \
21 21 ${LIB}(bio_mab.o) \
  22 +${LIB}(bio_ismer.o) \
22 23 ${LIB}(bio_fasham.o) \
23 24 ${LIB}(bio_sed.o) \
24 25 ${LIB}(bio_save.o) \
... ...
src/extras/bio/bio.F90
... ... @@ -30,6 +30,9 @@
30 30  
31 31 use bio_fasham, only : init_bio_fasham,init_var_fasham,var_info_fasham
32 32 use bio_fasham, only : light_fasham,do_bio_fasham
  33 +!DD
  34 + use bio_ismer, only : init_bio_ismer,init_var_ismer,var_info_ismer
  35 + use bio_ismer, only : light_ismer,do_bio_ismer
33 36  
34 37 use bio_sed, only : init_bio_sed,init_var_sed,var_info_sed
35 38  
... ... @@ -301,6 +304,16 @@
301 304  
302 305 call var_info_mab()
303 306  
  307 + case (6) ! The ISMER model, modified from Fasham
  308 +
  309 + call init_bio_ismer(namlst,'bio_ismer.nml',unit)
  310 +
  311 + call allocate_memory(nlev)
  312 +
  313 + call init_var_ismer(nlev)
  314 +
  315 + call var_info_ismer()
  316 +
304 317 case default
305 318 stop "bio: no valid biomodel specified in bio.nml !"
306 319 end select
... ... @@ -546,6 +559,7 @@
546 559 case (4)
547 560 case (5)
548 561 call surface_fluxes_mab(nlev,t(nlev),s(nlev))
  562 + case (6)
549 563 end select
550 564  
551 565 if (bio_eulerian) then
... ... @@ -577,7 +591,7 @@
577 591 end if
578 592 end do
579 593 else ! Lagrangian particle calculations
580   -!#define LAGRANGE
  594 +#define LAGRANGE
581 595 #ifdef LAGRANGE
582 596 if (bio_model.ne.3) then
583 597 stop 'set bio_model=3 for Lagrangian calculations. Stop in bio.F90'
... ... @@ -643,6 +657,9 @@
643 657 case (5)
644 658 call light_mab(nlev,bioshade_feedback)
645 659 call ode_solver(ode_method,numc,nlev,dt_eff,cc,do_bio_mab)
  660 + case (6)
  661 + call light_ismer(nlev,bioshade_feedback)
  662 + call ode_solver(ode_method,numc,nlev,dt_eff,cc,do_bio_ismer)
646 663 end select
647 664  
648 665 end do
... ...