Replies: 1 comment 4 replies
-
Hi @Shuzunyun You appear to be using a version of LISF that is several years old. Can you please update to the latest public-7.5 release, Once you are updated, you won't need to edit default.cfg or LIS_DAobs_pluginMod.F90. However, you will need to add those |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I want to turn on “GCOMW AMSR2 L3 soil moisture” assimilation and run with Noah-MP 3.6, so I first added the following lines:
[DA OBS GCOMW_AMSR2L3sm]
enabled: True
macro: DA_OBS_GCOMW_AMSR2L3sm
path: dataassim/obs/GCOMW_AMSR2L3sm
in default.cfg. I then added the following lines:
call registerlsmdainit(trim(LIS_noahmp36Id)//"+"//&
trim(LIS_GCOMW_AMSR2L3smobsId)//char(0),noahmp36_dasoilm_init)
call registerlsmdagetstatevar(trim(LIS_noahmp36Id)//"+"//&
trim(LIS_GCOMW_AMSR2L3smobsId)//char(0),noahmp36_getsoilm)
call registerlsmdasetstatevar(trim(LIS_noahmp36Id)//"+"//&
trim(LIS_GCOMW_AMSR2L3smobsId)//char(0),noahmp36_setsoilm)
call registerlsmdagetobspred(trim(LIS_noahmp36Id)//"+"//&
trim(LIS_GCOMW_AMSR2L3smobsId)//char(0),noahmp36_getsmpred)
call registerlsmdaqcstate(trim(LIS_noahmp36Id)//"+"//&
trim(LIS_GCOMW_AMSR2L3smobsId)//char(0),noahmp36_qcsoilm)
call registerlsmdaqcobsstate(trim(LIS_noahmp36Id)//"+"//&
trim(LIS_GCOMW_AMSR2L3smobsId)//char(0),noahmp36_qc_soilmobs)
call registerlsmdascalestatevar(trim(LIS_noahmp36Id)//"+"//&
trim(LIS_GCOMW_AMSR2L3smobsId)//char(0),noahmp36_scale_soilm)
call registerlsmdadescalestatevar(trim(LIS_noahmp36Id)//"+"//&
trim(LIS_GCOMW_AMSR2L3smobsId)//char(0),noahmp36_descale_soilm)
call registerlsmdaupdatestate(trim(LIS_noahmp36Id)//"+"//&
trim(LIS_GCOMW_AMSR2L3smobsId)//char(0),noahmp36_updatesoilm)
in LIS_lsmda_pluginMod.F90. I also added the following lines:
#if ( defined DA_OBS_GCOMW_AMSR2L3sm )
external read_GCOMW_AMSR2L3sm, write_GCOMW_AMSR2L3smobs
#endif
and
#if ( defined DA_OBS_GCOMW_AMSR2L3sm )
!GCOMW AMSR2 L3 snow depth
call registerdaobsclass(trim(LIS_GCOMW_AMSR2L3smobsId),"LSM")
call registerdaobssetup(trim(LIS_GCOMW_AMSR2L3smobsId)//char(0), &
GCOMW_AMSR2L3sm_setup)
call registerreaddaobs(trim(LIS_GCOMW_AMSR2L3smobsId)//char(0), &
read_GCOMW_AMSR2L3sm)
call registerwritedaobs(trim(LIS_GCOMW_AMSR2L3smobsId)//char(0), &
write_GCOMW_AMSR2L3smobs)
#endif
in LIS_DAobs_pluginMod.F90. But I still get the following mistake:
../dataassim/obs/GCOMW_AMSR2L3sm/GCOMW_AMSR2L3sm_Mod.F90:289:20:
289 | grid=LIS_ensOnGrid(n),name="Observation"//vid(1)//vid(2),&
| 1
Error: Function ‘lis_ensongrid’ at (1) has no IMPLICIT type; did you mean ‘lis_endofrun’?
../dataassim/obs/GCOMW_AMSR2L3sm/GCOMW_AMSR2L3sm_Mod.F90:351:53:
351 | GCOMW_AMSR2L3sm_struc(n)%ntimes,ngrid)
| 1
Error: Type mismatch in argument ‘k’ at (1); passed CHARACTER(1) to INTEGER(4)
../dataassim/obs/GCOMW_AMSR2L3sm/GCOMW_AMSR2L3sm_Mod.F90:386:52:
386 | GCOMW_AMSR2L3sm_struc(n)%model_sigma)
| 1
Error: There is no specific subroutine for the generic ‘lis_readmeansigmadata’ at (1)
../dataassim/obs/GCOMW_AMSR2L3sm/GCOMW_AMSR2L3sm_Mod.F90:394:50:
394 | GCOMW_AMSR2L3sm_struc(n)%obs_sigma)
| 1
Error: There is no specific subroutine for the generic ‘lis_readmeansigmadata’ at (1)
../dataassim/obs/GCOMW_AMSR2L3sm/GCOMW_AMSR2L3sm_Mod.F90:403:50:
403 | GCOMW_AMSR2L3sm_struc(n)%model_cdf)
| 1
Error: There is no specific subroutine for the generic ‘lis_readcdfdata’ at (1)
../dataassim/obs/GCOMW_AMSR2L3sm/GCOMW_AMSR2L3sm_Mod.F90:412:48:
412 | GCOMW_AMSR2L3sm_struc(n)%obs_cdf)
| 1
Error: There is no specific subroutine for the generic ‘lis_readcdfdata’ at (1)
make: *** [Makefile:140:GCOMW_AMSR2L3sm_Mod.o]
Can anyone tell me which step I missed? Thanks a lot!
LIS_DAobs_pluginMod.txt

LIS_lsmda_pluginMod.txt
default.cfg.txt.txt
Beta Was this translation helpful? Give feedback.
All reactions